From f8f3c05e56959f297edebe6438bd4f8c988f1e6e Mon Sep 17 00:00:00 2001 From: jow Date: Wed, 20 Feb 2013 15:06:10 +0000 Subject: buildroot: allow specifying libc personality for external toolchains git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35703 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- scripts/ext-toolchain.sh | 4 ++++ toolchain/Config.in | 11 +++++++++++ toolchain/wrapper/Makefile | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/scripts/ext-toolchain.sh b/scripts/ext-toolchain.sh index d1e163fd6..3ebaa2148 100755 --- a/scripts/ext-toolchain.sh +++ b/scripts/ext-toolchain.sh @@ -356,6 +356,10 @@ print_config() { echo "CONFIG_TOOLCHAIN_PREFIX=\"$prefix\"" >> "$config" echo "CONFIG_TARGET_NAME=\"$target\"" >> "$config" + if [ "$LIBC_TYPE" != glibc ]; then + echo "CONFIG_TOOLCHAIN_LIBC=\"$LIBC_TYPE\"" >> "$config" + fi + local lib for lib in C RT PTHREAD GCC STDCPP SSP GFORTRAN; do local file diff --git a/toolchain/Config.in b/toolchain/Config.in index 32de4b164..8677b87e7 100644 --- a/toolchain/Config.in +++ b/toolchain/Config.in @@ -50,6 +50,17 @@ menuconfig EXTERNAL_TOOLCHAIN default "/opt/cross/powerpc-unknown-linux-gnu" if powerpc default "/opt/cross/x86_64-unknown-linux-gnu" if x86_64 + config TOOLCHAIN_LIBC + string + prompt "Toolchain libc" if DEVEL + depends EXTERNAL_TOOLCHAIN && !NATIVE_TOOLCHAIN + default "uclibc" + help + Specify the libc type used by the external toolchain. The given value us passed as -m + flag to all gcc and g++ invocations. This is mainly intended for multilib toolchains + which support glibc and uclibc at the same time. If no value is specified, no -m flag + is passed. + config TOOLCHAIN_BIN_PATH string prompt "Toolchain program path" if DEVEL diff --git a/toolchain/wrapper/Makefile b/toolchain/wrapper/Makefile index 417ed8cd3..3398e407c 100644 --- a/toolchain/wrapper/Makefile +++ b/toolchain/wrapper/Makefile @@ -17,7 +17,7 @@ include $(INCLUDE_DIR)/toolchain-build.mk define toolchain_util $(strip $(SCRIPT_DIR)/ext-toolchain.sh --toolchain $(CONFIG_TOOLCHAIN_ROOT) \ --cflags $(CONFIG_TARGET_OPTIMIZATION) \ - --cflags "-muclibc $(if $(CONFIG_SOFT_FLOAT),-msoft-float)" \ + --cflags "$(if $(call qstrip,$(CONFIG_TOOLCHAIN_LIBC)),-m$(call qstrip,$(CONFIG_TOOLCHAIN_LIBC))) $(if $(CONFIG_SOFT_FLOAT),-msoft-float)" \ --cflags "$(patsubst ./%,-I$(TOOLCHAIN_ROOT_DIR)/%,$(call qstrip,$(CONFIG_TOOLCHAIN_INC_PATH)))" \ --cflags "$(patsubst ./%,-L$(TOOLCHAIN_ROOT_DIR)/%,$(call qstrip,$(CONFIG_TOOLCHAIN_LIB_PATH)))" \ $(1)) -- cgit v1.2.3