From 13b548757586759fb3093003d56a80efdd1eb602 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Wed, 9 Jun 2010 00:41:25 +0200 Subject: libc/uClibc: apply the threading model to the configuration The threading model shall be be set in the .config file. Also, offer the choice between 'old/stable' and 'new' linuxthreads. diff --git a/config/libc/uClibc.in.2 b/config/libc/uClibc.in.2 new file mode 100644 index 0000000..647d768 --- /dev/null +++ b/config/libc/uClibc.in.2 @@ -0,0 +1,36 @@ +# uClibc second-part option + +if THREADS_LINUXTHREADS + +choice + bool + prompt "Linuxthread implementation: " + default LIBC_UCLIBC_LNXTHRD_OLD + +config LIBC_UCLIBC_LNXTHRD_OLD + bool + prompt "old/stable" + help + From the uClibc config option help: + There are two versions of linuxthreads. The older (stable) version + has been in uClibc for quite a long time but hasn't seen too many + updates other than bugfixes. + +config LIBC_UCLIBC_LNXTHRD_NEW + bool + prompt "new" + help + From the uClibc config option help: + The new version has not been tested much, and lacks ports for arches + which glibc does not support (like bfin/frv/etc...), but is based on + the latest code from glibc, so it may be the only choice for the + newer ports (like alpha/amd64/64bit arches and hppa). + +endchoice + +config LIBC_UCLIBC_LNXTHRD + string + default "old" if LIBC_UCLIBC_LNXTHRD_OLD + default "new" if LIBC_UCLIBC_LNXTHRD_NEW + +endif # THREADS_LINUXTHREADS diff --git a/scripts/build/libc/uClibc.sh b/scripts/build/libc/uClibc.sh index 03411a2..8d58524 100644 --- a/scripts/build/libc/uClibc.sh +++ b/scripts/build/libc/uClibc.sh @@ -327,6 +327,36 @@ mungeuClibcConfig() { ENDSED fi + # Push the threading model + # Note: we take into account all of the .28, .29, .30 and .31 + # versions, here. + case "${CT_THREADS}:${CT_LIBC_UCLIBC_LNXTHRD}" in + none:*) + cat <<-ENDSED + s/^# HAS_NO_THREADS is not set/HAS_NO_THREADS=y/ + s/^UCLIBC_HAS_THREADS=y/# UCLIBC_HAS_THREADS is not set/ + s/^LINUXTHREADS_OLD=y/# LINUXTHREADS_OLD is not set/ + s/^LINUXTHREADS_NEW=y/# LINUXTHREADS_NEW is not set/ + ENDSED + ;; + *:old) + cat <<-ENDSED + s/^HAS_NO_THREADS=y/# HAS_NO_THREADS is not set/ + s/^# UCLIBC_HAS_THREADS is not set/UCLIBC_HAS_THREADS=y/ + s/^# LINUXTHREADS_OLD is not set/# LINUXTHREADS_OLD=y/ + s/^LINUXTHREADS_NEW=y/# LINUXTHREADS_NEW is not set/ + ENDSED + ;; + *:new) + cat <<-ENDSED + s/^# HAS_NO_THREADS is not set/HAS_NO_THREADS=y/ + s/^# UCLIBC_HAS_THREADS is not set/UCLIBC_HAS_THREADS=y/ + s/^LINUXTHREADS_OLD=y/# LINUXTHREADS_OLD is not set/ + s/^# LINUXTHREADS_NEW is not set/# LINUXTHREADS_NEW=y/ + ENDSED + ;; + esac + # Always build the libpthread_db cat <<-ENDSED s/^# PTHREADS_DEBUG_SUPPORT is not set.*/PTHREADS_DEBUG_SUPPORT=y/ -- cgit v0.10.2-6-g49f6