Przeglądaj źródła

Add a config option for gcc tls support, rather than disabling it blindly

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@cetoncorp.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Austin Foxley 16 lat temu
rodzic
commit
3ab4b632a0
2 zmienionych plików z 16 dodań i 3 usunięć
  1. 7 0
      toolchain/gcc/Config.in
  2. 9 3
      toolchain/gcc/gcc-uclibc-4.x.mk

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

+ 9 - 3
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) \