This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: arm gnueabi problem with tls.


Hi Steve,

I've managed to build an arm eABI nptl toolchain, with a toolchain prefix of arm-linux-gnueabi, using the following sources:

- gcc-4.1.0
- glibc-2.4
- glibc-ports-2.4
- linux-2.6.16.1 headers
- binutils snapshot: binutils-060410
- crosstool-0.42

I used the patch submitted by Khem Raj to crossgcc on Thu, 09 Mar 2006 with one change for glibc-2.4.

The change to Khem's patch is to copy pthreadtypes.h from glibc ports for arm architectures when using glibc-2.4. I've attached the modified patch to this email.

Other patches needed to glibc-2.4 were:

- make-install-lib-all.patch This is the patch applied by crosstool to recent glibc builds.

- A patch to disable as and ld version checking in the configure script as a snapshot of binutils was used in the build. This is a temporary hack to workaround the issue of using a snapshot of binutils for this particular toolchain, and will _not_ be used as a permanent fix.

Best regards,

Steve

Steven Newbury wrote:
--- Steve Papacharalambous <stevep@freescale.com> wrote:


Hi Richard,

Thanks, that fixed the __thread problem. :-)

Now on to the rest of the toolchain...

Best regards,

Steve


Richard Earnshaw wrote:


I don't know for certain because I haven't tried to do it myself, but I
strongly suspect that your problem is binutils.  The last public release
of binutils (which you are using here) does not contain support for the
required TLS relocations.  So the configure script is probably deciding
that TLS can't be done, even though your compiler is up to scratch.

You'll need to use a copy of CVS HEAD binutils for now if you want EABI
TLS support.

R.

Please let me know how you get on.



Steve




___________________________________________________________ Don't miss important emails - get alerted on your phone when new Yahoo! Mail arrives. http://uk.docs.yahoo.com/mail/learnmore/


--
For unsubscribe information see http://sourceware.org/lists.html#faq


diff -uNr crosstool-0.42.orig/crosstool.sh crosstool-0.42/crosstool.sh
--- crosstool-0.42.orig/crosstool.sh	2006-02-26 02:14:13.000000000 +0000
+++ crosstool-0.42/crosstool.sh	2006-04-12 07:49:21.000000000 +0100
@@ -70,16 +70,30 @@
 test -z "$BUILD" && abort "bug: BUILD not set?!"
 
 if test -z "${GLIBC_ADDON_OPTIONS}"; then
-   echo "GLIBC_ADDON_OPTIONS not set, so guessing addons from GLIBCTHREADS_FILENAME and GLIBCCRYPT_FILENAME"
-   # this is lame, need to fix this for nptl later?
-   # (nptl is an addon, but it's shipped in the main tarball)
+   echo "GLIBC_ADDON_OPTIONS not set"
    GLIBC_ADDON_OPTIONS="="
-   case "${GLIBCTHREADS_FILENAME}" in
-     *linuxthreads*) GLIBC_ADDON_OPTIONS="${GLIBC_ADDON_OPTIONS}linuxthreads," ;;
-   esac
+   if test '!' -z ${GLIBC_ADDON_LINUXTHREADS}; then
+       GLIBC_ADDON_OPTIONS="${GLIBC_ADDON_OPTIONS}linuxthreads,"
+   elif test '!' -z ${GLIBC_ADDON_NPTL}; then
+       GLIBC_ADDON_OPTIONS="${GLIBC_ADDON_OPTIONS}nptl,"
+   fi
    # crypt is only an addon for glibc-2.1.x
    test -z "${GLIBCCRYPT_FILENAME}"   || GLIBC_ADDON_OPTIONS="${GLIBC_ADDON_OPTIONS}crypt,"
 fi
+if test '!' -z "${GLIBC_ADDON_NPTL}"; then
+    GLIBC_EXTRA_CONFIG="--with-tls --with-__thread ${GLIBC_EXTRA_CONFIG}"
+    GLIBC_MIN_KERNEL=2.6.4
+else
+    GLIBC_EXTRA_CONFIG="--without-tls --without-__thread ${GLIBC_EXTRA_CONFIG}"
+    GLIBC_MIN_KERNEL=2.4.3
+fi
+case $TARGET in
+        arm*)
+        GLIBC_ADDON_OPTIONS="${GLIBC_ADDON_OPTIONS}${GLIBC_PORTS_DIR},"
+        ;;
+        *)
+esac
+
 
 # Add some default glibc config options if not given by user.  These used to be hardcoded.
 DEFAULT_GLIBC_EXTRA_CONFIG=""
@@ -99,10 +113,6 @@
 # One is forbidden
 test -z "${LD_LIBRARY_PATH}" || abort  "glibc refuses to build if LD_LIBRARY_PATH is set.  Please unset it before running this script."
 
-# And one is derived if unset.
-test -z "${GLIBCTHREADS_FILENAME}" &&
-GLIBCTHREADS_FILENAME=`echo $GLIBC_DIR | sed 's/glibc-/glibc-linuxthreads-/'`
-
 # Check for a few prerequisites that have tripped people up.
 awk '/x/' < /dev/null  || abort "You need awk to build a toolchain."
 test -z "${CFLAGS}"    || abort "Don't set CFLAGS, it screws up the build"
