This is the mail archive of the crossgcc@sources.redhat.com 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]

[PATCH] Updated NPTL toolchain patch...


Greetings.

As requested by Dan Kegel, I am resending the patch against 0.30 to
get NPTL toolchain building working again. The original patch was
against 0.28-rc34. Please let the list know of any issues. Thanks.

-Steve
diff -urN crosstool-0.30/crosstool.sh crosstool-0.30-nptl-fixes/crosstool.sh
--- crosstool-0.30/crosstool.sh	2005-03-24 01:13:14.000000000 -0600
+++ crosstool-0.30-nptl-fixes/crosstool.sh	2005-04-02 17:35:44.791544189 -0600
@@ -48,23 +48,28 @@
 BUILD=${GCC_BUILD-`$TOP_DIR/config.guess`}
 
 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
+
 # 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.
-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"
@@ -321,13 +326,36 @@
     # http://sources.redhat.com/ml/libc-alpha/2003-11/msg00045.html
     cp bits/stdio_lim.h $HEADERDIR/bits/stdio_lim.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.
+        cp ${GLIBC_DIR}/nptl/sysdeps/pthread/pthread.h $HEADERDIR/pthread.h
+        cp ${GLIBC_DIR}/nptl/sysdeps/unix/sysv/linux/${ARCH}/bits/pthreadtypes.h $HEADERDIR/bits/pthreadtypes.h
+
+        # 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
 
 # Use --with-local-prefix so older gccs don't look in /usr/local (http://gcc.gnu.org/PR10532)
 
@@ -354,8 +382,114 @@
 
 test -x ${PREFIX}/bin/${TARGET}-gcc${EXEEXT} || abort Build failed during gcc-core 
 
+# 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...
+    make configure-libiberty
+    make -C libiberty libiberty.a
+    make configure-gcc
+    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 ..
+
+    test -x ${PREFIX}/bin/${TARGET}-gcc || abort Build failed during gcc-core 
+
+fi # GLIBC_ADDON_NPTL
 #---------------------------------------------------------
-echo Build glibc and linuxthreads
+echo Build glibc
 
 mkdir -p build-glibc; cd build-glibc
 
@@ -363,6 +497,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
@@ -381,11 +525,11 @@
         ${GLIBC_DIR}/configure --prefix=/usr \
         --build=$BUILD --host=$TARGET \
         ${GLIBC_EXTRA_CONFIG} \
-        --enable-kernel=2.4.3 \
+        --enable-kernel=${GLIBC_MIN_KERNEL} \
         --without-cvs --disable-profile --disable-debug --without-gd \
-        --without-tls --without-__thread \
         $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
