diff options
Diffstat (limited to 'toolchain')
-rw-r--r-- | toolchain/Makefile.in | 6 | ||||
-rw-r--r-- | toolchain/gcc/gcc-uclibc-4.x.mk | 6 | ||||
-rw-r--r-- | toolchain/toolchain-buildroot/Config.in.2 | 27 | ||||
-rw-r--r-- | toolchain/toolchain-common.in | 29 | ||||
-rw-r--r-- | toolchain/toolchain-external/Config.in | 9 | ||||
-rw-r--r-- | toolchain/toolchain-external/ext-tool.mk | 2 |
6 files changed, 46 insertions, 33 deletions
diff --git a/toolchain/Makefile.in b/toolchain/Makefile.in index 371509f4e..2cb6e95f2 100644 --- a/toolchain/Makefile.in +++ b/toolchain/Makefile.in @@ -1,9 +1,3 @@ -ifeq ($(BR2_PTHREADS_NONE),y) -THREADS:=--disable-threads -else -THREADS:=--enable-threads -endif - BR2_CONFIGURE_DEVEL_SYSROOT=--with-sysroot=$(TOOLCHAIN_DIR)/uClibc_dev/ BR2_CONFIGURE_STAGING_SYSROOT=--with-sysroot=$(STAGING_DIR) BR2_CONFIGURE_BUILD_TOOLS=--with-build-time-tools=$(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/bin diff --git a/toolchain/gcc/gcc-uclibc-4.x.mk b/toolchain/gcc/gcc-uclibc-4.x.mk index eec652343..5f69906ca 100644 --- a/toolchain/gcc/gcc-uclibc-4.x.mk +++ b/toolchain/gcc/gcc-uclibc-4.x.mk @@ -138,6 +138,12 @@ else GCC_TLS:=--disable-tls endif +ifeq ($(BR2_PTHREADS_NONE),y) +THREADS:=--disable-threads +else +THREADS:=--enable-threads +endif + ifeq ($(BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE),y) GCC_DECIMAL_FLOAT:=--disable-decimal-float endif diff --git a/toolchain/toolchain-buildroot/Config.in.2 b/toolchain/toolchain-buildroot/Config.in.2 index f1b0a7c58..fe93e70d5 100644 --- a/toolchain/toolchain-buildroot/Config.in.2 +++ b/toolchain/toolchain-buildroot/Config.in.2 @@ -76,6 +76,33 @@ config BR2_TOOLCHAIN_BUILDROOT_USE_SSP See http://www.linuxfromscratch.org/hints/downloads/files/ssp.txt for details. +choice + prompt "Thread library implementation" + default BR2_PTHREADS_OLD + help + Use this option to select the thread library implementation + that should be used in your toolchain. Not all thread + variants work with all versions of uClibc, the "linuxthreads + (stable/old)" may be a working fallback if you need + threading at all. + + config BR2_PTHREADS_NONE + bool "none" + + config BR2_PTHREADS + bool "linuxthreads" + select BR2_TOOLCHAIN_HAS_THREADS + + config BR2_PTHREADS_OLD + bool "linuxthreads (stable/old)" + select BR2_TOOLCHAIN_HAS_THREADS + + config BR2_PTHREADS_NATIVE + bool "Native POSIX Threading (NPTL)" + select BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_UCLIBC_VERSION_SNAPSHOT +endchoice + source "toolchain/elf2flt/Config.in" source "toolchain/mklibs/Config.in" source "toolchain/sstrip/Config.in" diff --git a/toolchain/toolchain-common.in b/toolchain/toolchain-common.in index 5502ab4ff..34d70a0fa 100644 --- a/toolchain/toolchain-common.in +++ b/toolchain/toolchain-common.in @@ -26,6 +26,9 @@ config BR2_PROGRAM_INVOCATION config BR2_INSTALL_LIBSTDCPP bool +config BR2_TOOLCHAIN_HAS_THREADS + bool + config BR2_ENABLE_LOCALE_PURGE bool "Purge unwanted locales" help @@ -76,32 +79,6 @@ config BR2_SOFT_FLOAT functions, then everything will need to be compiled with soft floating point support (-msoft-float). -choice - prompt "Thread library implementation" - default BR2_PTHREADS_OLD - help - If you are building your own toolchain then select the type of - libpthreads you want to use. - Not all thread variants work with all versions of uClibc, - the "linuxthreads (stable/old)" may be a working fallback - if you need threading at all. - If you have an external binary toolchain then select the type - of libpthreads it was built with. - - config BR2_PTHREADS_NONE - bool "none" - - config BR2_PTHREADS - bool "linuxthreads" - - config BR2_PTHREADS_OLD - bool "linuxthreads (stable/old)" - - config BR2_PTHREADS_NATIVE - bool "Native POSIX Threading (NPTL)" - depends on BR2_UCLIBC_VERSION_SNAPSHOT -endchoice - config BR2_TARGET_OPTIMIZATION string "Target Optimizations" default "-pipe" diff --git a/toolchain/toolchain-external/Config.in b/toolchain/toolchain-external/Config.in index bd22e0cc3..2ed65bf30 100644 --- a/toolchain/toolchain-external/Config.in +++ b/toolchain/toolchain-external/Config.in @@ -149,6 +149,7 @@ config BR2_TOOLCHAIN_EXTERNAL_GLIBC select BR2_USE_WCHAR select BR2_ENABLE_LOCALE select BR2_PROGRAM_INVOCATION + select BR2_TOOLCHAIN_HAS_THREADS config BR2_TOOLCHAIN_EXTERNAL_UCLIBC bool @@ -220,6 +221,14 @@ config BR2_TOOLCHAIN_EXTERNAL_PROGRAM_INVOCATION invocation support. If you don't know, leave the default value, Buildroot will tell you if it's correct or not. +config BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS + bool "Toolchain has threads support?" + select BR2_TOOLCHAIN_HAS_THREADS + help + Select this option if your external toolchain has thread + support. If you don't know, leave the default value, + Buildroot will tell you if it's correct or not. + endif # BR2_TOOLCHAIN_EXTERNAL_CUSTOM_UCLIBC config BR2_TOOLCHAIN_EXTERNAL_CXX diff --git a/toolchain/toolchain-external/ext-tool.mk b/toolchain/toolchain-external/ext-tool.mk index 027fbbdf5..d6153f14d 100644 --- a/toolchain/toolchain-external/ext-tool.mk +++ b/toolchain/toolchain-external/ext-tool.mk @@ -53,7 +53,7 @@ ifeq ($(BR2_INSTALL_LIBSTDCPP),y) USR_LIB_EXTERNAL_LIBS+=libstdc++.so endif -ifneq ($(BR2_PTHREADS_NONE),y) +ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) LIB_EXTERNAL_LIBS+=libpthread.so ifeq ($(BR2_PACKAGE_GDB_SERVER),y) LIB_EXTERNAL_LIBS+=libthread_db.so |