buildroot: allow specifying libc personality for external toolchains
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 20 Feb 2013 15:06:10 +0000 (15:06 +0000)
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Wed, 20 Feb 2013 15:06:10 +0000 (15:06 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35703 3c298f89-4303-0410-b956-a3cf2f4a3e73

scripts/ext-toolchain.sh
toolchain/Config.in
toolchain/wrapper/Makefile

index d1e163f..3ebaa21 100755 (executable)
@@ -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
index 32de4b1..8677b87 100644 (file)
@@ -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
index 417ed8c..3398e40 100644 (file)
@@ -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))