浏览代码

buildroot: allow specifying libc personality for external toolchains

SVN-Revision: 35703
Jo-Philipp Wich 12 年之前
父节点
当前提交
9622f68581
共有 3 个文件被更改,包括 16 次插入1 次删除
  1. 4 0
      scripts/ext-toolchain.sh
  2. 11 0
      toolchain/Config.in
  3. 1 1
      toolchain/wrapper/Makefile

+ 4 - 0
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

+ 11 - 0
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

+ 1 - 1
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))