diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in index 279e10152b..db7e32e799 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 98295e307a..49e9a700f4 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) \