@@ -421,7 +431,7 @@
             ${GLIBC_DIR}/configure --prefix=/usr \
             --build=$BUILD --host=$TARGET \
             --without-cvs --disable-sanity-checks --with-headers=$HEADERDIR \
-            --enable-hacker-mode
+            --enable-add-ons=${GLIBC_PORTS_DIR} --enable-hacker-mode
     fi
 
     if grep -q GLIBC_2.3 ${GLIBC_DIR}/ChangeLog; then
@@ -463,13 +473,57 @@
     # so uncomment this if you need it
     #cp misc/syscall-list.h $HEADERDIR/bits/syscall.h
 
+    if test '!' -z "${GLIBC_ADDON_NPTL}"; then 
+        # To build gcc with thread support requires real pthread headers. These
+        # will have to manually be copied from under the tree of the desired
+        # target pthread implementation.
+        case "${ARCH}" in
+        ppc)
+            ARCH_DIR="powerpc"
+            ;;
+        *)
+            ARCH_DIR="${ARCH}"
+            ;;
+        esac
+
+        cp ${GLIBC_DIR}/nptl/sysdeps/pthread/pthread.h $HEADERDIR/pthread.h
+
+        if grep -q GLIBC_2.4 ${GLIBC_DIR}/ChangeLog; then
+          case "${ARCH}" in
+          arm)
+            cp ${GLIBC_DIR}/ports/sysdeps/unix/sysv/linux/${ARCH_DIR}/nptl/bits/pthreadtypes.h $HEADERDIR/bits/pthreadtypes.h
+            ;;
+          *)
+            cp ${GLIBC_DIR}/nptl/sysdeps/unix/sysv/linux/${ARCH_DIR}/bits/pthreadtypes.h $HEADERDIR/bits/pthreadtypes.h
+            ;;
+          esac
+        else
+            cp ${GLIBC_DIR}/nptl/sysdeps/unix/sysv/linux/${ARCH_DIR}/bits/pthreadtypes.h $HEADERDIR/bits/pthreadtypes.h
+        fi  # grep GLIBC_2.4
+
+        # On s390, powerpc and sparc we also require bits/wordsize.h.
+        case $TARGET in
+        sparc* | s390* | powerpc* )
+            case $TARGET in
+            sparc64* )   wordsize_h=sysdeps/sparc/sparc64/bits/wordsize.h ;;
+            sparc* )     wordsize_h=sysdeps/sparc/sparc32/bits/wordsize.h ;;
+            s390x* )     wordsize_h=sysdeps/s390/s390x/bits/wordsize.h ;;
+            s390* )      wordsize_h=sysdeps/s390/s390/bits/wordsize.h ;;
+            powerpc64* ) wordsize_h=sysdeps/powerpc/powerpc64/bits/wordsize.h ;;
+            powerpc* )   wordsize_h=sysdeps/powerpc/powerpc32/bits/wordsize.h ;;
+            esac
+            test ! -f $HEADERDIR/bits/wordsize.h && cp ${GLIBC_DIR}/${wordsize_h} $HEADERDIR/bits/wordsize.h
+	    ;;
+	esac
+    fi # GLIBC_ADDONS_NPTL
+
     cd ..
 fi
 
 #---------------------------------------------------------
-echo "Build gcc-core (just enough to build glibc)"
+echo "Build gcc-core w/o shared libgcc (just enough to build glibc starfiles)"
 
-mkdir -p build-gcc-core; cd build-gcc-core
+mkdir -p build-gcc-core-static; cd build-gcc-core-static
 
 echo Copy headers to install area of bootstrap gcc, so it can build libgcc2
 mkdir -p $CORE_PREFIX/$TARGET/include
@@ -486,7 +540,7 @@
         ${GCC_EXTRA_CONFIG} \
         ${GCC_SYSROOT_ARG_CORE} \
         --disable-nls \
-        --enable-threads=no \
+        --enable-threads=posix \
         --enable-symvers=gnu \
         --enable-__cxa_atexit \
         --enable-languages=c \
@@ -501,8 +555,126 @@
 
 logresult gcc-core $CORE_PREFIX/bin/${TARGET}-gcc${EXEEXT}
 
