buildroot: allow specifying libc personality for external toolchains

SVN-Revision: 35703
This commit is contained in:
Jo-Philipp Wich 2013-02-20 15:06:10 +00:00
parent 330ae61b1b
commit 9622f68581
3 changed files with 16 additions and 1 deletions

View File

@ -356,6 +356,10 @@ print_config() {
echo "CONFIG_TOOLCHAIN_PREFIX=\"$prefix\"" >> "$config" echo "CONFIG_TOOLCHAIN_PREFIX=\"$prefix\"" >> "$config"
echo "CONFIG_TARGET_NAME=\"$target\"" >> "$config" echo "CONFIG_TARGET_NAME=\"$target\"" >> "$config"
if [ "$LIBC_TYPE" != glibc ]; then
echo "CONFIG_TOOLCHAIN_LIBC=\"$LIBC_TYPE\"" >> "$config"
fi
local lib local lib
for lib in C RT PTHREAD GCC STDCPP SSP GFORTRAN; do for lib in C RT PTHREAD GCC STDCPP SSP GFORTRAN; do
local file local file

View File

@ -50,6 +50,17 @@ menuconfig EXTERNAL_TOOLCHAIN
default "/opt/cross/powerpc-unknown-linux-gnu" if powerpc default "/opt/cross/powerpc-unknown-linux-gnu" if powerpc
default "/opt/cross/x86_64-unknown-linux-gnu" if x86_64 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 config TOOLCHAIN_BIN_PATH
string string
prompt "Toolchain program path" if DEVEL prompt "Toolchain program path" if DEVEL

View File

@ -17,7 +17,7 @@ include $(INCLUDE_DIR)/toolchain-build.mk
define toolchain_util define toolchain_util
$(strip $(SCRIPT_DIR)/ext-toolchain.sh --toolchain $(CONFIG_TOOLCHAIN_ROOT) \ $(strip $(SCRIPT_DIR)/ext-toolchain.sh --toolchain $(CONFIG_TOOLCHAIN_ROOT) \
--cflags $(CONFIG_TARGET_OPTIMIZATION) \ --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 ./%,-I$(TOOLCHAIN_ROOT_DIR)/%,$(call qstrip,$(CONFIG_TOOLCHAIN_INC_PATH)))" \
--cflags "$(patsubst ./%,-L$(TOOLCHAIN_ROOT_DIR)/%,$(call qstrip,$(CONFIG_TOOLCHAIN_LIB_PATH)))" \ --cflags "$(patsubst ./%,-L$(TOOLCHAIN_ROOT_DIR)/%,$(call qstrip,$(CONFIG_TOOLCHAIN_LIB_PATH)))" \
$(1)) $(1))