diff -Naur crosstool-0.28-rc5-orig/all.sh crosstool-0.28-rc5/all.sh --- crosstool-0.28-rc5-orig/all.sh 2004-03-30 22:37:37.000000000 -0800 +++ crosstool-0.28-rc5/all.sh 2004-06-19 12:17:30.000000000 -0700 @@ -17,7 +17,13 @@ test -z "${BINUTILS_DIR}" && abort "Please set BINUTILS_DIR to the bare filename of the binutils tarball or directory" test -z "${GCC_DIR}" && abort "Please set GCC_DIR to the bare filename of the gcc tarball or directory" test -z "${LINUX_DIR}" && abort "Please set LINUX_DIR to the bare filename of the kernel tarball or directory" -test -z "${GLIBC_DIR}" && abort "Please set GLIBC_DIR to the bare filename of the glibc tarball or directory" +test -z "${LIBC_DIR}" && abort "Please set LIBC_DIR to the bare filename of the C library tarball or directory" +test -z "${C_LIBRARY}" && abort "Please set C_LIBRARY to 'glibc' or 'uclibc'" +case ${C_LIBRARY} in + glibc) ;; + uclibc) ;; + *) abort "Unsupported C library ${C_LIBRARY}; please set C_LIBRARY to 'glibc' or 'uclibc'" +esac # Three environment variables are optional, namely: test -z "${DEJAGNU}" && echo "DEJAGNU not set, so not running any regression tests" @@ -32,7 +38,7 @@ set -ex -TOOLCOMBO=$GCC_DIR-$GLIBC_DIR +TOOLCOMBO=$GCC_DIR-$LIBC_DIR BUILD_DIR=`pwd`/build/$TARGET/$TOOLCOMBO TOP_DIR=`pwd` @@ -43,15 +49,17 @@ fi # Sanity checks -case x$PREFIX in -x/) abort "Don't set PREFIX to /, as \$PREFIX gets deleted!" ;; -x/usr) abort "Don't set PREFIX to /usr, as \$PREFIX gets deleted!" ;; -*) ;; -esac +if test "x${PREFIX_NO_REMOVE}" = "x"; then + case x$PREFIX in + x/) abort "Don't set PREFIX to /, as \$PREFIX gets deleted!" ;; + x/usr) abort "Don't set PREFIX to /usr, as \$PREFIX gets deleted!" ;; + *) ;; + esac +fi case x$USER in -xroot) abort "Don't run all.sh or crosstool.sh as root, it's dangerous" ;; -*) ;; + xroot) abort "Don't run all.sh or crosstool.sh as root, it's dangerous" ;; + *) ;; esac # Arbitrary locations for the input and output of the build. @@ -96,15 +104,19 @@ if test "$opt_no_build" = ""; then # Build - rm -rf $PREFIX - mkdir -p $PREFIX + if test "x${PREFIX_NO_REMOVE}" = "x"; then + rm -rf $PREFIX + mkdir -p $PREFIX + else + rm -rf $PREFIX/$TARGET + fi mkdir -p $BUILD_DIR cd $BUILD_DIR sh $TOP_DIR/crosstool.sh cd $TOP_DIR # Cute little compile test - sh testhello.sh + sh testhello.sh $GCC_LANGUAGES fi if test "$opt_builduserland" = "1"; then diff -Naur crosstool-0.28-rc5-orig/crosstest.sh crosstool-0.28-rc5/crosstest.sh --- crosstool-0.28-rc5-orig/crosstest.sh 2004-03-18 10:22:32.000000000 -0800 +++ crosstool-0.28-rc5/crosstest.sh 2004-06-19 12:17:30.000000000 -0700 @@ -23,7 +23,13 @@ test -z "${BUILD_DIR}" && abort "Please set BUILD_DIR to the directory build-gcc etc. live in" test -z "${BINUTILS_DIR}" && abort "Please set BINUTILS_DIR to the bare filename of the binutils tarball or directory" test -z "${GCC_DIR}" && abort "Please set GCC_DIR to the bare filename of the gcc tarball or directory" -test -z "${GLIBC_DIR}" && abort "Please set GLIBC_DIR to the bare filename of the glibc tarball or directory" +test -z "${LIBC_DIR}" && abort "Please set LIBC_DIR to the bare filename of the C library tarball or directory" +test -z "${C_LIBRARY}" && abort "Please set C_LIBRARY to 'glibc' or 'uclibc'" +case ${C_LIBRARY} in + glibc) ;; + uclibc) ;; + *) abort "Unsupported C library ${C_LIBRARY}; please set C_LIBRARY to 'glibc' or 'uclibc'" +esac test -z "${TARGET}" && abort "Please set TARGET to the Gnu target identifier (e.g. pentium-linux)" test -z "${TARGET_CFLAGS}" && abort "Please set TARGET_CFLAGS to any compiler flags needed when building glibc (-O recommended)" test -z "${TOP_DIR}" && abort "Please set TOP_DIR to where the crosstool scripts live" @@ -108,7 +114,7 @@ find . -name '*.log' | xargs rm -f #--- glibc tests --- -if true; then +if test "${C_LIBRARY}" = glibc ; then cd build-glibc make tests @@ -184,7 +190,7 @@ echo "Some glibc test failed. Check logfiles on target in /jail/build-glibc/*/*.out." fi # it's not really a summary yet, but let's copy it up anyway -cp glibctest.out $TOP_DIR/$TARGET-$GCC_DIR-$GLIBC_DIR.glibc.sum +cp glibctest.out $TOP_DIR/$TARGET-$GCC_DIR-$LIBC_DIR.glibc.sum fi #--- gcc tests --- @@ -253,7 +259,7 @@ # Run standard test log analysis tool sh ../${GCC_DIR}/contrib/test_summary | sed '1d;/EOF/,$d' > test_summary.log -cp test_summary.log $TOP_DIR/$TARGET-$GCC_DIR-$GLIBC_DIR.gcc.sum +cp test_summary.log $TOP_DIR/$TARGET-$GCC_DIR-$LIBC_DIR.gcc.sum cd .. @@ -269,7 +275,7 @@ echo "" >> test_summary.log done -cp test_summary.log $TOP_DIR/$TARGET-$GCC_DIR-$GLIBC_DIR.binutils.sum +cp test_summary.log $TOP_DIR/$TARGET-$GCC_DIR-$LIBC_DIR.binutils.sum cd .. diff -Naur crosstool-0.28-rc5-orig/crosstool.sh crosstool-0.28-rc5/crosstool.sh --- crosstool-0.28-rc5-orig/crosstool.sh 2004-04-11 02:06:56.000000000 -0700 +++ crosstool-0.28-rc5/crosstool.sh 2004-06-19 12:17:30.000000000 -0700 @@ -24,7 +24,13 @@ test -z "${SRC_DIR}" && abort "Please set SRC_DIR to the directory where the source tarballs are to be unpacked" test -z "${BINUTILS_DIR}" && abort "Please set BINUTILS_DIR to the bare filename of the binutils tarball or directory" test -z "${GCC_DIR}" && abort "Please set GCC_DIR to the bare filename of the gcc tarball or directory" -test -z "${GLIBC_DIR}" && abort "Please set GLIBC_DIR to the bare filename of the glibc tarball or directory" +test -z "${LIBC_DIR}" && abort "Please set LIBC_DIR to the bare filename of the C library tarball or directory" +test -z "${C_LIBRARY}" && abort "Please set C_LIBRARY to 'glibc' or 'uclibc'" +case ${C_LIBRARY} in + glibc) ;; + uclibc) ;; + *) abort "Unsupported C library ${C_LIBRARY}; please set C_LIBRARY to 'glibc' or 'uclibc'" +esac test -z "${LINUX_DIR}" && abort "Please set LINUX_DIR to the bare filename of the kernel tarball or directory" test -z "${TARGET}" && abort "Please set TARGET to the Gnu target identifier (e.g. pentium-linux)" test -z "${TARGET_CFLAGS}" && abort "Please set TARGET_CFLAGS to any compiler flags needed when building glibc (-O recommended)" @@ -33,10 +39,12 @@ test -z "${GCC_EXTRA_CONFIG}" && echo "GCC_EXTRA_CONFIG not set, so not passing any extra options to gcc's configure script" test -z "${GLIBC_EXTRA_CONFIG}" && echo "GLIBC_EXTRA_CONFIG not set, so not passing any extra options to glibc's configure script" test -z "${GLIBC_EXTRA_ENV}" && echo "GLIBC_EXTRA_ENV not set, so not passing any extra environment variables to glibc's configure script" -test -z "${KERNELCONFIG}" && test -z ${LINUX_DIR}/.config && echo "KERNELCONFIG not set, and no .config file found, so not configuring linux kernel" +test -z "${KERNELCONFIG}" && test '!' -f ${LINUX_DIR}/.config && echo "KERNELCONFIG not set, and no .config file found, so not configuring linux kernel" +test "${C_LIBRARY}" = uclibc && test -z "${UCLIBCCONFIG}" && test '!' -f ${LIBC_DIR}/.config && echo "UCLIBCCONFIG not set, and no .config file found, so using a default config\n You will probably want to change this." test -z "${USE_SYSROOT}" && echo "USE_SYSROOT not set, so not configuring with --with-sysroot" test -z "${KERNELCONFIG}" || test -r "${KERNELCONFIG}" || abort "Can't read file KERNELCONFIG = $KERNELCONFIG, please fix." +test -z "${UCLIBCCONFIG}" || test -r "${UCLIBCCONFIG}" || abort "Can't read file UCLIBCCONFIG = $UCLIBCCONFIG, please fix." test -z "${LD_LIBRARY_PATH}" || abort "glibc refuses to build if LD_LIBRARY_PATH is set. Please unset it before running this script." @@ -46,7 +54,9 @@ GCC_LANGUAGES=${GCC_LANGUAGES-c,c++} # And one is derived. -GLIBCTHREADS_FILENAME=`echo $GLIBC_DIR | sed 's/glibc-/glibc-linuxthreads-/'` +if test "${C_LIBRARY}" = glibc ; then + GLIBCTHREADS_FILENAME=`echo $LIBC_DIR | sed 's/glibc-/glibc-linuxthreads-/'` +fi # Check for a few prerequisites that have tripped people up. awk '/x/' < /dev/null || abort "You need awk to build a toolchain." @@ -83,7 +93,7 @@ BINUTILS_DIR=`cd ${SRC_DIR}/${BINUTILS_DIR}; pwd` GCC_DIR=`cd ${SRC_DIR}/${GCC_DIR}; pwd` LINUX_DIR=`cd ${SRC_DIR}/${LINUX_DIR}; pwd` -GLIBC_DIR=`cd ${SRC_DIR}/${GLIBC_DIR}; pwd` +LIBC_DIR=`cd ${SRC_DIR}/${LIBC_DIR}; pwd` # make sure the build product's binaries are in the search path PATH="${PREFIX}/bin:${PATH}" @@ -183,6 +193,60 @@ test -x ${PREFIX}/bin/${TARGET}-ld || abort Build failed during binutils #--------------------------------------------------------- +# +# A few functions for configuring uClibc, since they're used twice +defaultuClibcConfig() { + make defconfig + UCARCH=${ARCH} + if test "${UCARCH}" = "ppc"; then + UCARCH=powerpc + fi + + cat > munge-defconfig.sed <<-ENDSED + s/^\\(TARGET_.*\\)=y$/\\# \\1 is not set/ + s/^\\# TARGET_${UCARCH} is not set/TARGET_${UCARCH}=y/ + s/^TARGET_ARCH=".*"/TARGET_ARCH="${UCARCH}"/ + s/^\\(TARGET_.*_ENDIAN\\)=y/\\# \\1 is not set/ +ENDSED + sed -i -f munge-defconfig.sed .config +} + +correctuClibcConfig() { + # Change paths to work with crosstool + QUOTED_LINUX_DIR=`echo ${LINUX_DIR} | sed -e 's/\//\\\\\//g'` + cat > munge-oldconfig.sed <<-ENDSED + s/^DEVEL_PREFIX=".*"/DEVEL_PREFIX="\\/"/ + s/^RUNTIME_PREFIX=".*"/RUNTIME_PREFIX="\\/"/ + s/^KERNEL_SOURCE=".*"/KERNEL_SOURCE="${QUOTED_LINUX_DIR}"/ + s/^UCLIBC_DOWNLOAD_PREGENERATED_LOCALE=y/\\# UCLIBC_DOWNLOAD_PREGENERATED_LOCALE is not set/ +ENDSED + # Force on options needed for C++ if we'll be making a C++ compiler. + # Note that the two PREGEN_LOCALE and the XLOCALE lines may be missing + # entirely if LOCALE is not set. If LOCALE was already set, we'll + # assume the user has already made all the appropriate generation + # arrangements. Note that having the uClibc Makefile download the + # pregenerated locales is not compatible with crosstool; besides, + # crosstool downloads them as part of getandpatch.sh. + if echo "$TESTLANG" | egrep "(^|,)c++(,|\$)"; then + cat >> munge-oldconfig.sed <<-ENDSED + s/^\\# DO_C99_MATH is not set/DO_C99_MATH=y/ + s/^\\# UCLIBC_CTOR_DTOR is not set/UCLIBC_CTOR_DTOR=y/ +ENDSED + if grep -v UCLIBC_HAS_GETTEXT_AWARENESS .config; then + # This one often slips through the cracks when script-adding + # locale support + cat >> munge-oldconfig.sed <<-ENDSED + /UCLIBC_HAS_GNU_GETOPT/ i \\ + \\# UCLIBC_HAS_GETTEXT_AWARENESS is not set\\n +ENDSED + fi + fi + sed -i -f munge-oldconfig.sed .config +# s/^\\# UCLIBC_HAS_WCHAR is not set/UCLIBC_HAS_WCHAR=y/ +# s/^\\# UCLIBC_HAS_LOCALE is not set/UCLIBC_HAS_LOCALE=y\\nUCLIBC_PREGENERATED_LOCALE_DATA=y\\n\\# UCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA is not set\\n\\# UCLIBC_HAS_XLOCALE is not set/ +} + +#--------------------------------------------------------- echo "Install glibc headers needed to build bootstrap compiler -- but only if gcc-3.x" # Only need to install bootstrap glibc headers for gcc-3.0 and above? Or maybe just gcc-3.3 and above? @@ -190,55 +254,102 @@ # See also http://gcc.gnu.org/PR8180, which complains about the need for this step. # Don't install them if they're already there (it's really slow) if grep -q gcc-3 ${GCC_DIR}/ChangeLog && test '!' -f $HEADERDIR/features.h; then - mkdir -p build-glibc-headers; cd build-glibc-headers + mkdir -p build-libc-headers; cd build-libc-headers - if test '!' -f Makefile; then - # The following three things have to be done to build glibc-2.3.x, but they don't hurt older versions. - # 1. override CC to keep glibc's configure from using $TARGET-gcc. - # 2. disable linuxthreads, which needs a real cross-compiler to generate tcb-offsets.h properly - # 3. build with gcc 3.2 or later - # Compare these options with the ones used when building glibc for real below - they're different. - # As of glibc-2.3.2, to get this step to work for hppa-linux, you need --enable-hacker-mode - # so when configure checks to make sure gcc has access to the assembler you just built... - # Alternately, we could put ${PREFIX}/${TARGET}/bin on the path. - # Set --build so maybe we don't have to specify "cross-compiling=yes" below (haven't tried yet) - # Note: the warning - # "*** WARNING: Are you sure you do not want to use the `linuxthreads'" - # *** add-on?" - # is ok here, since all we want are the basic headers at this point. - # build and host are a bit odd, but --host=$TARGET picks the right target, - # and --build=$HOST keeps it from thinking it's a native toolchain ever - CC=gcc \ - ${GLIBC_DIR}/configure --host=$TARGET --prefix=/usr \ - --build=$HOST \ - --without-cvs --disable-sanity-checks --with-headers=$HEADERDIR \ - --enable-hacker-mode - fi - - if grep -q GLIBC_2.3 ${GLIBC_DIR}/ChangeLog; then - # glibc-2.3.x passes cross options to $(CC) when generating errlist-compat.c, which fails without a real cross-compiler. - # Fortunately, we don't need errlist-compat.c, since we just need .h files, - # so work around this by creating a fake errlist-compat.c and satisfying its dependencies. - # Another workaround might be to tell configure to not use any cross options to $(CC). - # The real fix would be to get install-headers to not generate errlist-compat.c. - make sysdeps/gnu/errlist.c - mkdir -p stdio-common - touch stdio-common/errlist-compat.c - fi - make cross-compiling=yes install_root=${SYSROOT} $GLIBC_SYSROOT_ARG install-headers + case ${C_LIBRARY} in + glibc) - # Two headers -- stubs.h and features.h -- aren't installed by install-headers, - # so do them by hand. We can tolerate an empty stubs.h for the moment. - # See e.g. http://gcc.gnu.org/ml/gcc/2002-01/msg00900.html - - mkdir -p $HEADERDIR/gnu - touch $HEADERDIR/gnu/stubs.h - cp ${GLIBC_DIR}/include/features.h $HEADERDIR/features.h - # Building the bootstrap gcc requires either setting inhibit_libc, or - # having a copy of stdio_lim.h... see - # http://sources.redhat.com/ml/libc-alpha/2003-11/msg00045.html - cp bits/stdio_lim.h $HEADERDIR/bits/stdio_lim.h + if test '!' -f Makefile; then + # The following three things have to be done to build + # glibc-2.3.x, but they don't hurt older versions. + # 1. override CC to keep glibc's configure from using + # $TARGET-gcc. + # 2. disable linuxthreads, which needs a real cross-compiler + # to generate tcb-offsets.h properly + # 3. build with gcc 3.2 or later + # Compare these options with the ones used when building + # glibc for real below - they're different. + # As of glibc-2.3.2, to get this step to work for hppa-linux, + # you need --enable-hacker-mode so when configure checks to + # make sure gcc has access to the assembler you just built... + # Alternately, we could put ${PREFIX}/${TARGET}/bin on the + # path. Set --build so maybe we don't have to specify + # "cross-compiling=yes" below (haven't tried yet) + # Note: the warning + # "*** WARNING: Are you sure you do not want to use the + # `linuxthreads' add-on? ***" + # is ok here, since all we want are the basic headers at + # this point. build and host are a bit odd, but --host=$TARGET + # picks the right target, and --build=$HOST keeps it from + # thinking it's a native toolchain ever + CC=gcc \ + ${LIBC_DIR}/configure --host=$TARGET --prefix=/usr \ + --build=$BUILD \ + --without-cvs --disable-sanity-checks \ + --with-headers=${PREFIX}/${TARGET}/include \ + --enable-hacker-mode + fi + + if grep -q GLIBC_2.3 ${LIBC_DIR}/ChangeLog; then + # glibc-2.3.x passes cross options to $(CC) when generating + # errlist-compat.c, which fails without a real cross-compiler. + # Fortunately, we don't need errlist-compat.c, since we just + # need .h files, so work around this by creating a fake + # errlist-compat.c and satisfying its dependencies. + # Another workaround might be to tell configure to not use any + # cross options to $(CC). The real fix would be to get + # install-headers to not generate errlist-compat.c. + make sysdeps/gnu/errlist.c + mkdir -p stdio-common + touch stdio-common/errlist-compat.c + fi + make cross-compiling=yes install_root=${SYSROOT} \ + ${GLIBC_SYSROOT_ARG} install-headers + + # Two headers -- stubs.h and features.h -- aren't installed by + # install-headers, so do them by hand. We can tolerate an empty + # stubs.h for the moment. + # See e.g. http://gcc.gnu.org/ml/gcc/2002-01/msg00900.html + + mkdir -p $HEADERDIR/gnu + touch $HEADERDIR/gnu/stubs.h + cp ${LIBC_DIR}/include/features.h $HEADERDIR/features.h + + # Building the bootstrap gcc requires either setting inhibit_libc, + # or having a copy of stdio_lim.h... + # see http://sources.redhat.com/ml/libc-alpha/2003-11/msg00045.html + cp bits/stdio_lim.h $HEADERDIR/bits/stdio_lim.h + + ;; + + uclibc) + if test '!' -f Makefile; then + perl ${LIBC_DIR}/relocate + fi + + # Go find a .config, or make a new default one. + if test '!' -f .config; then + if test -z "${UCLIBCCONFIG}"; then + if test -f ${LIBC_DIR}/.config; then + cp ${LIBC_DIR}/.config .config + else + defaultuClibcConfig + fi + else + cp ${UCLIBCCONFIG} .config + fi + fi + + correctuClibcConfig + + # uClibc uses the CROSS environment variable as a prefix to the + # compiler tools to use. Setting it to the empty string forces + # use of the native build host tools, which we need at this + # stage, as we don't have target tools yet. + CROSS= PREFIX=${SYSROOT}/ make headers install_headers + ;; + esac cd .. fi @@ -254,14 +365,14 @@ --with-local-prefix=${SYSROOT} \ --disable-multilib \ --with-newlib \ - ${GCC_EXTRA_CONFIG} \ ${GCC_SYSROOT_ARG_CORE} \ --disable-nls \ --enable-threads=no \ --enable-symvers=gnu \ --enable-__cxa_atexit \ - --enable-languages=c \ - --disable-shared + --enable-languages=c \ + --disable-shared \ + ${GCC_EXTRA_CONFIG} fi make $PARALLELMFLAGS all-gcc install-gcc @@ -273,72 +384,119 @@ #--------------------------------------------------------- echo Build glibc and linuxthreads -mkdir -p build-glibc; cd build-glibc +mkdir -p build-libc; cd build-libc -# 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 +case ${C_LIBRARY} in + glibc) + # 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 + + 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 \ + AR=${TARGET}-ar RANLIB=${TARGET}-ranlib \ + ${LIBC_DIR}/configure --host=$TARGET --prefix=/usr \ + --build=$HOST ${GLIBC_EXTRA_CONFIG} \ + --without-tls --without-__thread --enable-kernel=2.4.3 \ + --without-cvs --disable-profile --disable-debug --without-gd \ + --enable-add-ons --with-headers=$HEADERDIR + fi + + # If this fails with an error like this: + # ... linux/autoconf.h: No such file or directory + # then you need to set the KERNELCONFIG variable to point to a + # .config file for this arch. The following architectures are + # known to need kernel .config: alpha, arm, ia64, s390, sh, sparc + # Note: LD and RANLIB needed by glibc-2.1.3's c_stub directory, + # at least on macosx. No need for PARALLELMFLAGS here, Makefile + # already reads this environment variable + make LD=${TARGET}-ld RANLIB=${TARGET}-ranlib + make install install_root=${SYSROOT} $GLIBC_SYSROOT_ARG + + # This doesn't seem to work when building a crosscompiler, + # as it tries to execute localedef using the just-build ld.so!? + #make localedata/install-locales install_root=${SYSROOT} + + # Fix problems in linker scripts. + # + # 1. Remove absolute paths + # Any file in a list of known suspects that isn't a symlink is + # assumed to be a linker script. + # FIXME: test -h is not portable + # FIXME: probably need to check more files than just these three... + # Need to use sed instead of just assuming we know what's in libc.so + # because otherwise alpha breaks. But won't need to do this at all + # once we use --with-sysroot (available in gcc-3.3.3 and up) + # + # 2. Remove lines containing BUG per: + # http://sources.redhat.com/ml/bug-glibc/2003-05/msg00055.html, + # needed to fix gcc-3.2.3/glibc-2.3.2 targeting arm + # + # To make "strip *.so.*" not fail (ptxdist does this), rename to + # .so_orig rather than .so.orig + for file in libc.so libpthread.so libgcc_s.so; do + for lib in lib lib64 usr/lib usr/lib64; do + if test -f ${SYSROOT}/$lib/$file && test ! -h ${SYSROOT}/$lib/$file; then + mv ${SYSROOT}/$lib/$file ${SYSROOT}/$lib/${file}_orig + if test -z "$USE_SYSROOT"; then + sed 's,/usr/lib/,,g;s,/usr/lib64/,,g;s,/lib/,,g;s,/lib64/,,g;/BUG in libc.scripts.output-format.sed/d' < ${SYSROOT}/$lib/${file}_orig > ${SYSROOT}/$lib/$file + else + sed '/BUG in libc.scripts.output-format.sed/d' < ${SYSROOT}/$lib/${file}_orig > ${SYSROOT}/$lib/$file + fi + fi + done + done + + ;; + + uclibc) + if test '!' -f Makefile; then + perl ${LIBC_DIR}/relocate + fi + + # Go find a .config, or make a new default one. + if test '!' -f .config; then + if test -f ../build-libc-headers/.config; then + cp ../build-libc-headers/.config .config + elif test -z "${UCLIBCCONFIG}"; then + if test -f ${LIBC_DIR}/.config; then + cp ${LIBC_DIR}/.config .config + else + defaultuClibcConfig + fi + else + cp ${UCLIBCCONFIG} .config + fi + fi + + correctuClibcConfig + + # uClibc uses the CROSS environment variable as a prefix to the + # compiler tools to use. The newly built tools should be in our + # path, so we need only give the correct name for them. + CROSS=${TARGET}- PREFIX=${PREFIX}/${TARGET}/ \ + make all install -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 AR=${TARGET}-ar RANLIB=${TARGET}-ranlib \ - ${GLIBC_DIR}/configure --host=$TARGET --prefix=/usr \ - --build=$HOST \ - ${GLIBC_EXTRA_CONFIG} \ - --without-tls --without-__thread --enable-kernel=2.4.3 \ - --without-cvs --disable-profile --disable-debug --without-gd \ - --enable-add-ons --with-headers=$HEADERDIR -fi + ;; -# If this fails with an error like this: -# ... linux/autoconf.h: No such file or directory -# then you need to set the KERNELCONFIG variable to point to a .config file for this arch. -# The following architectures are known to need kernel .config: alpha, arm, ia64, s390, sh, sparc -# Note: LD and RANLIB needed by glibc-2.1.3's c_stub directory, at least on macosx -# No need for PARALLELMFLAGS here, Makefile already reads this environment variable -make LD=${TARGET}-ld RANLIB=${TARGET}-ranlib -make install install_root=${SYSROOT} $GLIBC_SYSROOT_ARG - -# This doesn't seem to work when building a crosscompiler, -# as it tries to execute localedef using the just-build ld.so!? -#make localedata/install-locales install_root=${SYSROOT} - -# Fix problems in linker scripts. -# -# 1. Remove absolute paths -# Any file in a list of known suspects that isn't a symlink is assumed to be a linker script. -# FIXME: test -h is not portable -# FIXME: probably need to check more files than just these three... -# Need to use sed instead of just assuming we know what's in libc.so because otherwise alpha breaks -# But won't need to do this at all once we use --with-sysroot (available in gcc-3.3.3 and up) -# -# 2. Remove lines containing BUG per http://sources.redhat.com/ml/bug-glibc/2003-05/msg00055.html, -# needed to fix gcc-3.2.3/glibc-2.3.2 targeting arm -# -# To make "strip *.so.*" not fail (ptxdist does this), rename to .so_orig rather than .so.orig -for file in libc.so libpthread.so libgcc_s.so; do - for lib in lib lib64 usr/lib usr/lib64; do - if test -f ${SYSROOT}/$lib/$file && test ! -h ${SYSROOT}/$lib/$file; then - mv ${SYSROOT}/$lib/$file ${SYSROOT}/$lib/${file}_orig - if test -z "$USE_SYSROOT"; then - sed 's,/usr/lib/,,g;s,/usr/lib64/,,g;s,/lib/,,g;s,/lib64/,,g;/BUG in libc.scripts.output-format.sed/d' < ${SYSROOT}/$lib/${file}_orig > ${SYSROOT}/$lib/$file - else - sed '/BUG in libc.scripts.output-format.sed/d' < ${SYSROOT}/$lib/${file}_orig > ${SYSROOT}/$lib/$file - fi - fi - done -done +esac cd .. test -f ${SYSROOT}/lib/libc.a || test -f ${SYSROOT}/lib64/libc.a || test -f ${SYSROOT}/usr/lib/libc.a || test -f ${SYSROOT}/usr/lib64/libc.a || abort Building libc failed @@ -349,22 +507,36 @@ mkdir -p build-gcc; cd build-gcc if test '!' -f Makefile; then - # --enable-symvers=gnu really only needed for sh4 to work around a detection problem - # only matters for gcc-3.2.x and later, I think - # --disable-nls to work around crash bug on ppc405, but also because embedded - # systems don't really need message catalogs... + # --enable-symvers=gnu really only needed for sh4 to work around a + # detection problem; only matters for gcc-3.2.x and later, I think + # --disable-nls to work around crash bug on ppc405, but also because + # embedded systems don't really need message catalogs... + GCC_DEFAULT_OPTIONS="--disable-nls \ + --enable-threads=posix \ + --enable-symvers=gnu \ + --enable-languages="$GCC_LANGUAGES" \ + --enable-shared \ + --enable-c99 \ + --enable-long-long" + case ${C_LIBRARY} in + glibc) + GCC_DEFAULT_OPTIONS="$GCC_DEFAULT_OPTIONS --enable-__cxa_atexit" + ;; + *) + GCC_DEFAULT_OPTIONS="$GCC_DEFAULT_OPTIONS --disable-__cxa_atexit" + ;; + esac + for GCC_DEFAULT_OPTION in $GCC_DEFAULT_OPTIONS ; do + GCC_SEARCH_OPTION=`echo "$GCC_DEFAULT_OPTION" | sed -e 's/^--en//' \ + -e 's/^--dis//' -e 's/=.*//'` + if echo "$GCC_EXTRA_CONFIG" | grep -v "$GCC_SEARCH_OPTION"; then + GCC_EXTRA_CONFIG="$GCC_EXTRA_CONFIG $GCC_DEFAULT_OPTION" + fi + done ${GCC_DIR}/configure --target=$TARGET --host=$HOST --prefix=$PREFIX \ - ${GCC_EXTRA_CONFIG} \ - $GCC_SYSROOT_ARG \ + ${GCC_SYSROOT_ARG} \ --with-local-prefix=${SYSROOT} \ - --disable-nls \ - --enable-threads=posix \ - --enable-symvers=gnu \ - --enable-__cxa_atexit \ - --enable-languages="$GCC_LANGUAGES" \ - --enable-shared \ - --enable-c99 \ - --enable-long-long + ${GCC_EXTRA_CONFIG} fi make $PARALLELMFLAGS all diff -Naur crosstool-0.28-rc5-orig/demoptx.sh crosstool-0.28-rc5/demoptx.sh --- crosstool-0.28-rc5-orig/demoptx.sh 2004-04-16 22:14:38.000000000 -0700 +++ crosstool-0.28-rc5/demoptx.sh 2004-06-19 12:17:30.000000000 -0700 @@ -12,9 +12,11 @@ #GCC_DIR=gcc-3.3.1 GCC_DIR=gcc-2.95.3 -#GLIBC_DIR=glibc-2.3.2 -GLIBC_DIR=glibc-2.2.2 -#GLIBC_DIR=glibc-2.2.5 +#LIBC_DIR=glibc-2.3.2 +LIBC_DIR=glibc-2.2.2 +#LIBC_DIR=glibc-2.2.5 -export TARGET GCC_DIR GLIBC_DIR +C_LIBRARY=glibc + +export TARGET GCC_DIR GLIBC_DIR C_LIBRARY sh ptx.sh diff -Naur crosstool-0.28-rc5-orig/gcc-2.95.3-glibc-2.1.3.dat crosstool-0.28-rc5/gcc-2.95.3-glibc-2.1.3.dat --- crosstool-0.28-rc5-orig/gcc-2.95.3-glibc-2.1.3.dat 2004-03-25 10:29:04.000000000 -0800 +++ crosstool-0.28-rc5/gcc-2.95.3-glibc-2.1.3.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,7 +1,8 @@ BINUTILS_DIR=binutils-2.13.90.0.2 BINUTILS_URL=http://www.kernel.org/pub/linux/devel/binutils GCC_DIR=gcc-2.95.3 -GLIBC_DIR=glibc-2.1.3 +LIBC_DIR=glibc-2.1.3 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.21 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.1.3 GLIBCCRYPT_FILENAME=glibc-crypt-2.1 diff -Naur crosstool-0.28-rc5-orig/gcc-2.95.3-glibc-2.2.2.dat crosstool-0.28-rc5/gcc-2.95.3-glibc-2.2.2.dat --- crosstool-0.28-rc5-orig/gcc-2.95.3-glibc-2.2.2.dat 2004-01-16 10:54:39.000000000 -0800 +++ crosstool-0.28-rc5/gcc-2.95.3-glibc-2.2.2.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.11.2 BINUTILS_URL=ftp://ftp.gnu.org/pub/gnu/binutils GCC_DIR=gcc-2.95.3 -GLIBC_DIR=glibc-2.2.2 +LIBC_DIR=glibc-2.2.2 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.3 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.2.2 diff -Naur crosstool-0.28-rc5-orig/gcc-2.95.3-glibc-2.2.5.dat crosstool-0.28-rc5/gcc-2.95.3-glibc-2.2.5.dat --- crosstool-0.28-rc5-orig/gcc-2.95.3-glibc-2.2.5.dat 2004-01-16 10:54:40.000000000 -0800 +++ crosstool-0.28-rc5/gcc-2.95.3-glibc-2.2.5.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.11.2 BINUTILS_URL=ftp://ftp.gnu.org/pub/gnu/binutils GCC_DIR=gcc-2.95.3 -GLIBC_DIR=glibc-2.2.5 +LIBC_DIR=glibc-2.2.5 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.3 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.2.5 diff -Naur crosstool-0.28-rc5-orig/gcc-3.2.3-glibc-2.2.3.dat crosstool-0.28-rc5/gcc-3.2.3-glibc-2.2.3.dat --- crosstool-0.28-rc5-orig/gcc-3.2.3-glibc-2.2.3.dat 2004-01-31 11:42:19.000000000 -0800 +++ crosstool-0.28-rc5/gcc-3.2.3-glibc-2.2.3.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.13 BINUTILS_URL=ftp://ftp.gnu.org/pub/gnu/binutils GCC_DIR=gcc-3.2.3 -GLIBC_DIR=glibc-2.2.3 +LIBC_DIR=glibc-2.2.3 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.21 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.2.3 diff -Naur crosstool-0.28-rc5-orig/gcc-3.2.3-glibc-2.2.5.dat crosstool-0.28-rc5/gcc-3.2.3-glibc-2.2.5.dat --- crosstool-0.28-rc5-orig/gcc-3.2.3-glibc-2.2.5.dat 2004-01-31 11:42:24.000000000 -0800 +++ crosstool-0.28-rc5/gcc-3.2.3-glibc-2.2.5.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.13 BINUTILS_URL=ftp://ftp.gnu.org/pub/gnu/binutils GCC_DIR=gcc-3.2.3 -GLIBC_DIR=glibc-2.2.5 +LIBC_DIR=glibc-2.2.5 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.21 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.2.5 diff -Naur crosstool-0.28-rc5-orig/gcc-3.2.3-glibc-2.3.2.dat crosstool-0.28-rc5/gcc-3.2.3-glibc-2.3.2.dat --- crosstool-0.28-rc5-orig/gcc-3.2.3-glibc-2.3.2.dat 2004-01-31 11:42:27.000000000 -0800 +++ crosstool-0.28-rc5/gcc-3.2.3-glibc-2.3.2.dat 2004-06-19 12:17:30.000000000 -0700 @@ -2,5 +2,6 @@ BINUTILS_URL=ftp://ftp.gnu.org/pub/gnu/binutils GCC_DIR=gcc-3.2.3 LINUX_DIR=linux-2.4.21 -GLIBC_DIR=glibc-2.3.2 +LIBC_DIR=glibc-2.3.2 +C_LIBRARY=glibc GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2 diff -Naur crosstool-0.28-rc5-orig/gcc-3.3.1-glibc-2.2.5.dat crosstool-0.28-rc5/gcc-3.3.1-glibc-2.2.5.dat --- crosstool-0.28-rc5-orig/gcc-3.3.1-glibc-2.2.5.dat 2004-02-01 07:38:58.000000000 -0800 +++ crosstool-0.28-rc5/gcc-3.3.1-glibc-2.2.5.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.14 BINUTILS_URL=ftp://ftp.gnu.org/pub/gnu/binutils GCC_DIR=gcc-3.3.1 -GLIBC_DIR=glibc-2.2.5 +LIBC_DIR=glibc-2.2.5 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.21 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.2.5 diff -Naur crosstool-0.28-rc5-orig/gcc-3.3.1-glibc-2.3.2.dat crosstool-0.28-rc5/gcc-3.3.1-glibc-2.3.2.dat --- crosstool-0.28-rc5-orig/gcc-3.3.1-glibc-2.3.2.dat 2004-02-01 07:39:06.000000000 -0800 +++ crosstool-0.28-rc5/gcc-3.3.1-glibc-2.3.2.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.14 BINUTILS_URL=ftp://ftp.gnu.org/pub/gnu/binutils GCC_DIR=gcc-3.3.1 -GLIBC_DIR=glibc-2.3.2 +LIBC_DIR=glibc-2.3.2 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.24 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2 diff -Naur crosstool-0.28-rc5-orig/gcc-3.3-20040105-glibc-2.3.2.dat crosstool-0.28-rc5/gcc-3.3-20040105-glibc-2.3.2.dat --- crosstool-0.28-rc5-orig/gcc-3.3-20040105-glibc-2.3.2.dat 2004-02-01 07:39:14.000000000 -0800 +++ crosstool-0.28-rc5/gcc-3.3-20040105-glibc-2.3.2.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.14 BINUTILS_URL=ftp://ftp.gnu.org/pub/gnu/binutils GCC_DIR=gcc-3.3-20040105 -GLIBC_DIR=glibc-2.3.2 +LIBC_DIR=glibc-2.3.2 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.21 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2 diff -Naur crosstool-0.28-rc5-orig/gcc-3.3-20040112-glibc-2.3.2.dat crosstool-0.28-rc5/gcc-3.3-20040112-glibc-2.3.2.dat --- crosstool-0.28-rc5-orig/gcc-3.3-20040112-glibc-2.3.2.dat 2004-02-01 07:39:25.000000000 -0800 +++ crosstool-0.28-rc5/gcc-3.3-20040112-glibc-2.3.2.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.14 BINUTILS_URL=ftp://ftp.gnu.org/pub/gnu/binutils GCC_DIR=gcc-3.3-20040112 -GLIBC_DIR=glibc-2.3.2 +LIBC_DIR=glibc-2.3.2 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.24 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2 diff -Naur crosstool-0.28-rc5-orig/gcc-3.3-20040119-glibc-2.3.2.dat crosstool-0.28-rc5/gcc-3.3-20040119-glibc-2.3.2.dat --- crosstool-0.28-rc5-orig/gcc-3.3-20040119-glibc-2.3.2.dat 2004-01-25 17:53:29.000000000 -0800 +++ crosstool-0.28-rc5/gcc-3.3-20040119-glibc-2.3.2.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.14.90.0.5 BINUTILS_URL=http://www.kernel.org/pub/linux/devel/binutils GCC_DIR=gcc-3.3-20040119 -GLIBC_DIR=glibc-2.3.2 +LIBC_DIR=glibc-2.3.2 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.24 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2 diff -Naur crosstool-0.28-rc5-orig/gcc-3.3-20040126-glibc-2.3.2.dat crosstool-0.28-rc5/gcc-3.3-20040126-glibc-2.3.2.dat --- crosstool-0.28-rc5-orig/gcc-3.3-20040126-glibc-2.3.2.dat 2004-01-27 10:16:54.000000000 -0800 +++ crosstool-0.28-rc5/gcc-3.3-20040126-glibc-2.3.2.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.14.90.0.5 BINUTILS_URL=http://www.kernel.org/pub/linux/devel/binutils GCC_DIR=gcc-3.3-20040126 -GLIBC_DIR=glibc-2.3.2 +LIBC_DIR=glibc-2.3.2 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.24 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2 diff -Naur crosstool-0.28-rc5-orig/gcc-3.3.2-glibc-2.3.2.dat crosstool-0.28-rc5/gcc-3.3.2-glibc-2.3.2.dat --- crosstool-0.28-rc5-orig/gcc-3.3.2-glibc-2.3.2.dat 2004-02-27 18:20:53.000000000 -0800 +++ crosstool-0.28-rc5/gcc-3.3.2-glibc-2.3.2.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.14.90.0.5 BINUTILS_URL=http://www.kernel.org/pub/linux/devel/binutils GCC_DIR=gcc-3.3.2 -GLIBC_DIR=glibc-2.3.2 +LIBC_DIR=glibc-2.3.2 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.24 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2 diff -Naur crosstool-0.28-rc5-orig/gcc-3.3.3-20040131-glibc-2.3.2.dat crosstool-0.28-rc5/gcc-3.3.3-20040131-glibc-2.3.2.dat --- crosstool-0.28-rc5-orig/gcc-3.3.3-20040131-glibc-2.3.2.dat 2004-02-27 18:20:53.000000000 -0800 +++ crosstool-0.28-rc5/gcc-3.3.3-20040131-glibc-2.3.2.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.14 BINUTILS_URL=ftp://ftp.gnu.org/pub/gnu/binutils GCC_DIR=gcc-3.3.3-20040131 -GLIBC_DIR=glibc-2.3.2 +LIBC_DIR=glibc-2.3.2 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.24 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2 diff -Naur crosstool-0.28-rc5-orig/gcc-3.3.3-20040210-glibc-2.3.2.dat crosstool-0.28-rc5/gcc-3.3.3-20040210-glibc-2.3.2.dat --- crosstool-0.28-rc5-orig/gcc-3.3.3-20040210-glibc-2.3.2.dat 2004-02-13 15:50:26.000000000 -0800 +++ crosstool-0.28-rc5/gcc-3.3.3-20040210-glibc-2.3.2.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.14 BINUTILS_URL=ftp://ftp.gnu.org/pub/gnu/binutils GCC_DIR=gcc-3.3.3-20040210 -GLIBC_DIR=glibc-2.3.2 +LIBC_DIR=glibc-2.3.2 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.24 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2 diff -Naur crosstool-0.28-rc5-orig/gcc-3.3.3-glibc-2.1.3.dat crosstool-0.28-rc5/gcc-3.3.3-glibc-2.1.3.dat --- crosstool-0.28-rc5-orig/gcc-3.3.3-glibc-2.1.3.dat 2004-03-04 11:27:33.000000000 -0800 +++ crosstool-0.28-rc5/gcc-3.3.3-glibc-2.1.3.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,7 +1,8 @@ BINUTILS_DIR=binutils-2.14.90.0.5 BINUTILS_URL=http://www.kernel.org/pub/linux/devel/binutils GCC_DIR=gcc-3.3.3 -GLIBC_DIR=glibc-2.1.3 +LIBC_DIR=glibc-2.1.3 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.24 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.1.3 GLIBCCRYPT_FILENAME=glibc-crypt-2.1 diff -Naur crosstool-0.28-rc5-orig/gcc-3.3.3-glibc-2.3.2.dat crosstool-0.28-rc5/gcc-3.3.3-glibc-2.3.2.dat --- crosstool-0.28-rc5-orig/gcc-3.3.3-glibc-2.3.2.dat 2004-02-27 18:20:53.000000000 -0800 +++ crosstool-0.28-rc5/gcc-3.3.3-glibc-2.3.2.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.14.90.0.5 BINUTILS_URL=http://www.kernel.org/pub/linux/devel/binutils GCC_DIR=gcc-3.3.3 -GLIBC_DIR=glibc-2.3.2 +LIBC_DIR=glibc-2.3.2 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.24 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2 diff -Naur crosstool-0.28-rc5-orig/gcc-3.3.3-uclibc-0.9.23.dat crosstool-0.28-rc5/gcc-3.3.3-uclibc-0.9.23.dat --- crosstool-0.28-rc5-orig/gcc-3.3.3-uclibc-0.9.23.dat 1969-12-31 16:00:00.000000000 -0800 +++ crosstool-0.28-rc5/gcc-3.3.3-uclibc-0.9.23.dat 2004-06-19 12:17:30.000000000 -0700 @@ -0,0 +1,6 @@ +BINUTILS_DIR=binutils-2.14.90.0.5 +BINUTILS_URL=http://www.kernel.org/pub/linux/devel/binutils +GCC_DIR=gcc-3.3.3 +LIBC_DIR=uClibc-0.9.23 +C_LIBRARY=uclibc +LINUX_DIR=linux-2.4.21 diff -Naur crosstool-0.28-rc5-orig/gcc-3.3-glibc-2.2.5.dat crosstool-0.28-rc5/gcc-3.3-glibc-2.2.5.dat --- crosstool-0.28-rc5-orig/gcc-3.3-glibc-2.2.5.dat 2004-02-01 07:40:32.000000000 -0800 +++ crosstool-0.28-rc5/gcc-3.3-glibc-2.2.5.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.14 BINUTILS_URL=ftp://ftp.gnu.org/pub/gnu/binutils GCC_DIR=gcc-3.3 -GLIBC_DIR=glibc-2.2.5 +LIBC_DIR=glibc-2.2.5 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.21 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.2.5 diff -Naur crosstool-0.28-rc5-orig/gcc-3.3-glibc-2.3.2.dat crosstool-0.28-rc5/gcc-3.3-glibc-2.3.2.dat --- crosstool-0.28-rc5-orig/gcc-3.3-glibc-2.3.2.dat 2004-02-01 06:40:26.000000000 -0800 +++ crosstool-0.28-rc5/gcc-3.3-glibc-2.3.2.dat 2004-06-19 12:17:30.000000000 -0700 @@ -2,5 +2,6 @@ BINUTILS_URL=ftp://ftp.gnu.org/pub/gnu/binutils GCC_DIR=gcc-3.3 LINUX_DIR=linux-2.4.21 -GLIBC_DIR=glibc-2.3.2 +LIBC_DIR=glibc-2.3.2 +C_LIBRARY=glibc GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2 diff -Naur crosstool-0.28-rc5-orig/gcc-3.4.0-20040416-glibc-2.1.3.dat crosstool-0.28-rc5/gcc-3.4.0-20040416-glibc-2.1.3.dat --- crosstool-0.28-rc5-orig/gcc-3.4.0-20040416-glibc-2.1.3.dat 2004-04-16 22:18:36.000000000 -0700 +++ crosstool-0.28-rc5/gcc-3.4.0-20040416-glibc-2.1.3.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,7 +1,8 @@ BINUTILS_DIR=binutils-2.15.90.0.3 BINUTILS_URL=http://www.kernel.org/pub/linux/devel/binutils GCC_DIR=gcc-3.4.0-20040416 -GLIBC_DIR=glibc-2.1.3 +LIBC_DIR=glibc-2.1.3 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.21 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.1.3 GLIBCCRYPT_FILENAME=glibc-crypt-2.1 diff -Naur crosstool-0.28-rc5-orig/gcc-3.4.0-20040416-glibc-2.2.5.dat crosstool-0.28-rc5/gcc-3.4.0-20040416-glibc-2.2.5.dat --- crosstool-0.28-rc5-orig/gcc-3.4.0-20040416-glibc-2.2.5.dat 2004-04-16 22:18:43.000000000 -0700 +++ crosstool-0.28-rc5/gcc-3.4.0-20040416-glibc-2.2.5.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.15.90.0.3 BINUTILS_URL=http://www.kernel.org/pub/linux/devel/binutils GCC_DIR=gcc-3.4.0-20040416 -GLIBC_DIR=glibc-2.2.5 +LIBC_DIR=glibc-2.2.5 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.21 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.2.5 diff -Naur crosstool-0.28-rc5-orig/gcc-3.4.0-20040416-glibc-2.3.2.dat crosstool-0.28-rc5/gcc-3.4.0-20040416-glibc-2.3.2.dat --- crosstool-0.28-rc5-orig/gcc-3.4.0-20040416-glibc-2.3.2.dat 2004-04-16 22:18:50.000000000 -0700 +++ crosstool-0.28-rc5/gcc-3.4.0-20040416-glibc-2.3.2.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.15.90.0.3 BINUTILS_URL=http://www.kernel.org/pub/linux/devel/binutils GCC_DIR=gcc-3.4.0-20040416 -GLIBC_DIR=glibc-2.3.2 +LIBC_DIR=glibc-2.3.2 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.21 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2 diff -Naur crosstool-0.28-rc5-orig/gcc-3.4-20030813-glibc-2.3.2.dat crosstool-0.28-rc5/gcc-3.4-20030813-glibc-2.3.2.dat --- crosstool-0.28-rc5-orig/gcc-3.4-20030813-glibc-2.3.2.dat 2004-01-16 10:54:40.000000000 -0800 +++ crosstool-0.28-rc5/gcc-3.4-20030813-glibc-2.3.2.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.14.90.0.5 BINUTILS_URL=http://www.kernel.org/pub/linux/devel/binutils GCC_DIR=gcc-3.4-20030813 -GLIBC_DIR=glibc-2.3.2 +LIBC_DIR=glibc-2.3.2 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.21 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2 diff -Naur crosstool-0.28-rc5-orig/gcc-3.4-20030827-glibc-2.3.2.dat crosstool-0.28-rc5/gcc-3.4-20030827-glibc-2.3.2.dat --- crosstool-0.28-rc5-orig/gcc-3.4-20030827-glibc-2.3.2.dat 2004-01-16 10:54:39.000000000 -0800 +++ crosstool-0.28-rc5/gcc-3.4-20030827-glibc-2.3.2.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.14.90.0.5 BINUTILS_URL=http://www.kernel.org/pub/linux/devel/binutils GCC_DIR=gcc-3.4-20030813 -GLIBC_DIR=glibc-2.3.2 +LIBC_DIR=glibc-2.3.2 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.21 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2 diff -Naur crosstool-0.28-rc5-orig/gcc-3.4-20030903-glibc-2.3.2.dat crosstool-0.28-rc5/gcc-3.4-20030903-glibc-2.3.2.dat --- crosstool-0.28-rc5-orig/gcc-3.4-20030903-glibc-2.3.2.dat 2004-01-16 10:54:39.000000000 -0800 +++ crosstool-0.28-rc5/gcc-3.4-20030903-glibc-2.3.2.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.14.90.0.5 BINUTILS_URL=http://www.kernel.org/pub/linux/devel/binutils GCC_DIR=gcc-3.4-20030903 -GLIBC_DIR=glibc-2.3.2 +LIBC_DIR=glibc-2.3.2 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.21 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2 diff -Naur crosstool-0.28-rc5-orig/gcc-3.4-20030910-glibc-2.3.2.dat crosstool-0.28-rc5/gcc-3.4-20030910-glibc-2.3.2.dat --- crosstool-0.28-rc5-orig/gcc-3.4-20030910-glibc-2.3.2.dat 2004-01-16 10:54:39.000000000 -0800 +++ crosstool-0.28-rc5/gcc-3.4-20030910-glibc-2.3.2.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.14.90.0.5 BINUTILS_URL=http://www.kernel.org/pub/linux/devel/binutils GCC_DIR=gcc-3.4-20030910 -GLIBC_DIR=glibc-2.3.2 +LIBC_DIR=glibc-2.3.2 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.21 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2 diff -Naur crosstool-0.28-rc5-orig/gcc-3.4-20031112-glibc-2.3.2.dat crosstool-0.28-rc5/gcc-3.4-20031112-glibc-2.3.2.dat --- crosstool-0.28-rc5-orig/gcc-3.4-20031112-glibc-2.3.2.dat 2004-01-16 10:54:40.000000000 -0800 +++ crosstool-0.28-rc5/gcc-3.4-20031112-glibc-2.3.2.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.14.90.0.5 BINUTILS_URL=http://www.kernel.org/pub/linux/devel/binutils GCC_DIR=gcc-3.4-20031112 -GLIBC_DIR=glibc-2.3.2 +LIBC_DIR=glibc-2.3.2 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.21 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2 diff -Naur crosstool-0.28-rc5-orig/gcc-3.4-20040225-glibc-2.3.2.dat crosstool-0.28-rc5/gcc-3.4-20040225-glibc-2.3.2.dat --- crosstool-0.28-rc5-orig/gcc-3.4-20040225-glibc-2.3.2.dat 2004-02-27 18:20:53.000000000 -0800 +++ crosstool-0.28-rc5/gcc-3.4-20040225-glibc-2.3.2.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.14.90.0.5 BINUTILS_URL=http://www.kernel.org/pub/linux/devel/binutils GCC_DIR=gcc-3.4-20040225 -GLIBC_DIR=glibc-2.3.2 +LIBC_DIR=glibc-2.3.2 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.21 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2 diff -Naur crosstool-0.28-rc5-orig/gcc-3.4-20040414-glibc-2.3.2.dat crosstool-0.28-rc5/gcc-3.4-20040414-glibc-2.3.2.dat --- crosstool-0.28-rc5-orig/gcc-3.4-20040414-glibc-2.3.2.dat 2004-04-14 22:14:22.000000000 -0700 +++ crosstool-0.28-rc5/gcc-3.4-20040414-glibc-2.3.2.dat 2004-06-19 12:17:30.000000000 -0700 @@ -1,6 +1,7 @@ BINUTILS_DIR=binutils-2.15.90.0.2 BINUTILS_URL=http://www.kernel.org/pub/linux/devel/binutils GCC_DIR=gcc-3.4-20040414 -GLIBC_DIR=glibc-2.3.2 +LIBC_DIR=glibc-2.3.2 +C_LIBRARY=glibc LINUX_DIR=linux-2.4.21 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2 diff -Naur crosstool-0.28-rc5-orig/getandpatch.sh crosstool-0.28-rc5/getandpatch.sh --- crosstool-0.28-rc5-orig/getandpatch.sh 2004-04-16 22:22:23.000000000 -0700 +++ crosstool-0.28-rc5/getandpatch.sh 2004-06-19 12:17:30.000000000 -0700 @@ -15,7 +15,13 @@ test -z "${BINUTILS_DIR}" && abort "Please set BINUTILS_DIR to the bare filename of the binutils tarball or directory" test -z "${SRC_DIR}" && abort "Please set SRC_DIR to the directory where the source tarballs are to be unpacked" test -z "${GCC_DIR}" && abort "Please set GCC_DIR to the bare filename of the gcc tarball or directory" -test -z "${GLIBC_DIR}" && abort "Please set GLIBC_DIR to the bare filename of the glibc tarball or directory" +test -z "${LIBC_DIR}" && abort "Please set LIBC_DIR to the bare filename of the C library tarball or directory" +test -z "${C_LIBRARY}" && abort "Please set C_LIBRARY to 'glibc' or 'uclibc'" +case ${C_LIBRARY} in + glibc) ;; + uclibc) ;; + *) abort "Unsupported C library ${C_LIBRARY}; please set C_LIBRARY to 'glibc' or 'uclibc'" +esac test -z "${LINUX_DIR}" && abort "Please set LINUX_DIR to the bare filename of the kernel tarball or directory" test -z "${TARBALLS_DIR}" && abort "Please set TARBALLS_DIR to the directory to download tarballs to." test -z "${PTXDIST_DIR}" && abort "Please set PTXDIST_DIR to the bare filename of the ptxdist tarball or directory." @@ -28,7 +34,9 @@ if test -z "$QUIET_EXTRACTIONS"; then VERBOSE=-v;else VERBOSE=; fi # And one is derived. -GLIBCTHREADS_FILENAME=`echo $GLIBC_DIR | sed 's/glibc-/glibc-linuxthreads-/'` +if test "${C_LIBRARY}" = glibc ; then + GLIBCTHREADS_FILENAME=`echo $LIBC_DIR | sed 's/glibc-/glibc-linuxthreads-/'` +fi # Pattern in a patch log to indicate failure PATCHFAILMSGS="^No file to patch. Skipping patch.|^Hunk .* FAILED at" @@ -86,7 +94,7 @@ cd $SRC_DIR case $ARCHIVE_NAME in - glibc-*-2.*) echo "It's a glibc addon, so cd into glibc"; cd $GLIBC_DIR ;; + glibc-*-2.*) echo "It's a glibc addon, so cd into glibc"; cd $LIBC_DIR ;; *) ;; esac @@ -133,6 +141,14 @@ fi } +# Special version for uClibc pregenerated locale data +getuClibcLocale() { + ARCHIVE_NAME=`echo $1 | sed 's,.*/,,;'` + cd ${SRC_DIR}/${LIBC_DIR}/extra/locale + test -f ${ARCHIVE_NAME} || wget $1 + cd ${TOP_DIR} +} + # Remember where source is. TOP_DIR=${TOP_DIR-`pwd`} @@ -158,15 +174,26 @@ *) getUnpackAndPatch ftp://ftp.gnu.org/pub/gnu/gcc/$GCC_DIR.tar.gz ;; esac -getUnpackAndPatch ftp://ftp.gnu.org/pub/gnu/glibc/$GLIBC_DIR.tar.bz2 ftp://ftp.gnu.org/pub/gnu/glibc/$GLIBC_DIR.tar.gz +case $C_LIBRARY in + glibc) + getUnpackAndPatch ftp://ftp.gnu.org/pub/gnu/glibc/$LIBC_DIR.tar.bz2 ftp://ftp.gnu.org/pub/gnu/glibc/$LIBC_DIR.tar.gz + # Glibc addons must come after glibc + test x$GLIBCTREADS_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 + ;; + uclibc) + getUnpackAndPatch http://www.uclibc.org/downloads/old-releases/$LIBC_DIR.tar.bz2 || \ + getUnpackAndPatch http://www.uclibc.org/downloads/old-releases/$LIBC_DIR.tar.gz || \ + getUnpackAndPatch http://www.uclibc.org/downloads/$LIBC_DIR.tar.bz2 || \ + getUnpackAndPatch http://www.uclibc.org/downloads/$LIBC_DIR.tar.gz + getuClibcLocale http://www.uclibc.org/downloads/uClibc-locale-030818.tgz + ;; +esac case $LINUX_DIR in *2.4*) getUnpackAndPatch http://www.kernel.org/pub/linux/kernel/v2.4/$LINUX_DIR.tar.bz2 http://www.kernel.org/pub/linux/kernel/v2.4/$LINUX_DIR.tar.gz ;; *2.6*) getUnpackAndPatch http://www.kernel.org/pub/linux/kernel/v2.6/$LINUX_DIR.tar.bz2 http://www.kernel.org/pub/linux/kernel/v2.6/$LINUX_DIR.tar.gz ;; *) 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$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 # gcc's contrib/test_summary expects version stamp, normally created by contrib/update_gcc test -f $SRC_DIR/$GCC_DIR/LAST_UPDATED || echo $GCC_DIR > $SRC_DIR/$GCC_DIR/LAST_UPDATED diff -Naur crosstool-0.28-rc5-orig/patches/binutils-2.14/bfddoc-cflags-for-build.patch crosstool-0.28-rc5/patches/binutils-2.14/bfddoc-cflags-for-build.patch --- crosstool-0.28-rc5-orig/patches/binutils-2.14/bfddoc-cflags-for-build.patch 1969-12-31 16:00:00.000000000 -0800 +++ crosstool-0.28-rc5/patches/binutils-2.14/bfddoc-cflags-for-build.patch 2004-06-19 12:17:30.000000000 -0700 @@ -0,0 +1,37 @@ +From the uClibc project. + +When building for the build host (rather than the target), use the CFLAGS +definition for the build host, not the target. + +diff -urN binutils-2.14.90.0.6/bfd/doc/Makefile.am binutils-2.14.90.0.6.new/bfd/doc/Makefile.am +--- binutils-2.14.90.0.6/bfd/doc/Makefile.am 2003-07-23 10:08:09.000000000 -0500 ++++ binutils-2.14.90.0.6.new/bfd/doc/Makefile.am 2004-03-01 16:05:16.000000000 -0600 +@@ -55,10 +55,10 @@ + MKDOC = chew$(EXEEXT_FOR_BUILD) + + $(MKDOC): chew.o +- $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS) ++ $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS_FOR_BUILD) $(LOADLIBES) $(LDFLAGS) + + chew.o: chew.c +- $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c ++ $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/chew.c + + protos: libbfd.h libcoff.h bfd.h + +diff -urN binutils-2.14.90.0.6/bfd/doc/Makefile.in binutils-2.14.90.0.6.new/bfd/doc/Makefile.in +--- binutils-2.14.90.0.6/bfd/doc/Makefile.in 2003-07-23 10:08:09.000000000 -0500 ++++ binutils-2.14.90.0.6.new/bfd/doc/Makefile.in 2004-03-01 16:05:03.000000000 -0600 +@@ -469,10 +469,10 @@ + + + $(MKDOC): chew.o +- $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS) ++ $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS_FOR_BUILD) $(LOADLIBES) $(LDFLAGS) + + chew.o: chew.c +- $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c ++ $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/chew.c + + protos: libbfd.h libcoff.h bfd.h + diff -Naur crosstool-0.28-rc5-orig/patches/binutils-2.14/uclibc-target.patch crosstool-0.28-rc5/patches/binutils-2.14/uclibc-target.patch --- crosstool-0.28-rc5-orig/patches/binutils-2.14/uclibc-target.patch 1969-12-31 16:00:00.000000000 -0800 +++ crosstool-0.28-rc5/patches/binutils-2.14/uclibc-target.patch 2004-06-19 12:17:30.000000000 -0700 @@ -0,0 +1,652 @@ +Provided by the uClibc project. + +Patch to recognize and properly handle target tuples of the form +*-*-linux-uclibc*, required for building a proper uClibc toolchain. + + +diff -urN binutils-2.14.90.0.6/bfd/config.bfd binutils-2.14.90.0.6-uClibc/bfd/config.bfd +--- binutils-2.14.90.0.6/bfd/config.bfd 2003-08-21 10:28:47.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/bfd/config.bfd 2004-01-06 23:20:32.000000000 -0600 +@@ -121,7 +121,7 @@ + targ_defvec=ecoffalpha_little_vec + targ_selvecs=bfd_elf64_alpha_vec + ;; +- alpha*-*-linux-gnu* | alpha*-*-elf*) ++ alpha*-*-linux-gnu* | alpha*-*-linux-uclibc* | alpha*-*-elf*) + targ_defvec=bfd_elf64_alpha_vec + targ_selvecs=ecoffalpha_little_vec + ;; +@@ -131,7 +131,8 @@ + alpha*-*-*) + targ_defvec=ecoffalpha_little_vec + ;; +- ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf*) ++ ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | \ ++ ia64*-*-linux-uclibc* | ia64*-*-elf*) + targ_defvec=bfd_elf64_ia64_little_vec + targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec" + ;; +@@ -214,7 +215,7 @@ + targ_defvec=bfd_elf32_littlearm_vec + targ_selvecs=bfd_elf32_bigarm_vec + ;; +- armeb-*-elf | arm*b-*-linux-gnu*) ++ armeb-*-elf | arm*b-*-linux-gnu* | arm*b-*-linux-uclibc*) + targ_defvec=bfd_elf32_bigarm_vec + targ_selvecs=bfd_elf32_littlearm_vec + ;; +@@ -222,7 +223,8 @@ + targ_defvec=bfd_elf32_littlearm_vec + targ_selvecs=bfd_elf32_bigarm_vec + ;; +- arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | arm*-*-uclinux*) ++ arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-linux-uclibc* | \ ++ arm*-*-conix* | arm*-*-uclinux*) + targ_defvec=bfd_elf32_littlearm_vec + targ_selvecs=bfd_elf32_bigarm_vec + ;; +@@ -355,7 +357,7 @@ + ;; + + #ifdef BFD64 +- hppa*64*-*-linux-gnu*) ++ hppa*64*-*-linux-gnu* | hppa*64*-*-linux-uclibc*) + targ_defvec=bfd_elf64_hppa_linux_vec + targ_selvecs=bfd_elf64_hppa_vec + ;; +@@ -366,7 +368,7 @@ + ;; + #endif + +- hppa*-*-linux-gnu*) ++ hppa*-*-linux-gnu* | hppa*-*-linux-uclibc*) + targ_defvec=bfd_elf32_hppa_linux_vec + targ_selvecs=bfd_elf32_hppa_vec + ;; +@@ -488,7 +490,7 @@ + targ_selvecs=bfd_elf32_i386_vec + targ_underscore=yes + ;; +- i[3-7]86-*-linux-gnu*) ++ i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*) + targ_defvec=bfd_elf32_i386_vec + targ_selvecs="i386linux_vec bfd_efi_app_ia32_vec" + targ64_selvecs=bfd_elf64_x86_64_vec +@@ -502,7 +504,7 @@ + targ_defvec=bfd_elf64_x86_64_vec + targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec bfd_efi_app_ia32_vec" + ;; +- x86_64-*-linux-gnu*) ++ x86_64-*-linux-gnu* | x86_64-*-linux-uclibc*) + targ_defvec=bfd_elf64_x86_64_vec + targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec" + ;; +@@ -662,7 +664,7 @@ + targ_selvecs=bfd_elf32_m68k_vec + targ_underscore=yes + ;; +- m68*-*-linux-gnu*) ++ m68*-*-linux-gnu* | m68*-*-linux-uclibc*) + targ_defvec=bfd_elf32_m68k_vec + targ_selvecs=m68klinux_vec + ;; +@@ -929,7 +931,8 @@ + ;; + #endif + powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \ +- powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \ ++ powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-linux-uclibc* | \ ++ powerpc-*-rtems* | \ + powerpc-*-chorus* | powerpc-*-vxworks* | powerpc-*-windiss*) + targ_defvec=bfd_elf32_powerpc_vec + targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec" +@@ -961,8 +964,8 @@ + targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec" + ;; + powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \ +- powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\ +- powerpcle-*-rtems*) ++ powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-linux-uclibc* |\ ++ powerpcle-*-vxworks* | powerpcle-*-rtems*) + targ_defvec=bfd_elf32_powerpcle_vec + targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec" + targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec" +@@ -1110,7 +1113,7 @@ + targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec" + targ_underscore=yes + ;; +- sparc-*-linux-gnu*) ++ sparc-*-linux-gnu* | sparc-*-linux-uclibc*) + targ_defvec=bfd_elf32_sparc_vec + targ_selvecs="sparclinux_vec bfd_elf64_sparc_vec sunos_big_vec" + ;; +@@ -1157,7 +1160,7 @@ + targ_defvec=sunos_big_vec + targ_underscore=yes + ;; +- sparc64-*-linux-gnu*) ++ sparc64-*-linux-gnu* | sparc64-*-linux-uclibc*) + targ_defvec=bfd_elf64_sparc_vec + targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec" + ;; +diff -urN binutils-2.14.90.0.6/bfd/configure binutils-2.14.90.0.6-uClibc/bfd/configure +--- binutils-2.14.90.0.6/bfd/configure 2003-08-21 10:28:47.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/bfd/configure 2004-01-06 20:26:51.000000000 -0600 +@@ -1698,6 +1698,11 @@ + lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` + ;; + ++linux-uclibc*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++ ;; ++ + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' +@@ -5102,7 +5107,7 @@ + alpha*-*-freebsd*) + COREFILE='' + ;; +- alpha*-*-linux-gnu*) ++ alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/alphalinux.h"' + ;; +@@ -5161,7 +5166,7 @@ + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/i386mach3.h"' + ;; +- i[3-7]86-*-linux-gnu*) ++ i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/i386linux.h"' + ;; +@@ -5211,7 +5216,7 @@ + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/hp300bsd.h"' + ;; +- m68*-*-linux-gnu*) ++ m68*-*-linux-gnu* | m68*-*-linux-uclibc*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/m68klinux.h"' + ;; +diff -urN binutils-2.14.90.0.6/bfd/configure.in binutils-2.14.90.0.6-uClibc/bfd/configure.in +--- binutils-2.14.90.0.6/bfd/configure.in 2003-08-21 10:28:47.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/bfd/configure.in 2004-01-06 20:33:02.000000000 -0600 +@@ -153,7 +153,7 @@ + alpha*-*-freebsd*) + COREFILE='' + ;; +- alpha*-*-linux-gnu*) ++ alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/alphalinux.h"' + ;; +@@ -233,7 +233,7 @@ + TRAD_HEADER='"hosts/i386mach3.h"' + ;; + changequote(,)dnl +- i[3-7]86-*-linux-gnu*) ++ i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*) + changequote([,])dnl + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/i386linux.h"' +@@ -286,7 +286,7 @@ + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/hp300bsd.h"' + ;; +- m68*-*-linux-gnu*) ++ m68*-*-linux-gnu* | m68*-*-linux-uclibc*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/m68klinux.h"' + ;; +diff -urN binutils-2.14.90.0.6/config.sub binutils-2.14.90.0.6-uClibc/config.sub +--- binutils-2.14.90.0.6/config.sub 2003-08-21 10:28:47.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/config.sub 2004-01-06 22:56:56.000000000 -0600 +@@ -118,7 +118,7 @@ + # Here we must recognize all the valid KERNEL-OS combinations. + maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` + case $maybe_os in +- nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) ++ nto-qnx* | linux-gnu* | linux-uclibc* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; +@@ -1131,7 +1131,8 @@ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ ++ | -mingw32* | -linux-gnu* | -linux-uclibc* \ ++ | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ +diff -urN binutils-2.14.90.0.6/configure binutils-2.14.90.0.6-uClibc/configure +--- binutils-2.14.90.0.6/configure 2003-08-21 10:29:32.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/configure 2004-01-07 05:43:40.000000000 -0600 +@@ -1257,6 +1262,18 @@ + i[3456789]86-*-freebsd*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; ++ i[3456789]86-*-linux-uclibc) ++ # This section makes it possible to build newlib natively on linux. ++ # If we are using a cross compiler then don't configure newlib. ++ if test x${is_cross_compiler} != xno ; then ++ noconfigdirs="$noconfigdirs target-newlib" ++ fi ++ noconfigdirs="$noconfigdirs target-libgloss" ++ # If we are not using a cross compiler, do configure newlib. ++ # Note however, that newlib will only be configured in this situation ++ # if the --with-newlib option has been given, because otherwise ++ # 'target-newlib' will appear in skipdirs. ++ ;; + i[3456789]86-*-linux*) + # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's + # not build java stuff by default. +diff -urN binutils-2.14.90.0.6/configure.in binutils-2.14.90.0.6-uClibc/configure.in +--- binutils-2.14.90.0.6/configure.in 2003-08-21 10:29:30.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/configure.in 2004-01-07 05:44:02.000000000 -0600 +@@ -508,6 +513,19 @@ + i[[3456789]]86-*-freebsd*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; ++ i[3456789]86-*-linux-uclibc) ++ # This section makes it possible to build newlib natively on linux. ++ # If we are using a cross compiler then don't configure newlib. ++ if test x${is_cross_compiler} != xno ; then ++ noconfigdirs="$noconfigdirs target-newlib" ++ fi ++ noconfigdirs="$noconfigdirs target-libgloss" ++ build_modules= ++ # If we are not using a cross compiler, do configure newlib. ++ # Note however, that newlib will only be configured in this situation ++ # if the --with-newlib option has been given, because otherwise ++ # 'target-newlib' will appear in skipdirs. ++ ;; + i[[3456789]]86-*-linux*) + # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's + # not build java stuff by default. +diff -urN binutils-2.14.90.0.6/demangler/configure binutils-2.14.90.0.6-uClibc/demangler/configure +--- binutils-2.14.90.0.6/demangler/configure 2003-08-21 10:29:31.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/demangler/configure 2004-01-06 21:45:51.000000000 -0600 +@@ -1363,6 +1363,11 @@ + lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` + ;; + ++linux-uclibc*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++ ;; ++ + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' +diff -urN binutils-2.14.90.0.6/gas/configure binutils-2.14.90.0.6-uClibc/gas/configure +--- binutils-2.14.90.0.6/gas/configure 2003-07-23 10:08:10.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/gas/configure 2004-01-06 21:57:25.000000000 -0600 +@@ -1576,6 +1576,11 @@ + lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` + ;; + ++linux-uclibc*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++ ;; ++ + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' +@@ -2370,6 +2375,7 @@ + alpha*-*-osf*) fmt=ecoff ;; + alpha*-*-linuxecoff*) fmt=ecoff ;; + alpha*-*-linux-gnu*) fmt=elf em=linux ;; ++ alpha*-*-linux-uclibc*) fmt=elf em=linux ;; + alpha*-*-netbsd*) fmt=elf em=nbsd ;; + alpha*-*-openbsd*) fmt=elf em=obsd ;; + +@@ -2386,6 +2392,7 @@ + arm*-*-conix*) fmt=elf ;; + arm-*-linux*aout*) fmt=aout em=linux ;; + arm*-*-linux-gnu*) fmt=elf em=linux ;; ++ arm*-*-linux-uclibc*) fmt=elf em=linux ;; + arm*-*-uclinux*) fmt=elf em=linux ;; + arm-*-netbsdelf*) fmt=elf em=nbsd ;; + arm-*-*n*bsd*) fmt=aout em=nbsd ;; +@@ -2400,6 +2407,7 @@ + avr-*-*) fmt=elf ;; + + cris-*-linux-gnu*) fmt=multi bfd_gas=yes em=linux ;; ++ cris-*-linux-uclibc*) fmt=multi bfd_gas=yes em=linux ;; + cris-*-*) fmt=multi bfd_gas=yes ;; + + d10v-*-*) fmt=elf ;; +@@ -2455,7 +2463,9 @@ + i386-*-linux*oldld) fmt=aout em=linux ;; + i386-*-linux*coff*) fmt=coff em=linux ;; + i386-*-linux-gnu*) fmt=elf em=linux ;; ++ i386-*-linux-uclibc*) fmt=elf em=linux ;; + x86_64-*-linux-gnu*) fmt=elf em=linux ;; ++ x86_64-*-linux-uclibc*) fmt=elf em=linux ;; + i386-*-lynxos*) fmt=coff em=lynx ;; + i386-*-sysv[45]*) fmt=elf ;; + i386-*-solaris*) fmt=elf ;; +@@ -2512,6 +2522,7 @@ + ia64-*-elf*) fmt=elf ;; + ia64-*-aix*) fmt=elf em=ia64aix ;; + ia64-*-linux-gnu*) fmt=elf em=linux ;; ++ ia64-*-linux-uclibc*) fmt=elf em=linux ;; + ia64-*-hpux*) fmt=elf em=hpux ;; + ia64-*-netbsd*) fmt=elf em=nbsd ;; + +@@ -2538,6 +2549,7 @@ + m68k-*-hpux*) fmt=hp300 em=hp300 ;; + m68k-*-linux*aout*) fmt=aout em=linux ;; + m68k-*-linux-gnu*) fmt=elf em=linux ;; ++ m68k-*-linux-uclibc*) fmt=elf em=linux ;; + m68k-*-gnu*) fmt=elf ;; + m68k-*-lynxos*) fmt=coff em=lynx ;; + m68k-*-netbsdelf*) fmt=elf em=nbsd ;; +@@ -2592,6 +2604,7 @@ + ppc-*-beos*) fmt=coff ;; + ppc-*-*n*bsd* | ppc-*-elf*) fmt=elf ;; + ppc-*-eabi* | ppc-*-sysv4*) fmt=elf ;; ++ ppc-*-linux-uclibc* | \ + ppc-*-linux-gnu*) fmt=elf + case "$endian" in + big) ;; +@@ -2616,7 +2629,9 @@ + ppc-*-kaos*) fmt=elf ;; + + s390x-*-linux-gnu*) fmt=elf em=linux ;; ++ s390x-*-linux-uclibc*) fmt=elf em=linux ;; + s390-*-linux-gnu*) fmt=elf em=linux ;; ++ s390-*-linux-uclibc*) fmt=elf em=linux ;; + + sh*-*-linux*) fmt=elf em=linux + case ${cpu} in +@@ -2649,6 +2664,7 @@ + sparc-*-coff) fmt=coff ;; + sparc-*-linux*aout*) fmt=aout em=linux ;; + sparc-*-linux-gnu*) fmt=elf em=linux ;; ++ sparc-*-linux-uclibc*) fmt=elf em=linux ;; + sparc-*-lynxos*) fmt=coff em=lynx ;; + sparc-fujitsu-none) fmt=aout ;; + sparc-*-elf) fmt=elf ;; +diff -urN binutils-2.14.90.0.6/gas/configure.in binutils-2.14.90.0.6-uClibc/gas/configure.in +--- binutils-2.14.90.0.6/gas/configure.in 2003-07-23 10:08:10.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/gas/configure.in 2004-01-06 21:57:26.000000000 -0600 +@@ -184,6 +184,7 @@ + alpha*-*-osf*) fmt=ecoff ;; + alpha*-*-linuxecoff*) fmt=ecoff ;; + alpha*-*-linux-gnu*) fmt=elf em=linux ;; ++ alpha*-*-linux-uclibc*) fmt=elf em=linux ;; + alpha*-*-netbsd*) fmt=elf em=nbsd ;; + alpha*-*-openbsd*) fmt=elf em=obsd ;; + +@@ -200,6 +201,7 @@ + arm*-*-conix*) fmt=elf ;; + arm-*-linux*aout*) fmt=aout em=linux ;; + arm*-*-linux-gnu*) fmt=elf em=linux ;; ++ arm*-*-linux-uclibc*) fmt=elf em=linux ;; + arm*-*-uclinux*) fmt=elf em=linux ;; + arm-*-netbsdelf*) fmt=elf em=nbsd ;; + arm-*-*n*bsd*) fmt=aout em=nbsd ;; +@@ -214,6 +216,7 @@ + avr-*-*) fmt=elf ;; + + cris-*-linux-gnu*) fmt=multi bfd_gas=yes em=linux ;; ++ cris-*-linux-uclibc*) fmt=multi bfd_gas=yes em=linux ;; + cris-*-*) fmt=multi bfd_gas=yes ;; + + d10v-*-*) fmt=elf ;; +@@ -269,7 +272,9 @@ + i386-*-linux*oldld) fmt=aout em=linux ;; + i386-*-linux*coff*) fmt=coff em=linux ;; + i386-*-linux-gnu*) fmt=elf em=linux ;; ++ i386-*-linux-uclibc*) fmt=elf em=linux ;; + x86_64-*-linux-gnu*) fmt=elf em=linux ;; ++ x86_64-*-linux-uclibc*) fmt=elf em=linux ;; + i386-*-lynxos*) fmt=coff em=lynx ;; + changequote(,)dnl + i386-*-sysv[45]*) fmt=elf ;; +@@ -322,6 +327,7 @@ + ia64-*-elf*) fmt=elf ;; + ia64-*-aix*) fmt=elf em=ia64aix ;; + ia64-*-linux-gnu*) fmt=elf em=linux ;; ++ ia64-*-linux-uclibc*) fmt=elf em=linux ;; + ia64-*-hpux*) fmt=elf em=hpux ;; + ia64-*-netbsd*) fmt=elf em=nbsd ;; + +@@ -348,6 +354,7 @@ + m68k-*-hpux*) fmt=hp300 em=hp300 ;; + m68k-*-linux*aout*) fmt=aout em=linux ;; + m68k-*-linux-gnu*) fmt=elf em=linux ;; ++ m68k-*-linux-uclibc*) fmt=elf em=linux ;; + m68k-*-gnu*) fmt=elf ;; + m68k-*-lynxos*) fmt=coff em=lynx ;; + m68k-*-netbsdelf*) fmt=elf em=nbsd ;; +@@ -402,6 +409,7 @@ + ppc-*-beos*) fmt=coff ;; + ppc-*-*n*bsd* | ppc-*-elf*) fmt=elf ;; + ppc-*-eabi* | ppc-*-sysv4*) fmt=elf ;; ++ ppc-*-linux-uclibc* | \ + ppc-*-linux-gnu*) fmt=elf + case "$endian" in + big) ;; +@@ -424,7 +432,9 @@ + ppc-*-kaos*) fmt=elf ;; + + s390x-*-linux-gnu*) fmt=elf em=linux ;; ++ s390x-*-linux-uclibc*) fmt=elf em=linux ;; + s390-*-linux-gnu*) fmt=elf em=linux ;; ++ s390-*-linux-uclibc*) fmt=elf em=linux ;; + + sh*-*-linux*) fmt=elf em=linux + case ${cpu} in +@@ -457,6 +467,7 @@ + sparc-*-coff) fmt=coff ;; + sparc-*-linux*aout*) fmt=aout em=linux ;; + sparc-*-linux-gnu*) fmt=elf em=linux ;; ++ sparc-*-linux-uclibc*) fmt=elf em=linux ;; + sparc-*-lynxos*) fmt=coff em=lynx ;; + sparc-fujitsu-none) fmt=aout ;; + sparc-*-elf) fmt=elf ;; +diff -urN binutils-2.14.90.0.6/ld/configure binutils-2.14.90.0.6-uClibc/ld/configure +--- binutils-2.14.90.0.6/ld/configure 2003-05-05 16:46:49.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/ld/configure 2004-01-06 21:59:31.000000000 -0600 +@@ -1578,6 +1578,11 @@ + lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` + ;; + ++linux-uclibc*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++ ;; ++ + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' +diff -urN binutils-2.14.90.0.6/ld/configure.tgt binutils-2.14.90.0.6-uClibc/ld/configure.tgt +--- binutils-2.14.90.0.6/ld/configure.tgt 2003-08-21 10:28:48.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/ld/configure.tgt 2004-01-06 22:09:40.000000000 -0600 +@@ -30,6 +30,7 @@ + targ_extra_emuls="criself crislinux" + targ_extra_libpath=$targ_extra_emuls ;; + cris-*-linux-gnu*) targ_emul=crislinux ;; ++cris-*-linux-uclibc*) targ_emul=crislinux ;; + cris-*-*) targ_emul=criself + targ_extra_emuls="crisaout crislinux" + targ_extra_libpath=$targ_extra_emuls ;; +@@ -59,14 +60,16 @@ + tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/aout//'` + tdir_sun4=sparc-sun-sunos4 + ;; +-sparc64-*-linux-gnu*) targ_emul=elf64_sparc ++sparc64-*-linux-gnu* | sparc64-*-linux-uclibc*) \ ++ targ_emul=elf64_sparc + targ_extra_emuls="elf32_sparc sparclinux sun4" + targ_extra_libpath=elf32_sparc + tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'` + tdir_sparclinux=${tdir_elf32_sparc}aout + tdir_sun4=sparc-sun-sunos4 + ;; +-sparc*-*-linux-gnu*) targ_emul=elf32_sparc ++sparc*-*-linux-gnu* | sparc*-*-linux-uclibc*) \ ++ targ_emul=elf32_sparc + targ_extra_emuls="sparclinux elf64_sparc sun4" + targ_extra_libpath=elf64_sparc + tdir_sparclinux=${targ_alias}aout +@@ -124,7 +127,7 @@ + m68*-ericsson-ose) targ_emul=sun3 ;; + m68*-apple-aux*) targ_emul=m68kaux ;; + *-tandem-none) targ_emul=st2000 ;; +-i370-*-elf* | i370-*-linux-gnu*) targ_emul=elf32i370 ;; ++i370-*-elf* | i370-*-linux-gnu* | i370-*-linux-uclibc*) targ_emul=elf32i370 ;; + i[3-7]86-*-nto-qnx*) targ_emul=i386nto ;; + i[3-7]86-*-vsta) targ_emul=vsta ;; + i[3-7]86-go32-rtems*) targ_emul=i386go32 ;; +@@ -148,14 +151,16 @@ + tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'` + ;; + i[3-7]86-*-linux*oldld) targ_emul=i386linux; targ_extra_emuls=elf_i386 ;; +-i[3-7]86-*-linux-gnu*) targ_emul=elf_i386 ++i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*) \ ++ targ_emul=elf_i386 + targ_extra_emuls=i386linux + if test x${want64} = xtrue; then + targ_extra_emuls="$targ_extra_emuls elf_x86_64" + fi + tdir_i386linux=${targ_alias}aout + ;; +-x86_64-*-linux-gnu*) targ_emul=elf_x86_64 ++x86_64-*-linux-gnu* | x86_64-*-linux-uclibc*) \ ++ targ_emul=elf_x86_64 + targ_extra_emuls="elf_i386 i386linux" + targ_extra_libpath=elf_i386 + tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'` +@@ -250,10 +255,13 @@ + arm9e-*-elf) targ_emul=armelf ;; + arm-*-oabi) targ_emul=armelf_oabi ;; + arm*b-*-linux-gnu*) targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;; ++arm*b-*-linux-uclibc*) targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;; + arm*-*-linux-gnu*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;; ++arm*-*-linux-uclibc*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;; + arm*-*-uclinux*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;; + arm*-*-conix*) targ_emul=armelf ;; +-thumb-*-linux-gnu* | thumb-*-uclinux*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;; ++thumb-*-linux-gnu* | thumb-*-linux-uclibc* | thumb-*-uclinux*) \ ++ targ_emul=armelf_linux; targ_extra_emuls=armelf ;; + strongarm-*-coff) targ_emul=armcoff ;; + strongarm-*-elf) targ_emul=armelf ;; + strongarm-*-kaos*) targ_emul=armelf ;; +@@ -354,7 +362,8 @@ + targ_extra_emuls=m68kelf + tdir_m68kelf=`echo ${targ_alias} | sed -e 's/aout//'` + ;; +-m68k-*-linux-gnu*) targ_emul=m68kelf ++m68k-*-linux-gnu* | m68k-*-linux-uclibc*) \ ++ targ_emul=m68kelf + targ_extra_emuls=m68klinux + tdir_m68klinux=`echo ${targ_alias} | sed -e 's/linux/linuxaout/'` + ;; +@@ -370,9 +379,9 @@ + m68*-*-psos*) targ_emul=m68kpsos ;; + m68*-*-rtemscoff*) targ_emul=m68kcoff ;; + m68*-*-rtems*) targ_emul=m68kelf ;; +-hppa*64*-*-linux-gnu*) targ_emul=hppa64linux ;; ++hppa*64*-*-linux-gnu* | hppa*64*-*-linux-uclibc*) targ_emul=hppa64linux ;; + hppa*64*-*) targ_emul=elf64hppa ;; +-hppa*-*-linux-gnu*) targ_emul=hppalinux ;; ++hppa*-*-linux-gnu* | hppa*-*-linux-uclibc*) targ_emul=hppalinux ;; + hppa*-*-*elf*) targ_emul=hppaelf ;; + hppa*-*-lites*) targ_emul=hppaelf ;; + hppa*-*-netbsd*) targ_emul=hppanbsd ;; +@@ -416,16 +425,20 @@ + mips*-*-rtems*) targ_emul=elf32ebmip ;; + mips*el-*-vxworks*) targ_emul=elf32elmip ;; + mips*-*-vxworks*) targ_emul=elf32ebmip ;; +-mips64*el-*-linux-gnu*) targ_emul=elf32ltsmipn32 ++mips64*el-*-linux-gnu* | mips64*el-*-linux-uclibc*) \ ++ targ_emul=elf32ltsmipn32 + targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip" + ;; +-mips64*-*-linux-gnu*) targ_emul=elf32btsmipn32 ++mips64*-*-linux-gnu* | mips64*-*-linux-uclibc*) \ ++ targ_emul=elf32btsmipn32 + targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip" + ;; +-mips*el-*-linux-gnu*) targ_emul=elf32ltsmip ++mips*el-*-linux-gnu* | mips*el-*-linux-uclibc*) \ ++ targ_emul=elf32ltsmip + targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip" + ;; +-mips*-*-linux-gnu*) targ_emul=elf32btsmip ++mips*-*-linux-gnu* | mips*-*-linux-uclibc*) \ ++ targ_emul=elf32btsmip + targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip" + ;; + mips*-*-lnews*) targ_emul=mipslnews ;; +@@ -447,6 +460,10 @@ + alpha*-*-linux-gnu*) targ_emul=elf64alpha targ_extra_emuls=alpha + tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'` + ;; ++alpha*-*-linux-uclibc*) targ_emul=elf64alpha targ_extra_emuls=alpha ++ # The following needs to be checked... ++ tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'` ++ ;; + alpha*-*-osf*) targ_emul=alpha ;; + alpha*-*-gnu*) targ_emul=elf64alpha ;; + alpha*-*-netware*) targ_emul=alpha ;; +diff -urN binutils-2.14.90.0.6/libtool.m4 binutils-2.14.90.0.6-uClibc/libtool.m4 +--- binutils-2.14.90.0.6/libtool.m4 2003-05-05 16:46:46.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/libtool.m4 2004-01-06 20:30:39.000000000 -0600 +@@ -645,6 +645,11 @@ + lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` + ;; + ++linux-uclibc*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++ ;; ++ + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'] +diff -urN binutils-2.14.90.0.6/ltconfig binutils-2.14.90.0.6-uClibc/ltconfig +--- binutils-2.14.90.0.6/ltconfig 2003-07-23 10:08:08.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/ltconfig 2004-01-06 21:05:11.000000000 -0600 +@@ -603,6 +603,7 @@ + # Transform linux* to *-*-linux-gnu*, to support old configure scripts. + case $host_os in + linux-gnu*) ;; ++linux-uclibc*) ;; + linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` + esac + +@@ -1259,6 +1260,24 @@ + dynamic_linker='GNU/Linux ld.so' + ;; + ++linux-uclibc*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ # This implies no fast_install, which is unacceptable. ++ # Some rework will be needed to allow for fast_install ++ # before this can be enabled. ++ # Note: copied from linux-gnu, and may not be appropriate. ++ hardcode_into_libs=yes ++ # Assume using the uClibc dynamic linker. ++ dynamic_linker="uClibc ld.so" ++ ;; ++ + netbsd*) + need_lib_prefix=no + need_version=no diff -Naur crosstool-0.28-rc5-orig/patches/binutils-2.14.90.0.5/bfddoc-cflags-for-build.patch crosstool-0.28-rc5/patches/binutils-2.14.90.0.5/bfddoc-cflags-for-build.patch --- crosstool-0.28-rc5-orig/patches/binutils-2.14.90.0.5/bfddoc-cflags-for-build.patch 1969-12-31 16:00:00.000000000 -0800 +++ crosstool-0.28-rc5/patches/binutils-2.14.90.0.5/bfddoc-cflags-for-build.patch 2004-06-19 12:17:30.000000000 -0700 @@ -0,0 +1,37 @@ +From the uClibc project. + +When building for the build host (rather than the target), use the CFLAGS +definition for the build host, not the target. + +diff -urN binutils-2.14.90.0.6/bfd/doc/Makefile.am binutils-2.14.90.0.6.new/bfd/doc/Makefile.am +--- binutils-2.14.90.0.6/bfd/doc/Makefile.am 2003-07-23 10:08:09.000000000 -0500 ++++ binutils-2.14.90.0.6.new/bfd/doc/Makefile.am 2004-03-01 16:05:16.000000000 -0600 +@@ -55,10 +55,10 @@ + MKDOC = chew$(EXEEXT_FOR_BUILD) + + $(MKDOC): chew.o +- $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS) ++ $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS_FOR_BUILD) $(LOADLIBES) $(LDFLAGS) + + chew.o: chew.c +- $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c ++ $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/chew.c + + protos: libbfd.h libcoff.h bfd.h + +diff -urN binutils-2.14.90.0.6/bfd/doc/Makefile.in binutils-2.14.90.0.6.new/bfd/doc/Makefile.in +--- binutils-2.14.90.0.6/bfd/doc/Makefile.in 2003-07-23 10:08:09.000000000 -0500 ++++ binutils-2.14.90.0.6.new/bfd/doc/Makefile.in 2004-03-01 16:05:03.000000000 -0600 +@@ -469,10 +469,10 @@ + + + $(MKDOC): chew.o +- $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS) $(LOADLIBES) $(LDFLAGS) ++ $(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS_FOR_BUILD) $(LOADLIBES) $(LDFLAGS) + + chew.o: chew.c +- $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS) $(srcdir)/chew.c ++ $(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/chew.c + + protos: libbfd.h libcoff.h bfd.h + diff -Naur crosstool-0.28-rc5-orig/patches/binutils-2.14.90.0.5/uclibc-target.patch crosstool-0.28-rc5/patches/binutils-2.14.90.0.5/uclibc-target.patch --- crosstool-0.28-rc5-orig/patches/binutils-2.14.90.0.5/uclibc-target.patch 1969-12-31 16:00:00.000000000 -0800 +++ crosstool-0.28-rc5/patches/binutils-2.14.90.0.5/uclibc-target.patch 2004-06-19 12:17:30.000000000 -0700 @@ -0,0 +1,652 @@ +Provided by the uClibc project. + +Patch to recognize and properly handle target tuples of the form +*-*-linux-uclibc*, required for building a proper uClibc toolchain. + + +diff -urN binutils-2.14.90.0.6/bfd/config.bfd binutils-2.14.90.0.6-uClibc/bfd/config.bfd +--- binutils-2.14.90.0.6/bfd/config.bfd 2003-08-21 10:28:47.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/bfd/config.bfd 2004-01-06 23:20:32.000000000 -0600 +@@ -121,7 +121,7 @@ + targ_defvec=ecoffalpha_little_vec + targ_selvecs=bfd_elf64_alpha_vec + ;; +- alpha*-*-linux-gnu* | alpha*-*-elf*) ++ alpha*-*-linux-gnu* | alpha*-*-linux-uclibc* | alpha*-*-elf*) + targ_defvec=bfd_elf64_alpha_vec + targ_selvecs=ecoffalpha_little_vec + ;; +@@ -131,7 +131,8 @@ + alpha*-*-*) + targ_defvec=ecoffalpha_little_vec + ;; +- ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf*) ++ ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | \ ++ ia64*-*-linux-uclibc* | ia64*-*-elf*) + targ_defvec=bfd_elf64_ia64_little_vec + targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec" + ;; +@@ -214,7 +215,7 @@ + targ_defvec=bfd_elf32_littlearm_vec + targ_selvecs=bfd_elf32_bigarm_vec + ;; +- armeb-*-elf | arm*b-*-linux-gnu*) ++ armeb-*-elf | arm*b-*-linux-gnu* | arm*b-*-linux-uclibc*) + targ_defvec=bfd_elf32_bigarm_vec + targ_selvecs=bfd_elf32_littlearm_vec + ;; +@@ -222,7 +223,8 @@ + targ_defvec=bfd_elf32_littlearm_vec + targ_selvecs=bfd_elf32_bigarm_vec + ;; +- arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | arm*-*-uclinux*) ++ arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-linux-uclibc* | \ ++ arm*-*-conix* | arm*-*-uclinux*) + targ_defvec=bfd_elf32_littlearm_vec + targ_selvecs=bfd_elf32_bigarm_vec + ;; +@@ -355,7 +357,7 @@ + ;; + + #ifdef BFD64 +- hppa*64*-*-linux-gnu*) ++ hppa*64*-*-linux-gnu* | hppa*64*-*-linux-uclibc*) + targ_defvec=bfd_elf64_hppa_linux_vec + targ_selvecs=bfd_elf64_hppa_vec + ;; +@@ -366,7 +368,7 @@ + ;; + #endif + +- hppa*-*-linux-gnu*) ++ hppa*-*-linux-gnu* | hppa*-*-linux-uclibc*) + targ_defvec=bfd_elf32_hppa_linux_vec + targ_selvecs=bfd_elf32_hppa_vec + ;; +@@ -488,7 +490,7 @@ + targ_selvecs=bfd_elf32_i386_vec + targ_underscore=yes + ;; +- i[3-7]86-*-linux-gnu*) ++ i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*) + targ_defvec=bfd_elf32_i386_vec + targ_selvecs="i386linux_vec bfd_efi_app_ia32_vec" + targ64_selvecs=bfd_elf64_x86_64_vec +@@ -502,7 +504,7 @@ + targ_defvec=bfd_elf64_x86_64_vec + targ_selvecs="bfd_elf32_i386_vec i386netbsd_vec i386coff_vec bfd_efi_app_ia32_vec" + ;; +- x86_64-*-linux-gnu*) ++ x86_64-*-linux-gnu* | x86_64-*-linux-uclibc*) + targ_defvec=bfd_elf64_x86_64_vec + targ_selvecs="bfd_elf32_i386_vec i386linux_vec bfd_efi_app_ia32_vec" + ;; +@@ -662,7 +664,7 @@ + targ_selvecs=bfd_elf32_m68k_vec + targ_underscore=yes + ;; +- m68*-*-linux-gnu*) ++ m68*-*-linux-gnu* | m68*-*-linux-uclibc*) + targ_defvec=bfd_elf32_m68k_vec + targ_selvecs=m68klinux_vec + ;; +@@ -929,7 +931,8 @@ + ;; + #endif + powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \ +- powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-rtems* | \ ++ powerpc-*-solaris2* | powerpc-*-linux-gnu* | powerpc-*-linux-uclibc* | \ ++ powerpc-*-rtems* | \ + powerpc-*-chorus* | powerpc-*-vxworks* | powerpc-*-windiss*) + targ_defvec=bfd_elf32_powerpc_vec + targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec" +@@ -961,8 +964,8 @@ + targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec" + ;; + powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \ +- powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-vxworks* |\ +- powerpcle-*-rtems*) ++ powerpcle-*-solaris2* | powerpcle-*-linux-gnu* | powerpcle-*-linux-uclibc* |\ ++ powerpcle-*-vxworks* | powerpcle-*-rtems*) + targ_defvec=bfd_elf32_powerpcle_vec + targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec ppcboot_vec" + targ64_selvecs="bfd_elf64_powerpc_vec bfd_elf64_powerpcle_vec" +@@ -1110,7 +1113,7 @@ + targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec" + targ_underscore=yes + ;; +- sparc-*-linux-gnu*) ++ sparc-*-linux-gnu* | sparc-*-linux-uclibc*) + targ_defvec=bfd_elf32_sparc_vec + targ_selvecs="sparclinux_vec bfd_elf64_sparc_vec sunos_big_vec" + ;; +@@ -1157,7 +1160,7 @@ + targ_defvec=sunos_big_vec + targ_underscore=yes + ;; +- sparc64-*-linux-gnu*) ++ sparc64-*-linux-gnu* | sparc64-*-linux-uclibc*) + targ_defvec=bfd_elf64_sparc_vec + targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec" + ;; +diff -urN binutils-2.14.90.0.6/bfd/configure binutils-2.14.90.0.6-uClibc/bfd/configure +--- binutils-2.14.90.0.6/bfd/configure 2003-08-21 10:28:47.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/bfd/configure 2004-01-06 20:26:51.000000000 -0600 +@@ -1698,6 +1698,11 @@ + lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` + ;; + ++linux-uclibc*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++ ;; ++ + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' +@@ -5102,7 +5107,7 @@ + alpha*-*-freebsd*) + COREFILE='' + ;; +- alpha*-*-linux-gnu*) ++ alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/alphalinux.h"' + ;; +@@ -5161,7 +5166,7 @@ + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/i386mach3.h"' + ;; +- i[3-7]86-*-linux-gnu*) ++ i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/i386linux.h"' + ;; +@@ -5211,7 +5216,7 @@ + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/hp300bsd.h"' + ;; +- m68*-*-linux-gnu*) ++ m68*-*-linux-gnu* | m68*-*-linux-uclibc*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/m68klinux.h"' + ;; +diff -urN binutils-2.14.90.0.6/bfd/configure.in binutils-2.14.90.0.6-uClibc/bfd/configure.in +--- binutils-2.14.90.0.6/bfd/configure.in 2003-08-21 10:28:47.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/bfd/configure.in 2004-01-06 20:33:02.000000000 -0600 +@@ -153,7 +153,7 @@ + alpha*-*-freebsd*) + COREFILE='' + ;; +- alpha*-*-linux-gnu*) ++ alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/alphalinux.h"' + ;; +@@ -233,7 +233,7 @@ + TRAD_HEADER='"hosts/i386mach3.h"' + ;; + changequote(,)dnl +- i[3-7]86-*-linux-gnu*) ++ i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*) + changequote([,])dnl + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/i386linux.h"' +@@ -286,7 +286,7 @@ + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/hp300bsd.h"' + ;; +- m68*-*-linux-gnu*) ++ m68*-*-linux-gnu* | m68*-*-linux-uclibc*) + COREFILE=trad-core.lo + TRAD_HEADER='"hosts/m68klinux.h"' + ;; +diff -urN binutils-2.14.90.0.6/config.sub binutils-2.14.90.0.6-uClibc/config.sub +--- binutils-2.14.90.0.6/config.sub 2003-08-21 10:28:47.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/config.sub 2004-01-06 22:56:56.000000000 -0600 +@@ -118,7 +118,7 @@ + # Here we must recognize all the valid KERNEL-OS combinations. + maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` + case $maybe_os in +- nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) ++ nto-qnx* | linux-gnu* | linux-uclibc* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; +@@ -1131,7 +1131,8 @@ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ ++ | -mingw32* | -linux-gnu* | -linux-uclibc* \ ++ | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ +diff -urN binutils-2.14.90.0.6/configure binutils-2.14.90.0.6-uClibc/configure +--- binutils-2.14.90.0.6/configure 2003-08-21 10:29:32.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/configure 2004-01-07 05:43:40.000000000 -0600 +@@ -1257,6 +1262,18 @@ + i[3456789]86-*-freebsd*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; ++ i[3456789]86-*-linux-uclibc) ++ # This section makes it possible to build newlib natively on linux. ++ # If we are using a cross compiler then don't configure newlib. ++ if test x${is_cross_compiler} != xno ; then ++ noconfigdirs="$noconfigdirs target-newlib" ++ fi ++ noconfigdirs="$noconfigdirs target-libgloss" ++ # If we are not using a cross compiler, do configure newlib. ++ # Note however, that newlib will only be configured in this situation ++ # if the --with-newlib option has been given, because otherwise ++ # 'target-newlib' will appear in skipdirs. ++ ;; + i[3456789]86-*-linux*) + # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's + # not build java stuff by default. +diff -urN binutils-2.14.90.0.6/configure.in binutils-2.14.90.0.6-uClibc/configure.in +--- binutils-2.14.90.0.6/configure.in 2003-08-21 10:29:30.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/configure.in 2004-01-07 05:44:02.000000000 -0600 +@@ -508,6 +513,19 @@ + i[[3456789]]86-*-freebsd*) + noconfigdirs="$noconfigdirs target-newlib target-libgloss" + ;; ++ i[3456789]86-*-linux-uclibc) ++ # This section makes it possible to build newlib natively on linux. ++ # If we are using a cross compiler then don't configure newlib. ++ if test x${is_cross_compiler} != xno ; then ++ noconfigdirs="$noconfigdirs target-newlib" ++ fi ++ noconfigdirs="$noconfigdirs target-libgloss" ++ build_modules= ++ # If we are not using a cross compiler, do configure newlib. ++ # Note however, that newlib will only be configured in this situation ++ # if the --with-newlib option has been given, because otherwise ++ # 'target-newlib' will appear in skipdirs. ++ ;; + i[[3456789]]86-*-linux*) + # The GCC port for glibc1 has no MD_FALLBACK_FRAME_STATE_FOR, so let's + # not build java stuff by default. +diff -urN binutils-2.14.90.0.6/demangler/configure binutils-2.14.90.0.6-uClibc/demangler/configure +--- binutils-2.14.90.0.6/demangler/configure 2003-08-21 10:29:31.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/demangler/configure 2004-01-06 21:45:51.000000000 -0600 +@@ -1363,6 +1363,11 @@ + lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` + ;; + ++linux-uclibc*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++ ;; ++ + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' +diff -urN binutils-2.14.90.0.6/gas/configure binutils-2.14.90.0.6-uClibc/gas/configure +--- binutils-2.14.90.0.6/gas/configure 2003-07-23 10:08:10.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/gas/configure 2004-01-06 21:57:25.000000000 -0600 +@@ -1576,6 +1576,11 @@ + lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` + ;; + ++linux-uclibc*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++ ;; ++ + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' +@@ -2370,6 +2375,7 @@ + alpha*-*-osf*) fmt=ecoff ;; + alpha*-*-linuxecoff*) fmt=ecoff ;; + alpha*-*-linux-gnu*) fmt=elf em=linux ;; ++ alpha*-*-linux-uclibc*) fmt=elf em=linux ;; + alpha*-*-netbsd*) fmt=elf em=nbsd ;; + alpha*-*-openbsd*) fmt=elf em=obsd ;; + +@@ -2386,6 +2392,7 @@ + arm*-*-conix*) fmt=elf ;; + arm-*-linux*aout*) fmt=aout em=linux ;; + arm*-*-linux-gnu*) fmt=elf em=linux ;; ++ arm*-*-linux-uclibc*) fmt=elf em=linux ;; + arm*-*-uclinux*) fmt=elf em=linux ;; + arm-*-netbsdelf*) fmt=elf em=nbsd ;; + arm-*-*n*bsd*) fmt=aout em=nbsd ;; +@@ -2400,6 +2407,7 @@ + avr-*-*) fmt=elf ;; + + cris-*-linux-gnu*) fmt=multi bfd_gas=yes em=linux ;; ++ cris-*-linux-uclibc*) fmt=multi bfd_gas=yes em=linux ;; + cris-*-*) fmt=multi bfd_gas=yes ;; + + d10v-*-*) fmt=elf ;; +@@ -2455,7 +2463,9 @@ + i386-*-linux*oldld) fmt=aout em=linux ;; + i386-*-linux*coff*) fmt=coff em=linux ;; + i386-*-linux-gnu*) fmt=elf em=linux ;; ++ i386-*-linux-uclibc*) fmt=elf em=linux ;; + x86_64-*-linux-gnu*) fmt=elf em=linux ;; ++ x86_64-*-linux-uclibc*) fmt=elf em=linux ;; + i386-*-lynxos*) fmt=coff em=lynx ;; + i386-*-sysv[45]*) fmt=elf ;; + i386-*-solaris*) fmt=elf ;; +@@ -2512,6 +2522,7 @@ + ia64-*-elf*) fmt=elf ;; + ia64-*-aix*) fmt=elf em=ia64aix ;; + ia64-*-linux-gnu*) fmt=elf em=linux ;; ++ ia64-*-linux-uclibc*) fmt=elf em=linux ;; + ia64-*-hpux*) fmt=elf em=hpux ;; + ia64-*-netbsd*) fmt=elf em=nbsd ;; + +@@ -2538,6 +2549,7 @@ + m68k-*-hpux*) fmt=hp300 em=hp300 ;; + m68k-*-linux*aout*) fmt=aout em=linux ;; + m68k-*-linux-gnu*) fmt=elf em=linux ;; ++ m68k-*-linux-uclibc*) fmt=elf em=linux ;; + m68k-*-gnu*) fmt=elf ;; + m68k-*-lynxos*) fmt=coff em=lynx ;; + m68k-*-netbsdelf*) fmt=elf em=nbsd ;; +@@ -2592,6 +2604,7 @@ + ppc-*-beos*) fmt=coff ;; + ppc-*-*n*bsd* | ppc-*-elf*) fmt=elf ;; + ppc-*-eabi* | ppc-*-sysv4*) fmt=elf ;; ++ ppc-*-linux-uclibc* | \ + ppc-*-linux-gnu*) fmt=elf + case "$endian" in + big) ;; +@@ -2616,7 +2629,9 @@ + ppc-*-kaos*) fmt=elf ;; + + s390x-*-linux-gnu*) fmt=elf em=linux ;; ++ s390x-*-linux-uclibc*) fmt=elf em=linux ;; + s390-*-linux-gnu*) fmt=elf em=linux ;; ++ s390-*-linux-uclibc*) fmt=elf em=linux ;; + + sh*-*-linux*) fmt=elf em=linux + case ${cpu} in +@@ -2649,6 +2664,7 @@ + sparc-*-coff) fmt=coff ;; + sparc-*-linux*aout*) fmt=aout em=linux ;; + sparc-*-linux-gnu*) fmt=elf em=linux ;; ++ sparc-*-linux-uclibc*) fmt=elf em=linux ;; + sparc-*-lynxos*) fmt=coff em=lynx ;; + sparc-fujitsu-none) fmt=aout ;; + sparc-*-elf) fmt=elf ;; +diff -urN binutils-2.14.90.0.6/gas/configure.in binutils-2.14.90.0.6-uClibc/gas/configure.in +--- binutils-2.14.90.0.6/gas/configure.in 2003-07-23 10:08:10.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/gas/configure.in 2004-01-06 21:57:26.000000000 -0600 +@@ -184,6 +184,7 @@ + alpha*-*-osf*) fmt=ecoff ;; + alpha*-*-linuxecoff*) fmt=ecoff ;; + alpha*-*-linux-gnu*) fmt=elf em=linux ;; ++ alpha*-*-linux-uclibc*) fmt=elf em=linux ;; + alpha*-*-netbsd*) fmt=elf em=nbsd ;; + alpha*-*-openbsd*) fmt=elf em=obsd ;; + +@@ -200,6 +201,7 @@ + arm*-*-conix*) fmt=elf ;; + arm-*-linux*aout*) fmt=aout em=linux ;; + arm*-*-linux-gnu*) fmt=elf em=linux ;; ++ arm*-*-linux-uclibc*) fmt=elf em=linux ;; + arm*-*-uclinux*) fmt=elf em=linux ;; + arm-*-netbsdelf*) fmt=elf em=nbsd ;; + arm-*-*n*bsd*) fmt=aout em=nbsd ;; +@@ -214,6 +216,7 @@ + avr-*-*) fmt=elf ;; + + cris-*-linux-gnu*) fmt=multi bfd_gas=yes em=linux ;; ++ cris-*-linux-uclibc*) fmt=multi bfd_gas=yes em=linux ;; + cris-*-*) fmt=multi bfd_gas=yes ;; + + d10v-*-*) fmt=elf ;; +@@ -269,7 +272,9 @@ + i386-*-linux*oldld) fmt=aout em=linux ;; + i386-*-linux*coff*) fmt=coff em=linux ;; + i386-*-linux-gnu*) fmt=elf em=linux ;; ++ i386-*-linux-uclibc*) fmt=elf em=linux ;; + x86_64-*-linux-gnu*) fmt=elf em=linux ;; ++ x86_64-*-linux-uclibc*) fmt=elf em=linux ;; + i386-*-lynxos*) fmt=coff em=lynx ;; + changequote(,)dnl + i386-*-sysv[45]*) fmt=elf ;; +@@ -322,6 +327,7 @@ + ia64-*-elf*) fmt=elf ;; + ia64-*-aix*) fmt=elf em=ia64aix ;; + ia64-*-linux-gnu*) fmt=elf em=linux ;; ++ ia64-*-linux-uclibc*) fmt=elf em=linux ;; + ia64-*-hpux*) fmt=elf em=hpux ;; + ia64-*-netbsd*) fmt=elf em=nbsd ;; + +@@ -348,6 +354,7 @@ + m68k-*-hpux*) fmt=hp300 em=hp300 ;; + m68k-*-linux*aout*) fmt=aout em=linux ;; + m68k-*-linux-gnu*) fmt=elf em=linux ;; ++ m68k-*-linux-uclibc*) fmt=elf em=linux ;; + m68k-*-gnu*) fmt=elf ;; + m68k-*-lynxos*) fmt=coff em=lynx ;; + m68k-*-netbsdelf*) fmt=elf em=nbsd ;; +@@ -402,6 +409,7 @@ + ppc-*-beos*) fmt=coff ;; + ppc-*-*n*bsd* | ppc-*-elf*) fmt=elf ;; + ppc-*-eabi* | ppc-*-sysv4*) fmt=elf ;; ++ ppc-*-linux-uclibc* | \ + ppc-*-linux-gnu*) fmt=elf + case "$endian" in + big) ;; +@@ -424,7 +432,9 @@ + ppc-*-kaos*) fmt=elf ;; + + s390x-*-linux-gnu*) fmt=elf em=linux ;; ++ s390x-*-linux-uclibc*) fmt=elf em=linux ;; + s390-*-linux-gnu*) fmt=elf em=linux ;; ++ s390-*-linux-uclibc*) fmt=elf em=linux ;; + + sh*-*-linux*) fmt=elf em=linux + case ${cpu} in +@@ -457,6 +467,7 @@ + sparc-*-coff) fmt=coff ;; + sparc-*-linux*aout*) fmt=aout em=linux ;; + sparc-*-linux-gnu*) fmt=elf em=linux ;; ++ sparc-*-linux-uclibc*) fmt=elf em=linux ;; + sparc-*-lynxos*) fmt=coff em=lynx ;; + sparc-fujitsu-none) fmt=aout ;; + sparc-*-elf) fmt=elf ;; +diff -urN binutils-2.14.90.0.6/ld/configure binutils-2.14.90.0.6-uClibc/ld/configure +--- binutils-2.14.90.0.6/ld/configure 2003-05-05 16:46:49.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/ld/configure 2004-01-06 21:59:31.000000000 -0600 +@@ -1578,6 +1578,11 @@ + lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` + ;; + ++linux-uclibc*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++ ;; ++ + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' +diff -urN binutils-2.14.90.0.6/ld/configure.tgt binutils-2.14.90.0.6-uClibc/ld/configure.tgt +--- binutils-2.14.90.0.6/ld/configure.tgt 2003-08-21 10:28:48.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/ld/configure.tgt 2004-01-06 22:09:40.000000000 -0600 +@@ -30,6 +30,7 @@ + targ_extra_emuls="criself crislinux" + targ_extra_libpath=$targ_extra_emuls ;; + cris-*-linux-gnu*) targ_emul=crislinux ;; ++cris-*-linux-uclibc*) targ_emul=crislinux ;; + cris-*-*) targ_emul=criself + targ_extra_emuls="crisaout crislinux" + targ_extra_libpath=$targ_extra_emuls ;; +@@ -59,14 +60,16 @@ + tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/aout//'` + tdir_sun4=sparc-sun-sunos4 + ;; +-sparc64-*-linux-gnu*) targ_emul=elf64_sparc ++sparc64-*-linux-gnu* | sparc64-*-linux-uclibc*) \ ++ targ_emul=elf64_sparc + targ_extra_emuls="elf32_sparc sparclinux sun4" + targ_extra_libpath=elf32_sparc + tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'` + tdir_sparclinux=${tdir_elf32_sparc}aout + tdir_sun4=sparc-sun-sunos4 + ;; +-sparc*-*-linux-gnu*) targ_emul=elf32_sparc ++sparc*-*-linux-gnu* | sparc*-*-linux-uclibc*) \ ++ targ_emul=elf32_sparc + targ_extra_emuls="sparclinux elf64_sparc sun4" + targ_extra_libpath=elf64_sparc + tdir_sparclinux=${targ_alias}aout +@@ -124,7 +127,7 @@ + m68*-ericsson-ose) targ_emul=sun3 ;; + m68*-apple-aux*) targ_emul=m68kaux ;; + *-tandem-none) targ_emul=st2000 ;; +-i370-*-elf* | i370-*-linux-gnu*) targ_emul=elf32i370 ;; ++i370-*-elf* | i370-*-linux-gnu* | i370-*-linux-uclibc*) targ_emul=elf32i370 ;; + i[3-7]86-*-nto-qnx*) targ_emul=i386nto ;; + i[3-7]86-*-vsta) targ_emul=vsta ;; + i[3-7]86-go32-rtems*) targ_emul=i386go32 ;; +@@ -148,14 +151,16 @@ + tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'` + ;; + i[3-7]86-*-linux*oldld) targ_emul=i386linux; targ_extra_emuls=elf_i386 ;; +-i[3-7]86-*-linux-gnu*) targ_emul=elf_i386 ++i[3-7]86-*-linux-gnu* | i[3-7]86-*-linux-uclibc*) \ ++ targ_emul=elf_i386 + targ_extra_emuls=i386linux + if test x${want64} = xtrue; then + targ_extra_emuls="$targ_extra_emuls elf_x86_64" + fi + tdir_i386linux=${targ_alias}aout + ;; +-x86_64-*-linux-gnu*) targ_emul=elf_x86_64 ++x86_64-*-linux-gnu* | x86_64-*-linux-uclibc*) \ ++ targ_emul=elf_x86_64 + targ_extra_emuls="elf_i386 i386linux" + targ_extra_libpath=elf_i386 + tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'` +@@ -250,10 +255,13 @@ + arm9e-*-elf) targ_emul=armelf ;; + arm-*-oabi) targ_emul=armelf_oabi ;; + arm*b-*-linux-gnu*) targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;; ++arm*b-*-linux-uclibc*) targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;; + arm*-*-linux-gnu*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;; ++arm*-*-linux-uclibc*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;; + arm*-*-uclinux*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;; + arm*-*-conix*) targ_emul=armelf ;; +-thumb-*-linux-gnu* | thumb-*-uclinux*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;; ++thumb-*-linux-gnu* | thumb-*-linux-uclibc* | thumb-*-uclinux*) \ ++ targ_emul=armelf_linux; targ_extra_emuls=armelf ;; + strongarm-*-coff) targ_emul=armcoff ;; + strongarm-*-elf) targ_emul=armelf ;; + strongarm-*-kaos*) targ_emul=armelf ;; +@@ -354,7 +362,8 @@ + targ_extra_emuls=m68kelf + tdir_m68kelf=`echo ${targ_alias} | sed -e 's/aout//'` + ;; +-m68k-*-linux-gnu*) targ_emul=m68kelf ++m68k-*-linux-gnu* | m68k-*-linux-uclibc*) \ ++ targ_emul=m68kelf + targ_extra_emuls=m68klinux + tdir_m68klinux=`echo ${targ_alias} | sed -e 's/linux/linuxaout/'` + ;; +@@ -370,9 +379,9 @@ + m68*-*-psos*) targ_emul=m68kpsos ;; + m68*-*-rtemscoff*) targ_emul=m68kcoff ;; + m68*-*-rtems*) targ_emul=m68kelf ;; +-hppa*64*-*-linux-gnu*) targ_emul=hppa64linux ;; ++hppa*64*-*-linux-gnu* | hppa*64*-*-linux-uclibc*) targ_emul=hppa64linux ;; + hppa*64*-*) targ_emul=elf64hppa ;; +-hppa*-*-linux-gnu*) targ_emul=hppalinux ;; ++hppa*-*-linux-gnu* | hppa*-*-linux-uclibc*) targ_emul=hppalinux ;; + hppa*-*-*elf*) targ_emul=hppaelf ;; + hppa*-*-lites*) targ_emul=hppaelf ;; + hppa*-*-netbsd*) targ_emul=hppanbsd ;; +@@ -416,16 +425,20 @@ + mips*-*-rtems*) targ_emul=elf32ebmip ;; + mips*el-*-vxworks*) targ_emul=elf32elmip ;; + mips*-*-vxworks*) targ_emul=elf32ebmip ;; +-mips64*el-*-linux-gnu*) targ_emul=elf32ltsmipn32 ++mips64*el-*-linux-gnu* | mips64*el-*-linux-uclibc*) \ ++ targ_emul=elf32ltsmipn32 + targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip" + ;; +-mips64*-*-linux-gnu*) targ_emul=elf32btsmipn32 ++mips64*-*-linux-gnu* | mips64*-*-linux-uclibc*) \ ++ targ_emul=elf32btsmipn32 + targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip" + ;; +-mips*el-*-linux-gnu*) targ_emul=elf32ltsmip ++mips*el-*-linux-gnu* | mips*el-*-linux-uclibc*) \ ++ targ_emul=elf32ltsmip + targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip" + ;; +-mips*-*-linux-gnu*) targ_emul=elf32btsmip ++mips*-*-linux-gnu* | mips*-*-linux-uclibc*) \ ++ targ_emul=elf32btsmip + targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip" + ;; + mips*-*-lnews*) targ_emul=mipslnews ;; +@@ -447,6 +460,10 @@ + alpha*-*-linux-gnu*) targ_emul=elf64alpha targ_extra_emuls=alpha + tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'` + ;; ++alpha*-*-linux-uclibc*) targ_emul=elf64alpha targ_extra_emuls=alpha ++ # The following needs to be checked... ++ tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'` ++ ;; + alpha*-*-osf*) targ_emul=alpha ;; + alpha*-*-gnu*) targ_emul=elf64alpha ;; + alpha*-*-netware*) targ_emul=alpha ;; +diff -urN binutils-2.14.90.0.6/libtool.m4 binutils-2.14.90.0.6-uClibc/libtool.m4 +--- binutils-2.14.90.0.6/libtool.m4 2003-05-05 16:46:46.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/libtool.m4 2004-01-06 20:30:39.000000000 -0600 +@@ -645,6 +645,11 @@ + lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` + ;; + ++linux-uclibc*) ++ lt_cv_deplibs_check_method=pass_all ++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so` ++ ;; ++ + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'] +diff -urN binutils-2.14.90.0.6/ltconfig binutils-2.14.90.0.6-uClibc/ltconfig +--- binutils-2.14.90.0.6/ltconfig 2003-07-23 10:08:08.000000000 -0500 ++++ binutils-2.14.90.0.6-uClibc/ltconfig 2004-01-06 21:05:11.000000000 -0600 +@@ -603,6 +603,7 @@ + # Transform linux* to *-*-linux-gnu*, to support old configure scripts. + case $host_os in + linux-gnu*) ;; ++linux-uclibc*) ;; + linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` + esac + +@@ -1259,6 +1260,24 @@ + dynamic_linker='GNU/Linux ld.so' + ;; + ++linux-uclibc*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ # This implies no fast_install, which is unacceptable. ++ # Some rework will be needed to allow for fast_install ++ # before this can be enabled. ++ # Note: copied from linux-gnu, and may not be appropriate. ++ hardcode_into_libs=yes ++ # Assume using the uClibc dynamic linker. ++ dynamic_linker="uClibc ld.so" ++ ;; ++ + netbsd*) + need_lib_prefix=no + need_version=no diff -Naur crosstool-0.28-rc5-orig/patches/gcc-3.3.3/uclibc-target-01.patch crosstool-0.28-rc5/patches/gcc-3.3.3/uclibc-target-01.patch --- crosstool-0.28-rc5-orig/patches/gcc-3.3.3/uclibc-target-01.patch 1969-12-31 16:00:00.000000000 -0800 +++ crosstool-0.28-rc5/patches/gcc-3.3.3/uclibc-target-01.patch 2004-06-19 12:17:30.000000000 -0700 @@ -0,0 +1,1605 @@ +Provided by the uClibc project. + +This is the base patch for uClibc target support, enabling gcc to compile +directly for *-*-linux-uclibc targets, using the ARM, CRIS, MIPS, x86, sh, +and sh64 CPU architectures. Also included is everything necessary to get +libstdc++-v3 to compile against uClibc, except the config/locale/uclibc +and os/uclibc directrories. Further patches add support for other CPU +architectures, and add the missing directories for C++ support. The +patches are separated out to keep authorship straight, and respect how they +are distributed by the uClibc project. This one was written by +Manuel Novoa III, of the uClibc project. + +diff -urN gcc-3.3.3/boehm-gc/config.sub gcc-3.3.3-new/boehm-gc/config.sub +--- gcc-3.3.3/boehm-gc/config.sub 2002-02-11 22:37:53.000000000 -0600 ++++ gcc-3.3.3-new/boehm-gc/config.sub 2004-02-16 21:12:16.000000000 -0600 +@@ -118,7 +118,7 @@ + # Here we must recognize all the valid KERNEL-OS combinations. + maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` + case $maybe_os in +- nto-qnx* | linux-gnu* | storm-chaos* | os2-emx* | windows32-*) ++ nto-qnx* | linux-gnu* | linux-uclibc* | storm-chaos* | os2-emx* | windows32-*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; +@@ -1089,7 +1089,8 @@ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ ++ | -mingw32* | -linux-gnu* | -linux-uclibc* \ ++ | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ +diff -urN gcc-3.3.3/config.sub gcc-3.3.3-new/config.sub +--- gcc-3.3.3/config.sub 2003-01-30 17:25:36.000000000 -0600 ++++ gcc-3.3.3-new/config.sub 2004-02-16 21:12:16.000000000 -0600 +@@ -118,7 +118,7 @@ + # Here we must recognize all the valid KERNEL-OS combinations. + maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` + case $maybe_os in +- nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) ++ nto-qnx* | linux-gnu* | linux-uclibc* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; +@@ -1112,7 +1112,8 @@ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ ++ | -mingw32* | -linux-gnu* | -linux-uclibc* \ ++ | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ +diff -urN gcc-3.3.3/gcc/config/arm/linux-elf.h gcc-3.3.3-new/gcc/config/arm/linux-elf.h +--- gcc-3.3.3/gcc/config/arm/linux-elf.h 2003-09-16 10:39:23.000000000 -0500 ++++ gcc-3.3.3-new/gcc/config/arm/linux-elf.h 2004-02-16 21:12:16.000000000 -0600 +@@ -78,6 +78,18 @@ + "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s" + + #undef LINK_SPEC ++#ifdef USE_UCLIBC ++#define LINK_SPEC "%{h*} %{version:-v} \ ++ %{b} %{Wl,*:%*} \ ++ %{static:-Bstatic} \ ++ %{shared:-shared} \ ++ %{symbolic:-Bsymbolic} \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0} \ ++ -X \ ++ %{mbig-endian:-EB}" \ ++ SUBTARGET_EXTRA_LINK_SPEC ++#else + #define LINK_SPEC "%{h*} %{version:-v} \ + %{b} %{Wl,*:%*} \ + %{static:-Bstatic} \ +@@ -88,6 +100,7 @@ + -X \ + %{mbig-endian:-EB}" \ + SUBTARGET_EXTRA_LINK_SPEC ++#endif + + #define TARGET_OS_CPP_BUILTINS() \ + do { \ +diff -urN gcc-3.3.3/gcc/config/cris/linux.h gcc-3.3.3-new/gcc/config/cris/linux.h +--- gcc-3.3.3/gcc/config/cris/linux.h 2003-03-10 21:01:35.000000000 -0600 ++++ gcc-3.3.3-new/gcc/config/cris/linux.h 2004-02-16 21:12:16.000000000 -0600 +@@ -81,6 +81,25 @@ + #undef CRIS_DEFAULT_CPU_VERSION + #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG + ++#ifdef USE_UCLIBC ++ ++#undef CRIS_SUBTARGET_VERSION ++#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc" ++ ++#undef CRIS_LINK_SUBTARGET_SPEC ++#define CRIS_LINK_SUBTARGET_SPEC \ ++ "-mcrislinux\ ++ -rpath-link include/asm/../..%s\ ++ %{shared} %{static}\ ++ %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\ ++ %{!shared: \ ++ %{!static: \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}} \ ++ %{!r:%{O2|O3: --gc-sections}}" ++ ++#else /* USE_UCLIBC */ ++ + #undef CRIS_SUBTARGET_VERSION + #define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu" + +@@ -95,6 +114,8 @@ + %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\ + %{!r:%{O2|O3: --gc-sections}}" + ++#endif /* USE_UCLIBC */ ++ + + /* Node: Run-time Target */ + +diff -urN gcc-3.3.3/gcc/config/cris/t-linux-uclibc gcc-3.3.3-new/gcc/config/cris/t-linux-uclibc +--- gcc-3.3.3/gcc/config/cris/t-linux-uclibc 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-3.3.3-new/gcc/config/cris/t-linux-uclibc 2004-02-16 21:12:16.000000000 -0600 +@@ -0,0 +1,3 @@ ++T_CFLAGS = -DUSE_UCLIBC ++TARGET_LIBGCC2_CFLAGS += -fPIC ++CRTSTUFF_T_CFLAGS_S = $(TARGET_LIBGCC2_CFLAGS) +diff -urN gcc-3.3.3/gcc/config/i386/linux.h gcc-3.3.3-new/gcc/config/i386/linux.h +--- gcc-3.3.3/gcc/config/i386/linux.h 2003-11-14 00:46:12.000000000 -0600 ++++ gcc-3.3.3-new/gcc/config/i386/linux.h 2004-02-16 21:12:16.000000000 -0600 +@@ -136,6 +136,15 @@ + %{static:-static}}}" + #endif + #else ++#if defined USE_UCLIBC ++#define LINK_SPEC "-m elf_i386 %{shared:-shared} \ ++ %{!shared: \ ++ %{!ibcs: \ ++ %{!static: \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \ ++ %{static:-static}}}" ++#else + #define LINK_SPEC "-m elf_i386 %{shared:-shared} \ + %{!shared: \ + %{!ibcs: \ +@@ -144,6 +153,7 @@ + %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ + %{static:-static}}}" + #endif ++#endif + + /* A C statement (sans semicolon) to output to the stdio stream + FILE the assembler definition of uninitialized global DECL named +diff -urN gcc-3.3.3/gcc/config/mips/linux.h gcc-3.3.3-new/gcc/config/mips/linux.h +--- gcc-3.3.3/gcc/config/mips/linux.h 2003-12-23 02:58:00.000000000 -0600 ++++ gcc-3.3.3-new/gcc/config/mips/linux.h 2004-02-16 21:12:16.000000000 -0600 +@@ -175,6 +175,17 @@ + + /* Borrowed from sparc/linux.h */ + #undef LINK_SPEC ++#ifdef USE_UCLIBC ++#define LINK_SPEC \ ++ "%(endian_spec) \ ++ %{shared:-shared} \ ++ %{!shared: \ ++ %{!ibcs: \ ++ %{!static: \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \ ++ %{static:-static}}}" ++#else + #define LINK_SPEC \ + "%(endian_spec) \ + %{shared:-shared} \ +@@ -184,6 +195,7 @@ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \ + %{static:-static}}}" ++#endif + + #undef SUBTARGET_ASM_SPEC + #define SUBTARGET_ASM_SPEC "\ +diff -urN gcc-3.3.3/gcc/config/sh/linux.h gcc-3.3.3-new/gcc/config/sh/linux.h +--- gcc-3.3.3/gcc/config/sh/linux.h 2003-11-06 17:13:33.000000000 -0600 ++++ gcc-3.3.3-new/gcc/config/sh/linux.h 2004-02-16 21:12:16.000000000 -0600 +@@ -44,12 +44,21 @@ + #undef SUBTARGET_LINK_EMUL_SUFFIX + #define SUBTARGET_LINK_EMUL_SUFFIX "_linux" + #undef SUBTARGET_LINK_SPEC ++#ifdef USE_UCLIBC ++#define SUBTARGET_LINK_SPEC \ ++ "%{shared:-shared} \ ++ %{!static: \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \ ++ %{static:-static}" ++#else + #define SUBTARGET_LINK_SPEC \ + "%{shared:-shared} \ + %{!static: \ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ + %{static:-static}" ++#endif + + /* The GNU C++ standard library requires that these macros be defined. */ + #undef CPLUSPLUS_CPP_SPEC +diff -urN gcc-3.3.3/gcc/config/sh/t-linux-uclibc gcc-3.3.3-new/gcc/config/sh/t-linux-uclibc +--- gcc-3.3.3/gcc/config/sh/t-linux-uclibc 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-3.3.3-new/gcc/config/sh/t-linux-uclibc 2004-02-16 21:12:16.000000000 -0600 +@@ -0,0 +1,16 @@ ++T_CFLAGS = -DUSE_UCLIBC ++ ++# Don't run fixproto ++STMP_FIXPROTO = ++ ++TARGET_LIBGCC2_CFLAGS = -fpic ++LIB1ASMFUNCS_CACHE = _ic_invalidate ++ ++LIB2FUNCS_EXTRA= ++ ++MULTILIB_OPTIONS= $(MULTILIB_ENDIAN) m3e/m4 ++MULTILIB_DIRNAMES= ++MULTILIB_MATCHES = ++MULTILIB_EXCEPTIONS= ++ ++EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o crtbeginS.o crtendS.o +diff -urN gcc-3.3.3/gcc/config/sh/t-sh64-uclibc gcc-3.3.3-new/gcc/config/sh/t-sh64-uclibc +--- gcc-3.3.3/gcc/config/sh/t-sh64-uclibc 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-3.3.3-new/gcc/config/sh/t-sh64-uclibc 2004-02-16 21:12:16.000000000 -0600 +@@ -0,0 +1,13 @@ ++EXTRA_MULTILIB_PARTS= crtbegin.o crtend.o ++ ++LIB1ASMFUNCS = \ ++ _sdivsi3 _sdivsi3_i4 _udivsi3 _udivsi3_i4 _set_fpscr \ ++ _shcompact_call_trampoline _shcompact_return_trampoline \ ++ _shcompact_incoming_args _ic_invalidate _nested_trampoline \ ++ _push_pop_shmedia_regs \ ++ _udivdi3 _divdi3 _umoddi3 _moddi3 ++ ++MULTILIB_OPTIONS = $(MULTILIB_ENDIAN) m5-32media-nofpu/m5-compact/m5-compact-nofpu/m5-64media/m5-64media-nofpu ++MULTILIB_DIRNAMES= $(MULTILIB_ENDIAN) nofpu compact nofpu/compact media64 nofpu/media64 ++MULTILIB_MATCHES= ++MULTILIB_EXCEPTIONS= +diff -urN gcc-3.3.3/gcc/config/t-linux-uclibc gcc-3.3.3-new/gcc/config/t-linux-uclibc +--- gcc-3.3.3/gcc/config/t-linux-uclibc 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-3.3.3-new/gcc/config/t-linux-uclibc 2004-02-16 21:12:16.000000000 -0600 +@@ -0,0 +1,23 @@ ++T_CFLAGS = -DUSE_UCLIBC ++ ++# Don't run fixproto ++STMP_FIXPROTO = ++ ++# Compile crtbeginS.o and crtendS.o with pic. ++CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC ++# Compile libgcc2.a with pic. ++TARGET_LIBGCC2_CFLAGS = -fPIC ++ ++# Override t-slibgcc-elf-ver to export some libgcc symbols with ++# the symbol versions that glibc used. ++SHLIB_MAPFILES += $(srcdir)/config/libgcc-glibc.ver ++ ++# Use unwind-dw2-fde-glibc ++#LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \ ++# $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c ++#LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c ++ ++# Use unwind-dw2-fde ++LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \ ++ $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c ++LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h +diff -urN gcc-3.3.3/gcc/config.gcc gcc-3.3.3-new/gcc/config.gcc +--- gcc-3.3.3/gcc/config.gcc 2004-01-21 00:06:00.000000000 -0600 ++++ gcc-3.3.3-new/gcc/config.gcc 2004-02-16 21:12:16.000000000 -0600 +@@ -697,6 +697,17 @@ + extra_parts="" + use_collect2=yes + ;; ++arm*-*-linux-uclibc*) # ARM GNU/Linux with ELF - uClibc ++ tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/linux-gas.h arm/linux-elf.h" ++ tmake_file="t-slibgcc-elf-ver t-linux-uclibc arm/t-linux" ++ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" ++ gnu_ld=yes ++ case x${enable_threads} in ++ x | xyes | xpthreads | xposix) ++ thread_file='posix' ++ ;; ++ esac ++ ;; + arm*-*-linux*) # ARM GNU/Linux with ELF + tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/linux-gas.h arm/linux-elf.h" + tmake_file="t-slibgcc-elf-ver t-linux arm/t-linux" +@@ -772,6 +783,10 @@ + tmake_file="cris/t-cris cris/t-elfmulti" + gas=yes + ;; ++cris-*-linux-uclibc*) ++ tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h cris/linux.h" ++ tmake_file="cris/t-cris t-slibgcc-elf-ver cris/t-linux-uclibc" ++ ;; + cris-*-linux*) + tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h cris/linux.h" + tmake_file="cris/t-cris t-slibgcc-elf-ver cris/t-linux" +@@ -1173,6 +1188,11 @@ + thread_file='single' + fi + ;; ++i[34567]86-*-linux*uclibc*) # Intel 80386's running GNU/Linux ++ # with ELF format using uClibc ++ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h i386/linux.h" ++ tmake_file="t-slibgcc-elf-ver t-linux-uclibc i386/t-crtstuff" ++ ;; + i[34567]86-*-linux*) # Intel 80386's running GNU/Linux + # with ELF format using glibc 2 + # aka GNU/Linux C library 6 +@@ -1883,6 +1903,16 @@ + tm_file="elfos.h ${tm_file} mips/netbsd.h" + tmake_file="${tmake_file} mips/t-netbsd" + ;; ++mips*-*-linux-uclibc*) # Linux MIPS, either endian. uClibc ++ tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} mips/linux.h" ++ case $machine in ++ mipsisa32*-*) ++ target_cpu_default="MASK_SOFT_FLOAT" ++ tm_defines="MIPS_ISA_DEFAULT=32" ++ ;; ++ esac ++ tmake_file="t-slibgcc-elf-ver t-linux-uclibc mips/t-linux" ++ ;; + mips*-*-linux*) # Linux MIPS, either endian. + tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} mips/linux.h" + case $machine in +@@ -2129,6 +2159,11 @@ + out_file=rs6000/rs6000.c + tmake_file="rs6000/t-ppcos t-slibgcc-elf-ver t-linux rs6000/t-ppccomm" + ;; ++powerpc-*-linux-uclibc*) ++ tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h" ++ out_file=rs6000/rs6000.c ++ tmake_file="rs6000/t-ppcos t-slibgcc-elf-ver t-linux-uclibc rs6000/t-ppccomm" ++ ;; + powerpc-*-linux*) + tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h" + out_file=rs6000/rs6000.c +@@ -2313,10 +2348,18 @@ + tmake_file="${tmake_file} sh/t-le" + ;; + esac +- tmake_file="${tmake_file} sh/t-linux" ++ case $machine in ++ *-*-linux-uclibc*) tmake_file="${tmake_file} sh/t-linux-uclibc" ;; ++ *) tmake_file="${tmake_file} sh/t-linux" ;; ++ esac + tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/elf.h sh/linux.h" + gas=yes gnu_ld=yes + case $machine in ++ sh64*-*-linux-uclibc*) ++ tmake_file="${tmake_file} sh/t-sh64-uclibc" ++ tm_file="${tm_file} sh/sh64.h" ++ extra_headers="shmedia.h ushmedia.h sshmedia.h" ++ ;; + sh64*) + tmake_file="${tmake_file} sh/t-sh64" + tm_file="${tm_file} sh/sh64.h" +diff -urN gcc-3.3.3/libstdc++-v3/aclocal.m4 gcc-3.3.3-new/libstdc++-v3/aclocal.m4 +--- gcc-3.3.3/libstdc++-v3/aclocal.m4 2004-01-12 10:18:44.000000000 -0600 ++++ gcc-3.3.3-new/libstdc++-v3/aclocal.m4 2004-02-16 21:12:16.000000000 -0600 +@@ -1216,6 +1216,9 @@ + dnl Default to "generic" + if test x$enable_clocale_flag = xno; then + case x${target_os} in ++ xlinux-uclibc*) ++ enable_clocale_flag=uclibc ++ ;; + xlinux* | xgnu*) + AC_EGREP_CPP([_GLIBCPP_ok], [ + #include +@@ -1339,6 +1342,41 @@ + CTIME_CC=config/locale/generic/time_members.cc + CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h + ;; ++ xuclibc) ++ AC_MSG_RESULT(uclibc) ++ ++ # Declare intention to use gettext, and add support for specific ++ # languages. ++ # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT ++ ALL_LINGUAS="de fr" ++ ++ # Don't call AM-GNU-GETTEXT here. Instead, assume glibc. ++ AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no) ++ if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then ++ USE_NLS=yes ++ fi ++ # Export the build objects. ++ for ling in $ALL_LINGUAS; do \ ++ glibcpp_MOFILES="$glibcpp_MOFILES $ling.mo"; \ ++ glibcpp_POFILES="$glibcpp_POFILES $ling.po"; \ ++ done ++ AC_SUBST(glibcpp_MOFILES) ++ AC_SUBST(glibcpp_POFILES) ++ ++ CLOCALE_H=config/locale/uclibc/c_locale.h ++ CLOCALE_CC=config/locale/uclibc/c_locale.cc ++ CCODECVT_H=config/locale/uclibc/codecvt_specializations.h ++ CCODECVT_CC=config/locale/uclibc/codecvt_members.cc ++ CCOLLATE_CC=config/locale/uclibc/collate_members.cc ++ CCTYPE_CC=config/locale/uclibc/ctype_members.cc ++ CMESSAGES_H=config/locale/uclibc/messages_members.h ++ CMESSAGES_CC=config/locale/uclibc/messages_members.cc ++ CMONEY_CC=config/locale/uclibc/monetary_members.cc ++ CNUMERIC_CC=config/locale/uclibc/numeric_members.cc ++ CTIME_H=config/locale/uclibc/time_members.h ++ CTIME_CC=config/locale/uclibc/time_members.cc ++ CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h ++ ;; + *) + echo "$enable_clocale is an unknown locale package" 1>&2 + exit 1 +diff -urN gcc-3.3.3/libstdc++-v3/configure gcc-3.3.3-new/libstdc++-v3/configure +--- gcc-3.3.3/libstdc++-v3/configure 2004-01-12 10:18:45.000000000 -0600 ++++ gcc-3.3.3-new/libstdc++-v3/configure 2004-02-17 00:21:12.000000000 -0600 +@@ -2996,6 +2996,9 @@ + + if test x$enable_clocale_flag = xno; then + case x${target_os} in ++ xlinux-uclibc*) ++ enable_clocale_flag=uclibc ++ ;; + xlinux* | xgnu*) + cat > conftest.$ac_ext <&6 ++ ++ # Declare intention to use gettext, and add support for specific ++ # languages. ++ # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT ++ ALL_LINGUAS="de fr" ++ ++ # Don't call AM-GNU-GETTEXT here. Instead, assume glibc. ++ # Extract the first word of "msgfmt", so it can be a program name with args. ++set dummy msgfmt; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:3117: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_prog_check_msgfmt'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ if test -n "$check_msgfmt"; then ++ ac_cv_prog_check_msgfmt="$check_msgfmt" # Let the user override the test. ++else ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_prog_check_msgfmt="yes" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++ test -z "$ac_cv_prog_check_msgfmt" && ac_cv_prog_check_msgfmt="no" ++fi ++fi ++check_msgfmt="$ac_cv_prog_check_msgfmt" ++if test -n "$check_msgfmt"; then ++ echo "$ac_t""$check_msgfmt" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then ++ USE_NLS=yes ++ fi ++ # Export the build objects. ++ for ling in $ALL_LINGUAS; do \ ++ glibcpp_MOFILES="$glibcpp_MOFILES $ling.mo"; \ ++ glibcpp_POFILES="$glibcpp_POFILES $ling.po"; \ ++ done ++ ++ ++ ++ CLOCALE_H=config/locale/uclibc/c_locale.h ++ CLOCALE_CC=config/locale/uclibc/c_locale.cc ++ CCODECVT_H=config/locale/uclibc/codecvt_specializations.h ++ CCODECVT_CC=config/locale/uclibc/codecvt_members.cc ++ CCOLLATE_CC=config/locale/uclibc/collate_members.cc ++ CCTYPE_CC=config/locale/uclibc/ctype_members.cc ++ CMESSAGES_H=config/locale/uclibc/messages_members.h ++ CMESSAGES_CC=config/locale/uclibc/messages_members.cc ++ CMONEY_CC=config/locale/uclibc/monetary_members.cc ++ CNUMERIC_CC=config/locale/uclibc/numeric_members.cc ++ CTIME_H=config/locale/uclibc/time_members.h ++ CTIME_CC=config/locale/uclibc/time_members.cc ++ CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h ++ ;; + *) + echo "$enable_clocale is an unknown locale package" 1>&2 + exit 1 +@@ -4212,6 +4279,968 @@ + # GLIBCPP_CHECK_MATH_SUPPORT + + case "$target" in ++ *-uclibc*) ++ os_include_dir="os/uclibc" ++ for ac_hdr in nan.h ieeefp.h endian.h sys/isa_defs.h \ ++ machine/endian.h machine/param.h sys/machine.h sys/types.h \ ++ fp.h locale.h float.h inttypes.h ++do ++ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++echo "configure:4224: checking for $ac_hdr" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:4234: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=yes" ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ++ cat >> confdefs.h <&6 ++fi ++done ++ ++ SECTION_FLAGS='-ffunction-sections -fdata-sections' ++ ++ ++ # If we're not using GNU ld, then there's no point in even trying these ++ # tests. Check for that first. We should have already tested for gld ++ # by now (in libtool), but require it now just to be safe... ++ test -z "$SECTION_LDFLAGS" && SECTION_LDFLAGS='' ++ test -z "$OPT_LDFLAGS" && OPT_LDFLAGS='' ++ ++ ++ # The name set by libtool depends on the version of libtool. Shame on us ++ # for depending on an impl detail, but c'est la vie. Older versions used ++ # ac_cv_prog_gnu_ld, but now it's lt_cv_prog_gnu_ld, and is copied back on ++ # top of with_gnu_ld (which is also set by --with-gnu-ld, so that actually ++ # makes sense). We'll test with_gnu_ld everywhere else, so if that isn't ++ # set (hence we're using an older libtool), then set it. ++ if test x${with_gnu_ld+set} != xset; then ++ if test x${ac_cv_prog_gnu_ld+set} != xset; then ++ # We got through "ac_require(ac_prog_ld)" and still not set? Huh? ++ with_gnu_ld=no ++ else ++ with_gnu_ld=$ac_cv_prog_gnu_ld ++ fi ++ fi ++ ++ # Start by getting the version number. I think the libtool test already ++ # does some of this, but throws away the result. ++ ++ ldver=`$LD --version 2>/dev/null | head -1 | \ ++ sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'` ++ ++ glibcpp_gnu_ld_version=`echo $ldver | \ ++ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` ++ ++ # Set --gc-sections. ++ if test "$with_gnu_ld" = "notbroken"; then ++ # GNU ld it is! Joy and bunny rabbits! ++ ++ # All these tests are for C++; save the language and the compiler flags. ++ # Need to do this so that g++ won't try to link in libstdc++ ++ ac_test_CFLAGS="${CFLAGS+set}" ++ ac_save_CFLAGS="$CFLAGS" ++ CFLAGS='-x c++ -Wl,--gc-sections' ++ ++ # Check for -Wl,--gc-sections ++ # XXX This test is broken at the moment, as symbols required for ++ # linking are now in libsupc++ (not built yet.....). In addition, ++ # this test has cored on solaris in the past. In addition, ++ # --gc-sections doesn't really work at the moment (keeps on discarding ++ # used sections, first .eh_frame and now some of the glibc sections for ++ # iconv). Bzzzzt. Thanks for playing, maybe next time. ++ echo $ac_n "checking for ld that supports -Wl,--gc-sections""... $ac_c" 1>&6 ++echo "configure:4312: checking for ld that supports -Wl,--gc-sections" >&5 ++ if test "$cross_compiling" = yes; then ++ ac_sectionLDflags=yes ++else ++ cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++then ++ ac_sectionLDflags=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -fr conftest* ++ ac_sectionLDflags=no ++fi ++rm -fr conftest* ++fi ++ ++ if test "$ac_test_CFLAGS" = set; then ++ CFLAGS="$ac_save_CFLAGS" ++ else ++ # this is the suspicious part ++ CFLAGS='' ++ fi ++ if test "$ac_sectionLDflags" = "yes"; then ++ SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS" ++ fi ++ echo "$ac_t""$ac_sectionLDflags" 1>&6 ++ fi ++ ++ # Set linker optimization flags. ++ if test x"$with_gnu_ld" = x"yes"; then ++ OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS" ++ fi ++ ++ ++ ++ ++ ++ echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 ++echo "configure:4362: checking for main in -lm" >&5 ++ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-lm $LIBS" ++cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_lib=HAVE_LIB`echo m | sed -e 's/[^a-zA-Z0-9_]/_/g' \ ++ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` ++ cat >> confdefs.h <&6 ++fi ++ ++ for ac_func in nan copysignf ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:4407: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:4435: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <&6 ++LIBMATHOBJS="$LIBMATHOBJS ${ac_func}.lo" ++fi ++done ++ ++ ++ for ac_func in __signbit ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:4464: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:4492: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <&6 ++LIBMATHOBJS="$LIBMATHOBJS signbit.lo" ++fi ++done ++ ++ for ac_func in __signbitf ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:4520: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:4548: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <&6 ++LIBMATHOBJS="$LIBMATHOBJS signbitf.lo" ++fi ++done ++ ++ ++ if test x$ac_cv_func_copysignl = x"yes"; then ++ for ac_func in __signbitl ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:4578: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:4606: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <&6 ++LIBMATHOBJS="$LIBMATHOBJS signbitl.lo" ++fi ++done ++ ++ fi ++ ++ if test -n "$LIBMATHOBJS"; then ++ need_libmath=yes ++ fi ++ ++ ++ ++if test "$need_libmath" = yes; then ++ GLIBCPP_BUILD_LIBMATH_TRUE= ++ GLIBCPP_BUILD_LIBMATH_FALSE='#' ++else ++ GLIBCPP_BUILD_LIBMATH_TRUE='#' ++ GLIBCPP_BUILD_LIBMATH_FALSE= ++fi ++ ++ ++ enable_wchar_t=no ++ ++ echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6 ++echo "configure:4651: checking for mbstate_t" >&5 ++ cat > conftest.$ac_ext < ++int main() { ++mbstate_t teststate; ++; return 0; } ++EOF ++if { (eval echo configure:4660: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ have_mbstate_t=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ have_mbstate_t=no ++fi ++rm -f conftest* ++ echo "$ac_t""$have_mbstate_t" 1>&6 ++ if test x"$have_mbstate_t" = xyes; then ++ cat >> confdefs.h <<\EOF ++#define HAVE_MBSTATE_T 1 ++EOF ++ ++ fi ++ ++ for ac_hdr in wchar.h ++do ++ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++echo "configure:4682: checking for $ac_hdr" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:4692: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=yes" ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ++ cat >> confdefs.h <&6 ++ac_has_wchar_h=no ++fi ++done ++ ++ for ac_hdr in wctype.h ++do ++ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ++echo "configure:4723: checking for $ac_hdr" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:4733: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=yes" ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` ++ cat >> confdefs.h <&6 ++ac_has_wctype_h=no ++fi ++done ++ ++ ++ if test x"$ac_has_wchar_h" = xyes && ++ test x"$ac_has_wctype_h" = xyes && ++ test x"$enable_c_mbchar" != xno; then ++ ++ echo $ac_n "checking for WCHAR_MIN and WCHAR_MAX""... $ac_c" 1>&6 ++echo "configure:4766: checking for WCHAR_MIN and WCHAR_MAX" >&5 ++ cat > conftest.$ac_ext < ++int main() { ++int i = WCHAR_MIN; int j = WCHAR_MAX; ++; return 0; } ++EOF ++if { (eval echo configure:4775: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ has_wchar_minmax=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ has_wchar_minmax=no ++fi ++rm -f conftest* ++ echo "$ac_t""$has_wchar_minmax" 1>&6 ++ ++ echo $ac_n "checking for WEOF""... $ac_c" 1>&6 ++echo "configure:4788: checking for WEOF" >&5 ++ cat > conftest.$ac_ext < ++ #include ++int main() { ++wint_t i = WEOF; ++; return 0; } ++EOF ++if { (eval echo configure:4799: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ has_weof=yes ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ has_weof=no ++fi ++rm -f conftest* ++ echo "$ac_t""$has_weof" 1>&6 ++ ++ ac_wfuncs=yes ++ for ac_func in wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:4815: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:4843: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <&6 ++\ ++ ac_wfuncs=no ++fi ++done ++ ++ ++ for ac_func in btowc wctob fgetwc fgetws fputwc fputws fwide \ ++ fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \ ++ vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \ ++ mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \ ++ wcstoul wcscpy wcsncpy wcscat wcsncat wcscmp wcscoll wcsncmp wcsxfrm \ ++ wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:4878: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:4906: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <&6 ++\ ++ ac_wfuncs=no ++fi ++done ++ ++ ++ echo $ac_n "checking for ISO C99 wchar_t support""... $ac_c" 1>&6 ++echo "configure:4934: checking for ISO C99 wchar_t support" >&5 ++ if test x"$has_weof" = xyes && ++ test x"$has_wchar_minmax" = xyes && ++ test x"$ac_wfuncs" = xyes; then ++ ac_isoC99_wchar_t=yes ++ else ++ ac_isoC99_wchar_t=no ++ fi ++ echo "$ac_t""$ac_isoC99_wchar_t" 1>&6 ++ ++ ac_safe=`echo "iconv.h" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for iconv.h""... $ac_c" 1>&6 ++echo "configure:4946: checking for iconv.h" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:4956: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=yes" ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_has_iconv_h=yes ++else ++ echo "$ac_t""no" 1>&6 ++ac_has_iconv_h=no ++fi ++ ++ ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'` ++echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6 ++echo "configure:4980: checking for langinfo.h" >&5 ++if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++EOF ++ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ++{ (eval echo configure:4990: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ++ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` ++if test -z "$ac_err"; then ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=yes" ++else ++ echo "$ac_err" >&5 ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_header_$ac_safe=no" ++fi ++rm -f conftest* ++fi ++if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_has_langinfo_h=yes ++else ++ echo "$ac_t""no" 1>&6 ++ac_has_langinfo_h=no ++fi ++ ++ ++ echo $ac_n "checking for iconv in -liconv""... $ac_c" 1>&6 ++echo "configure:5014: checking for iconv in -liconv" >&5 ++ac_lib_var=`echo iconv'_'iconv | sed 'y%./+-%__p_%'` ++if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ ac_save_LIBS="$LIBS" ++LIBS="-liconv $LIBS" ++cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_lib_$ac_lib_var=no" ++fi ++rm -f conftest* ++LIBS="$ac_save_LIBS" ++ ++fi ++if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ libiconv="-liconv" ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++ ac_save_LIBS="$LIBS" ++ LIBS="$LIBS $libiconv" ++ ++ for ac_func in iconv_open iconv_close iconv nl_langinfo ++do ++echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ++echo "configure:5059: checking for $ac_func" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++$ac_func(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:5087: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_$ac_func=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` ++ cat >> confdefs.h <&6 ++ac_XPG2funcs=no ++fi ++done ++ ++ ++ LIBS="$ac_save_LIBS" ++ ++ echo $ac_n "checking for XPG2 wchar_t support""... $ac_c" 1>&6 ++echo "configure:5117: checking for XPG2 wchar_t support" >&5 ++ if test x"$ac_has_iconv_h" = xyes && ++ test x"$ac_has_langinfo_h" = xyes && ++ test x"$ac_XPG2funcs" = xyes; then ++ ac_XPG2_wchar_t=yes ++ else ++ ac_XPG2_wchar_t=no ++ fi ++ echo "$ac_t""$ac_XPG2_wchar_t" 1>&6 ++ ++ if test x"$ac_isoC99_wchar_t" = xyes && ++ test x"$ac_XPG2_wchar_t" = xyes; then ++ cat >> confdefs.h <<\EOF ++#define _GLIBCPP_USE_WCHAR_T 1 ++EOF ++ ++ enable_wchar_t=yes ++ fi ++ fi ++ echo $ac_n "checking for enabled wchar_t specializations""... $ac_c" 1>&6 ++echo "configure:5137: checking for enabled wchar_t specializations" >&5 ++ echo "$ac_t""$enable_wchar_t" 1>&6 ++ ++ ++if test "$enable_wchar_t" = yes; then ++ GLIBCPP_TEST_WCHAR_T_TRUE= ++ GLIBCPP_TEST_WCHAR_T_FALSE='#' ++else ++ GLIBCPP_TEST_WCHAR_T_TRUE='#' ++ GLIBCPP_TEST_WCHAR_T_FALSE= ++fi ++ ++ ++ cat >> confdefs.h <<\EOF ++#define HAVE_COPYSIGN 1 ++EOF ++ ++ cat >> confdefs.h <<\EOF ++#define HAVE_FINITE 1 ++EOF ++ ++ cat >> confdefs.h <<\EOF ++#define HAVE_FINITEF 1 ++EOF ++ ++ cat >> confdefs.h <<\EOF ++#define HAVE_ISINF 1 ++EOF ++ ++ cat >> confdefs.h <<\EOF ++#define HAVE_ISINFF 1 ++EOF ++ ++ cat >> confdefs.h <<\EOF ++#define HAVE_ISNAN 1 ++EOF ++ ++ cat >> confdefs.h <<\EOF ++#define HAVE_ISNANF 1 ++EOF ++ ;; + *-linux*) + os_include_dir="os/gnu-linux" + for ac_hdr in nan.h ieeefp.h endian.h sys/isa_defs.h \ +diff -urN gcc-3.3.3/libstdc++-v3/configure.in gcc-3.3.3-new/libstdc++-v3/configure.in +--- gcc-3.3.3/libstdc++-v3/configure.in 2004-01-12 10:19:22.000000000 -0600 ++++ gcc-3.3.3-new/libstdc++-v3/configure.in 2004-02-16 23:13:45.000000000 -0600 +@@ -117,6 +117,36 @@ + # GLIBCPP_CHECK_MATH_SUPPORT + + case "$target" in ++ *-uclibc*) ++ os_include_dir="os/uclibc" ++ AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \ ++ machine/endian.h machine/param.h sys/machine.h sys/types.h \ ++ fp.h locale.h float.h inttypes.h]) ++ SECTION_FLAGS='-ffunction-sections -fdata-sections' ++ AC_SUBST(SECTION_FLAGS) ++ GLIBCPP_CHECK_LINKER_FEATURES ++ GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT ++ GLIBCPP_CHECK_WCHAR_T_SUPPORT ++ ++ AC_DEFINE(HAVE_COPYSIGN) ++ #AC_DEFINE(HAVE_COPYSIGNF) ++ AC_DEFINE(HAVE_FINITE) ++ AC_DEFINE(HAVE_FINITEF) ++ #AC_DEFINE(HAVE_FREXPF) ++ #AC_DEFINE(HAVE_HYPOTF) ++ AC_DEFINE(HAVE_ISINF) ++ AC_DEFINE(HAVE_ISINFF) ++ AC_DEFINE(HAVE_ISNAN) ++ AC_DEFINE(HAVE_ISNANF) ++ #AC_DEFINE(HAVE_SINCOS) ++ #AC_DEFINE(HAVE_SINCOSF) ++ #if test x"long_double_math_on_this_cpu" = x"yes"; then ++ #AC_DEFINE(HAVE_FINITEL) ++ #AC_DEFINE(HAVE_HYPOTL) ++ #AC_DEFINE(HAVE_ISINFL) ++ #AC_DEFINE(HAVE_ISNANL) ++ #fi ++ ;; + *-linux*) + os_include_dir="os/gnu-linux" + AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \ +diff -urN gcc-3.3.3/libstdc++-v3/configure.target gcc-3.3.3-new/libstdc++-v3/configure.target +--- gcc-3.3.3/libstdc++-v3/configure.target 2003-10-01 14:07:07.000000000 -0500 ++++ gcc-3.3.3-new/libstdc++-v3/configure.target 2004-02-16 21:12:16.000000000 -0600 +@@ -133,6 +133,9 @@ + freebsd*) + os_include_dir="os/bsd/freebsd" + ;; ++ linux-uclibc*) ++ os_include_dir="os/uclibc" ++ ;; + gnu* | linux*) + os_include_dir="os/gnu-linux" + ;; +diff -urN gcc-3.3.3/libstdc++-v3/include/c_std/std_cstdlib.h gcc-3.3.3-new/libstdc++-v3/include/c_std/std_cstdlib.h +--- gcc-3.3.3/libstdc++-v3/include/c_std/std_cstdlib.h 2003-04-18 05:08:05.000000000 -0500 ++++ gcc-3.3.3-new/libstdc++-v3/include/c_std/std_cstdlib.h 2004-02-16 21:12:16.000000000 -0600 +@@ -101,9 +101,11 @@ + using ::labs; + using ::ldiv; + using ::malloc; ++#if _GLIBCPP_USE_WCHAR_T + using ::mblen; + using ::mbstowcs; + using ::mbtowc; ++#endif + using ::qsort; + using ::rand; + using ::realloc; +@@ -112,8 +114,10 @@ + using ::strtol; + using ::strtoul; + using ::system; ++#if _GLIBCPP_USE_WCHAR_T + using ::wcstombs; + using ::wctomb; ++#endif + + inline long + abs(long __i) { return labs(__i); } +diff -urN gcc-3.3.3/libstdc++-v3/include/c_std/std_cwchar.h gcc-3.3.3-new/libstdc++-v3/include/c_std/std_cwchar.h +--- gcc-3.3.3/libstdc++-v3/include/c_std/std_cwchar.h 2003-04-18 05:08:05.000000000 -0500 ++++ gcc-3.3.3-new/libstdc++-v3/include/c_std/std_cwchar.h 2004-02-16 21:12:16.000000000 -0600 +@@ -165,7 +165,9 @@ + using ::wcscoll; + using ::wcscpy; + using ::wcscspn; ++#ifdef HAVE_WCSFTIME + using ::wcsftime; ++#endif + using ::wcslen; + using ::wcsncat; + using ::wcsncmp; +diff -urN gcc-3.3.3/ltconfig gcc-3.3.3-new/ltconfig +--- gcc-3.3.3/ltconfig 2003-02-19 20:10:02.000000000 -0600 ++++ gcc-3.3.3-new/ltconfig 2004-02-16 21:12:16.000000000 -0600 +@@ -603,6 +603,7 @@ + # Transform linux* to *-*-linux-gnu*, to support old configure scripts. + case $host_os in + linux-gnu*) ;; ++linux-uclibc*) ;; + linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` + esac + +@@ -1247,6 +1248,24 @@ + dynamic_linker='GNU/Linux ld.so' + ;; + ++linux-uclibc*) ++ version_type=linux ++ need_lib_prefix=no ++ need_version=no ++ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ++ soname_spec='${libname}${release}.so$major' ++ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' ++ shlibpath_var=LD_LIBRARY_PATH ++ shlibpath_overrides_runpath=no ++ # This implies no fast_install, which is unacceptable. ++ # Some rework will be needed to allow for fast_install ++ # before this can be enabled. ++ # Note: copied from linux-gnu, and may not be appropriate. ++ hardcode_into_libs=yes ++ # Assume using the uClibc dynamic linker. ++ dynamic_linker="uClibc ld.so" ++ ;; ++ + netbsd*) + need_lib_prefix=no + need_version=no diff -Naur crosstool-0.28-rc5-orig/patches/gcc-3.3.3/uclibc-target-02.patch crosstool-0.28-rc5/patches/gcc-3.3.3/uclibc-target-02.patch --- crosstool-0.28-rc5-orig/patches/gcc-3.3.3/uclibc-target-02.patch 1969-12-31 16:00:00.000000000 -0800 +++ crosstool-0.28-rc5/patches/gcc-3.3.3/uclibc-target-02.patch 2004-06-19 12:17:30.000000000 -0700 @@ -0,0 +1,60 @@ +Provided by the uClibc project. + +Adjunct patch for powerpc-*-linux-uclibc* targets. Adds stuff necessary to +support compiling for uClibc on PowerPC CPU architectures. Written by +Carl Miller , with updates made by the uClibc project +(I'm guessing also Manuel Novoa III, but not sure) as it was integrated into +their patch set. + +diff -urN gcc-3.3.3/gcc/config/rs6000/linux.h gcc-3.3.3-new/gcc/config/rs6000/linux.h +--- gcc-3.3.3/gcc/config/rs6000/linux.h 2003-11-14 00:46:10.000000000 -0600 ++++ gcc-3.3.3-new/gcc/config/rs6000/linux.h 2004-02-16 21:13:40.000000000 -0600 +@@ -64,7 +64,11 @@ + #define LINK_START_DEFAULT_SPEC "%(link_start_linux)" + + #undef LINK_OS_DEFAULT_SPEC ++#ifdef USE_UCLIBC ++#define LINK_OS_DEFAULT_SPEC "%(link_os_linux_uclibc)" ++#else + #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)" ++#endif + + #undef TARGET_VERSION + #define TARGET_VERSION fprintf (stderr, " (PowerPC GNU/Linux)"); +diff -urN gcc-3.3.3/gcc/config/rs6000/sysv4.h gcc-3.3.3-new/gcc/config/rs6000/sysv4.h +--- gcc-3.3.3/gcc/config/rs6000/sysv4.h 2003-10-28 13:55:41.000000000 -0600 ++++ gcc-3.3.3-new/gcc/config/rs6000/sysv4.h 2004-02-16 21:13:40.000000000 -0600 +@@ -968,9 +968,11 @@ + %{mcall-linux: %(link_os_linux) } \ + %{mcall-gnu: %(link_os_gnu) } \ + %{mcall-netbsd: %(link_os_netbsd) } \ ++%{mcall-uclibc: %(link_os_linux_uclibc) } \ + %{!mads: %{!myellowknife: %{!mmvme: %{!msim: %{!mwindiss: \ + %{!mcall-freebsd: %{!mcall-linux: %{!mcall-gnu: \ +- %{!mcall-netbsd: %(link_os_default) }}}}}}}}}" ++ %{!mcall-netbsd: %{!mcall-uclibc: \ ++ %(link_os_default) }}}}}}}}}}" + + #define LINK_OS_DEFAULT_SPEC "" + +@@ -1307,6 +1309,12 @@ + + #define LINK_OS_WINDISS_SPEC "" + ++/* uClibc support for Linux. */ ++ ++#define LINK_OS_LINUX_UCLIBC_SPEC "-m elf32ppclinux %{!shared: %{!static: \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}}" ++ + /* Define any extra SPECS that the compiler needs to generate. */ + /* Override rs6000.h definition. */ + #undef SUBTARGET_EXTRA_SPECS +@@ -1372,6 +1380,7 @@ + { "link_os_netbsd", LINK_OS_NETBSD_SPEC }, \ + { "link_os_vxworks", LINK_OS_VXWORKS_SPEC }, \ + { "link_os_windiss", LINK_OS_WINDISS_SPEC }, \ ++ { "link_os_linux_uclibc", LINK_OS_LINUX_UCLIBC_SPEC }, \ + { "link_os_default", LINK_OS_DEFAULT_SPEC }, \ + { "cc1_endian_big", CC1_ENDIAN_BIG_SPEC }, \ + { "cc1_endian_little", CC1_ENDIAN_LITTLE_SPEC }, \ diff -Naur crosstool-0.28-rc5-orig/patches/gcc-3.3.3/uclibc-target-03.patch crosstool-0.28-rc5/patches/gcc-3.3.3/uclibc-target-03.patch --- crosstool-0.28-rc5-orig/patches/gcc-3.3.3/uclibc-target-03.patch 1969-12-31 16:00:00.000000000 -0800 +++ crosstool-0.28-rc5/patches/gcc-3.3.3/uclibc-target-03.patch 2004-06-19 12:17:30.000000000 -0700 @@ -0,0 +1,3030 @@ +Provided by the uClibc project. + +This is an adjunct patch providing all the new files necessary for C++ +support (compiling gcc's libstdc++-v3 against uClibc), that weren't in +the main uClibc target patch. This was written by Manuel Novoa III, of +the uClibc project. Manuel has issued the following warning with the +official uClibc project's distribution of this patch: + +Warning! This patch is not finished. The wide char time-related stuff +is broken or non-functional. But it serves as a starting point to get +things building while I continue to work on the uClibc locale internals. + +diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/c++locale_internal.h gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/c++locale_internal.h +--- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/c++locale_internal.h 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/c++locale_internal.h 2004-01-09 07:55:02.000000000 -0600 +@@ -0,0 +1,63 @@ ++// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*- ++ ++// Copyright (C) 2002 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 2, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING. If not, write to the Free ++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++// USA. ++ ++// As a special exception, you may use this file as part of a free software ++// library without restriction. Specifically, if other files instantiate ++// templates or use macros or inline functions from this file, or you compile ++// this file and link it with other files to produce an executable, this ++// file does not by itself cause the resulting executable to be covered by ++// the GNU General Public License. This exception does not however ++// invalidate any other reasons why the executable file might be covered by ++// the GNU General Public License. ++ ++// Written by Jakub Jelinek ++ ++#include ++ ++#ifdef __UCLIBC_MJN3_ONLY__ ++#warning clean this up ++#endif ++ ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ ++extern "C" __typeof(iswctype_l) __iswctype_l; ++extern "C" __typeof(nl_langinfo_l) __nl_langinfo_l; ++extern "C" __typeof(strcoll_l) __strcoll_l; ++extern "C" __typeof(strftime_l) __strftime_l; ++extern "C" __typeof(strtod_l) __strtod_l; ++extern "C" __typeof(strtof_l) __strtof_l; ++extern "C" __typeof(strtold_l) __strtold_l; ++extern "C" __typeof(strtol_l) __strtol_l; ++extern "C" __typeof(strtoll_l) __strtoll_l; ++extern "C" __typeof(strtoul_l) __strtoul_l; ++extern "C" __typeof(strtoull_l) __strtoull_l; ++extern "C" __typeof(strxfrm_l) __strxfrm_l; ++extern "C" __typeof(towlower_l) __towlower_l; ++extern "C" __typeof(towupper_l) __towupper_l; ++extern "C" __typeof(wcscoll_l) __wcscoll_l; ++extern "C" __typeof(wcsftime_l) __wcsftime_l; ++extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l; ++extern "C" __typeof(wctype_l) __wctype_l; ++extern "C" __typeof(newlocale) __newlocale; ++extern "C" __typeof(freelocale) __freelocale; ++extern "C" __typeof(duplocale) __duplocale; ++extern "C" __typeof(uselocale) __uselocale; ++ ++#endif // GLIBC 2.3 and later +diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/c_locale.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/c_locale.cc +--- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/c_locale.cc 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/c_locale.cc 2004-01-09 08:37:55.000000000 -0600 +@@ -0,0 +1,231 @@ ++// Wrapper for underlying C-language localization -*- C++ -*- ++ ++// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 2, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING. If not, write to the Free ++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++// USA. ++ ++// As a special exception, you may use this file as part of a free software ++// library without restriction. Specifically, if other files instantiate ++// templates or use macros or inline functions from this file, or you compile ++// this file and link it with other files to produce an executable, this ++// file does not by itself cause the resulting executable to be covered by ++// the GNU General Public License. This exception does not however ++// invalidate any other reasons why the executable file might be covered by ++// the GNU General Public License. ++ ++// ++// ISO C++ 14882: 22.8 Standard locale categories. ++// ++ ++// Written by Benjamin Kosnik ++ ++#include ++#include ++#include ++#include ++ ++#ifndef __UCLIBC_HAS_XLOCALE__ ++#define __strtol_l(S, E, B, L) strtol((S), (E), (B)) ++#define __strtoul_l(S, E, B, L) strtoul((S), (E), (B)) ++#define __strtoll_l(S, E, B, L) strtoll((S), (E), (B)) ++#define __strtoull_l(S, E, B, L) strtoull((S), (E), (B)) ++#define __strtof_l(S, E, L) strtof((S), (E)) ++#define __strtod_l(S, E, L) strtod((S), (E)) ++#define __strtold_l(S, E, L) strtold((S), (E)) ++#endif ++ ++namespace std ++{ ++ template<> ++ void ++ __convert_to_v(const char* __s, long& __v, ios_base::iostate& __err, ++ const __c_locale& __cloc, int __base) ++ { ++ if (!(__err & ios_base::failbit)) ++ { ++ char* __sanity; ++ errno = 0; ++ long __l = __strtol_l(__s, &__sanity, __base, __cloc); ++ if (__sanity != __s && *__sanity == '\0' && errno != ERANGE) ++ __v = __l; ++ else ++ __err |= ios_base::failbit; ++ } ++ } ++ ++ template<> ++ void ++ __convert_to_v(const char* __s, unsigned long& __v, ++ ios_base::iostate& __err, const __c_locale& __cloc, ++ int __base) ++ { ++ if (!(__err & ios_base::failbit)) ++ { ++ char* __sanity; ++ errno = 0; ++ unsigned long __ul = __strtoul_l(__s, &__sanity, __base, __cloc); ++ if (__sanity != __s && *__sanity == '\0' && errno != ERANGE) ++ __v = __ul; ++ else ++ __err |= ios_base::failbit; ++ } ++ } ++ ++#ifdef _GLIBCPP_USE_LONG_LONG ++ template<> ++ void ++ __convert_to_v(const char* __s, long long& __v, ios_base::iostate& __err, ++ const __c_locale& __cloc, int __base) ++ { ++ if (!(__err & ios_base::failbit)) ++ { ++ char* __sanity; ++ errno = 0; ++ long long __ll = __strtoll_l(__s, &__sanity, __base, __cloc); ++ if (__sanity != __s && *__sanity == '\0' && errno != ERANGE) ++ __v = __ll; ++ else ++ __err |= ios_base::failbit; ++ } ++ } ++ ++ template<> ++ void ++ __convert_to_v(const char* __s, unsigned long long& __v, ++ ios_base::iostate& __err, const __c_locale& __cloc, ++ int __base) ++ { ++ if (!(__err & ios_base::failbit)) ++ { ++ char* __sanity; ++ errno = 0; ++ unsigned long long __ull = __strtoull_l(__s, &__sanity, __base, ++ __cloc); ++ if (__sanity != __s && *__sanity == '\0' && errno != ERANGE) ++ __v = __ull; ++ else ++ __err |= ios_base::failbit; ++ } ++ } ++#endif ++ ++ template<> ++ void ++ __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err, ++ const __c_locale& __cloc, int) ++ { ++ if (!(__err & ios_base::failbit)) ++ { ++ char* __sanity; ++ errno = 0; ++ float __f = __strtof_l(__s, &__sanity, __cloc); ++ if (__sanity != __s && *__sanity == '\0' && errno != ERANGE) ++ __v = __f; ++ else ++ __err |= ios_base::failbit; ++ } ++ } ++ ++ template<> ++ void ++ __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err, ++ const __c_locale& __cloc, int) ++ { ++ if (!(__err & ios_base::failbit)) ++ { ++ char* __sanity; ++ errno = 0; ++ double __d = __strtod_l(__s, &__sanity, __cloc); ++ if (__sanity != __s && *__sanity == '\0' && errno != ERANGE) ++ __v = __d; ++ else ++ __err |= ios_base::failbit; ++ } ++ } ++ ++ template<> ++ void ++ __convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err, ++ const __c_locale& __cloc, int) ++ { ++ if (!(__err & ios_base::failbit)) ++ { ++ char* __sanity; ++ errno = 0; ++ long double __ld = __strtold_l(__s, &__sanity, __cloc); ++ if (__sanity != __s && *__sanity == '\0' && errno != ERANGE) ++ __v = __ld; ++ else ++ __err |= ios_base::failbit; ++ } ++ } ++ ++ void ++ locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s, ++ __c_locale __old) ++ { ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __cloc = __newlocale(1 << LC_ALL, __s, __old); ++ if (!__cloc) ++ { ++ // This named locale is not supported by the underlying OS. ++ __throw_runtime_error("attempt to create locale from unknown name"); ++ } ++#else ++ __cloc = NULL; ++#endif ++ } ++ ++ void ++ locale::facet::_S_destroy_c_locale(__c_locale& __cloc) ++ { ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ if (_S_c_locale != __cloc) ++ __freelocale(__cloc); ++#else ++ __cloc = NULL; ++#endif ++ } ++ ++ __c_locale ++ locale::facet::_S_clone_c_locale(__c_locale& __cloc) ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ { return __duplocale(__cloc); } ++#else ++ { return __c_locale(); } ++#endif ++ ++ const char* locale::_S_categories[_S_categories_size ++ + _S_extra_categories_size] = ++ { ++ "LC_CTYPE", ++ "LC_NUMERIC", ++ "LC_TIME", ++ "LC_COLLATE", ++ "LC_MONETARY", ++ "LC_MESSAGES" ++#if _GLIBCPP_NUM_CATEGORIES != 0 ++ , ++ "LC_PAPER", ++ "LC_NAME", ++ "LC_ADDRESS", ++ "LC_TELEPHONE", ++ "LC_MEASUREMENT", ++ "LC_IDENTIFICATION" ++#endif ++ }; ++} // namespace std +diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/c_locale.h gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/c_locale.h +--- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/c_locale.h 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/c_locale.h 2004-01-09 07:51:06.000000000 -0600 +@@ -0,0 +1,118 @@ ++// Wrapper for underlying C-language localization -*- C++ -*- ++ ++// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 2, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING. If not, write to the Free ++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++// USA. ++ ++// As a special exception, you may use this file as part of a free software ++// library without restriction. Specifically, if other files instantiate ++// templates or use macros or inline functions from this file, or you compile ++// this file and link it with other files to produce an executable, this ++// file does not by itself cause the resulting executable to be covered by ++// the GNU General Public License. This exception does not however ++// invalidate any other reasons why the executable file might be covered by ++// the GNU General Public License. ++ ++// ++// ISO C++ 14882: 22.8 Standard locale categories. ++// ++ ++// Written by Benjamin Kosnik ++ ++#ifndef _CPP_BITS_C_LOCALE_H ++#define _CPP_BITS_C_LOCALE_H 1 ++ ++#pragma GCC system_header ++ ++#include ++#include // For codecvt ++#ifdef __UCLIBC_MJN3_ONLY__ ++#warning fix this ++#endif ++#ifdef __UCLIBC_HAS_LOCALE__ ++#include // For codecvt using iconv, iconv_t ++#endif ++#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ ++#include // For messages ++#endif ++ ++#ifdef __UCLIBC_MJN3_ONLY__ ++#warning what is _GLIBCPP_C_LOCALE_GNU for ++#endif ++#define _GLIBCPP_C_LOCALE_GNU 1 ++ ++#ifdef __UCLIBC_MJN3_ONLY__ ++#warning fix categories ++#endif ++// #define _GLIBCPP_NUM_CATEGORIES 6 ++#define _GLIBCPP_NUM_CATEGORIES 0 ++ ++#ifdef __UCLIBC_HAS_XLOCALE__ ++namespace __gnu_cxx ++{ ++ extern "C" __typeof(uselocale) __uselocale; ++} ++#endif ++ ++namespace std ++{ ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ typedef __locale_t __c_locale; ++#else ++ typedef int* __c_locale; ++#endif ++ ++ // Convert numeric value of type _Tv to string and return length of ++ // string. If snprintf is available use it, otherwise fall back to ++ // the unsafe sprintf which, in general, can be dangerous and should ++ // be avoided. ++ template ++ int ++ __convert_from_v(char* __out, const int __size, const char* __fmt, ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ _Tv __v, const __c_locale& __cloc, int __prec = -1) ++ { ++ __c_locale __old = __gnu_cxx::__uselocale(__cloc); ++#else ++ _Tv __v, const __c_locale&, int __prec = -1) ++ { ++# ifdef __UCLIBC_HAS_LOCALE__ ++ char* __old = setlocale(LC_ALL, NULL); ++ char* __sav = static_cast(malloc(strlen(__old) + 1)); ++ if (__sav) ++ strcpy(__sav, __old); ++ setlocale(LC_ALL, "C"); ++# endif ++#endif ++ ++ int __ret; ++ if (__prec >= 0) ++ __ret = snprintf(__out, __size, __fmt, __prec, __v); ++ else ++ __ret = snprintf(__out, __size, __fmt, __v); ++ ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __gnu_cxx::__uselocale(__old); ++#elif defined __UCLIBC_HAS_LOCALE__ ++ setlocale(LC_ALL, __sav); ++ free(__sav); ++#endif ++ return __ret; ++ } ++} ++ ++#endif +diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/codecvt_members.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/codecvt_members.cc +--- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/codecvt_members.cc 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/codecvt_members.cc 2004-01-09 04:04:34.000000000 -0600 +@@ -0,0 +1,113 @@ ++// std::codecvt implementation details, GNU version -*- C++ -*- ++ ++// Copyright (C) 2002, 2003 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 2, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING. If not, write to the Free ++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++// USA. ++ ++// As a special exception, you may use this file as part of a free software ++// library without restriction. Specifically, if other files instantiate ++// templates or use macros or inline functions from this file, or you compile ++// this file and link it with other files to produce an executable, this ++// file does not by itself cause the resulting executable to be covered by ++// the GNU General Public License. This exception does not however ++// invalidate any other reasons why the executable file might be covered by ++// the GNU General Public License. ++ ++// ++// ISO C++ 14882: 22.2.1.5 - Template class codecvt ++// ++ ++// Written by Benjamin Kosnik ++ ++#include ++#include ++ ++namespace std ++{ ++ // Specializations. ++#ifdef _GLIBCPP_USE_WCHAR_T ++ codecvt_base::result ++ codecvt:: ++ do_out(state_type& __state, const intern_type* __from, ++ const intern_type* __from_end, const intern_type*& __from_next, ++ extern_type* __to, extern_type* __to_end, ++ extern_type*& __to_next) const ++ { ++ result __ret = error; ++ size_t __len = min(__from_end - __from, __to_end - __to); ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __c_locale __old = __uselocale(_S_c_locale); ++#endif ++ size_t __conv = wcsrtombs(__to, &__from, __len, &__state); ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __uselocale(__old); ++#endif ++ ++ if (__conv == __len) ++ { ++ __from_next = __from; ++ __to_next = __to + __conv; ++ __ret = ok; ++ } ++ else if (__conv > 0 && __conv < __len) ++ { ++ __from_next = __from; ++ __to_next = __to + __conv; ++ __ret = partial; ++ } ++ else ++ __ret = error; ++ ++ return __ret; ++ } ++ ++ codecvt_base::result ++ codecvt:: ++ do_in(state_type& __state, const extern_type* __from, ++ const extern_type* __from_end, const extern_type*& __from_next, ++ intern_type* __to, intern_type* __to_end, ++ intern_type*& __to_next) const ++ { ++ result __ret = error; ++ size_t __len = min(__from_end - __from, __to_end - __to); ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __c_locale __old = __uselocale(_S_c_locale); ++#endif ++ size_t __conv = mbsrtowcs(__to, &__from, __len, &__state); ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __uselocale(__old); ++#endif ++ ++ if (__conv == __len) ++ { ++ __from_next = __from; ++ __to_next = __to + __conv; ++ __ret = ok; ++ } ++ else if (__conv > 0 && __conv < __len) ++ { ++ __from_next = __from; ++ __to_next = __to + __conv; ++ __ret = partial; ++ } ++ else ++ __ret = error; ++ ++ return __ret; ++ } ++#endif ++} +diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/codecvt_specializations.h gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/codecvt_specializations.h +--- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/codecvt_specializations.h 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/codecvt_specializations.h 2004-01-09 01:53:51.000000000 -0600 +@@ -0,0 +1,461 @@ ++// Locale support (codecvt) -*- C++ -*- ++ ++// Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 2, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING. If not, write to the Free ++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++// USA. ++ ++// As a special exception, you may use this file as part of a free software ++// library without restriction. Specifically, if other files instantiate ++// templates or use macros or inline functions from this file, or you compile ++// this file and link it with other files to produce an executable, this ++// file does not by itself cause the resulting executable to be covered by ++// the GNU General Public License. This exception does not however ++// invalidate any other reasons why the executable file might be covered by ++// the GNU General Public License. ++ ++// ++// ISO C++ 14882: 22.2.1.5 Template class codecvt ++// ++ ++// Warning: this file is not meant for user inclusion. Use . ++ ++// Written by Benjamin Kosnik ++ ++ // XXX ++ // Define this here to codecvt.cc can have _S_max_size definition. ++#define _GLIBCPP_USE___ENC_TRAITS 1 ++ ++ // Extension to use icov for dealing with character encodings, ++ // including conversions and comparisons between various character ++ // sets. This object encapsulates data that may need to be shared between ++ // char_traits, codecvt and ctype. ++ class __enc_traits ++ { ++ public: ++ // Types: ++ // NB: A conversion descriptor subsumes and enhances the ++ // functionality of a simple state type such as mbstate_t. ++ typedef iconv_t __desc_type; ++ ++ protected: ++ // Data Members: ++ // Max size of charset encoding name ++ static const int _S_max_size = 32; ++ // Name of internal character set encoding. ++ char _M_int_enc[_S_max_size]; ++ // Name of external character set encoding. ++ char _M_ext_enc[_S_max_size]; ++ ++ // Conversion descriptor between external encoding to internal encoding. ++ __desc_type _M_in_desc; ++ // Conversion descriptor between internal encoding to external encoding. ++ __desc_type _M_out_desc; ++ ++ // Details the byte-order marker for the external encoding, if necessary. ++ int _M_ext_bom; ++ ++ // Details the byte-order marker for the internal encoding, if necessary. ++ int _M_int_bom; ++ ++ public: ++ explicit __enc_traits() ++ : _M_in_desc(0), _M_out_desc(0), _M_ext_bom(0), _M_int_bom(0) ++ { ++ memset(_M_int_enc, 0, _S_max_size); ++ memset(_M_ext_enc, 0, _S_max_size); ++ } ++ ++ explicit __enc_traits(const char* __int, const char* __ext, ++ int __ibom = 0, int __ebom = 0) ++ : _M_in_desc(0), _M_out_desc(0), _M_ext_bom(0), _M_int_bom(0) ++ { ++ strncpy(_M_int_enc, __int, _S_max_size); ++ strncpy(_M_ext_enc, __ext, _S_max_size); ++ } ++ ++ // 21.1.2 traits typedefs ++ // p4 ++ // typedef STATE_T state_type ++ // requires: state_type shall meet the requirements of ++ // CopyConstructible types (20.1.3) ++ __enc_traits(const __enc_traits& __obj): _M_in_desc(0), _M_out_desc(0) ++ { ++ strncpy(_M_int_enc, __obj._M_int_enc, _S_max_size); ++ strncpy(_M_ext_enc, __obj._M_ext_enc, _S_max_size); ++ _M_ext_bom = __obj._M_ext_bom; ++ _M_int_bom = __obj._M_int_bom; ++ } ++ ++ // Need assignment operator as well. ++ __enc_traits& ++ operator=(const __enc_traits& __obj) ++ { ++ strncpy(_M_int_enc, __obj._M_int_enc, _S_max_size); ++ strncpy(_M_ext_enc, __obj._M_ext_enc, _S_max_size); ++ _M_in_desc = 0; ++ _M_out_desc = 0; ++ _M_ext_bom = __obj._M_ext_bom; ++ _M_int_bom = __obj._M_int_bom; ++ return *this; ++ } ++ ++ ~__enc_traits() ++ { ++ __desc_type __err = reinterpret_cast(-1); ++ if (_M_in_desc && _M_in_desc != __err) ++ iconv_close(_M_in_desc); ++ if (_M_out_desc && _M_out_desc != __err) ++ iconv_close(_M_out_desc); ++ } ++ ++ void ++ _M_init() ++ { ++ const __desc_type __err = reinterpret_cast(-1); ++ if (!_M_in_desc) ++ { ++ _M_in_desc = iconv_open(_M_int_enc, _M_ext_enc); ++ if (_M_in_desc == __err) ++ __throw_runtime_error("creating iconv input descriptor failed."); ++ } ++ if (!_M_out_desc) ++ { ++ _M_out_desc = iconv_open(_M_ext_enc, _M_int_enc); ++ if (_M_out_desc == __err) ++ __throw_runtime_error("creating iconv output descriptor failed."); ++ } ++ } ++ ++ bool ++ _M_good() ++ { ++ const __desc_type __err = reinterpret_cast(-1); ++ bool __test = _M_in_desc && _M_in_desc != __err; ++ __test &= _M_out_desc && _M_out_desc != __err; ++ return __test; ++ } ++ ++ const __desc_type* ++ _M_get_in_descriptor() ++ { return &_M_in_desc; } ++ ++ const __desc_type* ++ _M_get_out_descriptor() ++ { return &_M_out_desc; } ++ ++ int ++ _M_get_external_bom() ++ { return _M_ext_bom; } ++ ++ int ++ _M_get_internal_bom() ++ { return _M_int_bom; } ++ ++ const char* ++ _M_get_internal_enc() ++ { return _M_int_enc; } ++ ++ const char* ++ _M_get_external_enc() ++ { return _M_ext_enc; } ++ }; ++ ++ // Partial specialization ++ // This specialization takes advantage of iconv to provide code ++ // conversions between a large number of character encodings. ++ template ++ class codecvt<_InternT, _ExternT, __enc_traits> ++ : public __codecvt_abstract_base<_InternT, _ExternT, __enc_traits> ++ { ++ public: ++ // Types: ++ typedef codecvt_base::result result; ++ typedef _InternT intern_type; ++ typedef _ExternT extern_type; ++ typedef __enc_traits state_type; ++ typedef __enc_traits::__desc_type __desc_type; ++ typedef __enc_traits __enc_type; ++ ++ // Data Members: ++ static locale::id id; ++ ++ explicit ++ codecvt(size_t __refs = 0) ++ : __codecvt_abstract_base(__refs) ++ { } ++ ++ explicit ++ codecvt(__enc_type* __enc, size_t __refs = 0) ++ : __codecvt_abstract_base(__refs) ++ { } ++ ++ protected: ++ virtual ++ ~codecvt() { } ++ ++ virtual result ++ do_out(state_type& __state, const intern_type* __from, ++ const intern_type* __from_end, const intern_type*& __from_next, ++ extern_type* __to, extern_type* __to_end, ++ extern_type*& __to_next) const; ++ ++ virtual result ++ do_unshift(state_type& __state, extern_type* __to, ++ extern_type* __to_end, extern_type*& __to_next) const; ++ ++ virtual result ++ do_in(state_type& __state, const extern_type* __from, ++ const extern_type* __from_end, const extern_type*& __from_next, ++ intern_type* __to, intern_type* __to_end, ++ intern_type*& __to_next) const; ++ ++ virtual int ++ do_encoding() const throw(); ++ ++ virtual bool ++ do_always_noconv() const throw(); ++ ++ virtual int ++ do_length(const state_type&, const extern_type* __from, ++ const extern_type* __end, size_t __max) const; ++ ++ virtual int ++ do_max_length() const throw(); ++ }; ++ ++ template ++ locale::id ++ codecvt<_InternT, _ExternT, __enc_traits>::id; ++ ++ // This adaptor works around the signature problems of the second ++ // argument to iconv(): SUSv2 and others use 'const char**', but glibc 2.2 ++ // uses 'char**', which matches the POSIX 1003.1-2001 standard. ++ // Using this adaptor, g++ will do the work for us. ++ template ++ inline size_t ++ __iconv_adaptor(size_t(*__func)(iconv_t, _T, size_t*, char**, size_t*), ++ iconv_t __cd, char** __inbuf, size_t* __inbytes, ++ char** __outbuf, size_t* __outbytes) ++ { return __func(__cd, (_T)__inbuf, __inbytes, __outbuf, __outbytes); } ++ ++ template ++ codecvt_base::result ++ codecvt<_InternT, _ExternT, __enc_traits>:: ++ do_out(state_type& __state, const intern_type* __from, ++ const intern_type* __from_end, const intern_type*& __from_next, ++ extern_type* __to, extern_type* __to_end, ++ extern_type*& __to_next) const ++ { ++ result __ret = codecvt_base::error; ++ if (__state._M_good()) ++ { ++ typedef state_type::__desc_type __desc_type; ++ const __desc_type* __desc = __state._M_get_out_descriptor(); ++ const size_t __fmultiple = sizeof(intern_type); ++ size_t __fbytes = __fmultiple * (__from_end - __from); ++ const size_t __tmultiple = sizeof(extern_type); ++ size_t __tbytes = __tmultiple * (__to_end - __to); ++ ++ // Argument list for iconv specifies a byte sequence. Thus, ++ // all to/from arrays must be brutally casted to char*. ++ char* __cto = reinterpret_cast(__to); ++ char* __cfrom; ++ size_t __conv; ++ ++ // Some encodings need a byte order marker as the first item ++ // in the byte stream, to designate endian-ness. The default ++ // value for the byte order marker is NULL, so if this is ++ // the case, it's not necessary and we can just go on our ++ // merry way. ++ int __int_bom = __state._M_get_internal_bom(); ++ if (__int_bom) ++ { ++ size_t __size = __from_end - __from; ++ intern_type* __cfixed = static_cast(__builtin_alloca(sizeof(intern_type) * (__size + 1))); ++ __cfixed[0] = static_cast(__int_bom); ++ char_traits::copy(__cfixed + 1, __from, __size); ++ __cfrom = reinterpret_cast(__cfixed); ++ __conv = __iconv_adaptor(iconv, *__desc, &__cfrom, ++ &__fbytes, &__cto, &__tbytes); ++ } ++ else ++ { ++ intern_type* __cfixed = const_cast(__from); ++ __cfrom = reinterpret_cast(__cfixed); ++ __conv = __iconv_adaptor(iconv, *__desc, &__cfrom, &__fbytes, ++ &__cto, &__tbytes); ++ } ++ ++ if (__conv != size_t(-1)) ++ { ++ __from_next = reinterpret_cast(__cfrom); ++ __to_next = reinterpret_cast(__cto); ++ __ret = codecvt_base::ok; ++ } ++ else ++ { ++ if (__fbytes < __fmultiple * (__from_end - __from)) ++ { ++ __from_next = reinterpret_cast(__cfrom); ++ __to_next = reinterpret_cast(__cto); ++ __ret = codecvt_base::partial; ++ } ++ else ++ __ret = codecvt_base::error; ++ } ++ } ++ return __ret; ++ } ++ ++ template ++ codecvt_base::result ++ codecvt<_InternT, _ExternT, __enc_traits>:: ++ do_unshift(state_type& __state, extern_type* __to, ++ extern_type* __to_end, extern_type*& __to_next) const ++ { ++ result __ret = codecvt_base::error; ++ if (__state._M_good()) ++ { ++ typedef state_type::__desc_type __desc_type; ++ const __desc_type* __desc = __state._M_get_in_descriptor(); ++ const size_t __tmultiple = sizeof(intern_type); ++ size_t __tlen = __tmultiple * (__to_end - __to); ++ ++ // Argument list for iconv specifies a byte sequence. Thus, ++ // all to/from arrays must be brutally casted to char*. ++ char* __cto = reinterpret_cast(__to); ++ size_t __conv = __iconv_adaptor(iconv,*__desc, NULL, NULL, ++ &__cto, &__tlen); ++ ++ if (__conv != size_t(-1)) ++ { ++ __to_next = reinterpret_cast(__cto); ++ if (__tlen == __tmultiple * (__to_end - __to)) ++ __ret = codecvt_base::noconv; ++ else if (__tlen == 0) ++ __ret = codecvt_base::ok; ++ else ++ __ret = codecvt_base::partial; ++ } ++ else ++ __ret = codecvt_base::error; ++ } ++ return __ret; ++ } ++ ++ template ++ codecvt_base::result ++ codecvt<_InternT, _ExternT, __enc_traits>:: ++ do_in(state_type& __state, const extern_type* __from, ++ const extern_type* __from_end, const extern_type*& __from_next, ++ intern_type* __to, intern_type* __to_end, ++ intern_type*& __to_next) const ++ { ++ result __ret = codecvt_base::error; ++ if (__state._M_good()) ++ { ++ typedef state_type::__desc_type __desc_type; ++ const __desc_type* __desc = __state._M_get_in_descriptor(); ++ const size_t __fmultiple = sizeof(extern_type); ++ size_t __flen = __fmultiple * (__from_end - __from); ++ const size_t __tmultiple = sizeof(intern_type); ++ size_t __tlen = __tmultiple * (__to_end - __to); ++ ++ // Argument list for iconv specifies a byte sequence. Thus, ++ // all to/from arrays must be brutally casted to char*. ++ char* __cto = reinterpret_cast(__to); ++ char* __cfrom; ++ size_t __conv; ++ ++ // Some encodings need a byte order marker as the first item ++ // in the byte stream, to designate endian-ness. The default ++ // value for the byte order marker is NULL, so if this is ++ // the case, it's not necessary and we can just go on our ++ // merry way. ++ int __ext_bom = __state._M_get_external_bom(); ++ if (__ext_bom) ++ { ++ size_t __size = __from_end - __from; ++ extern_type* __cfixed = static_cast(__builtin_alloca(sizeof(extern_type) * (__size + 1))); ++ __cfixed[0] = static_cast(__ext_bom); ++ char_traits::copy(__cfixed + 1, __from, __size); ++ __cfrom = reinterpret_cast(__cfixed); ++ __conv = __iconv_adaptor(iconv, *__desc, &__cfrom, ++ &__flen, &__cto, &__tlen); ++ } ++ else ++ { ++ extern_type* __cfixed = const_cast(__from); ++ __cfrom = reinterpret_cast(__cfixed); ++ __conv = __iconv_adaptor(iconv, *__desc, &__cfrom, ++ &__flen, &__cto, &__tlen); ++ } ++ ++ ++ if (__conv != size_t(-1)) ++ { ++ __from_next = reinterpret_cast(__cfrom); ++ __to_next = reinterpret_cast(__cto); ++ __ret = codecvt_base::ok; ++ } ++ else ++ { ++ if (__flen < static_cast(__from_end - __from)) ++ { ++ __from_next = reinterpret_cast(__cfrom); ++ __to_next = reinterpret_cast(__cto); ++ __ret = codecvt_base::partial; ++ } ++ else ++ __ret = codecvt_base::error; ++ } ++ } ++ return __ret; ++ } ++ ++ template ++ int ++ codecvt<_InternT, _ExternT, __enc_traits>:: ++ do_encoding() const throw() ++ { ++ int __ret = 0; ++ if (sizeof(_ExternT) <= sizeof(_InternT)) ++ __ret = sizeof(_InternT)/sizeof(_ExternT); ++ return __ret; ++ } ++ ++ template ++ bool ++ codecvt<_InternT, _ExternT, __enc_traits>:: ++ do_always_noconv() const throw() ++ { return false; } ++ ++ template ++ int ++ codecvt<_InternT, _ExternT, __enc_traits>:: ++ do_length(const state_type&, const extern_type* __from, ++ const extern_type* __end, size_t __max) const ++ { return min(__max, static_cast(__end - __from)); } ++ ++#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS ++// 74. Garbled text for codecvt::do_max_length ++ template ++ int ++ codecvt<_InternT, _ExternT, __enc_traits>:: ++ do_max_length() const throw() ++ { return 1; } ++#endif +diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/collate_members.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/collate_members.cc +--- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/collate_members.cc 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/collate_members.cc 2004-01-09 08:06:24.000000000 -0600 +@@ -0,0 +1,80 @@ ++// std::collate implementation details, GNU version -*- C++ -*- ++ ++// Copyright (C) 2001, 2002 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 2, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING. If not, write to the Free ++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++// USA. ++ ++// As a special exception, you may use this file as part of a free software ++// library without restriction. Specifically, if other files instantiate ++// templates or use macros or inline functions from this file, or you compile ++// this file and link it with other files to produce an executable, this ++// file does not by itself cause the resulting executable to be covered by ++// the GNU General Public License. This exception does not however ++// invalidate any other reasons why the executable file might be covered by ++// the GNU General Public License. ++ ++// ++// ISO C++ 14882: 22.2.4.1.2 collate virtual functions ++// ++ ++// Written by Benjamin Kosnik ++ ++#include ++#include ++ ++#ifndef __UCLIBC_HAS_XLOCALE__ ++#define __strcoll_l(S1, S2, L) strcoll((S1), (S2)) ++#define __strxfrm_l(S1, S2, N, L) strxfrm((S1), (S2), (N)) ++#define __wcscoll_l(S1, S2, L) wcscoll((S1), (S2)) ++#define __wcsxfrm_l(S1, S2, N, L) wcsxfrm((S1), (S2), (N)) ++#endif ++ ++namespace std ++{ ++ // These are basically extensions to char_traits, and perhaps should ++ // be put there instead of here. ++ template<> ++ int ++ collate::_M_compare(const char* __one, const char* __two) const ++ { ++ int __cmp = __strcoll_l(__one, __two, _M_c_locale_collate); ++ return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0); ++ } ++ ++ template<> ++ size_t ++ collate::_M_transform(char* __to, const char* __from, ++ size_t __n) const ++ { return __strxfrm_l(__to, __from, __n, _M_c_locale_collate); } ++ ++#ifdef _GLIBCPP_USE_WCHAR_T ++ template<> ++ int ++ collate::_M_compare(const wchar_t* __one, ++ const wchar_t* __two) const ++ { ++ int __cmp = __wcscoll_l(__one, __two, _M_c_locale_collate); ++ return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0); ++ } ++ ++ template<> ++ size_t ++ collate::_M_transform(wchar_t* __to, const wchar_t* __from, ++ size_t __n) const ++ { return __wcsxfrm_l(__to, __from, __n, _M_c_locale_collate); } ++#endif ++} +diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/ctype_members.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/ctype_members.cc +--- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/ctype_members.cc 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/ctype_members.cc 2004-01-09 08:15:41.000000000 -0600 +@@ -0,0 +1,274 @@ ++// std::ctype implementation details, GNU version -*- C++ -*- ++ ++// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 2, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING. If not, write to the Free ++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++// USA. ++ ++// As a special exception, you may use this file as part of a free software ++// library without restriction. Specifically, if other files instantiate ++// templates or use macros or inline functions from this file, or you compile ++// this file and link it with other files to produce an executable, this ++// file does not by itself cause the resulting executable to be covered by ++// the GNU General Public License. This exception does not however ++// invalidate any other reasons why the executable file might be covered by ++// the GNU General Public License. ++ ++// ++// ISO C++ 14882: 22.2.1.1.2 ctype virtual functions. ++// ++ ++// Written by Benjamin Kosnik ++ ++#define _LIBC ++#include ++#undef _LIBC ++#include ++ ++#ifndef __UCLIBC_HAS_XLOCALE__ ++#define __wctype_l(S, L) wctype((S)) ++#define __towupper_l(C, L) towupper((C)) ++#define __towlower_l(C, L) towlower((C)) ++#define __iswctype_l(C, M, L) iswctype((C), (M)) ++#endif ++ ++namespace std ++{ ++ // NB: The other ctype specializations are in src/locale.cc and ++ // various /config/os/* files. ++ template<> ++ ctype_byname::ctype_byname(const char* __s, size_t __refs) ++ : ctype(0, false, __refs) ++ { ++ _S_destroy_c_locale(_M_c_locale_ctype); ++ _S_create_c_locale(_M_c_locale_ctype, __s); ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ _M_toupper = _M_c_locale_ctype->__ctype_toupper; ++ _M_tolower = _M_c_locale_ctype->__ctype_tolower; ++ _M_table = _M_c_locale_ctype->__ctype_b; ++#endif ++ } ++ ++#ifdef _GLIBCPP_USE_WCHAR_T ++ ctype::__wmask_type ++ ctype::_M_convert_to_wmask(const mask __m) const ++ { ++ __wmask_type __ret; ++ switch (__m) ++ { ++ case space: ++ __ret = __wctype_l("space", _M_c_locale_ctype); ++ break; ++ case print: ++ __ret = __wctype_l("print", _M_c_locale_ctype); ++ break; ++ case cntrl: ++ __ret = __wctype_l("cntrl", _M_c_locale_ctype); ++ break; ++ case upper: ++ __ret = __wctype_l("upper", _M_c_locale_ctype); ++ break; ++ case lower: ++ __ret = __wctype_l("lower", _M_c_locale_ctype); ++ break; ++ case alpha: ++ __ret = __wctype_l("alpha", _M_c_locale_ctype); ++ break; ++ case digit: ++ __ret = __wctype_l("digit", _M_c_locale_ctype); ++ break; ++ case punct: ++ __ret = __wctype_l("punct", _M_c_locale_ctype); ++ break; ++ case xdigit: ++ __ret = __wctype_l("xdigit", _M_c_locale_ctype); ++ break; ++ case alnum: ++ __ret = __wctype_l("alnum", _M_c_locale_ctype); ++ break; ++ case graph: ++ __ret = __wctype_l("graph", _M_c_locale_ctype); ++ break; ++ default: ++ __ret = 0; ++ } ++ return __ret; ++ }; ++ ++ wchar_t ++ ctype::do_toupper(wchar_t __c) const ++ { return __towupper_l(__c, _M_c_locale_ctype); } ++ ++ const wchar_t* ++ ctype::do_toupper(wchar_t* __lo, const wchar_t* __hi) const ++ { ++ while (__lo < __hi) ++ { ++ *__lo = __towupper_l(*__lo, _M_c_locale_ctype); ++ ++__lo; ++ } ++ return __hi; ++ } ++ ++ wchar_t ++ ctype::do_tolower(wchar_t __c) const ++ { return __towlower_l(__c, _M_c_locale_ctype); } ++ ++ const wchar_t* ++ ctype::do_tolower(wchar_t* __lo, const wchar_t* __hi) const ++ { ++ while (__lo < __hi) ++ { ++ *__lo = __towlower_l(*__lo, _M_c_locale_ctype); ++ ++__lo; ++ } ++ return __hi; ++ } ++ ++ bool ++ ctype:: ++ do_is(mask __m, wchar_t __c) const ++ { ++ // Highest bitmask in ctype_base == 10, but extra in "C" ++ // library for blank. ++ bool __ret = false; ++ const size_t __bitmasksize = 11; ++ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur) ++ { ++ const mask __bit = static_cast(_ISbit(__bitcur)); ++ if (__m & __bit) ++ __ret |= __iswctype_l(__c, _M_convert_to_wmask(__bit), ++ _M_c_locale_ctype); ++ } ++ return __ret; ++ } ++ ++ const wchar_t* ++ ctype:: ++ do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const ++ { ++ for (;__lo < __hi; ++__vec, ++__lo) ++ { ++ // Highest bitmask in ctype_base == 10, but extra in "C" ++ // library for blank. ++ const size_t __bitmasksize = 11; ++ mask __m = 0; ++ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur) ++ { ++ const mask __bit = static_cast(_ISbit(__bitcur)); ++ if (__iswctype_l(*__lo, _M_convert_to_wmask(__bit), ++ _M_c_locale_ctype)) ++ __m |= __bit; ++ } ++ *__vec = __m; ++ } ++ return __hi; ++ } ++ ++ const wchar_t* ++ ctype:: ++ do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const ++ { ++ while (__lo < __hi && !this->do_is(__m, *__lo)) ++ ++__lo; ++ return __lo; ++ } ++ ++ const wchar_t* ++ ctype:: ++ do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const ++ { ++ while (__lo < __hi && this->do_is(__m, *__lo) != 0) ++ ++__lo; ++ return __lo; ++ } ++ ++ wchar_t ++ ctype:: ++ do_widen(char __c) const ++ { ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __c_locale __old = __uselocale(_M_c_locale_ctype); ++#endif ++ wchar_t __ret = btowc(__c); ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __uselocale(__old); ++#endif ++ return __ret; ++ } ++ ++ const char* ++ ctype:: ++ do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const ++ { ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __c_locale __old = __uselocale(_M_c_locale_ctype); ++#endif ++ mbstate_t __state; ++ memset(static_cast(&__state), 0, sizeof(mbstate_t)); ++ mbsrtowcs(__dest, &__lo, __hi - __lo, &__state); ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __uselocale(__old); ++#endif ++ return __hi; ++ } ++ ++ char ++ ctype:: ++ do_narrow(wchar_t __wc, char __dfault) const ++ { ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __c_locale __old = __uselocale(_M_c_locale_ctype); ++#endif ++ int __c = wctob(__wc); ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __uselocale(__old); ++#endif ++ return (__c == EOF ? __dfault : static_cast(__c)); ++ } ++ ++ const wchar_t* ++ ctype:: ++ do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, ++ char* __dest) const ++ { ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __c_locale __old = __uselocale(_M_c_locale_ctype); ++#endif ++ size_t __offset = 0; ++ while (true) ++ { ++ const wchar_t* __start = __lo + __offset; ++ size_t __len = __hi - __start; ++ ++ mbstate_t __state; ++ memset(static_cast(&__state), 0, sizeof(mbstate_t)); ++ size_t __con = wcsrtombs(__dest + __offset, &__start, __len, &__state); ++ if (__con != __len && __start != 0) ++ { ++ __offset = __start - __lo; ++ __dest[__offset++] = __dfault; ++ } ++ else ++ break; ++ } ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __uselocale(__old); ++#endif ++ return __hi; ++ } ++#endif // _GLIBCPP_USE_WCHAR_T ++} +diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/messages_members.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/messages_members.cc +--- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/messages_members.cc 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/messages_members.cc 2004-01-09 08:46:16.000000000 -0600 +@@ -0,0 +1,100 @@ ++// std::messages implementation details, GNU version -*- C++ -*- ++ ++// Copyright (C) 2001, 2002 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 2, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING. If not, write to the Free ++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++// USA. ++ ++// As a special exception, you may use this file as part of a free software ++// library without restriction. Specifically, if other files instantiate ++// templates or use macros or inline functions from this file, or you compile ++// this file and link it with other files to produce an executable, this ++// file does not by itself cause the resulting executable to be covered by ++// the GNU General Public License. This exception does not however ++// invalidate any other reasons why the executable file might be covered by ++// the GNU General Public License. ++ ++// ++// ISO C++ 14882: 22.2.7.1.2 messages virtual functions ++// ++ ++// Written by Benjamin Kosnik ++ ++#include ++#include ++ ++#ifdef __UCLIBC_MJN3_ONLY__ ++#warning fix gettext stuff ++#endif ++#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ ++extern "C" char *__dcgettext(const char *domainname, ++ const char *msgid, int category); ++#undef gettext ++#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES) ++#else ++#undef gettext ++#define gettext(msgid) (msgid) ++#endif ++ ++namespace std ++{ ++ // Specializations. ++ template<> ++ string ++ messages::do_get(catalog, int, int, const string& __dfault) const ++ { ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __c_locale __old = __uselocale(_M_c_locale_messages); ++ const char* __msg = const_cast(gettext(__dfault.c_str())); ++ __uselocale(__old); ++ return string(__msg); ++#elif defined __UCLIBC_HAS_LOCALE__ ++ char* __old = strdup(setlocale(LC_ALL, NULL)); ++ setlocale(LC_ALL, _M_name_messages); ++ const char* __msg = gettext(__dfault.c_str()); ++ setlocale(LC_ALL, __old); ++ free(__old); ++ return string(__msg); ++#else ++ const char* __msg = gettext(__dfault.c_str()); ++ return string(__msg); ++#endif ++ } ++ ++#ifdef _GLIBCPP_USE_WCHAR_T ++ template<> ++ wstring ++ messages::do_get(catalog, int, int, const wstring& __dfault) const ++ { ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __c_locale __old = __uselocale(_M_c_locale_messages); ++ char* __msg = gettext(_M_convert_to_char(__dfault)); ++ __uselocale(__old); ++ return _M_convert_from_char(__msg); ++#elif defined __UCLIBC_HAS_LOCALE__ ++ char* __old = strdup(setlocale(LC_ALL, NULL)); ++ setlocale(LC_ALL, _M_name_messages); ++ char* __msg = gettext(_M_convert_to_char(__dfault)); ++ setlocale(LC_ALL, __old); ++ free(__old); ++ return _M_convert_from_char(__msg); ++# else ++ char* __msg = gettext(_M_convert_to_char(__dfault)); ++ return _M_convert_from_char(__msg); ++# endif ++ } ++#endif ++} +diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/messages_members.h gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/messages_members.h +--- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/messages_members.h 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/messages_members.h 2004-01-09 08:52:48.000000000 -0600 +@@ -0,0 +1,122 @@ ++// std::messages implementation details, GNU version -*- C++ -*- ++ ++// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 2, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING. If not, write to the Free ++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++// USA. ++ ++// As a special exception, you may use this file as part of a free software ++// library without restriction. Specifically, if other files instantiate ++// templates or use macros or inline functions from this file, or you compile ++// this file and link it with other files to produce an executable, this ++// file does not by itself cause the resulting executable to be covered by ++// the GNU General Public License. This exception does not however ++// invalidate any other reasons why the executable file might be covered by ++// the GNU General Public License. ++ ++// ++// ISO C++ 14882: 22.2.7.1.2 messages functions ++// ++ ++// Written by Benjamin Kosnik ++ ++#ifdef __UCLIBC_MJN3_ONLY__ ++#warning fix prototypes for *textdomain funcs ++#endif ++#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__ ++extern "C" char *__textdomain(const char *domainname); ++extern "C" char *__bindtextdomain(const char *domainname, ++ const char *dirname); ++#else ++#undef __textdomain ++#undef __bindtextdomain ++#define __textdomain(D) ((void)0) ++#define __bindtextdomain(D,P) ((void)0) ++#endif ++ ++ // Non-virtual member functions. ++ template ++ messages<_CharT>::messages(size_t __refs) ++ : locale::facet(__refs) ++ { ++#ifndef __UCLIBC_HAS_XLOCALE__ ++ _M_name_messages = _S_c_name; ++#endif ++ _M_c_locale_messages = _S_c_locale; ++ } ++ ++ template ++ messages<_CharT>::messages(__c_locale __cloc, ++ const char* __s, size_t __refs) ++ : locale::facet(__refs) ++ { ++#ifndef __UCLIBC_HAS_XLOCALE__ ++ _M_name_messages = new char[strlen(__s) + 1]; ++ strcpy(_M_name_messages, __s); ++#endif ++ _M_c_locale_messages = _S_clone_c_locale(__cloc); ++ } ++ ++ template ++ typename messages<_CharT>::catalog ++ messages<_CharT>::open(const basic_string& __s, const locale& __loc, ++ const char* __dir) const ++ { ++ __bindtextdomain(__s.c_str(), __dir); ++ return this->do_open(__s, __loc); ++ } ++ ++ // Virtual member functions. ++ template ++ messages<_CharT>::~messages() ++ { ++#ifndef __UCLIBC_HAS_XLOCALE__ ++ if (_S_c_name != _M_name_messages) ++ delete [] _M_name_messages; ++#endif ++ _S_destroy_c_locale(_M_c_locale_messages); ++ } ++ ++ template ++ typename messages<_CharT>::catalog ++ messages<_CharT>::do_open(const basic_string& __s, ++ const locale&) const ++ { ++ // No error checking is done, assume the catalog exists and can ++ // be used. ++ __textdomain(__s.c_str()); ++ return 0; ++ } ++ ++ template ++ void ++ messages<_CharT>::do_close(catalog) const ++ { } ++ ++ // messages_byname ++ template ++ messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs) ++ : messages<_CharT>(__refs) ++ { ++#ifndef __UCLIBC_HAS_XLOCALE__ ++ if (_S_c_name != _M_name_messages) ++ delete [] _M_name_messages; ++ _M_name_messages = new char[strlen(__s) + 1]; ++ strcpy(_M_name_messages, __s); ++#endif ++ _S_destroy_c_locale(_M_c_locale_messages); ++ _S_create_c_locale(_M_c_locale_messages, __s); ++ } +diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/monetary_members.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/monetary_members.cc +--- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/monetary_members.cc 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2004-01-09 18:20:23.000000000 -0600 +@@ -0,0 +1,578 @@ ++// std::moneypunct implementation details, GNU version -*- C++ -*- ++ ++// Copyright (C) 2001, 2002 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 2, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING. If not, write to the Free ++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++// USA. ++ ++// As a special exception, you may use this file as part of a free software ++// library without restriction. Specifically, if other files instantiate ++// templates or use macros or inline functions from this file, or you compile ++// this file and link it with other files to produce an executable, this ++// file does not by itself cause the resulting executable to be covered by ++// the GNU General Public License. This exception does not however ++// invalidate any other reasons why the executable file might be covered by ++// the GNU General Public License. ++ ++// ++// ISO C++ 14882: 22.2.6.3.2 moneypunct virtual functions ++// ++ ++// Written by Benjamin Kosnik ++ ++#define _LIBC ++#include ++#undef _LIBC ++#include ++ ++#ifdef __UCLIBC_MJN3_ONLY__ ++#warning optimize this for uclibc ++#warning tailor for stub locale support ++#endif ++ ++#ifndef __UCLIBC_HAS_XLOCALE__ ++#define __nl_langinfo_l(N, L) nl_langinfo((N)) ++#endif ++ ++namespace std ++{ ++ // Construct and return valid pattern consisting of some combination of: ++ // space none symbol sign value ++ money_base::pattern ++ money_base::_S_construct_pattern(char __precedes, char __space, char __posn) ++ { ++ pattern __ret; ++ ++ // This insanely complicated routine attempts to construct a valid ++ // pattern for use with monyepunct. A couple of invariants: ++ ++ // if (__precedes) symbol -> value ++ // else value -> symbol ++ ++ // if (__space) space ++ // else none ++ ++ // none == never first ++ // space never first or last ++ ++ // Any elegant implementations of this are welcome. ++ switch (__posn) ++ { ++ case 0: ++ case 1: ++ // 1 The sign precedes the value and symbol. ++ if (__space) ++ { ++ // Pattern starts with sign. ++ if (__precedes) ++ { ++ __ret.field[1] = symbol; ++ __ret.field[2] = space; ++ __ret.field[3] = value; ++ } ++ else ++ { ++ __ret.field[1] = value; ++ __ret.field[2] = space; ++ __ret.field[3] = symbol; ++ } ++ __ret.field[0] = sign; ++ } ++ else ++ { ++ // Pattern starts with sign and ends with none. ++ if (__precedes) ++ { ++ __ret.field[1] = symbol; ++ __ret.field[2] = value; ++ } ++ else ++ { ++ __ret.field[1] = value; ++ __ret.field[2] = symbol; ++ } ++ __ret.field[0] = sign; ++ __ret.field[3] = none; ++ } ++ break; ++ case 2: ++ // 2 The sign follows the value and symbol. ++ if (__space) ++ { ++ // Pattern either ends with sign. ++ if (__precedes) ++ { ++ __ret.field[0] = symbol; ++ __ret.field[1] = space; ++ __ret.field[2] = value; ++ } ++ else ++ { ++ __ret.field[0] = value; ++ __ret.field[1] = space; ++ __ret.field[2] = symbol; ++ } ++ __ret.field[3] = sign; ++ } ++ else ++ { ++ // Pattern ends with sign then none. ++ if (__precedes) ++ { ++ __ret.field[0] = symbol; ++ __ret.field[1] = value; ++ } ++ else ++ { ++ __ret.field[0] = value; ++ __ret.field[1] = symbol; ++ } ++ __ret.field[2] = sign; ++ __ret.field[3] = none; ++ } ++ break; ++ case 3: ++ // 3 The sign immediately precedes the symbol. ++ if (__space) ++ { ++ // Have space. ++ if (__precedes) ++ { ++ __ret.field[0] = sign; ++ __ret.field[1] = symbol; ++ __ret.field[2] = space; ++ __ret.field[3] = value; ++ } ++ else ++ { ++ __ret.field[0] = value; ++ __ret.field[1] = space; ++ __ret.field[2] = sign; ++ __ret.field[3] = symbol; ++ } ++ } ++ else ++ { ++ // Have none. ++ if (__precedes) ++ { ++ __ret.field[0] = sign; ++ __ret.field[1] = symbol; ++ __ret.field[2] = value; ++ } ++ else ++ { ++ __ret.field[0] = value; ++ __ret.field[1] = sign; ++ __ret.field[2] = symbol; ++ } ++ __ret.field[3] = none; ++ } ++ break; ++ case 4: ++ // 4 The sign immediately follows the symbol. ++ if (__space) ++ { ++ // Have space. ++ if (__precedes) ++ { ++ __ret.field[0] = symbol; ++ __ret.field[1] = sign; ++ __ret.field[2] = space; ++ __ret.field[3] = value; ++ } ++ else ++ { ++ __ret.field[0] = value; ++ __ret.field[1] = space; ++ __ret.field[2] = symbol; ++ __ret.field[3] = sign; ++ } ++ } ++ else ++ { ++ // Have none. ++ if (__precedes) ++ { ++ __ret.field[0] = symbol; ++ __ret.field[1] = sign; ++ __ret.field[2] = value; ++ } ++ else ++ { ++ __ret.field[0] = value; ++ __ret.field[1] = symbol; ++ __ret.field[2] = sign; ++ } ++ __ret.field[3] = none; ++ } ++ break; ++ default: ++ ; ++ } ++ return __ret; ++ } ++ ++ template<> ++ void ++ moneypunct::_M_initialize_moneypunct(__c_locale __cloc, ++ const char*) ++ { ++ if (!__cloc) ++ { ++ // "C" locale ++ _M_decimal_point = '.'; ++ _M_thousands_sep = ','; ++ _M_grouping = ""; ++ _M_curr_symbol = ""; ++ _M_positive_sign = ""; ++ _M_negative_sign = ""; ++ _M_frac_digits = 0; ++ _M_pos_format = money_base::_S_default_pattern; ++ _M_neg_format = money_base::_S_default_pattern; ++ } ++ else ++ { ++ // Named locale. ++ _M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, __cloc)); ++ _M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, __cloc)); ++ _M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); ++ _M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); ++ ++ char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc)); ++ if (!__nposn) ++ _M_negative_sign = "()"; ++ else ++ _M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc); ++ ++ // _Intl == true ++ _M_curr_symbol = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc); ++ _M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, __cloc)); ++ char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc)); ++ char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc)); ++ char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc)); ++ _M_pos_format = _S_construct_pattern(__pprecedes, __pspace, __pposn); ++ char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc)); ++ char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc)); ++ _M_neg_format = _S_construct_pattern(__nprecedes, __nspace, __nposn); ++ } ++ } ++ ++ template<> ++ void ++ moneypunct::_M_initialize_moneypunct(__c_locale __cloc, ++ const char*) ++ { ++ if (!__cloc) ++ { ++ // "C" locale ++ _M_decimal_point = '.'; ++ _M_thousands_sep = ','; ++ _M_grouping = ""; ++ _M_curr_symbol = ""; ++ _M_positive_sign = ""; ++ _M_negative_sign = ""; ++ _M_frac_digits = 0; ++ _M_pos_format = money_base::_S_default_pattern; ++ _M_neg_format = money_base::_S_default_pattern; ++ } ++ else ++ { ++ // Named locale. ++ _M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, __cloc)); ++ _M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, __cloc)); ++ _M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc); ++ _M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); ++ ++ char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc)); ++ if (!__nposn) ++ _M_negative_sign = "()"; ++ else ++ _M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc); ++ ++ // _Intl == false ++ _M_curr_symbol = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc); ++ _M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc)); ++ char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc)); ++ char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc)); ++ char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc)); ++ _M_pos_format = _S_construct_pattern(__pprecedes, __pspace, __pposn); ++ char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc)); ++ char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc)); ++ _M_neg_format = _S_construct_pattern(__nprecedes, __nspace, __nposn); ++ } ++ } ++ ++ template<> ++ moneypunct::~moneypunct() ++ { } ++ ++ template<> ++ moneypunct::~moneypunct() ++ { } ++ ++#ifdef _GLIBCPP_USE_WCHAR_T ++ template<> ++ void ++ moneypunct::_M_initialize_moneypunct(__c_locale __cloc, ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ const char*) ++#else ++ const char* __name) ++#endif ++ { ++ if (!__cloc) ++ { ++ // "C" locale ++ _M_decimal_point = L'.'; ++ _M_thousands_sep = L','; ++ _M_grouping = ""; ++ _M_curr_symbol = L""; ++ _M_positive_sign = L""; ++ _M_negative_sign = L""; ++ _M_frac_digits = 0; ++ _M_pos_format = money_base::_S_default_pattern; ++ _M_neg_format = money_base::_S_default_pattern; ++ } ++ else ++ { ++ // Named locale. ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __c_locale __old = __uselocale(__cloc); ++#else ++ // Switch to named locale so that mbsrtowcs will work. ++ char* __old = strdup(setlocale(LC_ALL, NULL)); ++ setlocale(LC_ALL, __name); ++#endif ++ ++#ifdef __UCLIBC_MJN3_ONLY__ ++#warning fix this ++#endif ++#ifdef __UCLIBC__ ++# ifdef __UCLIBC_HAS_XLOCALE__ ++ _M_decimal_point = __cloc->decimal_point_wc; ++ _M_thousands_sep = __cloc->thousands_sep_wc; ++# else ++ _M_decimal_point = __global_locale->decimal_point_wc; ++ _M_thousands_sep = __global_locale->thousands_sep_wc; ++# endif ++#else ++ _M_decimal_point = static_cast(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w); ++ ++ _M_thousands_sep = static_cast(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w); ++#endif ++ _M_grouping = __nl_langinfo_l(GROUPING, __cloc); ++ ++ const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); ++ const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc); ++ const char* __ccurr = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc); ++ ++ mbstate_t __state; ++ size_t __len = strlen(__cpossign); ++ if (__len) ++ { ++ ++__len; ++ memset(&__state, 0, sizeof(mbstate_t)); ++ wchar_t* __wcs = new wchar_t[__len]; ++ mbsrtowcs(__wcs, &__cpossign, __len, &__state); ++ _M_positive_sign = __wcs; ++ } ++ else ++ _M_positive_sign = L""; ++ ++ char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc)); ++ __len = strlen(__cnegsign); ++ if (!__nposn) ++ _M_negative_sign = L"()"; ++ else if (__len) ++ { ++ ++__len; ++ memset(&__state, 0, sizeof(mbstate_t)); ++ wchar_t* __wcs = new wchar_t[__len]; ++ mbsrtowcs(__wcs, &__cnegsign, __len, &__state); ++ _M_negative_sign = __wcs; ++ } ++ else ++ _M_negative_sign = L""; ++ ++ // _Intl == true. ++ __len = strlen(__ccurr); ++ if (__len) ++ { ++ ++__len; ++ memset(&__state, 0, sizeof(mbstate_t)); ++ wchar_t* __wcs = new wchar_t[__len]; ++ mbsrtowcs(__wcs, &__ccurr, __len, &__state); ++ _M_curr_symbol = __wcs; ++ } ++ else ++ _M_curr_symbol = L""; ++ ++ _M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, __cloc)); ++ char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc)); ++ char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc)); ++ char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc)); ++ _M_pos_format = _S_construct_pattern(__pprecedes, __pspace, __pposn); ++ char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc)); ++ char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc)); ++ _M_neg_format = _S_construct_pattern(__nprecedes, __nspace, __nposn); ++ ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __uselocale(__old); ++#else ++ setlocale(LC_ALL, __old); ++ free(__old); ++#endif ++ } ++ } ++ ++ template<> ++ void ++ moneypunct::_M_initialize_moneypunct(__c_locale __cloc, ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ const char*) ++#else ++ const char* __name) ++#endif ++ { ++ if (!__cloc) ++ { ++ // "C" locale ++ _M_decimal_point = L'.'; ++ _M_thousands_sep = L','; ++ _M_grouping = ""; ++ _M_curr_symbol = L""; ++ _M_positive_sign = L""; ++ _M_negative_sign = L""; ++ _M_frac_digits = 0; ++ _M_pos_format = money_base::_S_default_pattern; ++ _M_neg_format = money_base::_S_default_pattern; ++ } ++ else ++ { ++ // Named locale. ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __c_locale __old = __uselocale(__cloc); ++#else ++ // Switch to named locale so that mbsrtowcs will work. ++ char* __old = strdup(setlocale(LC_ALL, NULL)); ++ setlocale(LC_ALL, __name); ++#endif ++ ++#ifdef __UCLIBC_MJN3_ONLY__ ++#warning fix this ++#endif ++#ifdef __UCLIBC__ ++# ifdef __UCLIBC_HAS_XLOCALE__ ++ _M_decimal_point = __cloc->decimal_point_wc; ++ _M_thousands_sep = __cloc->thousands_sep_wc; ++# else ++ _M_decimal_point = __global_locale->decimal_point_wc; ++ _M_thousands_sep = __global_locale->thousands_sep_wc; ++# endif ++#else ++ _M_decimal_point = static_cast(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w); ++ _M_thousands_sep = static_cast(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w); ++#endif ++ _M_grouping = __nl_langinfo_l(GROUPING, __cloc); ++ ++ const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc); ++ const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc); ++ const char* __ccurr = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc); ++ ++ mbstate_t __state; ++ size_t __len; ++ __len = strlen(__cpossign); ++ if (__len) ++ { ++ ++__len; ++ memset(&__state, 0, sizeof(mbstate_t)); ++ wchar_t* __wcs = new wchar_t[__len]; ++ mbsrtowcs(__wcs, &__cpossign, __len, &__state); ++ _M_positive_sign = __wcs; ++ } ++ else ++ _M_positive_sign = L""; ++ ++ char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc)); ++ __len = strlen(__cnegsign); ++ if (!__nposn) ++ _M_negative_sign = L"()"; ++ else if (__len) ++ { ++ ++__len; ++ memset(&__state, 0, sizeof(mbstate_t)); ++ wchar_t* __wcs = new wchar_t[__len]; ++ mbsrtowcs(__wcs, &__cnegsign, __len, &__state); ++ _M_negative_sign = __wcs; ++ } ++ else ++ _M_negative_sign = L""; ++ ++ // _Intl == true. ++ __len = strlen(__ccurr); ++ if (__len) ++ { ++ ++__len; ++ memset(&__state, 0, sizeof(mbstate_t)); ++ wchar_t* __wcs = new wchar_t[__len]; ++ mbsrtowcs(__wcs, &__ccurr, __len, &__state); ++ _M_curr_symbol = __wcs; ++ } ++ else ++ _M_curr_symbol = L""; ++ ++ _M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc)); ++ char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc)); ++ char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc)); ++ char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc)); ++ _M_pos_format = _S_construct_pattern(__pprecedes, __pspace, __pposn); ++ char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc)); ++ char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc)); ++ _M_neg_format = _S_construct_pattern(__nprecedes, __nspace, __nposn); ++ ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __uselocale(__old); ++#else ++ setlocale(LC_ALL, __old); ++ free(__old); ++#endif ++ } ++ } ++ ++ template<> ++ moneypunct::~moneypunct() ++ { ++ if (wcslen(_M_positive_sign)) ++ delete [] _M_positive_sign; ++ if (wcslen(_M_negative_sign) && (wcscmp(_M_negative_sign, L"()") != 0)) ++ delete [] _M_negative_sign; ++ if (wcslen(_M_curr_symbol)) ++ delete [] _M_curr_symbol; ++ } ++ ++ template<> ++ moneypunct::~moneypunct() ++ { ++ if (wcslen(_M_positive_sign)) ++ delete [] _M_positive_sign; ++ if (wcslen(_M_negative_sign) && (wcscmp(_M_negative_sign, L"()") != 0)) ++ delete [] _M_negative_sign; ++ if (wcslen(_M_curr_symbol)) ++ delete [] _M_curr_symbol; ++ } ++#endif ++} +diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/numeric_members.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/numeric_members.cc +--- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/numeric_members.cc 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2004-01-09 18:20:59.000000000 -0600 +@@ -0,0 +1,129 @@ ++// std::numpunct implementation details, GNU version -*- C++ -*- ++ ++// Copyright (C) 2001, 2002 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 2, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING. If not, write to the Free ++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++// USA. ++ ++// As a special exception, you may use this file as part of a free software ++// library without restriction. Specifically, if other files instantiate ++// templates or use macros or inline functions from this file, or you compile ++// this file and link it with other files to produce an executable, this ++// file does not by itself cause the resulting executable to be covered by ++// the GNU General Public License. This exception does not however ++// invalidate any other reasons why the executable file might be covered by ++// the GNU General Public License. ++ ++// ++// ISO C++ 14882: 22.2.3.1.2 numpunct virtual functions ++// ++ ++// Written by Benjamin Kosnik ++ ++#define _LIBC ++#include ++#undef _LIBC ++#include ++ ++#ifdef __UCLIBC_MJN3_ONLY__ ++#warning tailor for stub locale support ++#endif ++#ifndef __UCLIBC_HAS_XLOCALE__ ++#define __nl_langinfo_l(N, L) nl_langinfo((N)) ++#endif ++ ++namespace std ++{ ++ template<> ++ void ++ numpunct::_M_initialize_numpunct(__c_locale __cloc) ++ { ++ if (!__cloc) ++ { ++ // "C" locale ++ _M_decimal_point = '.'; ++ _M_thousands_sep = ','; ++ _M_grouping = ""; ++ } ++ else ++ { ++ // Named locale. ++ _M_decimal_point = *(__nl_langinfo_l(RADIXCHAR, __cloc)); ++ _M_thousands_sep = *(__nl_langinfo_l(THOUSEP, __cloc)); ++ // Check for NUL, which implies no grouping. ++ if (_M_thousands_sep == '\0') ++ _M_grouping = ""; ++ else ++ _M_grouping = __nl_langinfo_l(GROUPING, __cloc); ++ } ++ // NB: There is no way to extact this info from posix locales. ++ // _M_truename = __nl_langinfo_l(YESSTR, __cloc); ++ _M_truename = "true"; ++ // _M_falsename = __nl_langinfo_l(NOSTR, __cloc); ++ _M_falsename = "false"; ++ } ++ ++ template<> ++ numpunct::~numpunct() ++ { } ++ ++#ifdef _GLIBCPP_USE_WCHAR_T ++ template<> ++ void ++ numpunct::_M_initialize_numpunct(__c_locale __cloc) ++ { ++ if (!__cloc) ++ { ++ // "C" locale ++ _M_decimal_point = L'.'; ++ _M_thousands_sep = L','; ++ _M_grouping = ""; ++ } ++ else ++ { ++ // Named locale. ++#ifdef __UCLIBC_MJN3_ONLY__ ++#warning fix this ++#endif ++#ifdef __UCLIBC__ ++# ifdef __UCLIBC_HAS_XLOCALE__ ++ _M_decimal_point = __cloc->decimal_point_wc; ++ _M_thousands_sep = __cloc->thousands_sep_wc; ++# else ++ _M_decimal_point = __global_locale->decimal_point_wc; ++ _M_thousands_sep = __global_locale->thousands_sep_wc; ++# endif ++#else ++ _M_decimal_point = static_cast(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc)}).__w); ++ _M_thousands_sep = static_cast(((union { const char *__s; unsigned int __w; }){ __s: __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc)}).__w); ++#endif ++ if (_M_thousands_sep == L'\0') ++ _M_grouping = ""; ++ else ++ _M_grouping = __nl_langinfo_l(GROUPING, __cloc); ++ } ++ // NB: There is no way to extact this info from posix locales. ++ // _M_truename = __nl_langinfo_l(YESSTR, __cloc); ++ _M_truename = L"true"; ++ // _M_falsename = __nl_langinfo_l(NOSTR, __cloc); ++ _M_falsename = L"false"; ++ } ++ ++ template<> ++ numpunct::~numpunct() ++ { } ++ #endif ++} +diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/time_members.cc gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/time_members.cc +--- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/time_members.cc 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/time_members.cc 2004-01-09 08:25:03.000000000 -0600 +@@ -0,0 +1,341 @@ ++// std::time_get, std::time_put implementation, GNU version -*- C++ -*- ++ ++// Copyright (C) 2001, 2002 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 2, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING. If not, write to the Free ++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++// USA. ++ ++// As a special exception, you may use this file as part of a free software ++// library without restriction. Specifically, if other files instantiate ++// templates or use macros or inline functions from this file, or you compile ++// this file and link it with other files to produce an executable, this ++// file does not by itself cause the resulting executable to be covered by ++// the GNU General Public License. This exception does not however ++// invalidate any other reasons why the executable file might be covered by ++// the GNU General Public License. ++ ++// ++// ISO C++ 14882: 22.2.5.1.2 - time_get virtual functions ++// ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions ++// ++ ++// Written by Benjamin Kosnik ++ ++#include ++#include ++ ++#ifdef __UCLIBC_MJN3_ONLY__ ++#warning tailor for stub locale support ++#endif ++#ifndef __UCLIBC_HAS_XLOCALE__ ++#define __nl_langinfo_l(N, L) nl_langinfo((N)) ++#endif ++ ++namespace std ++{ ++ template<> ++ void ++ __timepunct:: ++ _M_put(char* __s, size_t __maxlen, const char* __format, ++ const tm* __tm) const ++ { ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __strftime_l(__s, __maxlen, __format, __tm, _M_c_locale_timepunct); ++#else ++ char* __old = strdup(setlocale(LC_ALL, NULL)); ++ setlocale(LC_ALL, _M_name_timepunct); ++ strftime(__s, __maxlen, __format, __tm); ++ setlocale(LC_ALL, __old); ++ free(__old); ++#endif ++ } ++ ++ template<> ++ void ++ __timepunct::_M_initialize_timepunct(__c_locale __cloc) ++ { ++ if (!__cloc) ++ { ++ // "C" locale ++ _M_c_locale_timepunct = _S_c_locale; ++ ++ _M_date_format = "%m/%d/%y"; ++ _M_date_era_format = "%m/%d/%y"; ++ _M_time_format = "%H:%M:%S"; ++ _M_time_era_format = "%H:%M:%S"; ++ _M_date_time_format = ""; ++ _M_date_time_era_format = ""; ++ _M_am = "AM"; ++ _M_pm = "PM"; ++ _M_am_pm_format = ""; ++ ++ // Day names, starting with "C"'s Sunday. ++ _M_day1 = "Sunday"; ++ _M_day2 = "Monday"; ++ _M_day3 = "Tuesday"; ++ _M_day4 = "Wednesday"; ++ _M_day5 = "Thursday"; ++ _M_day6 = "Friday"; ++ _M_day7 = "Saturday"; ++ ++ // Abbreviated day names, starting with "C"'s Sun. ++ _M_day_a1 = "Sun"; ++ _M_day_a2 = "Mon"; ++ _M_day_a3 = "Tue"; ++ _M_day_a4 = "Wed"; ++ _M_day_a5 = "Thu"; ++ _M_day_a6 = "Fri"; ++ _M_day_a7 = "Sat"; ++ ++ // Month names, starting with "C"'s January. ++ _M_month01 = "January"; ++ _M_month02 = "February"; ++ _M_month03 = "March"; ++ _M_month04 = "April"; ++ _M_month05 = "May"; ++ _M_month06 = "June"; ++ _M_month07 = "July"; ++ _M_month08 = "August"; ++ _M_month09 = "September"; ++ _M_month10 = "October"; ++ _M_month11 = "November"; ++ _M_month12 = "December"; ++ ++ // Abbreviated month names, starting with "C"'s Jan. ++ _M_month_a01 = "Jan"; ++ _M_month_a02 = "Feb"; ++ _M_month_a03 = "Mar"; ++ _M_month_a04 = "Apr"; ++ _M_month_a05 = "May"; ++ _M_month_a06 = "Jun"; ++ _M_month_a07 = "July"; ++ _M_month_a08 = "Aug"; ++ _M_month_a09 = "Sep"; ++ _M_month_a10 = "Oct"; ++ _M_month_a11 = "Nov"; ++ _M_month_a12 = "Dec"; ++ } ++ else ++ { ++ _M_c_locale_timepunct = _S_clone_c_locale(__cloc); ++ ++ _M_date_format = __nl_langinfo_l(D_FMT, __cloc); ++ _M_date_era_format = __nl_langinfo_l(ERA_D_FMT, __cloc); ++ _M_time_format = __nl_langinfo_l(T_FMT, __cloc); ++ _M_time_era_format = __nl_langinfo_l(ERA_T_FMT, __cloc); ++ _M_date_time_format = __nl_langinfo_l(D_T_FMT, __cloc); ++ _M_date_time_era_format = __nl_langinfo_l(ERA_D_T_FMT, __cloc); ++ _M_am = __nl_langinfo_l(AM_STR, __cloc); ++ _M_pm = __nl_langinfo_l(PM_STR, __cloc); ++ _M_am_pm_format = __nl_langinfo_l(T_FMT_AMPM, __cloc); ++ ++ // Day names, starting with "C"'s Sunday. ++ _M_day1 = __nl_langinfo_l(DAY_1, __cloc); ++ _M_day2 = __nl_langinfo_l(DAY_2, __cloc); ++ _M_day3 = __nl_langinfo_l(DAY_3, __cloc); ++ _M_day4 = __nl_langinfo_l(DAY_4, __cloc); ++ _M_day5 = __nl_langinfo_l(DAY_5, __cloc); ++ _M_day6 = __nl_langinfo_l(DAY_6, __cloc); ++ _M_day7 = __nl_langinfo_l(DAY_7, __cloc); ++ ++ // Abbreviated day names, starting with "C"'s Sun. ++ _M_day_a1 = __nl_langinfo_l(ABDAY_1, __cloc); ++ _M_day_a2 = __nl_langinfo_l(ABDAY_2, __cloc); ++ _M_day_a3 = __nl_langinfo_l(ABDAY_3, __cloc); ++ _M_day_a4 = __nl_langinfo_l(ABDAY_4, __cloc); ++ _M_day_a5 = __nl_langinfo_l(ABDAY_5, __cloc); ++ _M_day_a6 = __nl_langinfo_l(ABDAY_6, __cloc); ++ _M_day_a7 = __nl_langinfo_l(ABDAY_7, __cloc); ++ ++ // Month names, starting with "C"'s January. ++ _M_month01 = __nl_langinfo_l(MON_1, __cloc); ++ _M_month02 = __nl_langinfo_l(MON_2, __cloc); ++ _M_month03 = __nl_langinfo_l(MON_3, __cloc); ++ _M_month04 = __nl_langinfo_l(MON_4, __cloc); ++ _M_month05 = __nl_langinfo_l(MON_5, __cloc); ++ _M_month06 = __nl_langinfo_l(MON_6, __cloc); ++ _M_month07 = __nl_langinfo_l(MON_7, __cloc); ++ _M_month08 = __nl_langinfo_l(MON_8, __cloc); ++ _M_month09 = __nl_langinfo_l(MON_9, __cloc); ++ _M_month10 = __nl_langinfo_l(MON_10, __cloc); ++ _M_month11 = __nl_langinfo_l(MON_11, __cloc); ++ _M_month12 = __nl_langinfo_l(MON_12, __cloc); ++ ++ // Abbreviated month names, starting with "C"'s Jan. ++ _M_month_a01 = __nl_langinfo_l(ABMON_1, __cloc); ++ _M_month_a02 = __nl_langinfo_l(ABMON_2, __cloc); ++ _M_month_a03 = __nl_langinfo_l(ABMON_3, __cloc); ++ _M_month_a04 = __nl_langinfo_l(ABMON_4, __cloc); ++ _M_month_a05 = __nl_langinfo_l(ABMON_5, __cloc); ++ _M_month_a06 = __nl_langinfo_l(ABMON_6, __cloc); ++ _M_month_a07 = __nl_langinfo_l(ABMON_7, __cloc); ++ _M_month_a08 = __nl_langinfo_l(ABMON_8, __cloc); ++ _M_month_a09 = __nl_langinfo_l(ABMON_9, __cloc); ++ _M_month_a10 = __nl_langinfo_l(ABMON_10, __cloc); ++ _M_month_a11 = __nl_langinfo_l(ABMON_11, __cloc); ++ _M_month_a12 = __nl_langinfo_l(ABMON_12, __cloc); ++ } ++ } ++ ++#ifdef _GLIBCPP_USE_WCHAR_T ++ template<> ++ void ++ __timepunct:: ++ _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format, ++ const tm* __tm) const ++ { ++#ifdef __UCLIBC_HAS_XLOCALE__ ++ __wcsftime_l(__s, __maxlen, __format, __tm, _M_c_locale_timepunct); ++#else ++ char* __old = strdup(setlocale(LC_ALL, NULL)); ++ setlocale(LC_ALL, _M_name_timepunct); ++ wcsftime(__s, __maxlen, __format, __tm); ++ setlocale(LC_ALL, __old); ++ free(__old); ++#endif ++ } ++ ++ template<> ++ void ++ __timepunct::_M_initialize_timepunct(__c_locale __cloc) ++ { ++#warning wide time stuff ++// if (!__cloc) ++ { ++ // "C" locale ++ _M_c_locale_timepunct = _S_c_locale; ++ ++ _M_date_format = L"%m/%d/%y"; ++ _M_date_era_format = L"%m/%d/%y"; ++ _M_time_format = L"%H:%M:%S"; ++ _M_time_era_format = L"%H:%M:%S"; ++ _M_date_time_format = L""; ++ _M_date_time_era_format = L""; ++ _M_am = L"AM"; ++ _M_pm = L"PM"; ++ _M_am_pm_format = L""; ++ ++ // Day names, starting with "C"'s Sunday. ++ _M_day1 = L"Sunday"; ++ _M_day2 = L"Monday"; ++ _M_day3 = L"Tuesday"; ++ _M_day4 = L"Wednesday"; ++ _M_day5 = L"Thursday"; ++ _M_day6 = L"Friday"; ++ _M_day7 = L"Saturday"; ++ ++ // Abbreviated day names, starting with "C"'s Sun. ++ _M_day_a1 = L"Sun"; ++ _M_day_a2 = L"Mon"; ++ _M_day_a3 = L"Tue"; ++ _M_day_a4 = L"Wed"; ++ _M_day_a5 = L"Thu"; ++ _M_day_a6 = L"Fri"; ++ _M_day_a7 = L"Sat"; ++ ++ // Month names, starting with "C"'s January. ++ _M_month01 = L"January"; ++ _M_month02 = L"February"; ++ _M_month03 = L"March"; ++ _M_month04 = L"April"; ++ _M_month05 = L"May"; ++ _M_month06 = L"June"; ++ _M_month07 = L"July"; ++ _M_month08 = L"August"; ++ _M_month09 = L"September"; ++ _M_month10 = L"October"; ++ _M_month11 = L"November"; ++ _M_month12 = L"December"; ++ ++ // Abbreviated month names, starting with "C"'s Jan. ++ _M_month_a01 = L"Jan"; ++ _M_month_a02 = L"Feb"; ++ _M_month_a03 = L"Mar"; ++ _M_month_a04 = L"Apr"; ++ _M_month_a05 = L"May"; ++ _M_month_a06 = L"Jun"; ++ _M_month_a07 = L"July"; ++ _M_month_a08 = L"Aug"; ++ _M_month_a09 = L"Sep"; ++ _M_month_a10 = L"Oct"; ++ _M_month_a11 = L"Nov"; ++ _M_month_a12 = L"Dec"; ++ } ++#if 0 ++ else ++ { ++ _M_c_locale_timepunct = _S_clone_c_locale(__cloc); ++ ++ _M_date_format = reinterpret_cast(__nl_langinfo_l(_NL_WD_FMT, __cloc)); ++ _M_date_era_format = reinterpret_cast(__nl_langinfo_l(_NL_WERA_D_FMT, __cloc)); ++ _M_time_format = reinterpret_cast(__nl_langinfo_l(_NL_WT_FMT, __cloc)); ++ _M_time_era_format = reinterpret_cast(__nl_langinfo_l(_NL_WERA_T_FMT, __cloc)); ++ _M_date_time_format = reinterpret_cast(__nl_langinfo_l(_NL_WD_T_FMT, __cloc)); ++ _M_date_time_era_format = reinterpret_cast(__nl_langinfo_l(_NL_WERA_D_T_FMT, __cloc)); ++ _M_am = reinterpret_cast(__nl_langinfo_l(_NL_WAM_STR, __cloc)); ++ _M_pm = reinterpret_cast(__nl_langinfo_l(_NL_WPM_STR, __cloc)); ++ _M_am_pm_format = reinterpret_cast(__nl_langinfo_l(_NL_WT_FMT_AMPM, __cloc)); ++ ++ // Day names, starting with "C"'s Sunday. ++ _M_day1 = reinterpret_cast(__nl_langinfo_l(_NL_WDAY_1, __cloc)); ++ _M_day2 = reinterpret_cast(__nl_langinfo_l(_NL_WDAY_2, __cloc)); ++ _M_day3 = reinterpret_cast(__nl_langinfo_l(_NL_WDAY_3, __cloc)); ++ _M_day4 = reinterpret_cast(__nl_langinfo_l(_NL_WDAY_4, __cloc)); ++ _M_day5 = reinterpret_cast(__nl_langinfo_l(_NL_WDAY_5, __cloc)); ++ _M_day6 = reinterpret_cast(__nl_langinfo_l(_NL_WDAY_6, __cloc)); ++ _M_day7 = reinterpret_cast(__nl_langinfo_l(_NL_WDAY_7, __cloc)); ++ ++ // Abbreviated day names, starting with "C"'s Sun. ++ _M_day_a1 = reinterpret_cast(__nl_langinfo_l(_NL_WABDAY_1, __cloc)); ++ _M_day_a2 = reinterpret_cast(__nl_langinfo_l(_NL_WABDAY_2, __cloc)); ++ _M_day_a3 = reinterpret_cast(__nl_langinfo_l(_NL_WABDAY_3, __cloc)); ++ _M_day_a4 = reinterpret_cast(__nl_langinfo_l(_NL_WABDAY_4, __cloc)); ++ _M_day_a5 = reinterpret_cast(__nl_langinfo_l(_NL_WABDAY_5, __cloc)); ++ _M_day_a6 = reinterpret_cast(__nl_langinfo_l(_NL_WABDAY_6, __cloc)); ++ _M_day_a7 = reinterpret_cast(__nl_langinfo_l(_NL_WABDAY_7, __cloc)); ++ ++ // Month names, starting with "C"'s January. ++ _M_month01 = reinterpret_cast(__nl_langinfo_l(_NL_WMON_1, __cloc)); ++ _M_month02 = reinterpret_cast(__nl_langinfo_l(_NL_WMON_2, __cloc)); ++ _M_month03 = reinterpret_cast(__nl_langinfo_l(_NL_WMON_3, __cloc)); ++ _M_month04 = reinterpret_cast(__nl_langinfo_l(_NL_WMON_4, __cloc)); ++ _M_month05 = reinterpret_cast(__nl_langinfo_l(_NL_WMON_5, __cloc)); ++ _M_month06 = reinterpret_cast(__nl_langinfo_l(_NL_WMON_6, __cloc)); ++ _M_month07 = reinterpret_cast(__nl_langinfo_l(_NL_WMON_7, __cloc)); ++ _M_month08 = reinterpret_cast(__nl_langinfo_l(_NL_WMON_8, __cloc)); ++ _M_month09 = reinterpret_cast(__nl_langinfo_l(_NL_WMON_9, __cloc)); ++ _M_month10 = reinterpret_cast(__nl_langinfo_l(_NL_WMON_10, __cloc)); ++ _M_month11 = reinterpret_cast(__nl_langinfo_l(_NL_WMON_11, __cloc)); ++ _M_month12 = reinterpret_cast(__nl_langinfo_l(_NL_WMON_12, __cloc)); ++ ++ // Abbreviated month names, starting with "C"'s Jan. ++ _M_month_a01 = reinterpret_cast(__nl_langinfo_l(_NL_WABMON_1, __cloc)); ++ _M_month_a02 = reinterpret_cast(__nl_langinfo_l(_NL_WABMON_2, __cloc)); ++ _M_month_a03 = reinterpret_cast(__nl_langinfo_l(_NL_WABMON_3, __cloc)); ++ _M_month_a04 = reinterpret_cast(__nl_langinfo_l(_NL_WABMON_4, __cloc)); ++ _M_month_a05 = reinterpret_cast(__nl_langinfo_l(_NL_WABMON_5, __cloc)); ++ _M_month_a06 = reinterpret_cast(__nl_langinfo_l(_NL_WABMON_6, __cloc)); ++ _M_month_a07 = reinterpret_cast(__nl_langinfo_l(_NL_WABMON_7, __cloc)); ++ _M_month_a08 = reinterpret_cast(__nl_langinfo_l(_NL_WABMON_8, __cloc)); ++ _M_month_a09 = reinterpret_cast(__nl_langinfo_l(_NL_WABMON_9, __cloc)); ++ _M_month_a10 = reinterpret_cast(__nl_langinfo_l(_NL_WABMON_10, __cloc)); ++ _M_month_a11 = reinterpret_cast(__nl_langinfo_l(_NL_WABMON_11, __cloc)); ++ _M_month_a12 = reinterpret_cast(__nl_langinfo_l(_NL_WABMON_12, __cloc)); ++ } ++#endif // 0 ++ } ++#endif ++} +diff -urN gcc-3.3.2/libstdc++-v3/config/locale/uclibc/time_members.h gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/time_members.h +--- gcc-3.3.2/libstdc++-v3/config/locale/uclibc/time_members.h 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-3.3.2-uClibc/libstdc++-v3/config/locale/uclibc/time_members.h 2004-01-09 04:26:21.000000000 -0600 +@@ -0,0 +1,68 @@ ++// std::time_get, std::time_put implementation, GNU version -*- C++ -*- ++ ++// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 2, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING. If not, write to the Free ++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++// USA. ++ ++// As a special exception, you may use this file as part of a free software ++// library without restriction. Specifically, if other files instantiate ++// templates or use macros or inline functions from this file, or you compile ++// this file and link it with other files to produce an executable, this ++// file does not by itself cause the resulting executable to be covered by ++// the GNU General Public License. This exception does not however ++// invalidate any other reasons why the executable file might be covered by ++// the GNU General Public License. ++ ++// ++// ISO C++ 14882: 22.2.5.1.2 - time_get functions ++// ISO C++ 14882: 22.2.5.3.2 - time_put functions ++// ++ ++// Written by Benjamin Kosnik ++ ++ template ++ __timepunct<_CharT>::__timepunct(size_t __refs) ++ : locale::facet(__refs) ++ { ++#ifndef __UCLIBC_HAS_XLOCALE__ ++ _M_name_timepunct = _S_c_name; ++#endif ++ _M_initialize_timepunct(); ++ } ++ ++ template ++ __timepunct<_CharT>::__timepunct(__c_locale __cloc, ++ const char* __s, ++ size_t __refs) ++ : locale::facet(__refs) ++ { ++#ifndef __UCLIBC_HAS_XLOCALE__ ++ _M_name_timepunct = new char[strlen(__s) + 1]; ++ strcpy(_M_name_timepunct, __s); ++#endif ++ _M_initialize_timepunct(__cloc); ++ } ++ ++ template ++ __timepunct<_CharT>::~__timepunct() ++ { ++#ifndef __UCLIBC_HAS_XLOCALE__ ++ if (_S_c_name != _M_name_timepunct) ++ delete [] _M_name_timepunct; ++#endif ++ _S_destroy_c_locale(_M_c_locale_timepunct); ++ } +diff -urN gcc-3.3.2/libstdc++-v3/config/os/uclibc/ctype_base.h gcc-3.3.2-uClibc/libstdc++-v3/config/os/uclibc/ctype_base.h +--- gcc-3.3.2/libstdc++-v3/config/os/uclibc/ctype_base.h 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-3.3.2-uClibc/libstdc++-v3/config/os/uclibc/ctype_base.h 2004-01-09 02:54:54.000000000 -0600 +@@ -0,0 +1,57 @@ ++// Locale support -*- C++ -*- ++ ++// Copyright (C) 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 2, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING. If not, write to the Free ++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++// USA. ++ ++// As a special exception, you may use this file as part of a free software ++// library without restriction. Specifically, if other files instantiate ++// templates or use macros or inline functions from this file, or you compile ++// this file and link it with other files to produce an executable, this ++// file does not by itself cause the resulting executable to be covered by ++// the GNU General Public License. This exception does not however ++// invalidate any other reasons why the executable file might be covered by ++// the GNU General Public License. ++ ++// ++// ISO C++ 14882: 22.1 Locales ++// ++ ++// Information as gleaned from /usr/include/ctype.h ++ ++ struct ctype_base ++ { ++ // Note: In uClibc, the following two types depend on configuration. ++ ++ // Non-standard typedefs. ++ typedef const __ctype_touplow_t* __to_type; ++ // NB: Offsets into ctype::_M_table force a particular size ++ // on the mask type. Because of this, we don't use an enum. ++ typedef __ctype_mask_t mask; ++ ++ static const mask upper = _ISupper; ++ static const mask lower = _ISlower; ++ static const mask alpha = _ISalpha; ++ static const mask digit = _ISdigit; ++ static const mask xdigit = _ISxdigit; ++ static const mask space = _ISspace; ++ static const mask print = _ISprint; ++ static const mask graph = _ISgraph; ++ static const mask cntrl = _IScntrl; ++ static const mask punct = _ISpunct; ++ static const mask alnum = _ISalnum; ++ }; +diff -urN gcc-3.3.2/libstdc++-v3/config/os/uclibc/ctype_inline.h gcc-3.3.2-uClibc/libstdc++-v3/config/os/uclibc/ctype_inline.h +--- gcc-3.3.2/libstdc++-v3/config/os/uclibc/ctype_inline.h 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-3.3.2-uClibc/libstdc++-v3/config/os/uclibc/ctype_inline.h 2002-06-24 00:49:19.000000000 -0500 +@@ -0,0 +1,69 @@ ++// Locale support -*- C++ -*- ++ ++// Copyright (C) 2000, 2002 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 2, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING. If not, write to the Free ++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++// USA. ++ ++// As a special exception, you may use this file as part of a free software ++// library without restriction. Specifically, if other files instantiate ++// templates or use macros or inline functions from this file, or you compile ++// this file and link it with other files to produce an executable, this ++// file does not by itself cause the resulting executable to be covered by ++// the GNU General Public License. This exception does not however ++// invalidate any other reasons why the executable file might be covered by ++// the GNU General Public License. ++ ++// ++// ISO C++ 14882: 22.1 Locales ++// ++ ++// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*) ++// functions go in ctype.cc ++ ++ bool ++ ctype:: ++ is(mask __m, char __c) const ++ { return _M_table[static_cast(__c)] & __m; } ++ ++ const char* ++ ctype:: ++ is(const char* __low, const char* __high, mask* __vec) const ++ { ++ while (__low < __high) ++ *__vec++ = _M_table[static_cast(*__low++)]; ++ return __high; ++ } ++ ++ const char* ++ ctype:: ++ scan_is(mask __m, const char* __low, const char* __high) const ++ { ++ while (__low < __high ++ && !(_M_table[static_cast(*__low)] & __m)) ++ ++__low; ++ return __low; ++ } ++ ++ const char* ++ ctype:: ++ scan_not(mask __m, const char* __low, const char* __high) const ++ { ++ while (__low < __high ++ && (_M_table[static_cast(*__low)] & __m) != 0) ++ ++__low; ++ return __low; ++ } +diff -urN gcc-3.3.2/libstdc++-v3/config/os/uclibc/ctype_noninline.h gcc-3.3.2-uClibc/libstdc++-v3/config/os/uclibc/ctype_noninline.h +--- gcc-3.3.2/libstdc++-v3/config/os/uclibc/ctype_noninline.h 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-3.3.2-uClibc/libstdc++-v3/config/os/uclibc/ctype_noninline.h 2004-01-09 03:34:53.000000000 -0600 +@@ -0,0 +1,90 @@ ++// Locale support -*- C++ -*- ++ ++// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 ++// Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 2, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING. If not, write to the Free ++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++// USA. ++ ++// As a special exception, you may use this file as part of a free software ++// library without restriction. Specifically, if other files instantiate ++// templates or use macros or inline functions from this file, or you compile ++// this file and link it with other files to produce an executable, this ++// file does not by itself cause the resulting executable to be covered by ++// the GNU General Public License. This exception does not however ++// invalidate any other reasons why the executable file might be covered by ++// the GNU General Public License. ++ ++// ++// ISO C++ 14882: 22.1 Locales ++// ++ ++// Information as gleaned from /usr/include/ctype.h ++ ++ const ctype_base::mask* ++ ctype::classic_table() throw() ++ { ++ return __C_ctype_b; ++ } ++ ++ ctype::ctype(__c_locale, const mask* __table, bool __del, ++ size_t __refs) ++ : __ctype_abstract_base(__refs), _M_del(__table != 0 && __del) ++ { ++ _M_toupper = __C_ctype_toupper; ++ _M_tolower = __C_ctype_tolower; ++ _M_table = __table ? __table : __C_ctype_b; ++ _M_c_locale_ctype = _S_c_locale; ++ } ++ ++ ctype::ctype(const mask* __table, bool __del, size_t __refs) : ++ __ctype_abstract_base(__refs), _M_del(__table != 0 && __del) ++ { ++ _M_toupper = __C_ctype_toupper; ++ _M_tolower = __C_ctype_tolower; ++ _M_table = __table ? __table : __C_ctype_b; ++ _M_c_locale_ctype = _S_c_locale; ++ } ++ ++ char ++ ctype::do_toupper(char __c) const ++ { return _M_toupper[static_cast(__c)]; } ++ ++ const char* ++ ctype::do_toupper(char* __low, const char* __high) const ++ { ++ while (__low < __high) ++ { ++ *__low = _M_toupper[static_cast(*__low)]; ++ ++__low; ++ } ++ return __high; ++ } ++ ++ char ++ ctype::do_tolower(char __c) const ++ { return _M_tolower[static_cast(__c)]; } ++ ++ const char* ++ ctype::do_tolower(char* __low, const char* __high) const ++ { ++ while (__low < __high) ++ { ++ *__low = _M_tolower[static_cast(*__low)]; ++ ++__low; ++ } ++ return __high; ++ } +diff -urN gcc-3.3.2/libstdc++-v3/config/os/uclibc/os_defines.h gcc-3.3.2-uClibc/libstdc++-v3/config/os/uclibc/os_defines.h +--- gcc-3.3.2/libstdc++-v3/config/os/uclibc/os_defines.h 1969-12-31 18:00:00.000000000 -0600 ++++ gcc-3.3.2-uClibc/libstdc++-v3/config/os/uclibc/os_defines.h 2004-01-09 04:56:13.000000000 -0600 +@@ -0,0 +1,56 @@ ++// Specific definitions for GNU/Linux -*- C++ -*- ++ ++// Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 2, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING. If not, write to the Free ++// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ++// USA. ++ ++// As a special exception, you may use this file as part of a free software ++// library without restriction. Specifically, if other files instantiate ++// templates or use macros or inline functions from this file, or you compile ++// this file and link it with other files to produce an executable, this ++// file does not by itself cause the resulting executable to be covered by ++// the GNU General Public License. This exception does not however ++// invalidate any other reasons why the executable file might be covered by ++// the GNU General Public License. ++ ++#ifndef _GLIBCPP_OS_DEFINES ++#define _GLIBCPP_OS_DEFINES 1 ++ ++// System-specific #define, typedefs, corrections, etc, go here. This ++// file will come before all others. ++ ++// This keeps isanum, et al from being propagated as macros. ++#define __NO_CTYPE 1 ++ ++#include ++ ++// These systems have declarations mismatching those in libio.h by ++// omitting throw qualifiers. Cleanest way out is to not provide ++// throw-qualifiers at all. Defining it as empty here will make libio.h ++// not define it. ++#undef __THROW ++#define __THROW ++ ++// Tell Glibc not to try to provide its own inline versions of ++// some math functions. Those cause assembly-time clashes with ++// our definitions. ++#define __NO_MATH_INLINES ++ ++// We must not see the optimized string functions GNU libc defines. ++#define __NO_STRING_INLINES ++ ++#endif diff -Naur crosstool-0.28-rc5-orig/patches/gcc-3.3.3/uclibc-target-04.patch crosstool-0.28-rc5/patches/gcc-3.3.3/uclibc-target-04.patch --- crosstool-0.28-rc5-orig/patches/gcc-3.3.3/uclibc-target-04.patch 1969-12-31 16:00:00.000000000 -0800 +++ crosstool-0.28-rc5/patches/gcc-3.3.3/uclibc-target-04.patch 2004-06-19 12:17:30.000000000 -0700 @@ -0,0 +1,130 @@ +Adjunct patch for {alpha,m68k,sparc}-*-linux-uclibc* targets. Adds stuff +nexessary to support compiling for uClibc on Alpha, Motorola68k, and Sparc +architectures. Written by Carl Miller . + +Index: gcc/config.gcc +=================================================================== +RCS file: /home/cvs/tools/gcc-3.3.3/gcc/config.gcc,v +retrieving revision 1.2 +diff -d -u -r1.2 config.gcc +--- gcc-3.3.3-orig/gcc/config.gcc 20 Apr 2004 03:48:03 -0000 1.2 ++++ gcc-3.3.3/gcc/config.gcc 20 Apr 2004 04:33:57 -0000 +@@ -556,6 +556,11 @@ + thread_file='posix' + fi + ;; ++alpha*-*-linux-uclibc*) ++ tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h" ++ target_cpu_default="MASK_GAS" ++ tmake_file="t-slibgcc-elf-ver t-linux-uclibc alpha/t-crtfm alpha/t-alpha alpha/t-ieee" ++ ;; + alpha*-*-linux*) + tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h" + target_cpu_default="MASK_GAS" +@@ -1752,7 +1757,12 @@ + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" + gnu_ld=yes + ;; +-m68k-*-linux*) # Motorola m68k's running GNU/Linux ++m68k-*-linux-uclibc*) # Motorola m68k's running GNU/Linux ++ # with ELF format using uClibc ++ tm_file=m68k/linux.h ++ tmake_file="t-slibgcc-elf-ver t-linux-uclibc m68k/t-linux" ++ ;; ++m68k-*-linux*) # Motorola m68k's running GNU/Linux + # with ELF format using glibc 2 + # aka the GNU/Linux C library 6. + tm_file=m68k/linux.h +@@ -2480,6 +2490,10 @@ + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" + gnu_ld=yes + ;; ++sparc-*-linux-uclibc*) # SPARC's running GNU/Linux and uClibc ++ tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux.h" ++ tmake_file="t-slibgcc-elf-ver t-linux-uclibc sparc/t-crtfm" ++ ;; + sparc-*-linux*) # SPARC's running GNU/Linux, libc6 + tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux.h" + tmake_file="t-slibgcc-elf-ver t-linux sparc/t-crtfm" +Index: gcc/config/alpha/linux-elf.h +=================================================================== +RCS file: /home/cvs/tools/gcc-3.3.3/gcc/config/alpha/linux-elf.h,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 linux-elf.h +--- gcc-3.3.3-orig/gcc/config/alpha/linux-elf.h 20 Apr 2004 02:21:46 -0000 1.1.1.1 ++++ gcc-3.3.3/gcc/config/alpha/linux-elf.h 20 Apr 2004 04:11:17 -0000 +@@ -30,8 +30,12 @@ + #ifdef USE_GNULIBC_1 + #define ELF_DYNAMIC_LINKER "/lib/ld.so.1" + #else ++#ifdef USE_UCLIBC ++#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" ++#else + #define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2" + #endif ++#endif + + #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ + %{O*:-O3} %{!O*:-O1} \ +Index: gcc/config/m68k/linux.h +=================================================================== +RCS file: /home/cvs/tools/gcc-3.3.3/gcc/config/m68k/linux.h,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 linux.h +--- gcc-3.3.3-orig/gcc/config/m68k/linux.h 20 Apr 2004 02:21:44 -0000 1.1.1.1 ++++ gcc-3.3.3/gcc/config/m68k/linux.h 20 Apr 2004 04:16:16 -0000 +@@ -175,6 +175,14 @@ + %{static}}}" + #endif + #else ++#ifdef USE_UCLIBC ++#define LINK_SPEC "-m m68kelf %{shared} \ ++ %{!shared: \ ++ %{!static: \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker*:-dynamic-linker /lib/ld-uClibc.so.0}} \ ++ %{static}}" ++#else + #define LINK_SPEC "-m m68kelf %{shared} \ + %{!shared: \ + %{!static: \ +@@ -182,6 +190,7 @@ + %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \ + %{static}}" + #endif ++#endif + + /* For compatibility with linux/a.out */ + +Index: gcc/config/sparc/linux.h +=================================================================== +RCS file: /home/cvs/tools/gcc-3.3.3/gcc/config/sparc/linux.h,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 linux.h +--- gcc-3.3.3-orig/gcc/config/sparc/linux.h 20 Apr 2004 02:21:46 -0000 1.1.1.1 ++++ gcc-3.3.3/gcc/config/sparc/linux.h 20 Apr 2004 04:18:04 -0000 +@@ -170,6 +170,16 @@ + %{static:-static}}}" + #endif + #else ++#ifdef USE_UCLIBC ++#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ ++ %{!mno-relax:%{!r:-relax}} \ ++ %{!shared: \ ++ %{!ibcs: \ ++ %{!static: \ ++ %{rdynamic:-export-dynamic} \ ++ %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \ ++ %{static:-static}}}" ++#else + #define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ + %{!mno-relax:%{!r:-relax}} \ + %{!shared: \ +@@ -179,6 +189,7 @@ + %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ + %{static:-static}}}" + #endif ++#endif + + /* The sun bundled assembler doesn't accept -Yd, (and neither does gas). + It's safe to pass -s always, even if -g is not used. */ diff -Naur crosstool-0.28-rc5-orig/patches/uClibc-0.9.23/Makefiles-relocate.patch crosstool-0.28-rc5/patches/uClibc-0.9.23/Makefiles-relocate.patch --- crosstool-0.28-rc5-orig/patches/uClibc-0.9.23/Makefiles-relocate.patch 1969-12-31 16:00:00.000000000 -0800 +++ crosstool-0.28-rc5/patches/uClibc-0.9.23/Makefiles-relocate.patch 2004-06-19 12:18:08.000000000 -0700 @@ -0,0 +1,4916 @@ +Give uClibc an autoconf-like ability to be compiled from a directory other +than the source directory. + +Index: Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/Makefile 15 Dec 2003 23:55:56 -0000 +@@ -25,8 +25,10 @@ + noconfig_targets := menuconfig config oldconfig randconfig \ + defconfig allyesconfig allnoconfig clean distclean \ + release tags TAGS ++SRCDIR=./ + TOPDIR=./ +-include Rules.mak ++SRCTOPDIR=./ ++include $(SRCTOPDIR)Rules.mak + + DIRS = ldso libc libcrypt libresolv libnsl libutil libm libpthread + ifeq ($(strip $(UCLIBC_HAS_GETTEXT_AWARENESS)),y) +@@ -64,11 +66,11 @@ + + ifneq ($(SHARED_TARGET),) + +-lib/main.o: $(ROOTDIR)/lib/libc/main.c +- $(CC) $(CFLAGS) $(ARCH_CFLAGS) -c -o $@ $(ROOTDIR)/lib/libc/main.c ++lib/main.o: $(SRCTOPDIR)/lib/libc/main.c ++ $(CC) $(CFLAGS) $(ARCH_CFLAGS) -c -o $@ $(SRCTOPDIR)/lib/libc/main.c + + bogus $(SHARED_TARGET): lib/libc.a lib/main.o Makefile +- make -C $(ROOTDIR) relink ++ make -C $(TOPDIR) relink + $(CC) -nostartfiles -o $(SHARED_TARGET) $(ARCH_CFLAGS) -Wl,-elf2flt -nostdlib \ + -Wl,-shared-lib-id,${LIBID} \ + lib/main.o \ +@@ -113,42 +115,44 @@ + endif + + include/bits/uClibc_config.h: .config +- @if [ ! -x ./extra/config/conf ] ; then \ +- make -C extra/config conf; \ ++ @if [ ! -x $(TOPDIR)extra/config/conf ] ; then \ ++ make -C $(TOPDIR)extra/config conf; \ + fi; + $(RM) -r include/bits + $(INSTALL) -d include/bits +- @./extra/config/conf -o extra/Configs/Config.in ++ @srctree=$(SRCTOPDIR) $(TOPDIR)extra/config/conf -o $(SRCTOPDIR)extra/Configs/Config.in ++ ++TWOUPSRCTOPDIR:=$(if $(filter /% \\% c:\\% C:\\% c:/% C:/% d:\\% D:\\% d:/% D:/%,$(SRCTOPDIR)),$(SRCTOPDIR),../../$(SRCTOPDIR)) + + headers: include/bits/uClibc_config.h + ifeq ($(strip $(UCLIBC_HAS_MMU)),y) +- @set -x; ./extra/scripts/fix_includes.sh -k $(KERNEL_SOURCE) -t $(TARGET_ARCH) ++ @set -x; $(SRCTOPDIR)extra/scripts/fix_includes.sh -k $(KERNEL_SOURCE) -t $(TARGET_ARCH) + else +- @set -x; ./extra/scripts/fix_includes.sh -k $(KERNEL_SOURCE) -t $(TARGET_ARCH) -n ++ @set -x; $(SRCTOPDIR)extra/scripts/fix_includes.sh -k $(KERNEL_SOURCE) -t $(TARGET_ARCH) -n + endif + @cd include/bits; \ + set -e; \ +- for i in `ls ../../libc/sysdeps/linux/common/bits/*.h` ; do \ +- $(LN) -fs $$i .; \ ++ for i in `ls $(TWOUPSRCTOPDIR)libc/sysdeps/linux/common/bits/*.h` ; do \ ++ $(CP) -f $$i .; \ + done; \ +- if [ -d ../../libc/sysdeps/linux/$(TARGET_ARCH)/bits ] ; then \ +- for i in `ls ../../libc/sysdeps/linux/$(TARGET_ARCH)/bits/*.h` ; do \ +- $(LN) -fs $$i .; \ ++ if [ -d $(TWOUPSRCTOPDIR)libc/sysdeps/linux/$(TARGET_ARCH)/bits ] ; then \ ++ for i in `ls $(TWOUPSRCTOPDIR)libc/sysdeps/linux/$(TARGET_ARCH)/bits/*.h` ; do \ ++ $(CP) -f $$i .; \ + done; \ + fi + @cd include/sys; \ + set -e; \ +- for i in `ls ../../libc/sysdeps/linux/common/sys/*.h` ; do \ +- $(LN) -fs $$i .; \ ++ for i in `ls $(TWOUPSRCTOPDIR)libc/sysdeps/linux/common/sys/*.h` ; do \ ++ $(CP) -f $$i .; \ + done; \ +- if [ -d ../../libc/sysdeps/linux/$(TARGET_ARCH)/sys ] ; then \ +- for i in `ls ../../libc/sysdeps/linux/$(TARGET_ARCH)/sys/*.h` ; do \ +- $(LN) -fs $$i .; \ ++ if [ -d $(TWOUPSRCTOPDIR)libc/sysdeps/linux/$(TARGET_ARCH)/sys ] ; then \ ++ for i in `ls $(TWOUPSRCTOPDIR)libc/sysdeps/linux/$(TARGET_ARCH)/sys/*.h` ; do \ ++ $(CP) -f $$i .; \ + done; \ + fi + @cd $(TOPDIR); \ + set -x -e; \ +- TOPDIR=. CC="$(CC)" /bin/sh extra/scripts/gen_bits_syscall_h.sh > include/bits/sysnum.h.new; \ ++ TOPDIR=. CC="$(CC)" /bin/sh $(SRCTOPDIR)extra/scripts/gen_bits_syscall_h.sh > include/bits/sysnum.h.new; \ + if cmp include/bits/sysnum.h include/bits/sysnum.h.new >/dev/null 2>&1; then \ + $(RM) include/bits/sysnum.h.new; \ + else \ +@@ -166,7 +170,9 @@ + $(WGET) http://www.uclibc.org/downloads/uClibc-locale-030818.tgz); + endif + ifeq ($(strip $(UCLIBC_PREGENERATED_LOCALE_DATA)),y) +- (cd extra/locale; zcat uClibc-locale-030818.tgz | tar -xvf -) ++ (cd extra/locale; \ ++ zcat $(TWOUPSRCTOPDIR)extra/locale/uClibc-locale-030818.tgz | \ ++ tar -xvf -) + make -C extra/locale pregen + endif + +@@ -179,14 +185,12 @@ + tags: + ctags -R + +-install: install_runtime install_dev finished2 ++install: install_runtime install_headers install_dev finished2 + + +-# Installs header files and development library links. +-install_dev: +- $(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)lib ++# Installs just header files ++install_headers: + $(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)include +- -$(INSTALL) -m 644 lib/*.[ao] $(PREFIX)$(DEVEL_PREFIX)lib/ + tar -chf - include | tar -xf - -C $(PREFIX)$(DEVEL_PREFIX); + ifneq ($(strip $(UCLIBC_HAS_FLOATS)),y) + # Remove floating point related headers since float support is disabled. +@@ -238,21 +242,33 @@ + # Remove getopt header since gnu getopt support is disabled. + $(RM) $(PREFIX)$(DEVEL_PREFIX)include/getopt.h + endif +- -@for i in `find $(PREFIX)$(DEVEL_PREFIX) -type d` ; do \ ++ -@for i in `find $(PREFIX)$(DEVEL_PREFIX)include -type d` ; do \ + chmod 755 $$i; chmod 644 $$i/*.h > /dev/null 2>&1; \ + done; +- -find $(PREFIX)$(DEVEL_PREFIX) -name CVS | xargs $(RM) -r; +- -chown -R `id | sed 's/^uid=\([0-9]*\).*gid=\([0-9]*\).*$$/\1.\2/'` $(PREFIX)$(DEVEL_PREFIX) ++ -find $(PREFIX)$(DEVEL_PREFIX)include -name CVS | xargs $(RM) -r; ++ -chown -R `id | sed 's/^uid=\([0-9]*\).*gid=\([0-9]*\).*$$/\1.\2/'` $(PREFIX)$(DEVEL_PREFIX)include ++ ++# Installs header files and development library links. ++install_dev: ++ $(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)lib ++ -$(INSTALL) -m 644 lib/*.[ao] $(PREFIX)$(DEVEL_PREFIX)lib/ ++ -@for i in `find $(PREFIX)$(DEVEL_PREFIX)lib -type d` ; do \ ++ chmod 755 $$i; chmod 644 $$i/*.h > /dev/null 2>&1; \ ++ done; ++ -find $(PREFIX)$(DEVEL_PREFIX)lib -name CVS | xargs $(RM) -r; ++ -chown -R `id | sed 's/^uid=\([0-9]*\).*gid=\([0-9]*\).*$$/\1.\2/'` $(PREFIX)$(DEVEL_PREFIX)lib + ifeq ($(strip $(HAVE_SHARED)),y) ++ifneq ($(RUNTIME_PREFIX),$(DEVEL_PREFIX)) + for i in `find lib/ -type l -name 'lib[a-zA-Z]*.so' | \ + sed -e 's/lib\///'` ; do \ + $(LN) -sf $(RUNTIME_PREFIX)lib/$$i.$(MAJOR_VERSION) \ + $(PREFIX)$(DEVEL_PREFIX)lib/$$i; \ + done; + ifeq ($(strip $(PTHREADS_DEBUG_SUPPORT)),y) +- ln -sf $(RUNTIME_PREFIX)lib/libthread_db.so.1 \ ++ $(LN) -sf $(RUNTIME_PREFIX)lib/libthread_db.so.1 \ + $(PREFIX)$(DEVEL_PREFIX)lib/libthread_db.so + endif ++endif + # # If we build shared libraries then the static libs are PIC... + # # Make _pic.a symlinks to make mklibs.py and similar tools happy. + for i in `find lib/ -type f -name '*.a' | sed -e 's/lib\///'` ; do \ +@@ -261,7 +277,6 @@ + done; + endif + +- + # Installs run-time libraries and helper apps onto the host system + # allowing cross development. If you want to deploy to a target + # system, use the "install_target" target instead... +@@ -305,46 +320,46 @@ + + # configuration + # --------------------------------------------------------------------------- +-extra/config/conf: +- make -C extra/config conf ++$(TOPDIR)extra/config/conf: ++ make -C $(TOPDIR)extra/config conf + +-extra/config/mconf: +- make -C extra/config ncurses mconf ++$(TOPDIR)extra/config/mconf: ++ make -C $(TOPDIR)extra/config ncurses mconf + +-menuconfig: extra/config/mconf ++menuconfig: $(TOPDIR)extra/config/mconf + $(RM) -r include/bits + $(INSTALL) -d include/bits +- @./extra/config/mconf extra/Configs/Config.in ++ @srctree=$(SRCTOPDIR) $(TOPDIR)extra/config/mconf $(SRCTOPDIR)extra/Configs/Config.in + +-config: extra/config/conf ++config: $(TOPDIR)extra/config/conf + $(RM) -r include/bits + $(INSTALL) -d include/bits +- @./extra/config/conf extra/Configs/Config.in ++ @srctree=$(SRCTOPDIR) $(TOPDIR)extra/config/conf $(SRCTOPDIR)extra/Configs/Config.in + +-oldconfig: extra/config/conf ++oldconfig: $(TOPDIR)extra/config/conf + $(RM) -r include/bits + $(INSTALL) -d include/bits +- @./extra/config/conf -o extra/Configs/Config.in ++ @srctree=$(SRCTOPDIR) $(TOPDIR)extra/config/conf -o $(SRCTOPDIR)extra/Configs/Config.in + +-randconfig: extra/config/conf ++randconfig: $(TOPDIR)extra/config/conf + $(RM) -r include/bits + $(INSTALL) -d include/bits +- @./extra/config/conf -r extra/Configs/Config.in ++ @srctree=$(SRCTOPDIR) $(TOPDIR)extra/config/conf -r $(SRCTOPDIR)extra/Configs/Config.in + +-allyesconfig: extra/config/conf ++allyesconfig: $(TOPDIR)extra/config/conf + $(RM) -r include/bits + $(INSTALL) -d include/bits +- @./extra/config/conf -y extra/Configs/Config.in ++ @srctree=$(SRCTOPDIR) $(TOPDIR)extra/config/conf -y $(SRCTOPDIR)extra/Configs/Config.in + +-allnoconfig: extra/config/conf ++allnoconfig: $(TOPDIR)extra/config/conf + $(RM) -r include/bits + $(INSTALL) -d include/bits +- @./extra/config/conf -n extra/Configs/Config.in ++ @srctree=$(SRCTOPDIR) $(TOPDIR)extra/config/conf -n $(SRCTOPDIR)extra/Configs/Config.in + +-defconfig: extra/config/conf ++defconfig: $(TOPDIR)extra/config/conf + $(RM) -r include/bits + $(INSTALL) -d include/bits +- @./extra/config/conf -d extra/Configs/Config.in ++ @srctree=$(SRCTOPDIR) $(TOPDIR)extra/config/conf -d $(SRCTOPDIR)extra/Configs/Config.in + + + clean: +@@ -358,11 +373,11 @@ + $(MAKE) -C libc/sysdeps/linux/common clean + $(MAKE) -C extra/locale clean + @set -e; \ +- for i in `(cd $(TOPDIR)/libc/sysdeps/linux/common/sys; ls *.h)` ; do \ ++ for i in `(cd $(SRCTOPDIR)/libc/sysdeps/linux/common/sys; ls *.h)` ; do \ + $(RM) include/sys/$$i; \ + done; \ + if [ -d libc/sysdeps/linux/$(TARGET_ARCH)/sys ] ; then \ +- for i in `(cd libc/sysdeps/linux/$(TARGET_ARCH)/sys; ls *.h)` ; do \ ++ for i in `(cd $(SRCTOPDIR)libc/sysdeps/linux/$(TARGET_ARCH)/sys; ls *.h)` ; do \ + $(RM) include/sys/$$i; \ + done; \ + fi; +Index: Rules.mak +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/Rules.mak,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Rules.mak +--- uClibc-0.9.23/Rules.mak 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/Rules.mak 8 Dec 2003 21:58:41 -0000 +@@ -45,6 +45,7 @@ + + INSTALL= install + LN= ln ++CP= cp + RM= rm -f + + # Select the compiler needed to build binaries for your development system +@@ -171,11 +172,11 @@ + CPU_CFLAGS=$(subst ",, $(strip $(CPU_CFLAGS-y))) + # Some nice CFLAGS to work with + CFLAGS=$(XWARNINGS) $(OPTIMIZATION) $(XARCH_CFLAGS) $(CPU_CFLAGS) \ +- -fno-builtin -nostdinc -D_LIBC -I$(TOPDIR)include -I. ++ -fno-builtin -nostdinc -D_LIBC -I$(TOPDIR)include -I. -I$(SRCDIR) + + ifeq ($(DODEBUG),y) + #CFLAGS += -g3 +- CFLAGS = $(XWARNINGS) -O0 -g3 $(CPU_CFLAGS) -fno-builtin -nostdinc -D_LIBC -I$(TOPDIR)include -I. ++ CFLAGS = $(XWARNINGS) -O0 -g3 $(CPU_CFLAGS) -fno-builtin -nostdinc -D_LIBC -I$(TOPDIR)include -I. -I$(SRCDIR) + LDFLAGS:= $(CPU_LDFLAGS-y) -shared --warn-common --warn-once -z combreloc + STRIPTOOL:= true -Since_we_are_debugging + else +Index: relocate +=================================================================== +RCS file: relocate +diff -N relocate +--- /dev/null 1 Jan 1970 00:00:00 -0000 ++++ uClibc-0.9.23/relocate 10 Dec 2003 00:39:08 -0000 +@@ -0,0 +1,115 @@ ++#!/usr/bin/perl ++# ++# relocate : relocate the uClibc build to a different directory than the ++# source is contained in. ++# command-line-arguments: none ++# calling requirements: execute when the CWD (current working directory) ++# is the directory you want to relocate the build to. ++# e.g. suppose you untarred the uClibc source into ++# source/uClibc-0.9.23 and you wanted to build in ++# build/uclibc-mytarget. Then you should execute: ++# cd build ++# mkdir uclibc-mytarget ++# cd uclibc-mytarget ++# ../../source/uClibc-0.9.23/relocate ++# Yes, relocate is intended to work analagously to ++# GNU autoconf's configure script in that respect, ++# except that it doesn't have any configure options. ++# You may call the relocate script through either a ++# relative or a fully qualified pathname. Whichever ++# way you do will be reflected in the altered ++# directory definitions in your build Makefiles. ++# results: after running relocate, you may run make in your new build ++# directory, and expect it to work just like if you had been ++# using it directly in the source tree, and you may expect the ++# following assumptions to hold true: ++# 1) Nothing in the source directory will be modified or created ++# by making any target in the build directory. ++# 2) All installable targets (things that get copied "somewhere ++# more permanent" during a make install* will exist in the ++# build directory. ++# 3) There will be no symlinks from the build directory to the ++# original source directory. ++ ++ ++# The following files will be copied to the new build directory literally. ++# If directory names are given, the entire contents of those directories ++# will be copied recursively. ++@literalcopies = ("include", "test/Config"); ++ ++use Errno; ++ ++# First, extract the path back to the source. ++$0 =~ /relocate$/ || die("Program is not called relocate.\n"); ++$path_to_source = $0; ++$path_to_source =~ s/relocate$//; ++ ++# Next, create a parallel set of directories to the source tree. ++open(DIRNAMES, "find $path_to_source -type d -print |") || ++ die("Couldn't run find: $!\n"); ++while () { ++ chomp(); ++ s/^${path_to_source}//; ++ next if /\/CVS$/ || /^CVS$/ || /^$/; ++ mkdir($_) || $!{EEXIST} || die("Couldn't create directory $_ : $!\n"); ++} ++close(DIRNAMES); ++ ++# Copy any files from the source tree that were tagged at the top for ++# literal copy-over. ++foreach $lcfile (@literalcopies) { ++ $destfile = "./" . $lcfile; ++ $destfile =~ s/^((.*\/)*)([^\/]+)$/$1/ if -d "${path_to_source}${lcfile}"; ++# printf("/bin/cp -fLr ${path_to_source}${lcfile} $destfile\n"); ++ system("/bin/cp", "-fLr", "${path_to_source}${lcfile}", "$destfile") == 0 || ++ die("Failed to run /bin/cp : $!\n"); ++ if ($?) { ++ $signum = $? & 127; ++ $exitval = $? >> 8; ++ if ($signum) { ++ die("/bin/cp was killed by signal $signum\n"); ++ } else { ++ die("/bin/cp exited with error code $exitval\n"); ++ } ++ } ++} ++ ++# Now the real magic: copy over the Makefiles, substituting the appropriate ++# values for the SRC*DIR= definitions as we go. ++$absolute_path = 0; ++$absolute_path = 1 if $path_to_source =~ /^[\/\\]/; ++$absolute_path = 1 if $path_to_source =~ /^[cCdD]:[\/\\]/; ++$tree_reverse = ""; # Reassigned once per Makefile if !$absolute_path, ++ # Never reassigned if $absolute_path ++open(MFNAMES, "find $path_to_source -type f -name Makefile -print |") || ++ die("Couldn't run find: $!\n"); ++while () { ++ chomp(); ++ open(MFIN, "$_") || die("Failed to open $_ for reading : $!\n"); ++ s/^${path_to_source}//; ++ unlink($_) || $!{ENOENT} || die("Couldn't delete $_ : $!\n"); ++ open(MFOUT, "> $_") || die("Failed to open $_ for writing : $!\n"); ++ s/Makefile$//; ++ $tree_relative = $_; ++ if (!$absolute_path) { ++ if ($tree_relative eq "") { ++ $tree_reverse = ""; ++ } else { ++ @_ = split(/\//, $tree_relative); ++ $tree_reverse = "../" x ($#_ + 1 - $[); ++ } ++ } ++ $srctopdir = $tree_reverse . $path_to_source; ++ $srcdir = $srctopdir . $tree_relative; ++ $srctestdir = $srctopdir . "test/"; ++ while () { ++ s/^(SRCDIR\s*=\s*)[^#\n]*/$1$srcdir/; ++ s/^(SRCTOPDIR\s*=\s*)[^#\n]*/$1$srctopdir/; ++ s/^(SRCTESTDIR\s*=\s*)[^#\n]*/$1$srctestdir/; ++ print(MFOUT $_); ++ } ++ close(MFOUT); ++ close(MFIN); ++} ++close(MFNAMES); ++ +Index: extra/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/extra/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/extra/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/extra/Makefile 9 Dec 2003 01:43:34 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../ ++include $(SRCTOPDIR)Rules.mak + LIBC=$(TOPDIR)libc.a + + +Index: extra/config/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/extra/config/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/extra/config/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/extra/config/Makefile 10 Dec 2003 05:09:16 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../ ++include $(SRCTOPDIR)Rules.mak + + all: ncurses conf mconf + +@@ -47,7 +49,7 @@ + CONF_SRC =conf.c + MCONF_SRC =mconf.c checklist.c menubox.c textbox.c yesno.c inputbox.c util.c msgbox.c + SHARED_SRC=zconf.tab.c +-SHARED_DEPS:=lkc.h lkc_proto.h lkc_defs.h expr.h zconf.tab.h ++SHARED_DEPS:=$(SRCDIR)lkc.h $(SRCDIR)lkc_proto.h lkc_defs.h $(SRCDIR)expr.h zconf.tab.h + CONF_OBJS =$(patsubst %.c,%.o, $(CONF_SRC)) + MCONF_OBJS=$(patsubst %.c,%.o, $(MCONF_SRC)) + SHARED_OBJS=$(patsubst %.c,%.o, $(SHARED_SRC)) +@@ -58,13 +60,13 @@ + mconf: $(MCONF_OBJS) $(SHARED_OBJS) + $(HOSTCC) $(NATIVE_LDFLAGS) $^ -o $@ $(LIBS) + +-$(CONF_OBJS): %.o : %.c $(SHARED_DEPS) +- $(HOSTCC) $(HOSTCFLAGS) -I. -c $< -o $@ ++$(CONF_OBJS): %.o : $(SRCDIR)%.c $(SHARED_DEPS) ++ $(HOSTCC) $(HOSTCFLAGS) -I. -I$(SRCDIR) -c $< -o $@ + +-$(MCONF_OBJS): %.o : %.c $(SHARED_DEPS) +- $(HOSTCC) $(HOSTCFLAGS) $(HOSTNCURSES) -I. -c $< -o $@ ++$(MCONF_OBJS): %.o : $(SRCDIR)%.c $(SHARED_DEPS) ++ $(HOSTCC) $(HOSTCFLAGS) $(HOSTNCURSES) -I. -I$(SRCDIR) -c $< -o $@ + +-lkc_defs.h: lkc_proto.h ++lkc_defs.h: $(SRCDIR)lkc_proto.h + @sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/' + + ### +@@ -75,27 +77,27 @@ + + ifdef LKC_GENPARSER + +-%.tab.c %.tab.h: %.y ++%.tab.c %.tab.h: $(SRCDIR)%.y + bison -t -d -v -b $* -p $(notdir $*) $< + +-lex.%.c: %.l ++lex.%.c: $(SRCDIR)%.l + flex -P$(notdir $*) -o$@ $< + else + + lex.zconf.o: lex.zconf.c $(SHARED_DEPS) +- $(HOSTCC) $(HOSTCFLAGS) -I. -c $< -o $@ ++ $(HOSTCC) $(HOSTCFLAGS) -I. -I$(SRCDIR) -c $< -o $@ + +-lex.zconf.c: lex.zconf.c_shipped +- cp lex.zconf.c_shipped lex.zconf.c ++lex.zconf.c: $(SRCDIR)lex.zconf.c_shipped ++ $(CP) -f $< $@ + +-zconf.tab.o: zconf.tab.c lex.zconf.c confdata.c expr.c symbol.c menu.c $(SHARED_DEPS) +- $(HOSTCC) $(HOSTCFLAGS) -I. -c $< -o $@ ++zconf.tab.o: zconf.tab.c lex.zconf.c $(SRCDIR)confdata.c $(SRCDIR)expr.c $(SRCDIR)symbol.c $(SRCDIR)menu.c $(SHARED_DEPS) ++ $(HOSTCC) $(HOSTCFLAGS) -I. -I$(SRCDIR) -c $< -o $@ + +-zconf.tab.c: zconf.tab.c_shipped +- cp zconf.tab.c_shipped zconf.tab.c ++zconf.tab.c: $(SRCDIR)zconf.tab.c_shipped ++ $(CP) -f $< $@ + +-zconf.tab.h: zconf.tab.h_shipped +- cp zconf.tab.h_shipped zconf.tab.h ++zconf.tab.h: $(SRCDIR)zconf.tab.h_shipped ++ $(CP) -f $< $@ + endif + + .PHONY: ncurses +Index: extra/locale/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/extra/locale/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/extra/locale/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/extra/locale/Makefile 9 Dec 2003 19:23:54 -0000 +@@ -1,7 +1,10 @@ + +-TOPDIR = ../../ ++SRCDIR=./ ++TOPDIR=../../ ++SRCTOPDIR=../../ + EXTRA_LOCALE_DIR:=${shell cd $(TOPDIR)/extra/locale && pwd} +-include $(TOPDIR)Rules.mak ++SRCEXTRA_LOCALE_DIR:=${shell cd $(SRCTOPDIR)/extra/locale && pwd} ++include $(SRCTOPDIR)Rules.mak + + CFLAGS_wc8bit=-DCTYPE_PACKED=1 + CFLAGS_mmap= +@@ -18,28 +21,28 @@ + echo " "; \ + echo "You do not have a codesets.txt file. Please create this "; \ + echo "file in the extra/locale directory by running something like: "; \ +- echo -e " find $(EXTRA_LOCALE_DIR)/charmaps -name \"*.pairs\" > \\"; \ ++ echo -e " find $(SRCEXTRA_LOCALE_DIR)/charmaps -name \"*.pairs\" > \\"; \ + echo -e " $(EXTRA_LOCALE_DIR)/codesets.txt"; \ + echo "and then edit that file to disable/enable the codesets you wish to support. "; \ + echo " "; \ + false; \ + fi; + +-gen_wc8bit: gen_wc8bit.c ++gen_wc8bit: $(SRCDIR)gen_wc8bit.c + $(HOSTCC) $(HOSTCFLAGS) $(NATIVE_LDFLAGS) $(CFLAGS_wc8bit) -D__UCLIBC_GEN_LOCALE $^ -o $@ + + c8tables.h: gen_wc8bit codesets.txt + ./gen_wc8bit `cat codesets.txt` + +-gen_wctype: gen_wctype.c ++gen_wctype: $(SRCDIR)gen_wctype.c + $(HOSTCC) $(HOSTCFLAGS) $(NATIVE_LDFLAGS) -D__UCLIBC_GEN_LOCALE $^ -o $@ + + # Warning! Beware tr_TR toupper/tolower exceptions! + wctables.h: gen_wctype + ./gen_wctype en_US + +-gen_locale: gen_locale.c c8tables.h +- $(HOSTCC) $(HOSTCFLAGS) $(NATIVE_LDFLAGS) gen_locale.c -o $@ ++gen_locale: $(SRCDIR)gen_locale.c c8tables.h ++ $(HOSTCC) $(HOSTCFLAGS) $(NATIVE_LDFLAGS) $< -o $@ + + locale_tables.h: gen_locale locales.txt + ./gen_locale locales.txt +@@ -48,8 +51,8 @@ + grep "^#define" locale_tables.h > lt_defines.h + grep "^#define __lc" locale_collate.h >> lt_defines.h + +-gen_collate: gen_collate.c +- $(HOSTCC) $(HOSTCFLAGS) $(NATIVE_LDFLAGS) gen_collate.c -o $@ ++gen_collate: $(SRCDIR)gen_collate.c ++ $(HOSTCC) $(HOSTCFLAGS) $(NATIVE_LDFLAGS) $< -o $@ + + locale_collate.h: gen_collate locale_tables.h + grep COL_IDX_ locale_tables.h | sed -e "s/^.*COL_IDX_\([^, ]*\).*$$/\1/" | sort | uniq | xargs ./gen_collate +@@ -61,7 +64,7 @@ + echo "You do not have a locales.txt file in the extra/locale "; \ + echo "directory, Please copy the LOCALES file to locales.txt by "; \ + echo "running something like: "; \ +- echo " cp $(EXTRA_LOCALE_DIR)/LOCALES \\ "; \ ++ echo " cp $(SRCEXTRA_LOCALE_DIR)/LOCALES \\ "; \ + echo " $(EXTRA_LOCALE_DIR)/locales.txt "; \ + echo "then edit locales.txt to disable/enable the locales you wish "; \ + echo "to support. "; \ +@@ -69,21 +72,21 @@ + false; \ + fi; + +-gen_ldc: gen_ldc.c c8tables.h wctables.h locale_tables.h locale_collate.h +- $(HOSTCC) $(HOSTCFLAGS) $(NATIVE_LDFLAGS) $(CFLAGS_mmap) gen_ldc.c -o $@ ++gen_ldc: $(SRCDIR)gen_ldc.c c8tables.h wctables.h locale_tables.h locale_collate.h ++ $(HOSTCC) $(HOSTCFLAGS) $(NATIVE_LDFLAGS) $(CFLAGS_mmap) $< -o $@ + + locale_data.c: gen_ldc + ./gen_ldc + +-uClibc_locale_data.h: c8tables.h wctables.h lt_defines.h locale_mmap.h ++uClibc_locale_data.h: c8tables.h wctables.h lt_defines.h $(SRCDIR)locale_mmap.h + grep -v "define __LC" lt_defines.h > uClibc_locale_data.h +- cat c8tables.h wctables.h locale_mmap.h >> uClibc_locale_data.h ++ cat c8tables.h wctables.h $(SRCDIR)locale_mmap.h >> uClibc_locale_data.h + + links-target: locale_data.c uClibc_locale_data.h +- cat uClibc_locale_data.h | awk 'BEGIN{i=1}{ if ( /WANT_/ ) i = /endif/ ; else if (i) print $0 }' > ../../include/bits/uClibc_locale_data.h ++ cat uClibc_locale_data.h | awk 'BEGIN{i=1}{ if ( /WANT_/ ) i = /endif/ ; else if (i) print $0 }' > $(TOPDIR)include/bits/uClibc_locale_data.h + + pregen: +- cat uClibc_locale_data.h | awk 'BEGIN{i=1}{ if ( /WANT_/ ) i = /endif/ ; else if (i) print $0 }' > ../../include/bits/uClibc_locale_data.h ++ cat uClibc_locale_data.h | awk 'BEGIN{i=1}{ if ( /WANT_/ ) i = /endif/ ; else if (i) print $0 }' > $(TOPDIR)include/bits/uClibc_locale_data.h + + clean: + $(RM) *.[oa] *~ core +Index: ldso/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/ldso/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/ldso/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/ldso/Makefile 10 Dec 2003 05:06:07 -0000 +@@ -20,8 +20,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../ ++include $(SRCTOPDIR)Rules.mak + + ALL_SUBDIRS = ldso libdl + +@@ -41,10 +43,10 @@ + endif + + headers: +- $(LN) -fs $(TOPDIR)../include/elf.h include/ +- $(LN) -fs ../ldso/$(TARGET_ARCH)/boot1_arch.h include/ +- $(LN) -fs ../ldso/$(TARGET_ARCH)/ld_syscalls.h include/ +- $(LN) -fs ../ldso/$(TARGET_ARCH)/ld_sysdep.h include/ ++ $(LN) -fs ../../include/elf.h include/ ++ $(CP) -f $(SRCDIR)ldso/$(TARGET_ARCH)/boot1_arch.h include/ ++ $(CP) -f $(SRCDIR)ldso/$(TARGET_ARCH)/ld_syscalls.h include/ ++ $(CP) -f $(SRCDIR)ldso/$(TARGET_ARCH)/ld_sysdep.h include/ + + clean: + set -e ; for d in $(ALL_SUBDIRS) ; do $(MAKE) -C $$d $@ ; done +Index: ldso/ldso/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/ldso/ldso/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/ldso/ldso/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/ldso/ldso/Makefile 10 Dec 2003 05:37:58 -0000 +@@ -22,19 +22,23 @@ + # respective copyright holders. + + ++SRCDIR=./ + TOPDIR=../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../ ++include $(SRCTOPDIR)Rules.mak + LDSO_FULLNAME=ld-uClibc-$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL).so + + + XXFLAGS=$(XWARNINGS) $(OPTIMIZATION) $(XARCH_CFLAGS) $(CPU_CFLAGS) $(PICFLAG) \ + -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \ +- -fno-builtin -nostdinc -I$(TOPDIR)ldso/include -I. -I$(TOPDIR)include ++ -fno-builtin -nostdinc -I$(TOPDIR)ldso/include \ ++ -I$(SRCTOPDIR)ldso/include -I. -I$(SRCDIR) -I$(TOPDIR)include + + ifeq ($(DODEBUG),y) + XXFLAGS=$(XWARNINGS) $(XARCH_CFLAGS) $(CPU_CFLAGS) $(PICFLAG) \ + -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \ +- -fno-builtin -nostdinc -I$(TOPDIR)ldso/include -I. -I$(TOPDIR)include ++ -fno-builtin -nostdinc -I$(TOPDIR)ldso/include \ ++ -I$(SRCTOPDIR)ldso/include -I. -I$(SRCDIR) -I$(TOPDIR)include + endif + + ifeq ($(TARGET_ARCH),powerpc) +@@ -49,8 +53,8 @@ + + CSRC= ldso.c #hash.c readelflib1.c $(TARGET_ARCH)/elfinterp.c + COBJS=$(patsubst %.c,%.o, $(CSRC)) +-ASRC=$(shell ls $(TARGET_ARCH)/*.S) +-AOBJS=$(patsubst %.S,%.o, $(ASRC)) ++ASRC=$(shell ls $(SRCDIR)$(TARGET_ARCH)/*.S) ++AOBJS=$(patsubst %.S,%.o, $(TARGET_ARCH)/$(notdir $(ASRC))) + OBJS=$(AOBJS) $(COBJS) + + ifneq ($(strip $(DODEBUG)),y) +@@ -80,18 +84,18 @@ + + _dl_progname.h: Makefile + echo "const char *_dl_progname=\""$(UCLIBC_LDSO)"\";" > _dl_progname.h +- echo "#include \"$(TARGET_ARCH)/elfinterp.c\"" >> _dl_progname.h ++ echo "#include \"$(SRCDIR)$(TARGET_ARCH)/elfinterp.c\"" >> _dl_progname.h + + +-$(COBJS): %.o : %.c +- $(CC) $(XXFLAGS) -I../libdl -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(COBJS): %.o : $(SRCDIR)%.c ++ $(CC) $(XXFLAGS) -I$(SRCDIR)../libdl -c $< -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(AOBJS): %.o : %.S +- $(CC) $(XXFLAGS) -I../libdl -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(AOBJS): %.o : $(SRCDIR)%.S ++ $(CC) $(XXFLAGS) -I$(SRCDIR)../libdl -c $< -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-ldso.o: ldso.c hash.c readelflib1.c $(TARGET_ARCH)/elfinterp.c _dl_progname.h ++ldso.o: $(SRCDIR)ldso.c $(SRCDIR)hash.c $(SRCDIR)readelflib1.c $(SRCDIR)$(TARGET_ARCH)/elfinterp.c _dl_progname.h + + clean: + $(RM) $(UCLIBC_LDSO)* $(OBJS) $(LDSO_FULLNAME)* core *.o *.a *.s *.i _dl_progname.h ldso.h *~ +Index: ldso/libdl/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/ldso/libdl/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/ldso/libdl/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/ldso/libdl/Makefile 10 Dec 2003 05:12:24 -0000 +@@ -18,17 +18,21 @@ + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + ++SRCDIR=./ + TOPDIR=../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../ ++include $(SRCTOPDIR)Rules.mak + + XXFLAGS=$(XWARNINGS) $(OPTIMIZATION) $(XARCH_CFLAGS) $(CPU_CFLAGS) \ + -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \ +- -fno-builtin -nostdinc -D_LIBC -I$(TOPDIR)ldso/include -I. -I$(TOPDIR)include ++ -fno-builtin -nostdinc -D_LIBC -I$(TOPDIR)ldso/include \ ++ -I$(SRCTOPDIR)ldso/include -I. -I$(SRCDIR) -I$(TOPDIR)include + + ifeq ($(DODEBUG),y) + XXFLAGS=$(XWARNINGS) -O0 -g3 $(XARCH_CFLAGS) $(CPU_CFLAGS) \ + -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \ +- -fno-builtin -nostdinc -D_LIBC -I$(TOPDIR)ldso/include -I. -I$(TOPDIR)include ++ -fno-builtin -nostdinc -D_LIBC -I$(TOPDIR)ldso/include \ ++ -I$(SRCTOPDIR)ldso/include -I. -I$(SRCDIR) -I$(TOPDIR)include + endif + + XXFLAGS+=$(shell $(CC) -print-search-dirs | sed -ne "s/install: *\(.*\)/-I\1include/gp") +@@ -61,13 +65,13 @@ + $(INSTALL) -m 644 $(LIBDL) $(TOPDIR)lib + + +-dlib.o: dlib.c +- $(CC) $(XXFLAGS_NOPIC) -c dlib.c -o dlib.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++dlib.o: $(SRCDIR)dlib.c ++ $(CC) $(XXFLAGS_NOPIC) -c $< -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-dlib_pic.o: dlib.c +- $(CC) $(XXFLAGS) -c dlib.c -o dlib_pic.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++dlib_pic.o: $(SRCDIR)dlib.c ++ $(CC) $(XXFLAGS) -c $< -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + $(OBJ): Makefile + +Index: libc/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/Makefile 8 Dec 2003 21:12:37 -0000 +@@ -27,8 +27,10 @@ + # + #-------------------------------------------------------- + ++SRCDIR=./ + TOPDIR=../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../ ++include $(SRCTOPDIR)Rules.mak + + ifeq ($(strip $(UCLIBC_CTOR_DTOR)),y) + CRTOBJS=../../lib/crti.o ../../lib/crt0.o ../../lib/crtn.o +Index: libc/inet/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/inet/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/inet/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/inet/Makefile 6 Dec 2003 02:21:06 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../ ++include $(SRCTOPDIR)Rules.mak + + ifeq ($(strip $(UCLIBC_HAS_RPC)),y) + DIRS=rpc +@@ -66,21 +68,21 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(MOBJ): $(MSRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(MOBJ2): $(MSRC2) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ2): $(SRCDIR)$(MSRC2) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(MOBJ3): $(MSRC3) ++$(MOBJ3): $(SRCDIR)$(MSRC3) + $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: subdirs_clean + $(RM) *.[oa] *~ core +Index: libc/inet/rpc/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/inet/rpc/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/inet/rpc/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/inet/rpc/Makefile 6 Dec 2003 02:21:03 -0000 +@@ -21,9 +21,11 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak +-CFLAGS+=-I$(TOPDIR)libpthread/linuxthreads/sysdeps/pthread ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak ++CFLAGS+=-I$(SRCTOPDIR)libpthread/linuxthreads/sysdeps/pthread + + ifeq ($(strip $(UCLIBC_HAS_FULL_RPC)),y) + CSRC :=auth_none.c auth_unix.c authunix_prot.c bindresvport.c \ +@@ -57,7 +59,7 @@ + ar-target: $(LIBC) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ + $(STRIPTOOL) -x -R .note -R .comment $*.o + +Index: libc/misc/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/Makefile 6 Dec 2003 02:28:46 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../ ++include $(SRCTOPDIR)Rules.mak + + + DIRS = assert ctype dirent file fnmatch internals \ +Index: libc/misc/assert/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/assert/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/assert/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/assert/Makefile 6 Dec 2003 02:32:51 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + CSRC=__assert.c + COBJS=$(patsubst %.c,%.o, $(CSRC)) +@@ -35,9 +37,9 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/misc/ctype/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/ctype/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/ctype/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/ctype/Makefile 6 Dec 2003 02:29:51 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + MSRC=ctype.c + MOBJ= isalnum.o isalpha.o isascii.o iscntrl.o isdigit.o \ +@@ -54,13 +56,13 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(MOBJ): $(MSRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(MOBJx): $(MSRC) +- $(CC) $(CFLAGS) -DL_$* -D__UCLIBC_DO_XLOCALE $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJx): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DL_$* -D__UCLIBC_DO_XLOCALE $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + $(OBJS): Makefile + +Index: libc/misc/dirent/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/dirent/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/dirent/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/dirent/Makefile 6 Dec 2003 02:33:53 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + CSRC=alphasort.c closedir.c dirfd.c opendir.c readdir.c rewinddir.c scandir.c \ + seekdir.c telldir.c readdir64.c alphasort64.c scandir64.c readdir_r.c \ +@@ -37,9 +39,9 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/misc/error/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/error/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/error/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/error/Makefile 6 Dec 2003 02:30:19 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + CSRC=error.c + COBJS=$(patsubst %.c,%.o, $(CSRC)) +@@ -30,9 +32,9 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/misc/file/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/file/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/file/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/file/Makefile 6 Dec 2003 02:24:43 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + ifeq ($(strip $(UCLIBC_HAS_LFS)),y) + CSRC = lockf.c lockf64.c +@@ -39,9 +41,9 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/misc/fnmatch/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/fnmatch/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/fnmatch/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/fnmatch/Makefile 6 Dec 2003 02:33:19 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + CSRC=fnmatch.c + COBJS=$(patsubst %.c,%.o, $(CSRC)) +@@ -35,9 +37,9 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/misc/ftw/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/ftw/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/ftw/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/ftw/Makefile 6 Dec 2003 02:23:39 -0000 +@@ -16,12 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak +- +-CSRC=ftw.c +-COBJS=$(patsubst %.c,%.o, $(CSRC)) +-OBJS=$(COBJS) ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + MSRC=ftw.c + MOBJ=ftw.o ftw64.o +@@ -34,9 +32,9 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(MOBJ): $(MSRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/misc/glob/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/glob/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/glob/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/glob/Makefile 10 Dec 2003 04:59:27 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + CSRC=glob.c glob64.c glob-hooks.c + COBJS=$(patsubst %.c,%.o, $(CSRC)) +@@ -35,11 +37,11 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-glob64.o: glob64.c glob.c ++glob64.o: $(SRCDIR)glob64.c $(SRCDIR)glob.c + + clean: + $(RM) *.[oa] *~ core +Index: libc/misc/gnu/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/gnu/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/gnu/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/gnu/Makefile 6 Dec 2003 02:24:09 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + CSRC=obstack.c + COBJS=$(patsubst %.c,%.o, $(CSRC)) +@@ -35,9 +37,9 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/misc/internals/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/internals/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/internals/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/internals/Makefile 6 Dec 2003 02:44:30 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + CSRC=__uClibc_main.c tempname.c errno.c __errno_location.c __h_errno_location.c + COBJS=$(patsubst %.c,%.o, $(CSRC)) +@@ -46,11 +48,11 @@ + + interp.o: interp.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] interp.c *~ core +Index: libc/misc/intl/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/intl/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/intl/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/intl/Makefile 6 Dec 2003 02:26:13 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + MSRC= intl.c + MOBJ= __uClibc_dgettext.o __uClibc_dcgettext.o \ +@@ -37,13 +39,13 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(MOBJ): $(MSRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/misc/locale/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/locale/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/locale/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/locale/Makefile 16 Dec 2003 00:27:20 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + MSRC= locale.c + MOBJ= setlocale.o localeconv.o _locale_init.o nl_langinfo.o +@@ -38,7 +40,7 @@ + + DATA= + ifeq ($(UCLIBC_HAS_LOCALE),y) +- DATA = locale_data.o ++ DATA += locale_data.o + endif + + OBJS= $(MOBJ) $(MOBJx) $(DATA) +@@ -51,22 +53,22 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(MOBJ): $(MSRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(MOBJx): $(MSRC) +- $(CC) $(CFLAGS) -DL_$* -D__UCLIBC_DO_XLOCALE $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJx): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DL_$* -D__UCLIBC_DO_XLOCALE $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-locale_data.o: +- $(LN) -sf ../../../extra/locale/locale_data.c +- $(CC) $(CFLAGS) -c -D__WCHAR_ENABLED -I../../../extra/locale locale_data.c -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++locale_data.o: $(TOPDIR)extra/locale/locale_data.c ++ $(CC) $(CFLAGS) -c -D__WCHAR_ENABLED -I$(TOPDIR)extra/locale \ ++ -I$(SRCTOPDIR)extra/locale $< -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + $(OBJS): Makefile + + clean: +- $(RM) *.[oa] *~ core locale_data.c ++ $(RM) *.[oa] *~ core + + .PHONY: data +Index: libc/misc/mntent/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/mntent/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/mntent/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/mntent/Makefile 6 Dec 2003 02:39:14 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + CSRC=mntent.c + COBJS=$(patsubst %.c,%.o, $(CSRC)) +@@ -35,9 +37,9 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/misc/pthread/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/pthread/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/pthread/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/pthread/Makefile 6 Dec 2003 02:22:06 -0000 +@@ -16,17 +16,19 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + +-PTDIR = $(TOPDIR)libpthread/linuxthreads/ ++PTDIR = $(SRCTOPDIR)libpthread/linuxthreads/ + SYSDEPINC = -I$(PTDIR)sysdeps/unix/sysv/linux \ + -I$(PTDIR)sysdeps/pthread \ + -I$(PTDIR)sysdeps/unix/sysv \ + -I$(PTDIR)sysdeps/unix/unix \ + -I$(PTDIR)sysdeps/$(TARGET_ARCH) \ + -I$(PTDIR)sysdeps \ +- -I$(TOPDIR)libc/sysdeps/linux/$(TARGET_ARCH) ++ -I$(SRCTOPDIR)libc/sysdeps/linux/$(TARGET_ARCH) + CFLAGS += $(SYSDEPINC) -D_GNU_SOURCE + + CSRC=no-tsd.c weaks.c +@@ -40,9 +42,9 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/misc/regex/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/regex/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/regex/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/regex/Makefile 6 Dec 2003 02:31:07 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + CSRC=regex.c + COBJS=$(patsubst %.c,%.o, $(CSRC)) +@@ -35,9 +37,9 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/misc/search/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/search/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/search/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/search/Makefile 6 Dec 2003 02:40:42 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + MSRC1=tsearch.c + MOBJ1=tsearch.o tfind.o tdelete.o twalk.o tdestroy.o +@@ -48,25 +50,25 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(MOBJ1): $(MSRC1) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ1): $(SRCDIR)$(MSRC1) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(MOBJ2): $(MSRC2) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ2): $(SRCDIR)$(MSRC2) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(MOBJ3): $(MSRC3) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ3): $(SRCDIR)$(MSRC3) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(MOBJ4): $(MSRC4) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ4): $(SRCDIR)$(MSRC4) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/misc/statfs/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/statfs/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/statfs/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/statfs/Makefile 6 Dec 2003 02:41:15 -0000 +@@ -19,8 +19,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + ifeq ($(strip $(UCLIBC_HAS_LFS)),y) + CSRC = fstatfs64.c statfs64.c statvfs.c statvfs64.c fstatvfs.c fstatvfs64.c +@@ -38,9 +40,9 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/misc/syslog/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/syslog/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/syslog/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/syslog/Makefile 6 Dec 2003 02:41:44 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + CSRC=syslog.c + COBJS=$(patsubst %.c,%.o, $(CSRC)) +@@ -35,9 +37,9 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/misc/sysvipc/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/sysvipc/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/sysvipc/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/sysvipc/Makefile 6 Dec 2003 02:35:26 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + DIRS= + +@@ -48,21 +50,21 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(MOBJ): $(MSRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(MOBJ2): $(MSRC2) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ2): $(SRCDIR)$(MSRC2) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(MOBJ3): $(MSRC3) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ3): $(SRCDIR)$(MSRC3) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: subdirs_clean + $(RM) *.[oa] *~ core +Index: libc/misc/time/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/time/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/time/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/time/Makefile 6 Dec 2003 02:27:26 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + MSRC= time.c + MOBJ= asctime.o asctime_r.o clock.o ctime.o ctime_r.o gmtime.o gmtime_r.o \ +@@ -52,17 +54,17 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(MOBJ): $(MSRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(MOBJx): $(MSRC) +- $(CC) $(CFLAGS) -DL_$* -D__UCLIBC_DO_XLOCALE $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJx): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DL_$* -D__UCLIBC_DO_XLOCALE $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/misc/ttyent/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/ttyent/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/ttyent/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/ttyent/Makefile 6 Dec 2003 02:42:25 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + CSRC=getttyent.c + COBJS=$(patsubst %.c,%.o, $(CSRC)) +@@ -30,9 +32,9 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/misc/utmp/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/utmp/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/utmp/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/utmp/Makefile 6 Dec 2003 02:27:57 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + CSRC=utent.c wtent.c + COBJS=$(patsubst %.c,%.o, $(CSRC)) +@@ -35,9 +37,9 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/misc/wchar/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/wchar/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/wchar/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/wchar/Makefile 6 Dec 2003 02:32:22 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + MSRC1= wchar.c + MOBJ1= btowc.o wctob.o mbsinit.o mbrlen.o mbrtowc.o wcrtomb.o mbsrtowcs.o \ +@@ -52,16 +54,16 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(MOBJ1): $(MSRC1) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ1): $(SRCDIR)$(MSRC1) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(MOBJ2): $(MSRC2) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ2): $(SRCDIR)$(MSRC2) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-#iconv.target: wchar.c +-# $(TARGET_CC) $(CFLAGS) -DL_iconv_main wchar.c -o $@ $(LDADD_LIBFLOAT) ++#iconv.target: $(SRCDIR)wchar.c ++# $(TARGET_CC) $(CFLAGS) -DL_iconv_main $< -o $@ $(LDADD_LIBFLOAT) + # $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: +Index: libc/misc/wctype/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/wctype/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/wctype/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/wctype/Makefile 6 Dec 2003 02:43:24 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + MSRC= wctype.c + MOBJ= iswalnum.o iswalpha.o iswcntrl.o iswdigit.o iswgraph.o \ +@@ -48,13 +50,13 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(MOBJ): $(MSRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(MOBJx): $(MSRC) +- $(CC) $(CFLAGS) -DL_$* -D__UCLIBC_DO_XLOCALE $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJx): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DL_$* -D__UCLIBC_DO_XLOCALE $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/misc/wordexp/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/misc/wordexp/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/misc/wordexp/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/misc/wordexp/Makefile 6 Dec 2003 02:45:02 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + CSRC=wordexp.c + COBJS=$(patsubst %.c,%.o, $(CSRC)) +@@ -30,9 +32,9 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/pwd_grp/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/pwd_grp/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/pwd_grp/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/pwd_grp/Makefile 6 Dec 2003 02:48:18 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../ ++include $(SRCTOPDIR)Rules.mak + + MSRC=pwd_grp.c + MOBJ= fgetpwent_r.o fgetgrent_r.o fgetpwent.o fgetgrent.o \ +@@ -53,18 +55,15 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(MOBJ): $(MSRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJ): %.o : %.c ++$(COBJ): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + $(OBJ): Makefile + +-__getgrent_r.c: config.h +-initgroups.c: config.h +- + clean: + $(RM) *.[oa] *~ core +Index: libc/signal/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/signal/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/signal/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/signal/Makefile 9 Dec 2003 00:52:17 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../ ++include $(SRCTOPDIR)Rules.mak + + CSRC= allocrtsig.c killpg.c raise.c sigaction.c sigaddset.c sigandset.c \ + sigblock.c sigdelset.c sigempty.c sigfillset.c siggetmask.c sighold.c \ +@@ -35,9 +37,9 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/stdio/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/stdio/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/stdio/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/stdio/Makefile 8 Dec 2003 21:14:59 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../ ++include $(SRCTOPDIR)Rules.mak + + # Note: The *64.o objects are empty when compiled without large file support. + # +@@ -88,21 +90,21 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(MOBJ): $(MSRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(MOBJ2): $(MSRC2) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ2): $(SRCDIR)$(MSRC2) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(MOBJ3): $(MSRC3) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ3): $(SRCDIR)$(MSRC3) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + $(OBJ): Makefile + +Index: libc/stdlib/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/stdlib/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/stdlib/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/stdlib/Makefile 9 Dec 2003 00:55:31 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../ ++include $(SRCTOPDIR)Rules.mak + + DIRS:= + ifeq ($(MALLOC),y) +@@ -38,9 +40,9 @@ + qsort.o bsearch.o \ + llabs.o atoll.o strtoll.o strtoull.o _stdlib_strto_ll.o + # (aliases) strtoq.o strtouq.o +-ifeq ($(UCLIBC_HAS_XLOCALE),y) + + MOBJx = ++ifeq ($(UCLIBC_HAS_XLOCALE),y) + MOBJx += strtol_l.o strtoul_l.o _stdlib_strto_l_l.o \ + strtoll_l.o strtoull_l.o _stdlib_strto_ll_l.o + endif +@@ -98,29 +100,29 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(MOBJ): $(MSRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(MOBJx): $(MSRC) +- $(CC) $(CFLAGS) -DL_$* -D__UCLIBC_DO_XLOCALE $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJx): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DL_$* -D__UCLIBC_DO_XLOCALE $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(MOBJ1): $(MSRC1) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ1): $(SRCDIR)$(MSRC1) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(MOBJ1x): $(MSRC1) +- $(CC) $(CFLAGS) -DL_$* -D__UCLIBC_DO_XLOCALE $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ1x): $(SRCDIR)$(MSRC1) ++ $(CC) $(CFLAGS) -DL_$* -D__UCLIBC_DO_XLOCALE $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(MOBJ2): $(MSRC2) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ2): $(SRCDIR)$(MSRC2) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + $(OBJ): Makefile + +Index: libc/stdlib/malloc/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/stdlib/malloc/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/stdlib/malloc/Makefile 4 Dec 2003 01:27:57 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/stdlib/malloc/Makefile 9 Dec 2003 01:01:54 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + # calloc.c can be found at uClibc/libc/stdlib/calloc.c + CSRC = malloc.c free.c realloc.c memalign.c \ +@@ -51,9 +53,9 @@ + $(COBJS): heap.h + + # Depend on uClinux_config.h to cache changes in __UCLIBC_MALLOC_DEBUGGING__ +-$(COBJS): %.o : %.c ../../../include/bits/uClibc_config.h ++$(COBJS): %.o : $(SRCDIR)%.c $(TOPDIR)include/bits/uClibc_config.h + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/stdlib/malloc-930716/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/stdlib/malloc-930716/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/stdlib/malloc-930716/Makefile 4 Dec 2003 01:27:57 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/stdlib/malloc-930716/Makefile 9 Dec 2003 00:56:05 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + # calloc.c can be found at uClibc/libc/stdlib/calloc.c + # valloc.c can be found at uClibc/libc/stdlib/valloc.c +@@ -37,9 +39,9 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/string/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/string/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/string/Makefile 4 Dec 2003 01:27:57 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/string/Makefile 9 Dec 2003 01:03:58 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../ ++include $(SRCTOPDIR)Rules.mak + + DIRS = + ifeq ($(TARGET_ARCH),$(wildcard $(TARGET_ARCH))) +@@ -66,25 +68,25 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(MOBJ): $(MSRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(MOBJx): $(MSRC) +- $(CC) $(CFLAGS) -DL_$* -D__UCLIBC_DO_XLOCALE $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJx): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DL_$* -D__UCLIBC_DO_XLOCALE $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(MOBJW): $(MSRC) +- $(CC) $(CFLAGS) -DWANT_WIDE -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJW): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DWANT_WIDE -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(MOBJWx): $(MSRC) +- $(CC) $(CFLAGS) -DWANT_WIDE -DL_$* -D__UCLIBC_DO_XLOCALE $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJWx): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DWANT_WIDE -DL_$* -D__UCLIBC_DO_XLOCALE $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: subdirs_clean + $(RM) *.[oa] *~ core +Index: libc/string/i386/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/string/i386/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/string/i386/Makefile 4 Dec 2003 01:27:57 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/string/i386/Makefile 9 Dec 2003 01:02:28 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + MSRC= string.c + MOBJ= strcpy.o strncpy.o strcat.o strncat.o strcmp.o \ +@@ -32,13 +34,13 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(MOBJ): $(MSRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/sysdeps/linux/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/sysdeps/linux/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/sysdeps/linux/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/sysdeps/linux/Makefile 8 Dec 2003 21:56:06 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../ ++include $(SRCTOPDIR)Rules.mak + + DIRS = common $(TARGET_ARCH) + ALL_SUBDIRS = arm common cris h8300 i386 m68k mips powerpc sh sh64 sparc v850 +Index: libc/sysdeps/linux/alpha/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/sysdeps/linux/alpha/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/sysdeps/linux/alpha/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/sysdeps/linux/alpha/Makefile 10 Dec 2003 05:07:29 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../../ ++include $(SRCTOPDIR)Rules.mak + ASFLAGS=$(CFLAGS) + + CRT0_SRC = crt0.S +@@ -46,28 +48,28 @@ + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + cp $(CRT0_OBJ) $(TOPDIR)lib/ + +-$(CRT0_OBJ): $(CRT0_SRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(CRT0_OBJ): $(SRCDIR)$(CRT0_SRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(SOBJS): %.o : %.S ++$(SOBJS): %.o : $(SRCDIR)%.S + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + ifeq ($(strip $(UCLIBC_CTOR_DTOR)),y) +-crti.o: crti.S +- $(CC) $(SAFECFLAGS) -c crti.S -o crti.o ++crti.o: $(SRCDIR)crti.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crti.o: crti.o + $(INSTALL) -d $(TOPDIR)lib/ + cp crti.o $(TOPDIR)lib/ + +-crtn.o: crtn.S +- $(CC) $(SAFECFLAGS) -c crtn.S -o crtn.o ++crtn.o: $(SRCDIR)crtn.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crtn.o: crtn.o + $(INSTALL) -d $(TOPDIR)lib/ +@@ -83,8 +85,9 @@ + + + headers: +- $(LN) -fs ../libc/sysdeps/linux/alpha/fpu_control.h $(TOPDIR)/include/ ++ $(CP) -f $(SRCTOPDIR)libc/sysdeps/linux/alpha/fpu_control.h $(TOPDIR)include/ + + clean: + $(RM) *.[oa] *~ core + $(RM) bits/sysnum.h ++ $(RM) $(TOPDIR)include/fpu_control.h +Index: libc/sysdeps/linux/arm/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/sysdeps/linux/arm/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/sysdeps/linux/arm/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/sysdeps/linux/arm/Makefile 10 Dec 2003 05:06:40 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../../ ++include $(SRCTOPDIR)Rules.mak + ASFLAGS=$(CFLAGS) + + CRT0_SRC = crt0.S +@@ -47,28 +49,28 @@ + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + cp $(CRT0_OBJ) $(TOPDIR)lib/ + +-$(CRT0_OBJ): $(CRT0_SRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(CRT0_OBJ): $(SRCDIR)$(CRT0_SRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(SOBJS): %.o : %.S ++$(SOBJS): %.o : $(SRCDIR)%.S + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + ifeq ($(strip $(UCLIBC_CTOR_DTOR)),y) +-crti.o: crti.S +- $(CC) $(SAFECFLAGS) -c crti.S -o crti.o ++crti.o: $(SRCDIR)crti.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crti.o: crti.o + $(INSTALL) -d $(TOPDIR)lib/ + cp crti.o $(TOPDIR)lib/ + +-crtn.o: crtn.S +- $(CC) $(SAFECFLAGS) -c crtn.S -o crtn.o ++crtn.o: $(SRCDIR)crtn.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crtn.o: crtn.o + $(INSTALL) -d $(TOPDIR)lib/ +@@ -84,7 +86,7 @@ + + + headers: +- $(LN) -fs ../libc/sysdeps/linux/arm/fpu_control.h $(TOPDIR)/include/ ++ $(CP) -f $(SRCTOPDIR)libc/sysdeps/linux/arm/fpu_control.h $(TOPDIR)include/ + + clean: + $(RM) *.[oa] *~ core +Index: libc/sysdeps/linux/common/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/sysdeps/linux/common/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/sysdeps/linux/common/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/sysdeps/linux/common/Makefile 10 Dec 2003 05:07:48 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../../ ++include $(SRCTOPDIR)Rules.mak + + CSRC= waitpid.c getdnnm.c gethstnm.c getcwd.c ptrace.c \ + mkfifo.c setegid.c wait.c getpagesize.c seteuid.c \ +@@ -36,7 +38,7 @@ + COBJS=$(patsubst %.c,%.o, $(CSRC)) + + MSRC=syscalls.c +-MOBJ=$(shell ./list_syscalls.sh) ++MOBJ=$(shell $(SRCDIR)list_syscalls.sh $(SRCDIR)syscalls.c) + + OBJ=$(COBJS) $(MOBJ) + +@@ -47,16 +49,17 @@ + ar-target: $(OBJ) + $(AR) $(ARFLAGS) $(LIBC) $(OBJ) + +-$(MOBJ): $(MSRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + headers: +- $(LN) -fs ../libc/sysdeps/linux/common/fpu_control.h $(TOPDIR)/include/ ++ $(CP) -f $(SRCTOPDIR)libc/sysdeps/linux/common/fpu_control.h $(TOPDIR)include/ + + clean: + $(RM) *.[oa] *~ core crt[in].* *.S ++ $(RM) $(TOPDIR)include/fpu_control.h +Index: libc/sysdeps/linux/common/list_syscalls.sh +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/sysdeps/linux/common/list_syscalls.sh,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 list_syscalls.sh +--- uClibc-0.9.23/libc/sysdeps/linux/common/list_syscalls.sh 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/sysdeps/linux/common/list_syscalls.sh 10 Dec 2003 04:13:04 -0000 +@@ -1,4 +1,4 @@ + #!/bin/sh +-sed -ne 's/^.*_syscall[0-9].*([^,]*,\([^,)]*\).*/\1.o/gp' syscalls.c ++sed -ne 's/^.*_syscall[0-9].*([^,]*,\([^,)]*\).*/\1.o/gp' $1 + + +Index: libc/sysdeps/linux/common/str_syscalls.sh +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/sysdeps/linux/common/str_syscalls.sh,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 str_syscalls.sh +--- uClibc-0.9.23/libc/sysdeps/linux/common/str_syscalls.sh 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/sysdeps/linux/common/str_syscalls.sh 10 Dec 2003 04:13:35 -0000 +@@ -20,7 +20,7 @@ + echo "#define __NR__getdents __NR_getdents" + echo "#define __NR___ptrace __NR_ptrace" + echo +-sed -ne 's/^[^\/]*_syscall[0-9].*([^,]*, *\([^,)]*\).*/printf("#define __STR_NR_\1 \\\"%d\\\"\\n", __NR_\1);/gp' syscalls.c ++sed -ne 's/^[^\/]*_syscall[0-9].*([^,]*, *\([^,)]*\).*/printf("#define __STR_NR_\1 \\\"%d\\\"\\n", __NR_\1);/gp' $1 + echo + echo "printf(\"#define __STR_NR_exit __STR_NR__exit\n\");" + echo "printf(\"#define __STR_NR_open __STR_NR___open\n\");" +Index: libc/sysdeps/linux/cris/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/sysdeps/linux/cris/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/sysdeps/linux/cris/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/sysdeps/linux/cris/Makefile 8 Dec 2003 21:42:45 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../../ ++include $(SRCTOPDIR)Rules.mak + ASFLAGS=$(CFLAGS) + + CRT0_SRC = crt0.c +@@ -48,28 +50,28 @@ + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + cp $(CRT0_OBJ) $(TOPDIR)lib/ + +-$(CRT0_OBJ): $(CRT0_SRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(CRT0_OBJ): $(SRCDIR)$(CRT0_SRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(SOBJS): %.o : %.S ++$(SOBJS): %.o : $(SRCDIR)%.S + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + ifeq ($(strip $(UCLIBC_CTOR_DTOR)),y) +-crti.o: crti.S +- $(CC) $(SAFECFLAGS) -c crti.S -o crti.o ++crti.o: $(SRCDIR)crti.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crti.o: crti.o + $(INSTALL) -d $(TOPDIR)lib/ + cp crti.o $(TOPDIR)lib/ + +-crtn.o: crtn.S +- $(CC) $(SAFECFLAGS) -c crtn.S -o crtn.o ++crtn.o: $(SRCDIR)crtn.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crtn.o: crtn.o + $(INSTALL) -d $(TOPDIR)lib/ +Index: libc/sysdeps/linux/e1/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/sysdeps/linux/e1/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/sysdeps/linux/e1/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/sysdeps/linux/e1/Makefile 8 Dec 2003 21:20:19 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../../ ++include $(SRCTOPDIR)Rules.mak + ASFLAGS=$(CFLAGS) + + #FIXME -- this arch should include its own crti.S and crtn.S +@@ -50,28 +52,28 @@ + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + cp $(CRT0_OBJ) $(TOPDIR)lib/$(CRT0_OBJ) + +-$(CRT0_OBJ): %.o : %.S ++$(CRT0_OBJ): %.o : $(SRCDIR)%.S + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(SOBJS): %.o : %.S ++$(SOBJS): %.o : $(SRCDIR)%.S + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + ifeq ($(strip $(UCLIBC_CTOR_DTOR)),y) +-crti.o: crti.S +- $(CC) $(SAFECFLAGS) -c crti.S -o crti.o ++crti.o: $(SRCDIR)crti.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crti.o: crti.o + $(INSTALL) -d $(TOPDIR)lib/ + cp crti.o $(TOPDIR)lib/ + +-crtn.o: crtn.S +- $(CC) $(SAFECFLAGS) -c crtn.S -o crtn.o ++crtn.o: $(SRCDIR)crtn.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crtn.o: crtn.o + $(INSTALL) -d $(TOPDIR)lib/ +@@ -93,6 +95,6 @@ + $(RM) *.[oa] *~ core + $(RM) bits/sysnum.h + ifneq ($(strip $(HAVE_ELF)),y) +- $(RM) $(TOPDIR)/include/float.h ++ $(RM) $(TOPDIR)include/float.h + endif + +Index: libc/sysdeps/linux/h8300/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/sysdeps/linux/h8300/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/sysdeps/linux/h8300/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/sysdeps/linux/h8300/Makefile 8 Dec 2003 22:00:05 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../../ ++include $(SRCTOPDIR)Rules.mak + ASFLAGS=$(CFLAGS) + + #FIXME -- this arch should include its own crti.S and crtn.S +@@ -47,28 +49,28 @@ + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + cp $(CRT0_OBJ) $(TOPDIR)lib/ + +-$(CRT0_OBJ): $(CRT0_SRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(CRT0_OBJ): $(SRCDIR)$(CRT0_SRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(SOBJS): %.o : %.S ++$(SOBJS): %.o : $(SRCDIR)%.S + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + ifeq ($(strip $(UCLIBC_CTOR_DTOR)),y) +-crti.o: crti.S +- $(CC) $(SAFECFLAGS) -c crti.S -o crti.o ++crti.o: $(SRCDIR)crti.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crti.o: crti.o + $(INSTALL) -d $(TOPDIR)lib/ + cp crti.o $(TOPDIR)lib/ + +-crtn.o: crtn.S +- $(CC) $(SAFECFLAGS) -c crtn.S -o crtn.o ++crtn.o: $(SRCDIR)crtn.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crtn.o: crtn.o + $(INSTALL) -d $(TOPDIR)lib/ +@@ -88,6 +90,6 @@ + clean: + $(RM) *.[oa] *~ core + ifneq ($(strip $(HAVE_ELF)),y) +- $(RM) $(TOPDIR)/include/float.h ++ $(RM) $(TOPDIR)include/float.h + endif + +Index: libc/sysdeps/linux/i386/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/sysdeps/linux/i386/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/sysdeps/linux/i386/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/sysdeps/linux/i386/Makefile 10 Dec 2003 05:06:47 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../../ ++include $(SRCTOPDIR)Rules.mak + ASFLAGS=$(CFLAGS) + + CRT0_SRC = crt0.S +@@ -53,34 +55,34 @@ + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + cp $(CRT0_OBJ) $(TOPDIR)lib/ + +-$(CRT0_OBJ): $(CRT0_SRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(CRT0_OBJ): $(SRCDIR)$(CRT0_SRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(SOBJS): %.o : %.S ++$(SOBJS): %.o : $(SRCDIR)%.S + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + ifeq ($(strip $(UCLIBC_PROFILING)),y) +-gmon-start.S: ../common/gmon-start.c +- $(CC) $(SAFECFLAGS) -c $< -S -o $*.S ++gmon-start.S: $(SRCDIR)../common/gmon-start.c ++ $(CC) $(SAFECFLAGS) -c $< -S -o $@ + gcrt1.o: $(CRT0_DEPS) + endif + + ifeq ($(strip $(UCLIBC_CTOR_DTOR)),y) +-crti.o: crti.S +- $(CC) $(SAFECFLAGS) -c crti.S -o crti.o ++crti.o: $(SRCDIR)crti.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crti.o: crti.o + $(INSTALL) -d $(TOPDIR)lib/ + cp crti.o $(TOPDIR)lib/ + +-crtn.o: crtn.S +- $(CC) $(SAFECFLAGS) -c crtn.S -o crtn.o ++crtn.o: $(SRCDIR)crtn.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crtn.o: crtn.o + $(INSTALL) -d $(TOPDIR)lib/ +@@ -96,7 +98,7 @@ + + + headers: +- $(LN) -fs ../libc/sysdeps/linux/i386/fpu_control.h $(TOPDIR)/include/ ++ $(CP) -f $(SRCTOPDIR)libc/sysdeps/linux/i386/fpu_control.h $(TOPDIR)include/ + + clean: + $(RM) *.[oa] *~ core +Index: libc/sysdeps/linux/i960/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/sysdeps/linux/i960/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/sysdeps/linux/i960/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/sysdeps/linux/i960/Makefile 8 Dec 2003 21:44:22 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../../ ++include $(SRCTOPDIR)Rules.mak + ASFLAGS=$(CFLAGS) + + #FIXME -- this arch should include its own crti.S and crtn.S +@@ -48,28 +50,28 @@ + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + cp $(CRT0_OBJ) $(TOPDIR)lib/ + +-$(CRT0_OBJ): $(CRT0_SRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(CRT0_OBJ): $(SRCDIR)$(CRT0_SRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(SOBJS): %.o : %.S ++$(SOBJS): %.o : $(SRCDIR)%.S + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + ifeq ($(strip $(UCLIBC_CTOR_DTOR)),y) +-crti.o: crti.S +- $(CC) $(SAFECFLAGS) -c crti.S -o crti.o ++crti.o: $(SRCDIR)crti.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crti.o: crti.o + $(INSTALL) -d $(TOPDIR)lib/ + cp crti.o $(TOPDIR)lib/ + +-crtn.o: crtn.S +- $(CC) $(SAFECFLAGS) -c crtn.S -o crtn.o ++crtn.o: $(SRCDIR)crtn.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crtn.o: crtn.o + $(INSTALL) -d $(TOPDIR)lib/ +Index: libc/sysdeps/linux/m68k/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/sysdeps/linux/m68k/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/sysdeps/linux/m68k/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/sysdeps/linux/m68k/Makefile 10 Dec 2003 05:07:07 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../../ ++include $(SRCTOPDIR)Rules.mak + ASFLAGS=$(CFLAGS) + + # If you're looking for vfork(), it is defined in include/unistd.h +@@ -53,28 +55,28 @@ + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + cp $(CRT0_OBJ) $(TOPDIR)lib/ + +-$(CRT0_OBJ): $(CRT0_SRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(CRT0_OBJ): $(SRCDIR)$(CRT0_SRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(SOBJS): %.o : %.S ++$(SOBJS): %.o : $(SRCDIR)%.S + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + ifeq ($(strip $(UCLIBC_CTOR_DTOR)),y) +-crti.o: crti.S +- $(CC) $(SAFECFLAGS) -c crti.S -o crti.o ++crti.o: $(SRCDIR)crti.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crti.o: crti.o + $(INSTALL) -d $(TOPDIR)lib/ + cp crti.o $(TOPDIR)lib/ + +-crtn.o: crtn.S +- $(CC) $(SAFECFLAGS) -c crtn.S -o crtn.o ++crtn.o: $(SRCDIR)crtn.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crtn.o: crtn.o + $(INSTALL) -d $(TOPDIR)lib/ +@@ -92,9 +94,9 @@ + headers: + ifneq ($(strip $(HAVE_ELF)),y) + echo "Working around compiler bug in the m68k-pic-coff toolchain" +- $(LN) -fs ../libc/sysdeps/linux/m68k/float.h $(TOPDIR)/include/ ++ $(CP) -f $(SRCTOPDIR)libc/sysdeps/linux/m68k/float.h $(TOPDIR)include/ + endif +- $(LN) -fs ../libc/sysdeps/linux/m68k/fpu_control.h $(TOPDIR)/include/ ++ $(CP) -f $(SRCTOPDIR)libc/sysdeps/linux/m68k/fpu_control.h $(TOPDIR)include/ + + clean: + $(RM) *.[oa] *~ core +Index: libc/sysdeps/linux/microblaze/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/sysdeps/linux/microblaze/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/sysdeps/linux/microblaze/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/sysdeps/linux/microblaze/Makefile 9 Dec 2003 00:48:58 -0000 +@@ -17,8 +17,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../../ ++include $(SRCTOPDIR)Rules.mak + + #FIXME -- this arch should include its own crti.S and crtn.S + UCLIBC_CTOR_DTOR=n +@@ -53,28 +55,28 @@ + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + cp $(CRT0_OBJ) $(TOPDIR)lib/ + +-$(CRT0_OBJ): $(CRT0_SRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(CRT0_OBJ): $(SRCDIR)$(CRT0_SRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(SOBJS): %.o : %.S ++$(SOBJS): %.o : $(SRCDIR)%.S + $(CC) $(SFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + ifeq ($(strip $(UCLIBC_CTOR_DTOR)),y) +-crti.o: crti.S +- $(CC) $(SAFECFLAGS) -c crti.S -o crti.o ++crti.o: $(SRCDIR)crti.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crti.o: crti.o + $(INSTALL) -d $(TOPDIR)lib/ + cp crti.o $(TOPDIR)lib/ + +-crtn.o: crtn.S +- $(CC) $(SAFECFLAGS) -c crtn.S -o crtn.o ++crtn.o: $(SRCDIR)crtn.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crtn.o: crtn.o + $(INSTALL) -d $(TOPDIR)lib/ +Index: libc/sysdeps/linux/mips/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/sysdeps/linux/mips/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/sysdeps/linux/mips/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/sysdeps/linux/mips/Makefile 10 Dec 2003 05:07:22 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../../ ++include $(SRCTOPDIR)Rules.mak + ASFLAGS=$(CFLAGS) + + CRT0_SRC = crt0.S +@@ -45,29 +47,29 @@ + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + cp $(CRT0_OBJ) $(TOPDIR)lib/ + +-$(CRT0_OBJ): $(CRT0_SRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(CRT0_OBJ): $(SRCDIR)$(CRT0_SRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(SOBJS): %.o : %.S ++$(SOBJS): %.o : $(SRCDIR)%.S + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + + ifeq ($(strip $(UCLIBC_CTOR_DTOR)),y) +-crti.o: crti.S +- $(CC) $(SAFECFLAGS) -c crti.S -o crti.o ++crti.o: $(SRCDIR)crti.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crti.o: crti.o + $(INSTALL) -d $(TOPDIR)lib/ + cp crti.o $(TOPDIR)lib/ + +-crtn.o: crtn.S +- $(CC) $(SAFECFLAGS) -c crtn.S -o crtn.o ++crtn.o: $(SRCDIR)crtn.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crtn.o: crtn.o + $(INSTALL) -d $(TOPDIR)lib/ +@@ -83,11 +85,12 @@ + + + headers: +- $(LN) -fs ../libc/sysdeps/linux/mips/sgidefs.h $(TOPDIR)/include/ +-# $(LN) -fs ../libc/sysdeps/linux/mips/regdef.h $(TOPDIR)/include/ +- $(LN) -fs ../libc/sysdeps/linux/mips/fpu_control.h $(TOPDIR)/include/ ++ $(CP) -f $(SRCTOPDIR)libc/sysdeps/linux/mips/sgidefs.h $(TOPDIR)include/ ++# $(CP) -f $(SRCTOPDIR)libc/sysdeps/linux/mips/regdef.h $(TOPDIR)include/ ++ $(CP) -f $(SRCTOPDIR)libc/sysdeps/linux/mips/fpu_control.h $(TOPDIR)include/ + + clean: + $(RM) *.[oa] *~ core + $(RM) bits/sysnum.h +- $(RM) $(TOPDIR)/include/sgidefs.h ++ $(RM) $(TOPDIR)include/sgidefs.h $(TOPDIR)include/fpu_control.h \ ++ # $(TOPDIR)include/regdef.h +Index: libc/sysdeps/linux/powerpc/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/sysdeps/linux/powerpc/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/sysdeps/linux/powerpc/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/sysdeps/linux/powerpc/Makefile 10 Dec 2003 05:07:56 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../../ ++include $(SRCTOPDIR)Rules.mak + ASFLAGS=$(CFLAGS) + + CRT0_SRC = crt0.S +@@ -53,35 +55,35 @@ + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + cp $(CRT0_OBJ) $(TOPDIR)lib/ + +-$(CRT0_OBJ): $(CRT0_SRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(CRT0_OBJ): $(SRCDIR)$(CRT0_SRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(SOBJS): %.o : %.S ++$(SOBJS): %.o : $(SRCDIR)%.S + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + ifeq ($(strip $(UCLIBC_PROFILING)),y) +-gmon-start.S: ../common/gmon-start.c +- $(CC) $(SAFECFLAGS) -c $< -S -o $*.S ++gmon-start.S: $(SRCDIR)../common/gmon-start.c ++ $(CC) $(SAFECFLAGS) -c $< -S -o $@ + gcrt1.o: $(CRT0_DEPS) + endif + + + ifeq ($(strip $(UCLIBC_CTOR_DTOR)),y) +-crti.o: crti.S +- $(CC) $(SAFECFLAGS) -c crti.S -o crti.o ++crti.o: $(SRCDIR)crti.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crti.o: crti.o + $(INSTALL) -d $(TOPDIR)lib/ + cp crti.o $(TOPDIR)lib/ + +-crtn.o: crtn.S +- $(CC) $(SAFECFLAGS) -c crtn.S -o crtn.o ++crtn.o: $(SRCDIR)crtn.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crtn.o: crtn.o + $(INSTALL) -d $(TOPDIR)lib/ +@@ -97,8 +99,9 @@ + + + headers: +- $(LN) -fs ../libc/sysdeps/linux/powerpc/fpu_control.h $(TOPDIR)/include/ ++ $(CP) -f $(SRCTOPDIR)libc/sysdeps/linux/powerpc/fpu_control.h $(TOPDIR)include/ + + clean: + $(RM) *.[oa] *~ core + $(RM) bits/sysnum.h ++ $(RM) $(TOPDIR)include/fpu_control.h +Index: libc/sysdeps/linux/sh/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/sysdeps/linux/sh/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/sysdeps/linux/sh/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/sysdeps/linux/sh/Makefile 10 Dec 2003 05:06:26 -0000 +@@ -17,8 +17,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../../ ++include $(SRCTOPDIR)Rules.mak + + CFLAGS+= -I../ + SFLAGS= $(CFLAGS) -D__ASSEMBLER__ +@@ -52,34 +54,34 @@ + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + cp $(CRT0_OBJ) $(TOPDIR)lib/ + +-$(CRT0_OBJ): $(CRT0_SRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(CRT0_OBJ): $(SRCDIR)$(CRT0_SRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(SOBJS): %.o : %.S ++$(SOBJS): %.o : $(SRCDIR)%.S + $(CC) $(SFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + ifeq ($(strip $(UCLIBC_PROFILING)),y) +-gmon-start.S: ../common/gmon-start.c +- $(CC) $(SAFECFLAGS) -c $< -S -o $*.S ++gmon-start.S: $(SRCDIR)../common/gmon-start.c ++ $(CC) $(SAFECFLAGS) -c $< -S -o $@ + gcrt1.o: $(CRT0_DEPS) + endif + + ifeq ($(strip $(UCLIBC_CTOR_DTOR)),y) +-crti.o: crti.S +- $(CC) $(SAFECFLAGS) -c crti.S -o crti.o ++crti.o: $(SRCDIR)crti.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crti.o: crti.o + $(INSTALL) -d $(TOPDIR)lib/ + cp crti.o $(TOPDIR)lib/ + +-crtn.o: crtn.S +- $(CC) $(SAFECFLAGS) -c crtn.S -o crtn.o ++crtn.o: $(SRCDIR)crtn.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crtn.o: crtn.o + $(INSTALL) -d $(TOPDIR)lib/ +@@ -95,7 +97,7 @@ + + + headers: +- $(LN) -fs ../libc/sysdeps/linux/sh/fpu_control.h $(TOPDIR)/include/ ++ $(CP) -f $(SRCTOPDIR)libc/sysdeps/linux/sh/fpu_control.h $(TOPDIR)include/ + + clean: + $(RM) *.[oa] *~ core +Index: libc/sysdeps/linux/sh64/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/sysdeps/linux/sh64/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/sysdeps/linux/sh64/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/sysdeps/linux/sh64/Makefile 8 Dec 2003 21:55:35 -0000 +@@ -17,8 +17,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../../ ++include $(SRCTOPDIR)Rules.mak + + CFLAGS += -I.. + SFLAGS = $(CFLAGS) -D__ASSEMBLER__ -DASM_GLOBAL_DIRECTIVE=.globl +@@ -50,28 +52,28 @@ + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + cp $(CRT0_OBJ) $(TOPDIR)lib/ + +-$(CRT0_OBJ): $(CRT0_SRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(CRT0_OBJ): $(SRCDIR)$(CRT0_SRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(SOBJS): %.o : %.S ++$(SOBJS): %.o : $(SRCDIR)%.S + $(CC) $(SFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + ifeq ($(strip $(UCLIBC_CTOR_DTOR)),y) +-crti.o: crti.S +- $(CC) $(SAFECFLAGS) -c crti.S -o crti.o ++crti.o: $(SRCDIR)crti.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crti.o: crti.o + $(INSTALL) -d $(TOPDIR)lib/ + cp crti.o $(TOPDIR)lib/ + +-crtn.o: crtn.S +- $(CC) $(SAFECFLAGS) -c crtn.S -o crtn.o ++crtn.o: $(SRCDIR)crtn.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crtn.o: crtn.o + $(INSTALL) -d $(TOPDIR)lib/ +Index: libc/sysdeps/linux/sparc/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/sysdeps/linux/sparc/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/sysdeps/linux/sparc/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/sysdeps/linux/sparc/Makefile 10 Dec 2003 05:07:39 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../../ ++include $(SRCTOPDIR)Rules.mak + ASFLAGS=$(CFLAGS) + + CRT0_SRC = crt0.c +@@ -46,28 +48,28 @@ + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + cp $(CRT0_OBJ) $(TOPDIR)lib/ + +-$(CRT0_OBJ): $(CRT0_SRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(CRT0_OBJ): $(SRCDIR)$(CRT0_SRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(SOBJS): %.o : %.S ++$(SOBJS): %.o : $(SRCDIR)%.S + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + ifeq ($(strip $(UCLIBC_CTOR_DTOR)),y) +-crti.o: crti.S +- $(CC) $(SAFECFLAGS) -c crti.S -o crti.o ++crti.o: $(SRCDIR)crti.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crti.o: crti.o + $(INSTALL) -d $(TOPDIR)lib/ + cp crti.o $(TOPDIR)lib/ + +-crtn.o: crtn.S +- $(CC) $(SAFECFLAGS) -c crtn.S -o crtn.o ++crtn.o: $(SRCDIR)crtn.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crtn.o: crtn.o + $(INSTALL) -d $(TOPDIR)lib/ +@@ -83,8 +85,9 @@ + + + headers: +- $(LN) -fs ../libc/sysdeps/linux/sparc/fpu_control.h $(TOPDIR)/include/ ++ $(CP) -f $(SRCTOPDIR)libc/sysdeps/linux/sparc/fpu_control.h $(TOPDIR)include/ + + clean: + $(RM) *.[oa] *~ core + $(RM) bits/sysnum.h ++ $(RM) $(TOPDIR)include/fpu_control.h +Index: libc/sysdeps/linux/v850/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/sysdeps/linux/v850/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/sysdeps/linux/v850/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/sysdeps/linux/v850/Makefile 8 Dec 2003 21:53:31 -0000 +@@ -17,8 +17,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../../../ ++include $(SRCTOPDIR)Rules.mak + + CFLAGS += -I.. + SFLAGS = $(CFLAGS) -D__ASSEMBLER -DASM_GLOBAL_DIRECTIVE=.globl +@@ -50,28 +52,28 @@ + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + cp $(CRT0_OBJ) $(TOPDIR)lib/ + +-$(CRT0_OBJ): $(CRT0_SRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(CRT0_OBJ): $(SRCDIR)$(CRT0_SRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(SOBJS): %.o : %.S ++$(SOBJS): %.o : $(SRCDIR)%.S + $(CC) $(SFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + ifeq ($(strip $(UCLIBC_CTOR_DTOR)),y) +-crti.o: crti.S +- $(CC) $(SAFECFLAGS) -c crti.S -o crti.o ++crti.o: $(SRCDIR)crti.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crti.o: crti.o + $(INSTALL) -d $(TOPDIR)lib/ + cp crti.o $(TOPDIR)lib/ + +-crtn.o: crtn.S +- $(CC) $(SAFECFLAGS) -c crtn.S -o crtn.o ++crtn.o: $(SRCDIR)crtn.S ++ $(CC) $(SAFECFLAGS) -c $< -o $@ + + $(TOPDIR)lib/crtn.o: crtn.o + $(INSTALL) -d $(TOPDIR)lib/ +Index: libc/termios/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/termios/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/termios/Makefile 4 Dec 2003 01:27:56 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/termios/Makefile 8 Dec 2003 21:15:43 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../ ++include $(SRCTOPDIR)Rules.mak + + MSRC=termios.c + MOBJ= tcdrain.o tcflow.o tcflush.o tcsendbreak.o tcsetpgrp.o tcgetpgrp.o \ +@@ -42,13 +44,13 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(MOBJ): $(MSRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libc/unistd/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libc/unistd/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libc/unistd/Makefile 4 Dec 2003 01:27:57 -0000 1.1.1.1 ++++ uClibc-0.9.23/libc/unistd/Makefile 9 Dec 2003 01:04:49 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../ ++include $(SRCTOPDIR)Rules.mak + DIRS:= + + CSRC=execl.c execlp.c execv.c execvep.c execvp.c execle.c \ +@@ -43,9 +45,9 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBC) $(OBJS) + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + $(OBJ): Makefile + +Index: libcrypt/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libcrypt/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libcrypt/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/libcrypt/Makefile 9 Dec 2003 21:39:19 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../ ++include $(SRCTOPDIR)Rules.mak + + LIBCRYPT=libcrypt.a + LIBCRYPT_SHARED=libcrypt.so +@@ -41,9 +43,9 @@ + $(RM) $(TOPDIR)lib/$(LIBCRYPT) + $(INSTALL) -m 644 $(LIBCRYPT) $(TOPDIR)lib + +-$(OBJS): %.o : %.c ++$(OBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + $(OBJ): Makefile + +Index: libintl/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libintl/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libintl/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/libintl/Makefile 9 Dec 2003 21:31:16 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../ ++include $(SRCTOPDIR)Rules.mak + LIBC=$(TOPDIR)libc.a + + LIBINTL=libintl.a +@@ -46,9 +48,9 @@ + $(RM) $(TOPDIR)lib/$(LIBINTL) + $(INSTALL) -m 644 $(LIBINTL) $(TOPDIR)lib/ + +-$(MOBJ): $(MSRC) +- $(CC) $(CFLAGS) -DL_$* $< -c -o $*.o +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++$(MOBJ): $(SRCDIR)$(MSRC) ++ $(CC) $(CFLAGS) -DL_$* $< -c -o $@ ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + shared: all + $(LD) $(LDFLAGS) -soname=$(LIBINTL_SHARED).$(MAJOR_VERSION) \ +Index: libm/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libm/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libm/Makefile 4 Dec 2003 01:27:57 -0000 1.1.1.1 ++++ uClibc-0.9.23/libm/Makefile 9 Dec 2003 01:07:04 -0000 +@@ -31,8 +31,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../ ++include $(SRCTOPDIR)Rules.mak + + DIRS = + ifeq ($(strip $(HAS_FPU)),y) +@@ -110,9 +112,9 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBM) $(OBJS) + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + $(OBJ): Makefile + +Index: libm/powerpc/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libm/powerpc/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libm/powerpc/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/libm/powerpc/Makefile 9 Dec 2003 01:07:38 -0000 +@@ -31,8 +31,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../ ++include $(SRCTOPDIR)Rules.mak + + LIBM=../libm.a + CFLAGS+=-D_IEEE_LIBM -D_ISOC99_SOURCE -D_SVID_SOURCE +@@ -57,9 +59,9 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBM) $(OBJS) + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + $(OBJ): Makefile + +Index: libnsl/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libnsl/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libnsl/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/libnsl/Makefile 9 Dec 2003 21:32:33 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../ ++include $(SRCTOPDIR)Rules.mak + + LIBNSL=libnsl.a + LIBNSL_SHARED=libnsl.so +@@ -36,9 +38,9 @@ + $(RM) $(TOPDIR)lib/$(LIBNSL) + $(INSTALL) -m 644 $(LIBNSL) $(TOPDIR)lib + +-$(OBJS): %.o : %.c ++$(OBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + $(OBJ): Makefile + +Index: libpthread/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libpthread/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libpthread/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/libpthread/Makefile 9 Dec 2003 21:34:34 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../ ++include $(SRCTOPDIR)Rules.mak + + #Adjust the soname version to avoid namespace collisions with glibc's libpthread + LIBPTHREAD=libpthread.a +@@ -69,9 +71,9 @@ + fi; + + +-$(OBJS): %.o : %.c ++$(OBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + $(OBJ): Makefile + +Index: libpthread/linuxthreads/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libpthread/linuxthreads/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libpthread/linuxthreads/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/libpthread/linuxthreads/Makefile 9 Dec 2003 21:38:44 -0000 +@@ -17,8 +17,10 @@ + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + # Makefile for uClibc + ++SRCDIR=./ + TOPDIR=../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../ ++include $(SRCTOPDIR)Rules.mak + + #Adjust the soname version to avoid namespace collisions with glibc's libpthread + LIBPTHREAD:=../libpthread.a +@@ -32,14 +34,15 @@ + + + # set up system dependencies include dirs (NOTE: order matters!) +-PTDIR = $(TOPDIR)libpthread/linuxthreads/ ++PTDIR = $(SRCTOPDIR)libpthread/linuxthreads/ + SYSDEPINC = -I$(PTDIR)sysdeps/unix/sysv/linux \ + -I$(PTDIR)sysdeps/pthread \ + -I$(PTDIR)sysdeps/unix/sysv \ + -I$(PTDIR)sysdeps/unix/unix \ + -I$(PTDIR)sysdeps/$(TARGET_ARCH) \ + -I$(PTDIR)sysdeps \ +- -I$(TOPDIR)libc/sysdeps/linux/$(TARGET_ARCH) ++ -I$(TOPDIR)libc/sysdeps/linux/$(TARGET_ARCH) \ ++ -I$(SRCTOPDIR)libc/sysdeps/linux/$(TARGET_ARCH) + CFLAGS += $(SYSDEPINC) + + CSRC=attr.c cancel.c condvar.c errno.c events.c join.c lockfile.c manager.c \ +@@ -61,12 +64,12 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBPTHREAD) $(OBJS) + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ + ifeq ($(strip $(PTHREADS_DEBUG_SUPPORT)),y) +- $(STRIPTOOL) -X --strip-debug -R .note -R .comment $*.o ++ $(STRIPTOOL) -X --strip-debug -R .note -R .comment $@ + else +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + endif + + clean: +Index: libpthread/linuxthreads_db/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libpthread/linuxthreads_db/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libpthread/linuxthreads_db/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/libpthread/linuxthreads_db/Makefile 9 Dec 2003 21:37:57 -0000 +@@ -17,8 +17,10 @@ + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + # Makefile for uClibc + ++SRCDIR=./ + TOPDIR=../../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../../ ++include $(SRCTOPDIR)Rules.mak + + #Adjust the soname version to avoid namespace collisions with glibc's libpthread + LIBTHREAD_DB:=../libthread_db.a +@@ -29,14 +31,15 @@ + endif + + # set up system dependencies include dirs (NOTE: order matters!) +-PTDIR = $(TOPDIR)libpthread/linuxthreads/ ++PTDIR = $(SRCTOPDIR)libpthread/linuxthreads/ + SYSDEPINC = -I$(PTDIR)sysdeps/unix/sysv/linux \ + -I$(PTDIR)sysdeps/pthread \ + -I$(PTDIR)sysdeps/unix/sysv \ + -I$(PTDIR)sysdeps/unix/unix \ + -I$(PTDIR)sysdeps/$(TARGET_ARCH) \ + -I$(PTDIR)sysdeps \ +- -I$(TOPDIR)libc/sysdeps/linux/$(TARGET_ARCH) ++ -I$(TOPDIR)libc/sysdeps/linux/$(TARGET_ARCH) \ ++ -I$(SRCTOPDIR)libc/sysdeps/linux/$(TARGET_ARCH) + CFLAGS += $(SYSDEPINC) -DLIBPTHREAD_SO="\"libpthread.so.$(MAJOR_VERSION)\"" + + CSRC= td_init.c td_log.c td_ta_delete.c td_ta_get_nthreads.c \ +@@ -64,9 +67,9 @@ + ar-target: $(OBJS) + $(AR) $(ARFLAGS) $(LIBTHREAD_DB) $(OBJS) + +-$(COBJS): %.o : %.c ++$(COBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + clean: + $(RM) *.[oa] *~ core +Index: libresolv/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libresolv/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libresolv/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/libresolv/Makefile 9 Dec 2003 21:30:29 -0000 +@@ -22,8 +22,10 @@ + # respective copyright holders. + # Makefile for uClibc + ++SRCDIR=./ + TOPDIR=../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../ ++include $(SRCTOPDIR)Rules.mak + + LIBRESOLV=libresolv.a + LIBRESOLV_SHARED=libresolv.so +@@ -42,9 +44,9 @@ + $(RM) $(TOPDIR)lib/$(LIBRESOLV) + $(INSTALL) -m 644 $(LIBRESOLV) $(TOPDIR)lib + +-$(OBJS): %.o : %.c ++$(OBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + $(OBJ): Makefile + +Index: libutil/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/libutil/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/libutil/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/libutil/Makefile 9 Dec 2003 21:31:53 -0000 +@@ -21,8 +21,10 @@ + # other sundry sources. Files within this library are copyright by their + # respective copyright holders. + ++SRCDIR=./ + TOPDIR=../ +-include $(TOPDIR)Rules.mak ++SRCTOPDIR=../ ++include $(SRCTOPDIR)Rules.mak + LIBC=$(TOPDIR)libc.a + + LIBUTIL=libutil.a +@@ -45,9 +47,9 @@ + $(RM) $(TOPDIR)lib/$(LIBUTIL) + $(INSTALL) -m 644 $(LIBUTIL) $(TOPDIR)lib/ + +-$(OBJS): %.o : %.c ++$(OBJS): %.o : $(SRCDIR)%.c + $(CC) $(CFLAGS) -c $< -o $@ +- $(STRIPTOOL) -x -R .note -R .comment $*.o ++ $(STRIPTOOL) -x -R .note -R .comment $@ + + shared: all + $(LD) $(LDFLAGS) -soname=$(LIBUTIL_SHARED).$(MAJOR_VERSION) \ +Index: test/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/test/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/test/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/test/Makefile 9 Dec 2003 01:25:18 -0000 +@@ -16,7 +16,9 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TOPDIR=../ ++SRCTOPDIR=../ + -include $(TOPDIR).config + + .EXPORT_ALL_VARIABLES: +Index: test/Rules.mak +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/test/Rules.mak,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Rules.mak +--- uClibc-0.9.23/test/Rules.mak 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/test/Rules.mak 9 Dec 2003 21:42:43 -0000 +@@ -41,10 +41,10 @@ + # make CROSS=mipsel-linux- + # will build uClibc for 'mipsel'. + +-CROSS=../$(TESTDIR)extra/gcc-uClibc/$(TARGET_ARCH)-uclibc- ++CROSS=$(TESTDIR)../extra/gcc-uClibc/$(TARGET_ARCH)-uclibc- + CC= $(CROSS)gcc + STRIPTOOL=strip +-LDD=../$(TESTDIR)ldso/util/ldd ++LDD=$(TESTDIR)../ldso/util/ldd + + RM= rm -f + +Index: test/args/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/test/args/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/test/args/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/test/args/Makefile 9 Dec 2003 01:11:26 -0000 +@@ -16,14 +16,16 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TESTDIR=../ +-include $(TESTDIR)/Rules.mak ++SRCTESTDIR=../ ++include $(SRCTESTDIR)/Rules.mak + + + TARGETS=arg_test + all: $(TARGETS) + +-arg_test: arg_test.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++arg_test: $(SRCDIR)arg_test.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +Index: test/assert/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/test/assert/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/test/assert/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/test/assert/Makefile 9 Dec 2003 01:31:49 -0000 +@@ -16,14 +16,16 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TESTDIR=../ +-include $(TESTDIR)/Rules.mak ++SRCTESTDIR=../ ++include $(SRCTESTDIR)/Rules.mak + + + TARGETS=assert + all: $(TARGETS) + +-assert: assert.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++assert: $(SRCDIR)assert.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +Index: test/crypt/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/test/crypt/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/test/crypt/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/test/crypt/Makefile 9 Dec 2003 01:26:04 -0000 +@@ -17,16 +17,17 @@ + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +- ++SRCDIR=./ + TESTDIR=../ +-include $(TESTDIR)/Rules.mak ++SRCTESTDIR=../ ++include $(SRCTESTDIR)/Rules.mak + + TARGETS=crypt md5c-test + EXTRA_LIBS=-lcrypt + + all: $(TARGETS) + +-crypt: crypt.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++crypt: $(SRCDIR)crypt.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -37,7 +38,7 @@ + -./$@ < crypt.input #> $@.out 2>&1 + -@ echo " " + +-crypt_glibc: crypt.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++crypt_glibc: $(SRCDIR)crypt.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs glibc: " +@@ -56,7 +57,7 @@ + -diff -u crypt_glibc.out crypt.out + -@ echo " " + +-md5c-test: md5c-test.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++md5c-test: $(SRCDIR)md5c-test.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +Index: test/ctype/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/test/ctype/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/test/ctype/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/test/ctype/Makefile 9 Dec 2003 01:26:45 -0000 +@@ -16,13 +16,15 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TESTDIR=../ +-include $(TESTDIR)/Rules.mak ++SRCTESTDIR=../ ++include $(SRCTESTDIR)/Rules.mak + + TARGETS=ctype ctype_run + all: $(TARGETS) + +-ctype: ctype.c ../testsuite.h Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++ctype: $(SRCDIR)ctype.c $(SRCTESTDIR)testsuite.h Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +Index: test/dlopen/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/test/dlopen/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/test/dlopen/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/test/dlopen/Makefile 9 Dec 2003 01:35:31 -0000 +@@ -17,27 +17,29 @@ + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + # Makefile for uClibc + ++SRCDIR=./ + TESTDIR=../ +-include $(TESTDIR)/Rules.mak ++SRCTESTDIR=../ ++include $(SRCTESTDIR)/Rules.mak + DEBUG_LIBS=X + #DEBUG_LIBS=LD_DEBUG + + all: run + +-test1: test1.c +- $(CC) $(CFLAGS) -o test1 test1.c -ldl ++test1: $(SRCDIR)test1.c ++ $(CC) $(CFLAGS) -o $@ $< -ldl + +-test2: test2.c +- $(CC) $(CFLAGS) -o test2 test2.c -ldl ++test2: $(SRCDIR)test2.c ++ $(CC) $(CFLAGS) -o $@ $< -ldl + +-test3: test3.c +- $(CC) $(CFLAGS) -o test3 test3.c -ldl ./libtest1.so ./libtest2.so ++test3: $(SRCDIR)test3.c ++ $(CC) $(CFLAGS) -o $@ $< -ldl ./libtest1.so ./libtest2.so + +-libtest1.o: libtest1.c +- $(CC) $(CFLAGS) -fPIC -c libtest1.c -o libtest1.o ++libtest1.o: $(SRCDIR)libtest1.c ++ $(CC) $(CFLAGS) -fPIC -c $< -o $@ + +-libtest2.o: libtest2.c +- $(CC) $(CFLAGS) -fPIC -c libtest2.c -o libtest2.o ++libtest2.o: $(SRCDIR)libtest2.c ++ $(CC) $(CFLAGS) -fPIC -c $< -o $@ + + libtest1.so: libtest1.o + $(CC) $(CFLAGS) -fPIC -shared -o libtest1.so -Wl,-soname,libtest1.so libtest1.o ./libtest2.so +@@ -45,18 +47,18 @@ + libtest2.so: libtest2.o + $(CC) $(CFLAGS) -fPIC -shared -o libtest2.so -Wl,-soname,libtest2.so libtest2.o + +-dltest: dltest.c +- $(CC) $(CFLAGS) -DLIBNAME="\"./libtest.so\"" dltest.c -ldl -lpthread -o dltest ++dltest: $(SRCDIR)dltest.c ++ $(CC) $(CFLAGS) -DLIBNAME="\"./libtest.so\"" $< -ldl -lpthread -o $@ + +-libtest.so: libtest.c +- $(CC) $(CFLAGS) -fPIC -shared -Wl,-soname,libtest.so libtest.c -o libtest.so ++libtest.so: $(SRCDIR)libtest.c ++ $(CC) $(CFLAGS) -fPIC -shared -Wl,-soname,libtest.so $< -o $@ + + # Second time, directly link libtest3.so with libpthread +-dltest2: dltest.c +- $(CC) $(CFLAGS) -DLIBNAME="\"./libtest3.so\"" dltest.c -ldl -lpthread -o dltest2 ++dltest2: $(SRCDIR)dltest.c ++ $(CC) $(CFLAGS) -DLIBNAME="\"./libtest3.so\"" $< -ldl -lpthread -o $@ + +-libtest3.so: libtest.c +- $(CC) $(CFLAGS) -fPIC -shared -Wl,-soname,libtest3.so libtest.c -o libtest3.so -lpthread ++libtest3.so: $(SRCDIR)libtest.c ++ $(CC) $(CFLAGS) -fPIC -shared -Wl,-soname,libtest3.so $< -o $@ -lpthread + + run: libtest2.so libtest1.so test1 test2 test3 dltest libtest.so dltest2 libtest3.so + @echo "----------running test 1--------------" +Index: test/malloc/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/test/malloc/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/test/malloc/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/test/malloc/Makefile 9 Dec 2003 01:37:00 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TESTDIR=../ +-include $(TESTDIR)/Rules.mak ++SRCTESTDIR=../ ++include $(SRCTESTDIR)/Rules.mak + + + TARGETS=malloc +@@ -26,7 +28,7 @@ + TARGETS+=realloc0 realloc0_glibc + all: $(TARGETS) + +-malloc: malloc.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++malloc: $(SRCDIR)malloc.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -41,10 +43,10 @@ + -@ echo "-------" + -@ echo "testmalloc.c source: " + -@ echo " " +- -@ cat testmalloc.c ++ -@ cat $(SRCDIR)testmalloc.c + -@ echo " " + +-testmalloc: testmalloc.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++testmalloc: $(SRCDIR)testmalloc.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -57,7 +59,7 @@ + -./$@ + -@ echo " " + +-testmalloc_glibc: testmalloc.c Makefile ++testmalloc_glibc: $(SRCDIR)testmalloc.c Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +@@ -70,7 +72,7 @@ + -./$@ + -@ echo " " + +-mallocbug: mallocbug.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++mallocbug: $(SRCDIR)mallocbug.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -83,7 +85,7 @@ + -./$@ + -@ echo " " + +-mallocbug_glibc: mallocbug.c Makefile ++mallocbug_glibc: $(SRCDIR)mallocbug.c Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +@@ -96,7 +98,7 @@ + -./$@ + -@ echo " " + +-realloc0: realloc0.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++realloc0: $(SRCDIR)realloc0.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -109,7 +111,7 @@ + -./$@ + -@ echo " " + +-realloc0_glibc: realloc0.c Makefile ++realloc0_glibc: $(SRCDIR)realloc0.c Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +Index: test/math/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/test/math/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/test/math/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/test/math/Makefile 9 Dec 2003 01:17:29 -0000 +@@ -18,8 +18,10 @@ + + + ++SRCDIR=./ + TESTDIR=../ +-include $(TESTDIR)/Rules.mak ++SRCTESTDIR=../ ++include $(SRCTESTDIR)/Rules.mak + CFLAGS+=-D_GNU_SOURCE -DNO_LONG_DOUBLE + EXTRA_LIBS=-lm + PERL=/usr/bin/perl +@@ -57,7 +59,7 @@ + $(CC) $(LDFLAGS) $@.o -o $@ $(EXTRA_LIBS) + -./$@ + +-rint: rint.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++rint: $(SRCDIR)rint.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -68,7 +70,7 @@ + -./$@ > $@.out 2>&1 + -@ echo " " + +-rint_glibc: rint.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++rint_glibc: $(SRCDIR)rint.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs glibc: " +@@ -96,8 +98,8 @@ + + ulps-file = $(firstword $(wildcard $(config-sysdirs:%=$(..)%/libm-test-ulps))) + +-libm-test.c: $(ulps-file) libm-test.inc gen-libm-test.pl +- $(PERL) ./gen-libm-test.pl -u $< ./libm-test.inc -o "." 2>&1 > /dev/null ++libm-test.c: $(ulps-file) $(SRCDIR)libm-test.inc $(SRCDIR)gen-libm-test.pl ++ $(PERL) $(SRCDIR)gen-libm-test.pl -u $< $(SRCDIR)libm-test.inc -o "." 2>&1 > /dev/null + + clean: + $(RM) *.[oa] *~ core $(TARGETS) $(generated) rint_glibc.out rint.out +Index: test/misc/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/test/misc/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/test/misc/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/test/misc/Makefile 9 Dec 2003 01:29:12 -0000 +@@ -16,15 +16,17 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TESTDIR=../ +-include $(TESTDIR)/Rules.mak ++SRCTESTDIR=../ ++include $(SRCTESTDIR)/Rules.mak + + CFLAGS64=-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 + + TARGETS=sem fdopen dirent_diff dirent64_diff #outb + all: $(TARGETS) + +-outb: outb.c ../testsuite.h Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++outb: $(SRCDIR)outb.c $(SRCTESTDIR)testsuite.h Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -35,7 +37,7 @@ + ./$@ + -@ echo " " + +-sem: sem.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++sem: $(SRCDIR)sem.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -46,7 +48,7 @@ + -./$@ + -@ echo " " + +-fdopen: fdopen.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++fdopen: $(SRCDIR)fdopen.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -62,10 +64,10 @@ + -@ echo "-------" + -@ echo "dirent.c source: " + -@ echo " " +- -@ cat dirent.c ++ -@ cat $(SRCDIR)dirent.c + -@ echo " " + +-dirent: dirent.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++dirent: $(SRCDIR)dirent.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -76,7 +78,7 @@ + -./$@ dirent.c > $@.out + -@ echo " " + +-dirent_glibc: dirent.c Makefile ++dirent_glibc: $(SRCDIR)dirent.c Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +@@ -95,7 +97,7 @@ + -diff -u dirent_glibc.out dirent.out + -@ echo " " + +-dirent64: dirent.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++dirent64: $(SRCDIR)dirent.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -106,7 +108,7 @@ + -./$@ dirent.c > $@.out + -@ echo " " + +-dirent64_glibc: dirent.c Makefile ++dirent64_glibc: $(SRCDIR)dirent.c Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +Index: test/mmap/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/test/mmap/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/test/mmap/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/test/mmap/Makefile 9 Dec 2003 01:21:40 -0000 +@@ -16,14 +16,16 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TESTDIR=../ +-include $(TESTDIR)/Rules.mak ++SRCTESTDIR=../ ++include $(SRCTESTDIR)/Rules.mak + + + TARGETS=mmap + all: $(TARGETS) + +-mmap: mmap.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++mmap: $(SRCDIR)mmap.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +Index: test/pthread/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/test/pthread/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/test/pthread/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/test/pthread/Makefile 9 Dec 2003 01:10:48 -0000 +@@ -1,5 +1,7 @@ ++SRCDIR=./ + TESTDIR=../ +-include $(TESTDIR)/Rules.mak ++SRCTESTDIR=../ ++include $(SRCTESTDIR)/Rules.mak + + LDFLAGS += + #EXTRA_LIBS += -lc -lgcc -lpthread +@@ -8,7 +10,7 @@ + TARGETS=ex1 ex2 ex3 ex4 ex5 ex6 ex7 + all: $(TARGETS) + +-ex1: ex1.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(TESTCC) ++ex1: $(SRCDIR)ex1.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(TESTCC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -19,7 +21,7 @@ + -./$@ + -@ echo " " + +-ex2: ex2.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(TESTCC) ++ex2: $(SRCDIR)ex2.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(TESTCC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -30,7 +32,7 @@ + -./$@ + -@ echo " " + +-ex3: ex3.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(TESTCC) ++ex3: $(SRCDIR)ex3.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(TESTCC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -41,7 +43,7 @@ + -./$@ + -@ echo " " + +-ex4: ex4.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(TESTCC) ++ex4: $(SRCDIR)ex4.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(TESTCC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -52,7 +54,7 @@ + -./$@ + -@ echo " " + +-ex5: ex5.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(TESTCC) ++ex5: $(SRCDIR)ex5.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(TESTCC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -63,7 +65,7 @@ + -./$@ + -@ echo " " + +-ex6: ex6.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(TESTCC) ++ex6: $(SRCDIR)ex6.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(TESTCC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -74,7 +76,7 @@ + -./$@ + -@ echo " " + +-ex7: ex7.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(TESTCC) ++ex7: $(SRCDIR)ex7.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(TESTCC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +Index: test/pwd_grp/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/test/pwd_grp/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/test/pwd_grp/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/test/pwd_grp/Makefile 9 Dec 2003 01:24:34 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TESTDIR=../ +-include $(TESTDIR)/Rules.mak ++SRCTESTDIR=../ ++include $(SRCTESTDIR)/Rules.mak + + + TARGETS=test_pwd test_pwd_glibc +@@ -29,7 +31,7 @@ + + all: $(TARGETS) + +-test_pwd: test_pwd.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++test_pwd: $(SRCDIR)test_pwd.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -40,7 +42,7 @@ + -./$@ 2>&1 >test_pwd.out + -@ echo " " + +-test_pwd_glibc: test_pwd.c Makefile ++test_pwd_glibc: $(SRCDIR)test_pwd.c Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +@@ -51,7 +53,7 @@ + -./$@ 2>&1 >test_pwd_glibc.out + -@ echo " " + +-test_grp: test_grp.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++test_grp: $(SRCDIR)test_grp.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -62,7 +64,7 @@ + -./$@ 2>&1 >test_grp.out + -@ echo " " + +-test_grp_glibc: test_grp.c Makefile ++test_grp_glibc: $(SRCDIR)test_grp.c Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +@@ -73,7 +75,7 @@ + -./$@ 2>&1 >test_grp_glibc.out + -@ echo " " + +-pwcat: pwcat.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++pwcat: $(SRCDIR)pwcat.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -84,7 +86,7 @@ + -./$@ 2>&1 >pwcat.out + -@ echo " " + +-pwcat_glibc: pwcat.c Makefile ++pwcat_glibc: $(SRCDIR)pwcat.c Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +@@ -95,7 +97,7 @@ + -./$@ 2>&1 >pwcat_glibc.out + -@ echo " " + +-grcat: grcat.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++grcat: $(SRCDIR)grcat.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -106,7 +108,7 @@ + -./$@ 2>&1 >grcat.out + -@ echo " " + +-grcat_glibc: grcat.c Makefile ++grcat_glibc: $(SRCDIR)grcat.c Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +@@ -117,7 +119,7 @@ + -./$@ 2>&1 >grcat_glibc.out + -@ echo " " + +-getgroups: getgroups.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++getgroups: $(SRCDIR)getgroups.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -128,7 +130,7 @@ + -./$@ 2>&1 >getgroups.out + -@ echo " " + +-getgroups_glibc: getgroups.c Makefile ++getgroups_glibc: $(SRCDIR)getgroups.c Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +Index: test/setjmp/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/test/setjmp/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/test/setjmp/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/test/setjmp/Makefile 9 Dec 2003 01:37:26 -0000 +@@ -16,14 +16,16 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TESTDIR=../ +-include $(TESTDIR)/Rules.mak ++SRCTESTDIR=../ ++include $(SRCTESTDIR)/Rules.mak + + + TARGETS=setjmp_test + all: $(TARGETS) + +-setjmp_test: setjmp_test.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++setjmp_test: $(SRCDIR)setjmp_test.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +Index: test/signal/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/test/signal/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/test/signal/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/test/signal/Makefile 9 Dec 2003 01:38:07 -0000 +@@ -16,15 +16,17 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TESTDIR=../ +-include $(TESTDIR)/Rules.mak ++SRCTESTDIR=../ ++include $(SRCTESTDIR)/Rules.mak + + CFLAGS += -D_GNU_SOURCE + + TARGETS=signal signal_glibc sigchld sigchld_glibc + all: $(TARGETS) + +-signal: signal.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++signal: $(SRCDIR)signal.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -35,7 +37,7 @@ + -./$@ + -@ echo " " + +-signal_glibc: signal.c Makefile ++signal_glibc: $(SRCDIR)signal.c Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +@@ -46,7 +48,7 @@ + -./$@ + -@ echo " " + +-sigchld: sigchld.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++sigchld: $(SRCDIR)sigchld.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -57,7 +59,7 @@ + -./$@ + -@ echo " " + +-sigchld_glibc: sigchld.c Makefile ++sigchld_glibc: $(SRCDIR)sigchld.c Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +Index: test/silly/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/test/silly/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/test/silly/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/test/silly/Makefile 9 Dec 2003 01:30:53 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TESTDIR=../ +-include $(TESTDIR)/Rules.mak ++SRCTESTDIR=../ ++include $(SRCTESTDIR)/Rules.mak + + + +@@ -30,10 +32,10 @@ + -@ echo "-------" + -@ echo "hello.c source: " + -@ echo " " +- -@ cat hello.c ++ -@ cat $(SRCDIR)hello.c + -@ echo " " + +-hello: hello.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++hello: $(SRCDIR)hello.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -46,7 +48,7 @@ + -./$@ + -@ echo " " + +-hello_glibc: hello.c Makefile ++hello_glibc: $(SRCDIR)hello.c Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +@@ -60,7 +62,7 @@ + -@ echo " " + + +-tiny: tiny.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++tiny: $(SRCDIR)tiny.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +Index: test/stat/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/test/stat/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/test/stat/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/test/stat/Makefile 9 Dec 2003 01:22:44 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TESTDIR=../ +-include $(TESTDIR)/Rules.mak ++SRCTESTDIR=../ ++include $(SRCTESTDIR)/Rules.mak + + CFLAGS64=-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 + +@@ -31,10 +33,10 @@ + -@ echo "-------" + -@ echo "stat.c source: " + -@ echo " " +- -@ cat stat.c ++ -@ cat $(SRCDIR)stat.c + -@ echo " " + +-stat: stat.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++stat: $(SRCDIR)stat.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -45,7 +47,7 @@ + -./$@ stat.c > $@.out + -@ echo " " + +-stat_glibc: stat.c Makefile ++stat_glibc: $(SRCDIR)stat.c Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +@@ -64,7 +66,7 @@ + -diff -u stat_glibc.out stat.out + -@ echo " " + +-stat64: stat.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++stat64: $(SRCDIR)stat.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -75,7 +77,7 @@ + -./$@ stat.c > $@.out + -@ echo " " + +-stat64_glibc: stat.c Makefile ++stat64_glibc: $(SRCDIR)stat.c Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +Index: test/stdlib/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/test/stdlib/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/test/stdlib/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/test/stdlib/Makefile 9 Dec 2003 01:50:19 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TESTDIR=../ +-include $(TESTDIR)/Rules.mak ++SRCTESTDIR=../ ++include $(SRCTESTDIR)/Rules.mak + + + +@@ -33,10 +35,10 @@ + -@ echo "-------" + -@ echo "teststrtol.c source: " + -@ echo " " +- -@ cat teststrtol.c ++ -@ cat $(SRCDIR)teststrtol.c + -@ echo " " + +-teststrtol: teststrtol.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++teststrtol: $(SRCDIR)teststrtol.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -49,7 +51,7 @@ + -./$@ > $@.out + -@ echo " " + +-teststrtol_glibc: teststrtol.c Makefile ++teststrtol_glibc: $(SRCDIR)teststrtol.c Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +@@ -70,7 +72,7 @@ + -diff -u teststrtol_glibc.out teststrtol.out + -@ echo " " + +-qsort: qsort.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++qsort: $(SRCDIR)qsort.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -83,7 +85,7 @@ + -./$@ > $@.out + -@ echo " " + +-qsort_glibc: qsort.c Makefile ++qsort_glibc: $(SRCDIR)qsort.c Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +@@ -104,7 +106,7 @@ + -diff -u qsort_glibc.out qsort.out + -@ echo " " + +-teston_exit: teston_exit.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++teston_exit: $(SRCDIR)teston_exit.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -117,7 +119,7 @@ + -./$@ > $@.out + -@ echo " " + +-teston_exit_glibc: teston_exit.c Makefile ++teston_exit_glibc: $(SRCDIR)teston_exit.c Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +@@ -138,7 +140,7 @@ + -diff -u teston_exit_glibc.out teston_exit.out + -@ echo " " + +-testatexit: testatexit.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++testatexit: $(SRCDIR)testatexit.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -151,7 +153,7 @@ + -./$@ > $@.out + -@ echo " " + +-testatexit_glibc: testatexit.c Makefile ++testatexit_glibc: $(SRCDIR)testatexit.c Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +@@ -172,7 +174,7 @@ + -diff -u testatexit_glibc.out testatexit.out + -@ echo " " + +-ptytest: ptytest.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++ptytest: $(SRCDIR)ptytest.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +Index: test/string/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/test/string/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/test/string/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/test/string/Makefile 9 Dec 2003 01:41:35 -0000 +@@ -16,8 +16,11 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TESTDIR=../ +-include $(TESTDIR)/Rules.mak ++SRCTESTDIR=../ ++SRCTOPDIR=../../ ++include $(SRCTESTDIR)/Rules.mak + + + TARGETS=string string_glibc +@@ -26,7 +29,7 @@ + + all: $(TARGETS) + +-string: string.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++string: $(SRCDIR)string.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -37,7 +40,7 @@ + -./$@ + -@ echo " " + +-string_glibc: string.c Makefile ++string_glibc: $(SRCDIR)string.c Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +@@ -48,7 +51,7 @@ + -./$@ + -@ echo " " + +-testcopy: testcopy.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++testcopy: $(SRCDIR)testcopy.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -59,7 +62,7 @@ + -./$@ > testcopy.out + -@ echo " " + +-testcopy_glibc: testcopy.c Makefile ++testcopy_glibc: $(SRCDIR)testcopy.c Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +@@ -79,7 +82,7 @@ + -@ echo " " + + +-strerror: ../../libc/string/strerror.c $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++strerror: $(SRCTOPDIR)libc/string/strerror.c $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -90,7 +93,7 @@ + -./$@ + -@ echo " " + +-strsignal: ../../libc/string/strsignal.c ++strsignal: $(SRCTOPDIR)libc/string/strsignal.c + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +Index: test/termios/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/test/termios/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/test/termios/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/test/termios/Makefile 9 Dec 2003 01:31:27 -0000 +@@ -16,8 +16,10 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TESTDIR=../ +-include $(TESTDIR)/Rules.mak ++SRCTESTDIR=../ ++include $(SRCTESTDIR)/Rules.mak + + + +@@ -25,7 +27,7 @@ + + all: $(TARGETS) + +-termios: termios.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++termios: $(SRCDIR)termios.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -38,7 +40,7 @@ + -./$@ + -@ echo " " + +-termios_glibc: termios.c Makefile ++termios_glibc: $(SRCDIR)termios.c Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +Index: test/unistd/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/test/unistd/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/test/unistd/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/test/unistd/Makefile 9 Dec 2003 01:43:11 -0000 +@@ -16,15 +16,17 @@ + # along with this program; if not, write to the Free Software Foundation, Inc., + # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + ++SRCDIR=./ + TESTDIR=../ +-include $(TESTDIR)/Rules.mak ++SRCTESTDIR=../ ++include $(SRCTESTDIR)/Rules.mak + + + + TARGETS=fork fork_glibc vfork vfork_glibc getcwd getopt getopt_long preadwrite + all: $(TARGETS) + +-getcwd: getcwd.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++getcwd: $(SRCDIR)getcwd.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -35,7 +37,7 @@ + ./$@ + -@ echo " " + +-fork: fork.c ../testsuite.h Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++fork: $(SRCDIR)fork.c $(SRCTESTDIR)testsuite.h Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -46,7 +48,7 @@ + ./$@ + -@ echo " " + +-fork_glibc: fork.c ../testsuite.h Makefile ++fork_glibc: $(SRCDIR)fork.c $(SRCTESTDIR)testsuite.h Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +@@ -57,7 +59,7 @@ + -./$@ + -@ echo " " + +-vfork: vfork.c ../testsuite.h Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++vfork: $(SRCDIR)vfork.c $(SRCTESTDIR)testsuite.h Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs uClibc: " +@@ -68,7 +70,7 @@ + ./$@ + -@ echo " " + +-vfork_glibc: vfork.c ../testsuite.h Makefile ++vfork_glibc: $(SRCDIR)vfork.c $(SRCTESTDIR)testsuite.h Makefile + -@ echo "-------" + -@ echo " " + -@ echo "Compiling vs GNU libc: " +@@ -79,21 +81,21 @@ + -./$@ + -@ echo " " + +-getopt: getopt.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++getopt: $(SRCDIR)getopt.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + $(CC) $(CFLAGS) -c $< -o $@.o + $(CC) $(LDFLAGS) $@.o -o $@ $(EXTRA_LIBS) + $(STRIPTOOL) -x -R .note -R .comment $@ + ./$@ -abcXXX -9 + -@ echo " " + +-getopt_long: getopt_long.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++getopt_long: $(SRCDIR)getopt_long.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + $(CC) $(CFLAGS) -c $< -o $@.o + $(CC) $(LDFLAGS) $@.o -o $@ $(EXTRA_LIBS) + $(STRIPTOOL) -x -R .note -R .comment $@ + ./$@ --add XXX --delete YYY --verbose + -@ echo " " + +-preadwrite: preadwrite.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak $(CC) ++preadwrite: $(SRCDIR)preadwrite.c Makefile $(TESTDIR)/Config $(SRCTESTDIR)/Rules.mak $(CC) + $(CC) $(CFLAGS) -c $< -o $@.o + $(CC) $(LDFLAGS) $@.o -o $@ $(EXTRA_LIBS) + $(STRIPTOOL) -x -R .note -R .comment $@ +Index: utils/Makefile +=================================================================== +RCS file: /home/cvs/tools/uClibc-0.9.23/utils/Makefile,v +retrieving revision 1.1.1.1 +diff -d -u -r1.1.1.1 Makefile +--- uClibc-0.9.23/utils/Makefile 4 Dec 2003 01:27:58 -0000 1.1.1.1 ++++ uClibc-0.9.23/utils/Makefile 10 Dec 2003 06:03:28 -0000 +@@ -18,7 +18,9 @@ + + # Pull in the user's uClibc configuration, but do not + # pull in Rules.mak..... ++SRCDIR=./ + TOPDIR=../ ++SRCTOPDIR=../ + include $(TOPDIR).config + + MAJOR_VERSION=0 +@@ -96,19 +98,21 @@ + headers: + $(LN) -fs $(TOPDIR)include/elf.h + +-readelf: readelf.c +- $(CC) $(CFLAGS) -Wl,-s $^ -o $@ $(LDADD_LIBFLOAT) ++readelf: $(SRCDIR)readelf.c ++ $(CC) $(CFLAGS) -I. -I$(SRCDIR) -I$(TOPDIR)include -Wl,-s \ ++ $^ -o $@ $(LDADD_LIBFLOAT) + $(STRIPTOOL) -x -R .note -R .comment $@ + +-ldconfig: ldconfig.c readsoname.c ++ldconfig: $(SRCDIR)ldconfig.c $(SRCDIR)readsoname.c + $(CC) $(CFLAGS) $(XXFLAGS) -Wl,-s \ + -DUCLIBC_RUNTIME_PREFIX=$(R_PREFIX) \ +- -DUCLIBC_LDSO=$(UCLIBC_LDSO) -I. -I../ldso/include \ ++ -DUCLIBC_LDSO=$(UCLIBC_LDSO) -I. -I$(SRCDIR) \ ++ -I$(TOPDIR)ldso/include -I$(SRCTOPDIR)ldso/include \ + $^ -o $@ $(LDADD_LIBFLOAT) + $(STRIPTOOL) -x -R .note -R .comment $@ + +-ldd: ldd.c +- $(CC) $(CFLAGS) $(XXFLAGS) -Wl,-s \ ++ldd: $(SRCDIR)ldd.c ++ $(CC) $(CFLAGS) $(XXFLAGS) -Wl,-s -I. -I$(SRCDIR) -I$(TOPDIR)include \ + -DUCLIBC_RUNTIME_PREFIX=$(R_PREFIX) \ + -DUCLIBC_LDSO=$(UCLIBC_LDSO) \ + $^ -o $@ $(LDADD_LIBFLOAT) diff -Naur crosstool-0.28-rc5-orig/ptx.sh crosstool-0.28-rc5/ptx.sh --- crosstool-0.28-rc5-orig/ptx.sh 2004-03-18 10:23:02.000000000 -0800 +++ crosstool-0.28-rc5/ptx.sh 2004-06-19 12:17:30.000000000 -0700 @@ -6,10 +6,16 @@ test -z "${TARGET}" && abort "Please set TARGET to the Gnu target identifier (e.g. pentium-linux)" test -z "${GCC_DIR}" && abort "Please set GCC_DIR to the bare filename of the gcc tarball or directory" -test -z "${GLIBC_DIR}" && abort "Please set GLIBC_DIR to the bare filename of the glibc tarball or directory" +test -z "${LIBC_DIR}" && abort "Please set LIBC_DIR to the bare filename of the C library tarball or directory" +test -z "${C_LIBRARY}" && abort "Please set C_LIBRARY to 'glibc' or 'uclibc'" +case ${C_LIBRARY} in + glibc) ;; + uclibc) ;; + *) abort "Unsupported C library ${C_LIBRARY}; please set C_LIBRARY to 'glibc' or 'uclibc'" +esac test -z "${PTXDIST_DIR}" && abort "Please set PTXDIST_DIR to the bare filename of the ptxdist tarball or directory" -TOOLCOMBO=$GCC_DIR-$GLIBC_DIR +TOOLCOMBO=$GCC_DIR-$LIBC_DIR TOP_DIR=${TOP_DIR-`pwd`} BUILD_DIR=$TOP_DIR/build/$TARGET/$TOOLCOMBO diff -Naur crosstool-0.28-rc5-orig/testhello.sh crosstool-0.28-rc5/testhello.sh --- crosstool-0.28-rc5-orig/testhello.sh 2004-01-16 10:54:39.000000000 -0800 +++ crosstool-0.28-rc5/testhello.sh 2004-06-19 12:17:30.000000000 -0700 @@ -1,8 +1,14 @@ #!/bin/sh set -ex +if test x"$1" = x ; then + TESTLANG=c,c++ +else + TESTLANG="$1" +fi + cd $PREFIX -mkdir tmp +test -d tmp || mkdir tmp cd tmp # Test the C compiler @@ -15,14 +21,17 @@ $PREFIX/bin/$TARGET-gcc -static hello.c -o $TARGET-hello-static $PREFIX/bin/$TARGET-gcc hello.c -o $TARGET-hello -# Test the C++ compiler. -# Link statically, to maximize chances the program will run on any random target. +if echo "$TESTLANG" | egrep "(^|,)c++(,|\$)"; then + # Test the C++ compiler. + # Link statically, to maximize chances the program will run on any + # random target. -cat > hello2.cc <<_eof_ + cat > hello2.cc <<_eof_ #include int main() { std::cout << "Hello, c++!\n"; return 0; } _eof_ -$PREFIX/bin/$TARGET-g++ -static hello2.cc -o $TARGET-hello2-static -$PREFIX/bin/$TARGET-g++ hello2.cc -o $TARGET-hello2 + $PREFIX/bin/$TARGET-g++ -static hello2.cc -o $TARGET-hello2-static + $PREFIX/bin/$TARGET-g++ hello2.cc -o $TARGET-hello2 +fi