+# Following extra steps required for building an NPTL enabled glibc.
+if test '!' -z "${GLIBC_ADDON_NPTL}"; then
+    #---------------------------------------------------------
+    echo "Build glibc startfiles (required for shared libgcc)"
+
+    mkdir -p build-glibc-startfiles; cd build-glibc-startfiles
+
+    # sh4 really needs to set configparms as of gcc-3.4/glibc-2.3.2
+    # note: this is awkward, doesn't work well if you need more than one line in configparms
+    echo ${GLIBC_CONFIGPARMS} > configparms
+
+    echo "libc_cv_forced_unwind=yes" > config.cache
+    echo "libc_cv_c_cleanup=yes" >> config.cache
+    # this here is moot, currently you cannot build nptl for sparc64
+    case ${TARGET} in
+        sparc64* ) echo "libc_cv_sparc64_tls=yes" >> config.cache ;;
+    esac
+
+    if test '!' -f Makefile; then
+        # Configure with --prefix the way we want it on the target...
+        # There are a whole lot of settings here.  You'll probably want
+        # to read up on what they all mean, and customize a bit.
+        # e.g. I picked --enable-kernel=2.4.3 here just because it's the kernel Bill 
+        # used in his example gcc2.95.3 script.  That means some backwards compatibility 
+        # stuff is turned on in glibc that you may not need if you're using a newer kernel.
+        # Compare these options with the ones used when installing the glibc headers above - they're different.
+        # Adding "--without-gd" option to avoid error "memusagestat.c:36:16: gd.h: No such file or directory" 
+        # See also http://sources.redhat.com/ml/libc-alpha/2000-07/msg00024.html. 
+        # Set BUILD_CC, or you won't be able to build datafiles
+        # Set --build, else glibc-2.3.2 will think you're not cross-compiling, and try to run the test programs
+
+        BUILD_CC=gcc CFLAGS="$TARGET_CFLAGS" CC="${TARGET}-gcc $GLIBC_EXTRA_CC_ARGS" \
+        AR=${TARGET}-ar RANLIB=${TARGET}-ranlib \
+            ${GLIBC_DIR}/configure --prefix=/usr \
+	    --build=$BUILD --host=$TARGET \
+            ${GLIBC_EXTRA_CONFIG} \
+            --enable-kernel=${GLIBC_MIN_KERNEL} \
+            --without-cvs --disable-profile --disable-debug --without-gd \
+            $SHARED_MODE \
+            --enable-add-ons${GLIBC_ADDON_OPTIONS} --with-headers=$HEADERDIR \
+            --cache-file=config.cache
+    fi
+
+    #TODO: should check whether slibdir has been set in configparms to */lib64
+    #      and copy the startfiles into the appropriate libdir.
+    make csu/subdir_lib
+    
+    test -z "${USE_SYSROOT}" &&
+    cp -fp csu/crt[1in].o ${SYSROOT}/lib/ ||
+    cp -fp csu/crt[1in].o ${SYSROOT}/usr/lib/ 
+
+    cd ..
+
+    #---------------------------------------------------------
+    echo "Build gcc-core w shared libgcc"
+
+    mkdir -p build-gcc-core-shared; cd build-gcc-core-shared
+
+    # Use --with-local-prefix so older gccs don't look in /usr/local (http://gcc.gnu.org/PR10532)
+
+    if test '!' -f Makefile; then
+        ${GCC_DIR}/configure $CANADIAN_BUILD --target=$TARGET --host=$GCC_HOST --prefix=$PREFIX \
+	    --with-local-prefix=${SYSROOT} \
+	    --disable-multilib \
+            ${GCC_EXTRA_CONFIG} \
+	    ${GCC_SYSROOT_ARG_CORE} \
+	    --disable-nls \
+	    --enable-symvers=gnu \
+	    --enable-__cxa_atexit \
+            --enable-languages=c \
+            --enable-shared
+    fi
+
+    # HACK: we need to override SHLIB_LC from gcc/config/t-slibgcc-elf-ver or
+    #       gcc/config/t-libunwind so -lc is removed from the link for 
+    #       libgcc_s.so, as we do not have a target -lc yet.
+    #       This is not as ugly as it appears to be ;-) All symbols get resolved
+    #       during the glibc build, and we provide a proper libgcc_s.so for the
+    #       cross toolchain during the final gcc build.
+    #
+    #       As we cannot modify the source tree, nor override SHLIB_LC itself
+    #       during configure or make, we have to edit the resultant 
+    #       gcc/libgcc.mk itself to remove -lc from the link.
+    #       This causes us to have to jump through some hoops...
+    #
+    #       To produce libgcc.mk to edit we firstly require libiberty.a,
+    #       so we configure then build it.
+    #       Next we have to configure gcc, create libgcc.mk then edit it...
+    #       So much easier if we just edit the source tree, but hey...
+    if test '!' -f ${GCC_DIR}/gcc/BASE-VER; then
+        make configure-libiberty
+        make -C libiberty libiberty.a
+        make configure-gcc
+    else
+	if test -d ${GCC_DIR}/libdecnumber; then
+	    make configure-libdecnumber
+	    make all-libdecnumber
+	fi
+        make configure-gcc
+	make configure-libcpp
+	make configure-build-libiberty
+	make all-libcpp
+	make all-build-libiberty
+    fi
+    make -C gcc libgcc.mk
+
+    if test '!' -f gcc/libgcc.mk-ORIG ; then cp -p gcc/libgcc.mk gcc/libgcc.mk-ORIG; fi
+    sed 's@-lc@@g' < gcc/libgcc.mk-ORIG > gcc/libgcc.mk
+
+    test "$CANADIAN_BUILD" = "" || make $PARALLELMFLAGS all-build-libiberty || true
+    make $PARALLELMFLAGS all-gcc 
+    make install-gcc
+
+    cd ..
+
+    logresult gcc-core-shared ${PREFIX}/bin/${TARGET}-gcc${EXEEXT} 
+
+fi # GLIBC_ADDON_NPTL
 #---------------------------------------------------------
