Browse Source

support non-thread build

Waldemar Brodkorb 9 years ago
parent
commit
91c96ee1dd
3 changed files with 32 additions and 1 deletions
  1. 12 0
      target/config/Config.in.libc.choice
  2. 3 1
      toolchain/gcc/Makefile
  3. 17 0
      toolchain/uclibc-ng/Makefile

+ 12 - 0
target/config/Config.in.libc.choice

@@ -104,3 +104,15 @@ config ADK_TARGET_LIB_MUSL_GIT
 	depends on ADK_TARGET_LIB_MUSL
 
 endchoice
+
+choice
+prompt "Threading"
+depends on ADK_TARGET_LIB_UCLIBC || ADK_TARGET_LIB_UCLIBC_NG
+
+config ADK_TARGET_LIB_WITH_THREADS
+	bool "enable threads"
+
+config ADK_TARGET_LIB_WITHOUT_THREADS
+	bool "disable threads"
+
+endchoice

+ 3 - 1
toolchain/gcc/Makefile

@@ -53,11 +53,13 @@ GCC_CONFOPTS:=		--prefix=$(TOOLCHAIN_DIR)/usr \
 
 GCC_FINAL_CONFOPTS:=
 
-ifneq ($(ADK_TARGET_WITH_NPTL),)
+ifeq ($(ADK_TARGET_WITH_NPTL),y)
+ifeq ($(ADK_TARGET_LIB_WITHOUT_THREADS),)
 GCC_CONFOPTS+=         --enable-tls --enable-threads --enable-libatomic
 else
 GCC_CONFOPTS+=         --disable-tls --disable-threads --disable-libatomic
 endif
+endif
 
 ifeq ($(ADK_TARGET_UCLINUX)$(ADK_TARGET_USE_STATIC_LIBS),y)
 GCC_FINAL_CONFOPTS+=	--disable-shared

+ 17 - 0
toolchain/uclibc-ng/Makefile

@@ -89,6 +89,14 @@ ifeq ($(ADK_TARGET_WITH_LT),y)
 	$(SED) 's/.*\(PTHREADS_DEBUG_SUPPORT\).*/\1=y/' ${WRKBUILD}/.config
 	$(SED) 's/.*\(HAS_NO_THREADS\).*/# \1 is not set/' ${WRKBUILD}/.config
 endif
+ifeq ($(ADK_TARGET_LIB_WITHOUT_THREADS),y)
+	$(SED) 's/.*\(UCLIBC_HAS_LINUXTHREADS\).*/# \1 is not set/' ${WRKBUILD}/.config
+	$(SED) 's/.*\(UCLIBC_HAS_THREADS_NATIVE\).*/# \1 is not set/' ${WRKBUILD}/.config
+	$(SED) 's/.*\(UCLIBC_HAS_TLS\).*/# \1 is not set/' ${WRKBUILD}/.config
+	$(SED) 's/.*\(PTHREADS_DEBUG_SUPPORT\).*/# \1 is not set/' ${WRKBUILD}/.config
+	$(SED) 's/.*\(HAS_NO_THREADS\).*/\1=y/' ${WRKBUILD}/.config
+
+endif
 endif
 ifeq ($(ADK_TARGET_LIB_UCLIBC_NG_1_0_0),y)
 ifeq ($(ADK_TARGET_WITH_NPTL),y)
@@ -106,6 +114,15 @@ ifeq ($(ADK_TARGET_WITH_LT),y)
 	$(SED) 's/.*\(LINUXTHREADS_NEW\).*/# \1 is not set/' ${WRKBUILD}/.config
 	$(SED) 's/.*\(HAS_NO_THREADS\).*/# \1 is not set/' ${WRKBUILD}/.config
 endif
+ifeq ($(ADK_TARGET_LIB_WITHOUT_THREADS),y)
+	$(SED) 's/.*\(LINUXTHREADS_OLD\).*/# \1 is not set/' ${WRKBUILD}/.config
+	$(SED) 's/.*\(LINUXTHREADS_NEW\).*/# \1 is not set/' ${WRKBUILD}/.config
+	$(SED) 's/.*\(UCLIBC_HAS_THREADS_NATIVE\).*/# \1 is not set/' ${WRKBUILD}/.config
+	$(SED) 's/.*\(UCLIBC_HAS_TLS\).*/# \1 is not set/' ${WRKBUILD}/.config
+	$(SED) 's/.*\(PTHREADS_DEBUG_SUPPORT\).*/# \1 is not set/' ${WRKBUILD}/.config
+	$(SED) 's/.*\(HAS_NO_THREADS\).*/\1=y/' ${WRKBUILD}/.config
+
+endif
 endif
 ifeq ($(ADK_TARGET_USE_STATIC_LIBS)$(ADK_TARGET_BINFMT_FLAT),)
 	$(SED) 's/.*\(HAVE_SHARED\).*/\1=y/' ${WRKBUILD}/.config