libc/uClibc: apply the threading model to the configuration
author"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Wed Jun 09 00:41:25 2010 +0200 (2010-06-09)
changeset 1977d11009b668dd
parent 1976 2d90ec981ba3
child 1978 fbee95d8182b
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.
config/libc/uClibc.in.2
scripts/build/libc/uClibc.sh
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/config/libc/uClibc.in.2	Wed Jun 09 00:41:25 2010 +0200
     1.3 @@ -0,0 +1,36 @@
     1.4 +# uClibc second-part option
     1.5 +
     1.6 +if THREADS_LINUXTHREADS
     1.7 +
     1.8 +choice
     1.9 +    bool
    1.10 +    prompt "Linuxthread implementation: "
    1.11 +    default LIBC_UCLIBC_LNXTHRD_OLD
    1.12 +
    1.13 +config LIBC_UCLIBC_LNXTHRD_OLD
    1.14 +    bool
    1.15 +    prompt "old/stable"
    1.16 +    help
    1.17 +      From the uClibc config option help:
    1.18 +        There are two versions of linuxthreads.  The older (stable) version
    1.19 +        has been in uClibc for quite a long time but hasn't seen too many
    1.20 +        updates other than bugfixes.
    1.21 +
    1.22 +config LIBC_UCLIBC_LNXTHRD_NEW
    1.23 +    bool
    1.24 +    prompt "new"
    1.25 +    help
    1.26 +      From the uClibc config option help:
    1.27 +        The new version has not been tested much, and lacks ports for arches
    1.28 +        which glibc does not support (like bfin/frv/etc...), but is based on
    1.29 +        the latest code from glibc, so it may be the only choice for the
    1.30 +        newer ports (like alpha/amd64/64bit arches and hppa).
    1.31 +
    1.32 +endchoice
    1.33 +
    1.34 +config LIBC_UCLIBC_LNXTHRD
    1.35 +    string
    1.36 +    default "old"   if LIBC_UCLIBC_LNXTHRD_OLD
    1.37 +    default "new"   if LIBC_UCLIBC_LNXTHRD_NEW
    1.38 +
    1.39 +endif # THREADS_LINUXTHREADS
     2.1 --- a/scripts/build/libc/uClibc.sh	Tue Jun 08 23:26:54 2010 +0200
     2.2 +++ b/scripts/build/libc/uClibc.sh	Wed Jun 09 00:41:25 2010 +0200
     2.3 @@ -327,6 +327,36 @@
     2.4  			ENDSED
     2.5      fi
     2.6  
     2.7 +    # Push the threading model
     2.8 +    # Note: we take into account all of the .28, .29, .30 and .31
     2.9 +    #       versions, here.
    2.10 +    case "${CT_THREADS}:${CT_LIBC_UCLIBC_LNXTHRD}" in
    2.11 +        none:*)
    2.12 +            cat <<-ENDSED
    2.13 +				s/^# HAS_NO_THREADS is not set/HAS_NO_THREADS=y/
    2.14 +				s/^UCLIBC_HAS_THREADS=y/# UCLIBC_HAS_THREADS is not set/
    2.15 +				s/^LINUXTHREADS_OLD=y/# LINUXTHREADS_OLD is not set/
    2.16 +				s/^LINUXTHREADS_NEW=y/# LINUXTHREADS_NEW is not set/
    2.17 +				ENDSED
    2.18 +            ;;
    2.19 +        *:old)
    2.20 +            cat <<-ENDSED
    2.21 +				s/^HAS_NO_THREADS=y/# HAS_NO_THREADS is not set/
    2.22 +				s/^# UCLIBC_HAS_THREADS is not set/UCLIBC_HAS_THREADS=y/
    2.23 +				s/^# LINUXTHREADS_OLD is not set/# LINUXTHREADS_OLD=y/
    2.24 +				s/^LINUXTHREADS_NEW=y/# LINUXTHREADS_NEW is not set/
    2.25 +				ENDSED
    2.26 +            ;;
    2.27 +        *:new)
    2.28 +            cat <<-ENDSED
    2.29 +				s/^# HAS_NO_THREADS is not set/HAS_NO_THREADS=y/
    2.30 +				s/^# UCLIBC_HAS_THREADS is not set/UCLIBC_HAS_THREADS=y/
    2.31 +				s/^LINUXTHREADS_OLD=y/# LINUXTHREADS_OLD is not set/
    2.32 +				s/^# LINUXTHREADS_NEW is not set/# LINUXTHREADS_NEW=y/
    2.33 +				ENDSED
    2.34 +            ;;
    2.35 +    esac
    2.36 +
    2.37      # Always build the libpthread_db
    2.38      cat <<-ENDSED
    2.39  		s/^# PTHREADS_DEBUG_SUPPORT is not set.*/PTHREADS_DEBUG_SUPPORT=y/