-echo Build glibc and linuxthreads
+echo Build glibc
 
 mkdir -p build-glibc; cd build-glibc
 
@@ -510,6 +682,16 @@
 # note: this is awkward, doesn't work well if you need more than one line in configparms
 echo ${GLIBC_CONFIGPARMS} > configparms
 
+if test '!' -z "${GLIBC_ADDON_NPTL}"; then
+    # Following configure tests fail while cross-compiling
+    echo "libc_cv_forced_unwind=yes" > config.cache
+    echo "libc_cv_c_cleanup=yes" >> config.cache
+    # The following is moot, currently you cannot build nptl for sparc64
+    case ${TARGET} in
+        sparc64* ) echo "libc_cv_sparc64_tls=yes" >> config.cache ;;
+    esac
+fi # GLIBC_ADDON_NPTL
+
 if test '!' -f Makefile; then
     # Configure with --prefix the way we want it on the target...
     # There are a whole lot of settings here.  You'll probably want
@@ -527,7 +709,8 @@
         ${GLIBC_EXTRA_CONFIG} ${DEFAULT_GLIBC_EXTRA_CONFIG} \
         --without-cvs --disable-profile --disable-debug --without-gd \
         $SHARED_MODE \
-        --enable-add-ons${GLIBC_ADDON_OPTIONS} --with-headers=$HEADERDIR
+        --enable-add-ons${GLIBC_ADDON_OPTIONS} --with-headers=$HEADERDIR \
+	--cache-file=config.cache
 fi
 
 if grep -l '^install-lib-all:' ${GLIBC_DIR}/Makerules > /dev/null; then
@@ -691,4 +874,3 @@
 #---------------------------------------------------------
 echo Cross-toolchain build complete.  Result in ${PREFIX}.
 exit 0
