[Buildroot] [PATCH] Add a config option for gcc tls support, rather than disabling it blindly

Austin Foxley austinf at cetoncorp.com
Sun Sep 20 23:33:38 UTC 2009


Defaulted to yes, but blocked it from gcc 4.4.x since the disable was
originally added because of problems with its c++ support reportedly.

Signed-off-by: Austin Foxley <austinf at cetoncorp.com>
---
 toolchain/gcc/Config.in         |    7 +++++++
 toolchain/gcc/gcc-uclibc-4.x.mk |   12 +++++++++---
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in
index 279e101..db7e32e 100644
--- a/toolchain/gcc/Config.in
+++ b/toolchain/gcc/Config.in
@@ -175,3 +175,10 @@ config BR2_GCC_SHARED_LIBGCC
 	help
 	  Build/install a shared libgcc library
 
+config BR2_GCC_ENABLE_TLS
+	bool "Enable compiler tls support"
+	default y
+	depends on !BR2_GCC_VERSION_4_4_X
+	help
+	  Enable the compiler to generate code for accessing
+	  thread local storage variables
diff --git a/toolchain/gcc/gcc-uclibc-4.x.mk b/toolchain/gcc/gcc-uclibc-4.x.mk
index 4129152..494984b 100644
--- a/toolchain/gcc/gcc-uclibc-4.x.mk
+++ b/toolchain/gcc/gcc-uclibc-4.x.mk
@@ -137,6 +137,12 @@ else
 GCC_SHARED_LIBGCC:=--disable-shared
 endif
 
+ifeq ($(BR2_GCC_ENABLE_TLS),y)
+GCC_TLS:=--enable-tls
+else
+GCC_TLS:=--disable-tls
+endif
+
 ifeq ($(BR2_KERNEL_HURD),y)
 EXTRA_GCC1_CONFIG_OPTIONS+=--without-headers
 endif
@@ -219,7 +225,7 @@ $(GCC_BUILD_DIR1)/.configured: $(GCC_DIR)/.patched
 		--with-gnu-ld \
 		--disable-shared \
 		--disable-libssp \
-		--disable-tls \
+		$(GCC_TLS) \
 		$(GCC_WITH_HOST_GMP) \
 		$(GCC_WITH_HOST_MPFR) \
 		$(DISABLE_NLS) \
@@ -295,7 +301,7 @@ $(GCC_BUILD_DIR2)/.configured: $(GCC_SRC_DIR)/.patched $(GCC_STAGING_PREREQ)
 		--enable-target-optspace \
 		--with-gnu-ld \
 		--disable-libssp \
-		--disable-tls \
+		$(GCC_TLS) \
 		$(GCC_SHARED_LIBGCC) \
 		$(GCC_WITH_HOST_GMP) \
 		$(GCC_WITH_HOST_MPFR) \
@@ -422,7 +428,7 @@ $(GCC_BUILD_DIR3)/.configured: $(GCC_BUILD_DIR3)/.prepared
 		--disable-__cxa_atexit \
 		--with-gnu-ld \
 		--disable-libssp \
-		--disable-tls \
+		$(GCC_TLS) \
 		$(GCC_SHARED_LIBGCC) \
 		$(GCC_WITH_TARGET_GMP) \
 		$(GCC_WITH_TARGET_MPFR) \
-- 
1.6.2.5




More information about the buildroot mailing list