diff -urN crosstool-0.30/demo-alpha-nptl.sh crosstool-0.30-nptl-fixes/demo-alpha-nptl.sh
--- crosstool-0.30/demo-alpha-nptl.sh	1969-12-31 18:00:00.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-alpha-nptl.sh	2005-04-02 17:05:00.935622160 -0600
@@ -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 -urN crosstool-0.30/demo-alpha.sh crosstool-0.30-nptl-fixes/demo-alpha.sh
--- crosstool-0.30/demo-alpha.sh	2005-03-07 18:34:34.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-alpha.sh	2005-04-02 17:05:00.936622010 -0600
@@ -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 -urN crosstool-0.30/demo-arm-iwmmxt.sh crosstool-0.30-nptl-fixes/demo-arm-iwmmxt.sh
--- crosstool-0.30/demo-arm-iwmmxt.sh	2005-03-07 18:34:34.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-arm-iwmmxt.sh	2005-04-02 17:05:00.937621859 -0600
@@ -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 -urN crosstool-0.30/demo-arm-softfloat.sh crosstool-0.30-nptl-fixes/demo-arm-softfloat.sh
--- crosstool-0.30/demo-arm-softfloat.sh	2005-03-07 18:34:34.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-arm-softfloat.sh	2005-04-02 17:05:00.939621558 -0600
@@ -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 -urN crosstool-0.30/demo-arm.sh crosstool-0.30-nptl-fixes/demo-arm.sh
--- crosstool-0.30/demo-arm.sh	2005-03-07 18:34:34.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-arm.sh	2005-04-02 17:05:00.938621709 -0600
@@ -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 -urN crosstool-0.30/demo-arm9tdmi.sh crosstool-0.30-nptl-fixes/demo-arm9tdmi.sh
--- crosstool-0.30/demo-arm9tdmi.sh	2005-03-09 15:50:19.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-arm9tdmi.sh	2005-04-02 17:05:00.936622010 -0600
@@ -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 -urN crosstool-0.30/demo-armeb.sh crosstool-0.30-nptl-fixes/demo-armeb.sh
--- crosstool-0.30/demo-armeb.sh	2005-03-07 18:34:34.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-armeb.sh	2005-04-02 17:05:00.937621859 -0600
@@ -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 -urN crosstool-0.30/demo-armv5b-softfloat.sh crosstool-0.30-nptl-fixes/demo-armv5b-softfloat.sh
--- crosstool-0.30/demo-armv5b-softfloat.sh	2005-03-07 18:34:34.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-armv5b-softfloat.sh	2005-04-02 17:05:00.939621558 -0600
@@ -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 -urN crosstool-0.30/demo-cris.sh crosstool-0.30-nptl-fixes/demo-cris.sh
--- crosstool-0.30/demo-cris.sh	2005-03-07 18:34:34.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-cris.sh	2005-04-02 17:05:00.940621408 -0600
@@ -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 -urN crosstool-0.30/demo-i686-nptl.sh crosstool-0.30-nptl-fixes/demo-i686-nptl.sh
--- crosstool-0.30/demo-i686-nptl.sh	1969-12-31 18:00:00.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-i686-nptl.sh	2005-04-02 17:14:39.797422985 -0600
@@ -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 -urN crosstool-0.30/demo-i686.sh crosstool-0.30-nptl-fixes/demo-i686.sh
--- crosstool-0.30/demo-i686.sh	2005-03-26 13:20:04.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-i686.sh	2005-04-02 17:05:00.941621257 -0600
@@ -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 -urN crosstool-0.30/demo-ia64.sh crosstool-0.30-nptl-fixes/demo-ia64.sh
--- crosstool-0.30/demo-ia64.sh	2005-03-09 15:49:19.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-ia64.sh	2005-04-02 17:05:00.941621257 -0600
@@ -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 -urN crosstool-0.30/demo-m68k.sh crosstool-0.30-nptl-fixes/demo-m68k.sh
--- crosstool-0.30/demo-m68k.sh	2005-03-07 18:34:34.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-m68k.sh	2005-04-02 17:05:00.942621106 -0600
@@ -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 -urN crosstool-0.30/demo-mipsel.sh crosstool-0.30-nptl-fixes/demo-mipsel.sh
--- crosstool-0.30/demo-mipsel.sh	2005-03-07 18:34:34.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-mipsel.sh	2005-04-02 17:05:00.943620956 -0600
@@ -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 -urN crosstool-0.30/demo-powerpc64-nptl.sh crosstool-0.30-nptl-fixes/demo-powerpc64-nptl.sh
--- crosstool-0.30/demo-powerpc64-nptl.sh	1969-12-31 18:00:00.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-powerpc64-nptl.sh	2005-04-02 17:05:00.943620956 -0600
@@ -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 -urN crosstool-0.30/demo-ppc405.sh crosstool-0.30-nptl-fixes/demo-ppc405.sh
--- crosstool-0.30/demo-ppc405.sh	2005-03-07 18:34:34.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-ppc405.sh	2005-04-02 17:05:11.955962565 -0600
@@ -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 -urN crosstool-0.30/demo-ppc440.sh crosstool-0.30-nptl-fixes/demo-ppc440.sh
--- crosstool-0.30/demo-ppc440.sh	2005-03-07 18:34:34.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-ppc440.sh	2005-04-02 17:05:11.956962414 -0600
@@ -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 -urN crosstool-0.30/demo-ppc604.sh crosstool-0.30-nptl-fixes/demo-ppc604.sh
--- crosstool-0.30/demo-ppc604.sh	2005-03-07 18:34:34.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-ppc604.sh	2005-04-02 17:05:11.956962414 -0600
@@ -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 -urN crosstool-0.30/demo-ppc7450.sh crosstool-0.30-nptl-fixes/demo-ppc7450.sh
--- crosstool-0.30/demo-ppc7450.sh	2005-03-07 18:34:34.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-ppc7450.sh	2005-04-02 17:05:11.957962264 -0600
@@ -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 -urN crosstool-0.30/demo-ppc750.sh crosstool-0.30-nptl-fixes/demo-ppc750.sh
--- crosstool-0.30/demo-ppc750.sh	2005-03-07 18:34:34.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-ppc750.sh	2005-04-02 17:05:11.958962113 -0600
@@ -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 -urN crosstool-0.30/demo-ppc860.sh crosstool-0.30-nptl-fixes/demo-ppc860.sh
--- crosstool-0.30/demo-ppc860.sh	2005-03-07 18:34:34.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-ppc860.sh	2005-04-02 17:05:11.958962113 -0600
@@ -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 -urN crosstool-0.30/demo-ppc970.sh crosstool-0.30-nptl-fixes/demo-ppc970.sh
--- crosstool-0.30/demo-ppc970.sh	2005-03-07 18:34:34.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-ppc970.sh	2005-04-02 17:05:11.959961963 -0600
@@ -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 -urN crosstool-0.30/demo-s390.sh crosstool-0.30-nptl-fixes/demo-s390.sh
--- crosstool-0.30/demo-s390.sh	2005-03-07 18:34:34.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-s390.sh	2005-04-02 17:05:11.959961963 -0600
@@ -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 -urN crosstool-0.30/demo-sh3.sh crosstool-0.30-nptl-fixes/demo-sh3.sh
--- crosstool-0.30/demo-sh3.sh	2005-03-07 18:34:34.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-sh3.sh	2005-04-02 17:05:11.960961812 -0600
@@ -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 -urN crosstool-0.30/demo-sh4.sh crosstool-0.30-nptl-fixes/demo-sh4.sh
--- crosstool-0.30/demo-sh4.sh	2005-03-07 18:34:34.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-sh4.sh	2005-04-02 17:05:11.961961661 -0600
@@ -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 -urN crosstool-0.30/demo-sparc.sh crosstool-0.30-nptl-fixes/demo-sparc.sh
--- crosstool-0.30/demo-sparc.sh	2005-03-07 18:34:34.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-sparc.sh	2005-04-02 17:05:11.962961511 -0600
@@ -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 -urN crosstool-0.30/demo-sparc64.sh crosstool-0.30-nptl-fixes/demo-sparc64.sh
--- crosstool-0.30/demo-sparc64.sh	2005-03-07 18:34:34.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-sparc64.sh	2005-04-02 17:05:11.961961661 -0600
@@ -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 -urN crosstool-0.30/demo-x86_64-nptl.sh crosstool-0.30-nptl-fixes/demo-x86_64-nptl.sh
--- crosstool-0.30/demo-x86_64-nptl.sh	1969-12-31 18:00:00.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-x86_64-nptl.sh	2005-04-02 17:05:11.962961511 -0600
@@ -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 -urN crosstool-0.30/demo-x86_64.sh crosstool-0.30-nptl-fixes/demo-x86_64.sh
--- crosstool-0.30/demo-x86_64.sh	2005-03-07 18:34:34.000000000 -0600
+++ crosstool-0.30-nptl-fixes/demo-x86_64.sh	2005-04-02 17:05:11.963961360 -0600
@@ -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 -urN crosstool-0.30/gcc-3.2.3-glibc-2.3.2.dat crosstool-0.30-nptl-fixes/gcc-3.2.3-glibc-2.3.2.dat
--- crosstool-0.30/gcc-3.2.3-glibc-2.3.2.dat	2005-03-09 16:05:23.000000000 -0600
+++ crosstool-0.30-nptl-fixes/gcc-3.2.3-glibc-2.3.2.dat	2005-04-02 17:05:11.968960607 -0600
@@ -2,4 +2,3 @@
 GCC_DIR=gcc-3.2.3
 LINUX_DIR=linux-2.4.26
 GLIBC_DIR=glibc-2.3.2
-GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2
diff -urN crosstool-0.30/gcc-3.3-glibc-2.3.2.dat crosstool-0.30-nptl-fixes/gcc-3.3-glibc-2.3.2.dat
--- crosstool-0.30/gcc-3.3-glibc-2.3.2.dat	2005-03-09 16:05:23.000000000 -0600
+++ crosstool-0.30-nptl-fixes/gcc-3.3-glibc-2.3.2.dat	2005-04-02 17:05:11.979958950 -0600
@@ -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 -urN crosstool-0.30/gcc-3.3.4-glibc-2.1.3.dat crosstool-0.30-nptl-fixes/gcc-3.3.4-glibc-2.1.3.dat
--- crosstool-0.30/gcc-3.3.4-glibc-2.1.3.dat	2005-03-09 16:05:23.000000000 -0600
+++ crosstool-0.30-nptl-fixes/gcc-3.3.4-glibc-2.1.3.dat	2005-04-02 17:05:11.975959553 -0600
@@ -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 -urN crosstool-0.30/gcc-3.3.4-glibc-2.2.5.dat crosstool-0.30-nptl-fixes/gcc-3.3.4-glibc-2.2.5.dat
--- crosstool-0.30/gcc-3.3.4-glibc-2.2.5.dat	2005-03-09 16:05:23.000000000 -0600
+++ crosstool-0.30-nptl-fixes/gcc-3.3.4-glibc-2.2.5.dat	2005-04-02 17:05:11.976959402 -0600
@@ -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 -urN crosstool-0.30/gcc-3.3.4-glibc-2.3.2.dat crosstool-0.30-nptl-fixes/gcc-3.3.4-glibc-2.3.2.dat
--- crosstool-0.30/gcc-3.3.4-glibc-2.3.2.dat	2005-03-09 16:05:23.000000000 -0600
+++ crosstool-0.30-nptl-fixes/gcc-3.3.4-glibc-2.3.2.dat	2005-04-02 17:05:11.976959402 -0600
@@ -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 -urN crosstool-0.30/gcc-3.3.4-glibc-2.3.3.dat crosstool-0.30-nptl-fixes/gcc-3.3.4-glibc-2.3.3.dat
--- crosstool-0.30/gcc-3.3.4-glibc-2.3.3.dat	2005-03-09 16:05:23.000000000 -0600
+++ crosstool-0.30-nptl-fixes/gcc-3.3.4-glibc-2.3.3.dat	2005-04-02 17:05:11.977959252 -0600
@@ -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 -urN crosstool-0.30/gcc-3.4.1-glibc-2.3.4.dat crosstool-0.30-nptl-fixes/gcc-3.4.1-glibc-2.3.4.dat
--- crosstool-0.30/gcc-3.4.1-glibc-2.3.4.dat	1969-12-31 18:00:00.000000000 -0600
+++ crosstool-0.30-nptl-fixes/gcc-3.4.1-glibc-2.3.4.dat	2005-04-02 17:05:11.986957896 -0600
@@ -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 -urN crosstool-0.30/getandpatch.sh crosstool-0.30-nptl-fixes/getandpatch.sh
--- crosstool-0.30/getandpatch.sh	2005-03-20 01:43:59.000000000 -0600
+++ crosstool-0.30-nptl-fixes/getandpatch.sh	2005-04-02 17:09:34.527215859 -0600
@@ -21,7 +21,9 @@
   test -z "${GLIBC_DIR}"        && abort "Please set GLIBC_DIR to the bare filename of the glibc tarball or directory"
   test -z "${LINUX_DIR}"        && abort "Please set LINUX_DIR to the bare filename of the kernel tarball or directory"
   # And one is derived.
-  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
 fi
 
 test -z "${TARBALLS_DIR}"     && abort "Please set TARBALLS_DIR to the directory to download tarballs to."
@@ -204,7 +206,7 @@
     *) abort "unknown version $LINUX_DIR of linux, expected 2.4 or 2.6 in name?" ;;
   esac
   # Glibc addons must come after glibc
-  getUnpackAndPatch     ftp://ftp.gnu.org/pub/gnu/glibc/$GLIBCTHREADS_FILENAME.tar.bz2 ftp://ftp.gnu.org/pub/gnu/glibc/$GLIBCTHREADS_FILENAME.tar.gz
+  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
   test x$GLIBCCRYPT_FILENAME = x || getUnpackAndPatch     ftp://ftp.gnu.org/pub/gnu/glibc/$GLIBCCRYPT_FILENAME.tar.gz ftp://ftp.gnu.org/pub/gnu/glibc/$GLIBCCRYPT_FILENAME.tar.bz2
 fi
 

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com

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