-
diff -uNr crosstool-0.42.orig/demo-alpha-nptl.sh crosstool-0.42/demo-alpha-nptl.sh
--- crosstool-0.42.orig/demo-alpha-nptl.sh	1970-01-01 01:00:00.000000000 +0100
+++ crosstool-0.42/demo-alpha-nptl.sh	2006-04-12 07:40:21.000000000 +0100
@@ -0,0 +1,19 @@
+#!/bin/sh
+set -ex
+TARBALLS_DIR=$HOME/downloads
+RESULT_TOP=/opt/crosstool
+export TARBALLS_DIR RESULT_TOP
+GCC_LANGUAGES="c,c++"
+export GCC_LANGUAGES
+
+GLIBC_ADDON_NPTL=1
+export GLIBC_ADDON_NPTL=1
+
+# Really, you should do the mkdir before running this,
+# and chown /opt/crosstool to yourself so you don't need to run as root.
+mkdir -p $RESULT_TOP
+
+# Build the toolchain.  Takes a couple hours and a couple gigabytes.
+ eval `cat alpha.dat gcc-3.4.1-glibc-2.3.3.dat`    sh all.sh --notest
+
+echo Done.
diff -uNr crosstool-0.42.orig/demo-alpha.sh crosstool-0.42/demo-alpha.sh
--- crosstool-0.42.orig/demo-alpha.sh	2005-07-05 07:08:52.000000000 +0100
+++ crosstool-0.42/demo-alpha.sh	2006-04-12 07:40:21.000000000 +0100
@@ -6,6 +6,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-arm9tdmi.sh crosstool-0.42/demo-arm9tdmi.sh
--- crosstool-0.42.orig/demo-arm9tdmi.sh	2005-03-09 21:50:19.000000000 +0000
+++ crosstool-0.42/demo-arm9tdmi.sh	2006-04-12 07:40:21.000000000 +0100
@@ -6,6 +6,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-armeb.sh crosstool-0.42/demo-armeb.sh
--- crosstool-0.42.orig/demo-armeb.sh	2005-03-08 00:34:34.000000000 +0000
+++ crosstool-0.42/demo-armeb.sh	2006-04-12 07:40:21.000000000 +0100
@@ -6,6 +6,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-arm-iwmmxt.sh crosstool-0.42/demo-arm-iwmmxt.sh
--- crosstool-0.42.orig/demo-arm-iwmmxt.sh	2005-03-08 00:34:34.000000000 +0000
+++ crosstool-0.42/demo-arm-iwmmxt.sh	2006-04-12 07:40:21.000000000 +0100
@@ -6,6 +6,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-arm.sh crosstool-0.42/demo-arm.sh
--- crosstool-0.42.orig/demo-arm.sh	2006-02-26 22:57:48.000000000 +0000
+++ crosstool-0.42/demo-arm.sh	2006-04-12 07:40:21.000000000 +0100
@@ -6,6 +6,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-arm-softfloat.sh crosstool-0.42/demo-arm-softfloat.sh
--- crosstool-0.42.orig/demo-arm-softfloat.sh	2005-03-08 00:34:34.000000000 +0000
+++ crosstool-0.42/demo-arm-softfloat.sh	2006-04-12 07:40:21.000000000 +0100
@@ -6,6 +6,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-armv5b-softfloat.sh crosstool-0.42/demo-armv5b-softfloat.sh
--- crosstool-0.42.orig/demo-armv5b-softfloat.sh	2005-03-08 00:34:34.000000000 +0000
+++ crosstool-0.42/demo-armv5b-softfloat.sh	2006-04-12 07:40:21.000000000 +0100
@@ -6,6 +6,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-cris.sh crosstool-0.42/demo-cris.sh
--- crosstool-0.42.orig/demo-cris.sh	2005-03-08 00:34:34.000000000 +0000
+++ crosstool-0.42/demo-cris.sh	2006-04-12 07:40:21.000000000 +0100
@@ -6,6 +6,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-i686-nptl.sh crosstool-0.42/demo-i686-nptl.sh
--- crosstool-0.42.orig/demo-i686-nptl.sh	1970-01-01 01:00:00.000000000 +0100
+++ crosstool-0.42/demo-i686-nptl.sh	2006-04-12 07:40:21.000000000 +0100
@@ -0,0 +1,20 @@
+#!/bin/sh
+set -ex
+TARBALLS_DIR=$PWD/downloads
+RESULT_TOP=/opt/crosstool
+export TARBALLS_DIR RESULT_TOP
+GCC_LANGUAGES="c,c++"
+export GCC_LANGUAGES
+
+GLIBC_ADDON_NPTL=1
+export GLIBC_ADDON_NPTL
+
+# Really, you should do the mkdir before running this,
+# and chown /opt/crosstool to yourself so you don't need to run as root.
+mkdir -p $RESULT_TOP
+
+# Build the toolchain.  Takes a couple hours and a couple gigabytes.
+#
+eval `cat i686.dat gcc-3.4.3-glibc-2.3.3.dat` sh all.sh --notest
+
+echo Done.
diff -uNr crosstool-0.42.orig/demo-i686.sh crosstool-0.42/demo-i686.sh
--- crosstool-0.42.orig/demo-i686.sh	2006-03-01 22:01:05.000000000 +0000
+++ crosstool-0.42/demo-i686.sh	2006-04-12 07:40:21.000000000 +0100
@@ -6,6 +6,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-ia64.sh crosstool-0.42/demo-ia64.sh
--- crosstool-0.42.orig/demo-ia64.sh	2005-03-09 21:49:19.000000000 +0000
+++ crosstool-0.42/demo-ia64.sh	2006-04-12 07:40:21.000000000 +0100
@@ -6,6 +6,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-m68k.sh crosstool-0.42/demo-m68k.sh
--- crosstool-0.42.orig/demo-m68k.sh	2005-03-08 00:34:34.000000000 +0000
+++ crosstool-0.42/demo-m68k.sh	2006-04-12 07:40:21.000000000 +0100
@@ -6,6 +6,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-mipsel.sh crosstool-0.42/demo-mipsel.sh
--- crosstool-0.42.orig/demo-mipsel.sh	2005-03-08 00:34:34.000000000 +0000
+++ crosstool-0.42/demo-mipsel.sh	2006-04-12 07:40:21.000000000 +0100
@@ -20,6 +20,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-mips-nptl.sh crosstool-0.42/demo-mips-nptl.sh
--- crosstool-0.42.orig/demo-mips-nptl.sh	1970-01-01 01:00:00.000000000 +0100
+++ crosstool-0.42/demo-mips-nptl.sh	2006-04-12 07:40:21.000000000 +0100
@@ -0,0 +1,22 @@
+#!/bin/sh
+set -ex
+
+# Big-endian MIPS
+
+TARBALLS_DIR=$HOME/downloads
+RESULT_TOP=/opt/crosstool
+export TARBALLS_DIR RESULT_TOP
+GCC_LANGUAGES="c,c++"
+export GCC_LANGUAGES
+
+GLIBC_ADDON_NPTL=1
+export GLIBC_ADDON_NPTL=1
+
+# Really, you should do the mkdir before running this,
+# and chown /opt/crosstool to yourself so you don't need to run as root.
+mkdir -p $RESULT_TOP
+
+# Build the toolchain.  Takes a couple hours and a couple gigabytes.
+eval `cat mips.dat gcc-4.1.0-20050520-glibc-20050520.dat` sh all.sh --notest
+
+echo Done.
diff -uNr crosstool-0.42.orig/demo-powerpc64-nptl.sh crosstool-0.42/demo-powerpc64-nptl.sh
--- crosstool-0.42.orig/demo-powerpc64-nptl.sh	1970-01-01 01:00:00.000000000 +0100
+++ crosstool-0.42/demo-powerpc64-nptl.sh	2006-04-12 07:40:21.000000000 +0100
@@ -0,0 +1,19 @@
+#!/bin/sh
+set -ex
+TARBALLS_DIR=$HOME/downloads
+RESULT_TOP=/opt/crosstool
+export TARBALLS_DIR RESULT_TOP
+GCC_LANGUAGES="c,c++"
+export GCC_LANGUAGES
+
+GLIBC_ADDON_NPTL=1
+export GLIBC_ADDON_NPTL
+
+# Really, you should do the mkdir before running this,
+# and chown /opt/crosstool to yourself so you don't need to run as root.
+mkdir -p $RESULT_TOP
+
+# Build the toolchain.  Takes a couple hours and a couple gigabytes.
+ eval `cat powerpc-970.dat gcc-3.4.1-glibc-2.3.3.dat` sh all.sh --notest
+
+echo Done.
diff -uNr crosstool-0.42.orig/demo-ppc405.sh crosstool-0.42/demo-ppc405.sh
--- crosstool-0.42.orig/demo-ppc405.sh	2005-03-08 00:34:34.000000000 +0000
+++ crosstool-0.42/demo-ppc405.sh	2006-04-12 07:40:21.000000000 +0100
@@ -6,6 +6,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-ppc440.sh crosstool-0.42/demo-ppc440.sh
--- crosstool-0.42.orig/demo-ppc440.sh	2005-03-08 00:34:34.000000000 +0000
+++ crosstool-0.42/demo-ppc440.sh	2006-04-12 07:40:21.000000000 +0100
@@ -6,6 +6,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-ppc604.sh crosstool-0.42/demo-ppc604.sh
--- crosstool-0.42.orig/demo-ppc604.sh	2005-03-08 00:34:34.000000000 +0000
+++ crosstool-0.42/demo-ppc604.sh	2006-04-12 07:40:21.000000000 +0100
@@ -6,6 +6,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-ppc7450.sh crosstool-0.42/demo-ppc7450.sh
--- crosstool-0.42.orig/demo-ppc7450.sh	2005-03-08 00:34:34.000000000 +0000
+++ crosstool-0.42/demo-ppc7450.sh	2006-04-12 07:40:21.000000000 +0100
@@ -6,6 +6,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-ppc750.sh crosstool-0.42/demo-ppc750.sh
--- crosstool-0.42.orig/demo-ppc750.sh	2006-02-26 22:57:48.000000000 +0000
+++ crosstool-0.42/demo-ppc750.sh	2006-04-12 07:40:21.000000000 +0100
@@ -6,6 +6,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-ppc860.sh crosstool-0.42/demo-ppc860.sh
--- crosstool-0.42.orig/demo-ppc860.sh	2005-03-08 00:34:34.000000000 +0000
+++ crosstool-0.42/demo-ppc860.sh	2006-04-12 07:40:21.000000000 +0100
@@ -6,6 +6,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-ppc970.sh crosstool-0.42/demo-ppc970.sh
--- crosstool-0.42.orig/demo-ppc970.sh	2005-03-08 00:34:34.000000000 +0000
+++ crosstool-0.42/demo-ppc970.sh	2006-04-12 07:40:21.000000000 +0100
@@ -6,6 +6,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-s390.sh crosstool-0.42/demo-s390.sh
--- crosstool-0.42.orig/demo-s390.sh	2005-03-08 00:34:34.000000000 +0000
+++ crosstool-0.42/demo-s390.sh	2006-04-12 07:40:21.000000000 +0100
@@ -6,6 +6,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-sh3.sh crosstool-0.42/demo-sh3.sh
--- crosstool-0.42.orig/demo-sh3.sh	2005-03-08 00:34:34.000000000 +0000
+++ crosstool-0.42/demo-sh3.sh	2006-04-12 07:40:21.000000000 +0100
@@ -6,6 +6,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-sh4.sh crosstool-0.42/demo-sh4.sh
--- crosstool-0.42.orig/demo-sh4.sh	2006-02-26 22:57:48.000000000 +0000
+++ crosstool-0.42/demo-sh4.sh	2006-04-12 07:40:21.000000000 +0100
@@ -6,6 +6,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-sparc64.sh crosstool-0.42/demo-sparc64.sh
--- crosstool-0.42.orig/demo-sparc64.sh	2005-03-08 00:34:34.000000000 +0000
+++ crosstool-0.42/demo-sparc64.sh	2006-04-12 07:40:21.000000000 +0100
@@ -8,6 +8,9 @@
 #PARALLELMFLAGS="-j2"
 #export PARALLELMFLAGS
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-sparc.sh crosstool-0.42/demo-sparc.sh
--- crosstool-0.42.orig/demo-sparc.sh	2005-03-08 00:34:34.000000000 +0000
+++ crosstool-0.42/demo-sparc.sh	2006-04-12 07:40:21.000000000 +0100
@@ -6,6 +6,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/demo-x86_64-nptl.sh crosstool-0.42/demo-x86_64-nptl.sh
--- crosstool-0.42.orig/demo-x86_64-nptl.sh	1970-01-01 01:00:00.000000000 +0100
+++ crosstool-0.42/demo-x86_64-nptl.sh	2006-04-12 07:40:21.000000000 +0100
@@ -0,0 +1,22 @@
+#!/bin/sh
+set -ex
+TARBALLS_DIR=$HOME/downloads
+RESULT_TOP=/opt/crosstool
+export TARBALLS_DIR RESULT_TOP
+#GCC_LANGUAGES="c,c++,java,f77"
+GCC_LANGUAGES="c,c++"
+export GCC_LANGUAGES
+
+GLIBC_ADDON_NPTL=1
+export GLIBC_ADDON_NPTL
+
+# Really, you should do the mkdir before running this,
+# and chown /opt/crosstool to yourself so you don't need to run as root.
+mkdir -p $RESULT_TOP
+
+# Build the toolchain.  Takes a couple hours and a couple gigabytes.
+# Must use --with-sysroot, which means you need gcc-3.3.3 or later.
+# eval `cat x86_64.dat gcc-3.4.1-glibc-2.3.3.dat` sh all.sh --notest
+ eval `cat x86_64.dat gcc-3.4.1-glibc-2.3.4.dat` sh all.sh --notest
+
+echo Done.
diff -uNr crosstool-0.42.orig/demo-x86_64.sh crosstool-0.42/demo-x86_64.sh
--- crosstool-0.42.orig/demo-x86_64.sh	2006-02-26 22:57:48.000000000 +0000
+++ crosstool-0.42/demo-x86_64.sh	2006-04-12 07:40:21.000000000 +0100
@@ -7,6 +7,9 @@
 GCC_LANGUAGES="c,c++"
 export GCC_LANGUAGES
 
