diff -ur binutils-2.15.94.0.1.orig/bfd/config.bfd binutils-2.15.94.0.1/bfd/config.bfd --- binutils-2.15.94.0.1.orig/bfd/config.bfd 2004-11-22 21:29:57.791886144 -0500 +++ binutils-2.15.94.0.1/bfd/config.bfd 2004-11-22 21:30:53.195463520 -0500 @@ -140,7 +140,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 ;; @@ -150,7 +150,7 @@ alpha*-*-*) targ_defvec=ecoffalpha_little_vec ;; - ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu) + ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-gnu* | ia64*-*-linux-uclibc* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu) targ_defvec=bfd_elf64_ia64_little_vec targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec" ;; @@ -227,7 +227,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 ;; @@ -235,8 +235,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-*-kfreebsd*-gnu | arm-*-vxworks | \ + arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-linux-uclibc* | \ + arm*-*-conix* | arm*-*-uclinux* | arm-*-kfreebsd*-gnu | arm-*-vxworks | \ arm*-*-eabi* ) targ_defvec=bfd_elf32_littlearm_vec targ_selvecs=bfd_elf32_bigarm_vec @@ -381,7 +381,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 ;; @@ -392,7 +392,7 @@ ;; #endif - hppa*-*-linux-gnu*) + hppa*-*-linux-gnu* | hppa*-*-linux-uclibc*) targ_defvec=bfd_elf32_hppa_linux_vec targ_selvecs=bfd_elf32_hppa_vec ;; @@ -525,7 +525,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 @@ -539,7 +539,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" ;; @@ -715,7 +715,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 ;; @@ -1001,7 +1001,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" @@ -1038,8 +1039,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" @@ -1206,7 +1207,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" ;; @@ -1253,7 +1254,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" ;; @@ -1322,7 +1323,7 @@ targ_underscore=yes ;; - vax-*-linux-gnu*) + vax-*-linux-gnu* | vax-*-linux-uclibc*) targ_defvec=bfd_elf32_vax_vec ;; diff -ur binutils-2.15.94.0.1.orig/bfd/configure binutils-2.15.94.0.1/bfd/configure --- binutils-2.15.94.0.1.orig/bfd/configure 2004-11-22 21:29:57.794885688 -0500 +++ binutils-2.15.94.0.1/bfd/configure 2004-11-22 21:31:10.011907032 -0500 @@ -3583,6 +3583,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* | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' @@ -9914,7 +9919,7 @@ alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu) COREFILE='' ;; - alpha*-*-linux-gnu*) + alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*) COREFILE=trad-core.lo TRAD_HEADER='"hosts/alphalinux.h"' ;; @@ -9978,7 +9983,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"' ;; @@ -10016,7 +10021,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"' ;; @@ -10150,7 +10155,7 @@ COREFILE=trad-core.lo TRAD_HEADER='"hosts/vaxult2.h"' ;; - vax-*-linux-gnu*) + vax-*-linux-gnu* | vax-*-linux-uclibc*) COREFILE=trad-core.lo TRAD_HEADER='"hosts/vaxlinux.h"' ;; diff -ur binutils-2.15.94.0.1.orig/bfd/configure.in binutils-2.15.94.0.1/bfd/configure.in --- binutils-2.15.94.0.1.orig/bfd/configure.in 2004-11-22 21:29:57.794885688 -0500 +++ binutils-2.15.94.0.1/bfd/configure.in 2004-11-22 21:31:23.225898200 -0500 @@ -163,7 +163,7 @@ alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu) COREFILE='' ;; - alpha*-*-linux-gnu*) + alpha*-*-linux-gnu* | alpha*-*-linux-uclibc*) COREFILE=trad-core.lo TRAD_HEADER='"hosts/alphalinux.h"' ;; @@ -248,7 +248,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"' @@ -289,7 +289,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"' ;; @@ -375,7 +375,7 @@ COREFILE=trad-core.lo TRAD_HEADER='"hosts/vaxult2.h"' ;; - vax-*-linux-gnu*) + vax-*-linux-gnu* | vax-*-linux-uclibc*) COREFILE=trad-core.lo TRAD_HEADER='"hosts/vaxlinux.h"' ;; diff -ur binutils-2.15.94.0.1.orig/binutils/configure binutils-2.15.94.0.1/binutils/configure --- binutils-2.15.94.0.1.orig/binutils/configure 2004-11-22 21:29:57.923866080 -0500 +++ binutils-2.15.94.0.1/binutils/configure 2004-11-22 21:31:47.597193200 -0500 @@ -1575,6 +1575,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* | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' diff -ur binutils-2.15.94.0.1.orig/configure binutils-2.15.94.0.1/configure --- binutils-2.15.94.0.1.orig/configure 2004-11-22 21:29:57.902869272 -0500 +++ binutils-2.15.94.0.1/configure 2004-11-22 21:31:47.601192592 -0500 @@ -1341,6 +1341,18 @@ i[3456789]86-*-coff | i[3456789]86-*-elf) noconfigdirs="$noconfigdirs ${libgcj}" ;; + 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 -ur binutils-2.15.94.0.1.orig/configure.in binutils-2.15.94.0.1/configure.in --- binutils-2.15.94.0.1.orig/configure.in 2004-11-22 21:29:57.902869272 -0500 +++ binutils-2.15.94.0.1/configure.in 2004-11-22 21:31:47.606191832 -0500 @@ -563,6 +563,18 @@ i[[3456789]]86-*-coff | i[[3456789]]86-*-elf) noconfigdirs="$noconfigdirs ${libgcj}" ;; + 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 -ur binutils-2.15.94.0.1.orig/gas/configure binutils-2.15.94.0.1/gas/configure --- binutils-2.15.94.0.1.orig/gas/configure 2004-11-22 21:29:58.078842520 -0500 +++ binutils-2.15.94.0.1/gas/configure 2004-11-22 21:34:12.759125232 -0500 @@ -3420,6 +3420,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* | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' @@ -4256,6 +4261,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 ;; @@ -4271,6 +4277,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 ;; @@ -4284,6 +4291,7 @@ cris-*-linux-gnu* | crisv32-*-linux-gnu*) fmt=multi bfd_gas=yes em=linux ;; + cris-*-linux-uclibc*) fmt=multi bfd_gas=yes em=linux ;; cris-*-* | crisv32-*-*) fmt=multi bfd_gas=yes ;; crx-*-elf*) fmt=elf ;; @@ -4343,7 +4351,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=elf em=lynx bfd_gas=yes ;; i386-*-sysv[45]*) fmt=elf ;; i386-*-solaris*) fmt=elf ;; @@ -4403,6 +4413,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 ;; @@ -4430,6 +4441,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-*-uclinux*) fmt=elf ;; m68k-*-gnu*) fmt=elf ;; m68k-*-lynxos*) fmt=coff em=lynx ;; @@ -4504,6 +4516,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 em=linux case "$endian" in big) ;; @@ -4531,7 +4544,9 @@ ppc-*-lynxos*) fmt=elf em=lynx bfd_gas=yes ;; 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 @@ -4566,6 +4581,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 -ur binutils-2.15.94.0.1.orig/gas/configure.in binutils-2.15.94.0.1/gas/configure.in --- binutils-2.15.94.0.1.orig/gas/configure.in 2004-11-22 21:29:58.079842368 -0500 +++ binutils-2.15.94.0.1/gas/configure.in 2004-11-22 21:34:12.763124624 -0500 @@ -202,6 +202,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 ;; @@ -217,6 +218,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 ;; @@ -230,6 +232,7 @@ cris-*-linux-gnu* | crisv32-*-linux-gnu*) fmt=multi bfd_gas=yes em=linux ;; + cris-*-linux-uclibc*) fmt=multi bfd_gas=yes em=linux ;; cris-*-* | crisv32-*-*) fmt=multi bfd_gas=yes ;; crx-*-elf*) fmt=elf ;; @@ -289,7 +292,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=elf em=lynx bfd_gas=yes ;; changequote(,)dnl i386-*-sysv[45]*) fmt=elf ;; @@ -342,6 +347,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 ;; @@ -369,6 +375,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-*-uclinux*) fmt=elf ;; m68k-*-gnu*) fmt=elf ;; m68k-*-lynxos*) fmt=coff em=lynx ;; @@ -440,6 +447,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 em=linux case "$endian" in big) ;; @@ -460,7 +468,9 @@ ppc-*-lynxos*) fmt=elf em=lynx bfd_gas=yes ;; 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 @@ -491,6 +501,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 -ur binutils-2.15.94.0.1.orig/gprof/configure binutils-2.15.94.0.1/gprof/configure --- binutils-2.15.94.0.1.orig/gprof/configure 2004-11-22 21:29:58.628758920 -0500 +++ binutils-2.15.94.0.1/gprof/configure 2004-11-22 21:34:12.777122496 -0500 @@ -3418,6 +3418,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* | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' diff -ur binutils-2.15.94.0.1.orig/ld/configure binutils-2.15.94.0.1/ld/configure --- binutils-2.15.94.0.1.orig/ld/configure 2004-11-22 21:29:58.752740072 -0500 +++ binutils-2.15.94.0.1/ld/configure 2004-11-22 21:34:12.784121432 -0500 @@ -1579,6 +1579,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* | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' diff -ur binutils-2.15.94.0.1.orig/ld/configure.tgt binutils-2.15.94.0.1/ld/configure.tgt --- binutils-2.15.94.0.1.orig/ld/configure.tgt 2004-11-22 21:29:58.753739920 -0500 +++ binutils-2.15.94.0.1/ld/configure.tgt 2004-11-22 21:38:50.336926992 -0500 @@ -32,6 +32,7 @@ targ_extra_libpath=$targ_extra_emuls ;; cris-*-linux-gnu* | cris-*-linux-gnu*) targ_emul=crislinux ;; +cris-*-linux-uclibc*) targ_emul=crislinux ;; cris-*-* | crisv32-*-*) targ_emul=criself targ_extra_emuls="crisaout crislinux" targ_extra_libpath=$targ_extra_emuls ;; @@ -62,14 +63,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 @@ -121,7 +124,9 @@ m32r*le-*-elf*) targ_emul=m32rlelf ;; m32r*-*-elf*) targ_emul=m32relf ;; m32r*le-*-linux-gnu*) targ_emul=m32rlelf_linux ;; +m32r*le-*-linux-uclibc*) targ_emul=m32rlelf_linux ;; m32r*-*-linux-gnu*) targ_emul=m32relf_linux ;; +m32r*-*-linux-uclibc*) targ_emul=m32relf_linux ;; m68hc11-*-*|m6811-*-*) targ_emul=m68hc11elf targ_extra_emuls="m68hc11elfb m68hc12elf m68hc12elfb" ;; m68hc12-*-*|m6812-*-*) targ_emul=m68hc12elf @@ -132,7 +137,7 @@ m68*-apple-aux*) targ_emul=m68kaux ;; maxq-*-coff) targ_emul=maxqcoff;; *-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 ;; @@ -156,14 +161,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/'` @@ -263,11 +270,14 @@ arm-*-kaos*) targ_emul=armelf ;; arm9e-*-elf) targ_emul=armelf ;; 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-gnueabi) targ_emul=armelf_linux_eabi ;; 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 ;; @@ -371,7 +381,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/'` ;; @@ -388,9 +399,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 ;; @@ -403,6 +414,7 @@ targ_emul=vaxnbsd targ_extra_emuls=elf32vax ;; vax-*-linux-gnu*) targ_emul=elf32vax ;; +vax-*-linux-uclibc*) targ_emul=elf32vax ;; mips*-*-pe) targ_emul=mipspe ; targ_extra_ofiles="deffilep.o pe-dll.o" ;; mips*-dec-ultrix*) targ_emul=mipslit ;; @@ -436,16 +448,16 @@ mips*-*-vxworks*) targ_emul=elf32ebmip targ_extra_emuls="elf32elmip" ;; mips*-*-windiss) targ_emul=elf32mipswindiss ;; -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 ;; @@ -468,6 +480,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 -ur binutils-2.15.94.0.1.orig/ld/emultempl/elf32.em binutils-2.15.94.0.1/ld/emultempl/elf32.em --- binutils-2.15.94.0.1.orig/ld/emultempl/elf32.em 2004-11-22 21:29:58.763738400 -0500 +++ binutils-2.15.94.0.1/ld/emultempl/elf32.em 2004-11-22 21:38:50.338926688 -0500 @@ -65,7 +65,7 @@ if [ "x${USE_LIBPATH}" = xyes ] ; then case ${target} in - *-*-linux-gnu*) + *-*-linux-gnu* | *-*-linux-uclibc*) cat >>e${EMULATION_NAME}.c <<EOF #include <glob.h> EOF @@ -337,7 +337,7 @@ EOF case ${target} in - *-*-linux-gnu*) + *-*-linux-gnu* | *-*-linux-uclibc*) cat >>e${EMULATION_NAME}.c <<EOF { struct bfd_link_needed_list *l; @@ -510,7 +510,7 @@ EOF case ${target} in - *-*-linux-gnu*) + *-*-linux-gnu* | *-*-linux-uclibc*) cat >>e${EMULATION_NAME}.c <<EOF /* For a native linker, check the file /etc/ld.so.conf for directories in which we may find shared libraries. /etc/ld.so.conf is really @@ -894,7 +894,7 @@ EOF if [ "x${USE_LIBPATH}" = xyes ] ; then case ${target} in - *-*-linux-gnu*) + *-*-linux-gnu* | *-*-linux-uclibc*) cat >>e${EMULATION_NAME}.c <<EOF if (gld${EMULATION_NAME}_check_ld_so_conf (l->name, force)) break; diff -ur binutils-2.15.94.0.1.orig/libtool.m4 binutils-2.15.94.0.1/libtool.m4 --- binutils-2.15.94.0.1.orig/libtool.m4 2004-11-22 21:29:57.000000000 -0500 +++ binutils-2.15.94.0.1/libtool.m4 2004-11-22 21:38:50.339926536 -0500 @@ -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* | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'] diff -ur binutils-2.15.94.0.1.orig/ltconfig binutils-2.15.94.0.1/ltconfig --- binutils-2.15.94.0.1.orig/ltconfig 2004-11-22 21:29:57.000000000 -0500 +++ binutils-2.15.94.0.1/ltconfig 2004-11-22 21:38:50.341926232 -0500 @@ -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 @@ -1270,6 +1271,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 -ur binutils-2.15.94.0.1.orig/opcodes/configure binutils-2.15.94.0.1/opcodes/configure --- binutils-2.15.94.0.1.orig/opcodes/configure 2004-11-22 21:29:59.114685048 -0500 +++ binutils-2.15.94.0.1/opcodes/configure 2004-11-22 21:38:50.354924256 -0500 @@ -3587,6 +3587,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* | knetbsd*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'