+GLIBC_ADDON_LINUXTHREADS=1
+export GLIBC_ADDON_LINUXTHREADS
+
 # Really, you should do the mkdir before running this,
 # and chown /opt/crosstool to yourself so you don't need to run as root.
 mkdir -p $RESULT_TOP
diff -uNr crosstool-0.42.orig/gcc-3.2.3-glibc-2.3.2.dat crosstool-0.42/gcc-3.2.3-glibc-2.3.2.dat
--- crosstool-0.42.orig/gcc-3.2.3-glibc-2.3.2.dat	2006-02-25 23:53:08.000000000 +0000
+++ crosstool-0.42/gcc-3.2.3-glibc-2.3.2.dat	2006-04-12 07:40:21.000000000 +0100
@@ -2,4 +2,3 @@
 GCC_DIR=gcc-3.2.3
 GLIBC_DIR=glibc-2.3.2
 LINUX_DIR=linux-2.4.26
-GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2
diff -uNr crosstool-0.42.orig/gcc-3.3.4-glibc-2.1.3.dat crosstool-0.42/gcc-3.3.4-glibc-2.1.3.dat
--- crosstool-0.42.orig/gcc-3.3.4-glibc-2.1.3.dat	2006-02-25 23:53:08.000000000 +0000
+++ crosstool-0.42/gcc-3.3.4-glibc-2.1.3.dat	2006-04-12 07:40:21.000000000 +0100
@@ -1,6 +1,5 @@
 BINUTILS_DIR=binutils-2.15
 GCC_DIR=gcc-3.3.4
 GLIBC_DIR=glibc-2.1.3
-GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.1.3
 GLIBCCRYPT_FILENAME=glibc-crypt-2.1
 LINUX_DIR=linux-2.4.26
diff -uNr crosstool-0.42.orig/gcc-3.3.4-glibc-2.2.5.dat crosstool-0.42/gcc-3.3.4-glibc-2.2.5.dat
--- crosstool-0.42.orig/gcc-3.3.4-glibc-2.2.5.dat	2006-02-25 23:53:08.000000000 +0000
+++ crosstool-0.42/gcc-3.3.4-glibc-2.2.5.dat	2006-04-12 07:40:21.000000000 +0100
@@ -1,5 +1,4 @@
 BINUTILS_DIR=binutils-2.15
 GCC_DIR=gcc-3.3.4
 GLIBC_DIR=glibc-2.2.5
-GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.2.5
 LINUX_DIR=linux-2.4.26
diff -uNr crosstool-0.42.orig/gcc-3.3.4-glibc-2.3.2.dat crosstool-0.42/gcc-3.3.4-glibc-2.3.2.dat
--- crosstool-0.42.orig/gcc-3.3.4-glibc-2.3.2.dat	2006-02-25 23:53:08.000000000 +0000
+++ crosstool-0.42/gcc-3.3.4-glibc-2.3.2.dat	2006-04-12 07:40:21.000000000 +0100
@@ -1,5 +1,4 @@
 BINUTILS_DIR=binutils-2.15
 GCC_DIR=gcc-3.3.4
 GLIBC_DIR=glibc-2.3.2
-GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2
 LINUX_DIR=linux-2.4.26
diff -uNr crosstool-0.42.orig/gcc-3.3.4-glibc-2.3.3.dat crosstool-0.42/gcc-3.3.4-glibc-2.3.3.dat
--- crosstool-0.42.orig/gcc-3.3.4-glibc-2.3.3.dat	2006-02-25 23:53:08.000000000 +0000
+++ crosstool-0.42/gcc-3.3.4-glibc-2.3.3.dat	2006-04-12 07:40:21.000000000 +0100
@@ -1,5 +1,4 @@
 BINUTILS_DIR=binutils-2.15
 GCC_DIR=gcc-3.3.4
 GLIBC_DIR=glibc-2.3.3
-GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.3
 LINUX_DIR=linux-2.4.26
diff -uNr crosstool-0.42.orig/gcc-3.3-glibc-2.3.2.dat crosstool-0.42/gcc-3.3-glibc-2.3.2.dat
--- crosstool-0.42.orig/gcc-3.3-glibc-2.3.2.dat	2006-02-25 23:53:08.000000000 +0000
+++ crosstool-0.42/gcc-3.3-glibc-2.3.2.dat	2006-04-12 07:40:21.000000000 +0100
@@ -2,4 +2,3 @@
 GCC_DIR=gcc-3.3
 LINUX_DIR=linux-2.4.26
 GLIBC_DIR=glibc-2.3.2
-GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2
diff -uNr crosstool-0.42.orig/gcc-3.4.1-glibc-2.3.4.dat crosstool-0.42/gcc-3.4.1-glibc-2.3.4.dat
--- crosstool-0.42.orig/gcc-3.4.1-glibc-2.3.4.dat	1970-01-01 01:00:00.000000000 +0100
+++ crosstool-0.42/gcc-3.4.1-glibc-2.3.4.dat	2006-04-12 07:40:21.000000000 +0100
@@ -0,0 +1,4 @@
+BINUTILS_DIR=binutils-2.15
+GCC_DIR=gcc-3.4.1
+GLIBC_DIR=glibc-2.3.4-20040701
+LINUX_DIR=linux-2.6.6
diff -uNr crosstool-0.42.orig/gcc-4.1.0-20050520-glibc-20050520.dat crosstool-0.42/gcc-4.1.0-20050520-glibc-20050520.dat
--- crosstool-0.42.orig/gcc-4.1.0-20050520-glibc-20050520.dat	1970-01-01 01:00:00.000000000 +0100
+++ crosstool-0.42/gcc-4.1.0-20050520-glibc-20050520.dat	2006-04-12 07:40:21.000000000 +0100
@@ -0,0 +1,5 @@
+BINUTILS_EXTRA_CONFIG="--disable-werror"
+BINUTILS_DIR=binutils-2.16
+GCC_DIR=gcc-4.1.0-20050520
+GLIBC_DIR=glibc-20050520
+LINUX_DIR=linux-2.6.12-rc4
diff -uNr crosstool-0.42.orig/gcc-glibc.dat crosstool-0.42/gcc-glibc.dat
--- crosstool-0.42.orig/gcc-glibc.dat	1970-01-01 01:00:00.000000000 +0100
+++ crosstool-0.42/gcc-glibc.dat	2006-04-12 07:40:21.000000000 +0100
@@ -0,0 +1,8 @@
+SRC_DIR=/disk2/fsf
+BINUTILS_DIR=binutils
+GCC_DIR=gcc
+GLIBC_DIR=glibc
+LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0
+GLIBCTHREADS_FILENAME=glibc-nptl
+GLIBC_PORTS_DIR=../glibc-ports
+GCC_EXTRA_CONFIG=--disable-libunwind-exceptions
diff -uNr crosstool-0.42.orig/getandpatch.sh crosstool-0.42/getandpatch.sh
--- crosstool-0.42.orig/getandpatch.sh	2006-02-27 19:22:26.000000000 +0000
+++ crosstool-0.42/getandpatch.sh	2006-04-12 07:40:21.000000000 +0100
@@ -33,8 +33,8 @@
   test -z "${LINUX_SANITIZED_HEADER_DIR}" && echo "Not downloading linux-libc-headers. Set LINUX_SANITIZED_HEADER_DIR to do so"
   test -z "${LINUX_DIR}"        && echo "Not downloading kernel sources. Set LINUX_DIR if you want to do so"
   # And one is derived if not set explicitly.
-  test -z "${GLIBCTHREADS_FILENAME}" &&
-  GLIBCTHREADS_FILENAME=`echo $GLIBC_DIR | sed 's/glibc-/glibc-linuxthreads-/'`
+if test '!' -z "${GLIBC_ADDON_LINUXTHREADS}"; then
+    GLIBCTHREADS_FILENAME=`echo $GLIBC_DIR | sed 's/glibc-/glibc-linuxthreads-/'`
 fi
 
 test -z "${TARBALLS_DIR}"     && abort "Please set TARBALLS_DIR to the directory to download tarballs to."
@@ -264,7 +264,7 @@
 	http://ep09.pld-linux.org/~mmazur/linux-libc-headers/${LINUX_SANITIZED_HEADER_DIR}.tar.bz2 \
 	ftp://ftp.lfs-matrix.net/pub/linux-libc-headers/${LINUX_SANITIZED_HEADER_DIR}.tar.bz2
   # Glibc addons must come after glibc
-  getUnpackAndPatch     \
+  test x$GLIBCTHREADS_FILENAME = x || getUnpackAndPatch     \
        ftp://ftp.gnu.org/pub/gnu/glibc/$GLIBCTHREADS_FILENAME.tar.bz2 \
        ftp://ftp.gnu.org/pub/gnu/glibc/$GLIBCTHREADS_FILENAME.tar.gz \
        ftp://gcc.gnu.org/pub/glibc/releases/$GLIBCTHREADS_FILENAME.tar.bz2 \

--
For unsubscribe information see http://sourceware.org/lists.html#faq

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]