--- ./config/i386/linux.h.2722 Thu Jun 15 13:47:44 1995 +++ ./config/i386/linux.h Mon Sep 23 18:04:00 2002 @@ -151,11 +151,15 @@ #define CPP_PREDEFINES "-D__ELF__ -Dunix -Di386 -Dlinux -Asystem(unix) -Asystem(posix) -Acpu(i386) -Amachine(i386)" #undef CPP_SPEC +#ifdef LIBC_VERSION_1 #if TARGET_CPU_DEFAULT == 2 #define CPP_SPEC "%{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{!m386:-D__i486__} %{posix:-D_POSIX_SOURCE}" #else #define CPP_SPEC "%{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{m486:-D__i486__} %{posix:-D_POSIX_SOURCE}" #endif +#else /* not LIBC_VERSION_1 */ +#define CPP_SPEC "%(cpp_cpu) %[cpp_cpu] %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" +#endif /* not LIBC_VERSION_1 */ #undef LIB_SPEC #if 1 @@ -190,6 +194,7 @@ /* If ELF is the default format, we should not use /lib/elf. */ #undef LINK_SPEC +#ifdef LIBC_VERSION_1 #ifndef LINUX_DEFAULT_ELF #define LINK_SPEC "-m elf_i386 %{shared:-shared} \ %{!shared: \ @@ -207,6 +212,22 @@ %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.1}} \ %{static:-static}}}" #endif +#else /* not LIBC_VERSION_1 */ +#define LINK_SPEC "-m elf_i386 %{shared:-shared} \ + %{!shared: \ + %{!ibcs: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \ + %{static:-static}}}" +#endif /* not LIBC_VERSION_1 */ + +#ifndef LIBC_VERSION_1 +#undef LIB_SPEC +#define LIB_SPEC \ + "%{!shared: %{mieee-fp:-lieee} %{pthread:-lpthread} \ + %{profile:-lc_p} %{!profile: -lc}}" +#endif /* not LIBC_VERSION_1 */ /* Get perform_* macros to build libgcc.a. */ #include "i386/perform.h" --- ./config/t-linux-libc1.2722 Mon Sep 23 18:12:04 2002 +++ ./config/t-linux-libc1 Mon Sep 23 18:04:00 2002 @@ -0,0 +1,3 @@ +# This file is used for GNU/Linux systems using +# version 1 of the GNU C Library (Linux libc version 5). +T_CFLAGS = -DLIBC_VERSION_1 --- ./config.guess.2722 Mon Sep 23 17:46:36 2002 +++ ./config.guess Mon Sep 23 18:04:01 2002 @@ -319,9 +319,9 @@ # The BFD linker knows what the default object file format is, so # first see if it will tell us. ld_help_string=`ld --help 2>&1` - if echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: elf_i[345]86"; then - echo "${UNAME_MACHINE}-unknown-linux" ; exit 0 - elif echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: i[345]86linux"; then +# if echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: elf_i[345]86"; then +# echo "${UNAME_MACHINE}-unknown-linux" ; exit 0 + if echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: i[345]86linux"; then echo "${UNAME_MACHINE}-unknown-linuxaout" ; exit 0 elif echo $ld_help_string | grep >/dev/null 2>&1 "supported emulations: elf32_sparc"; then echo "${UNAME_MACHINE}-unknown-linux" ; exit 0 @@ -333,17 +333,28 @@ echo alpha-unknown-linux ; exit 0 else # Either a pre-BFD a.out linker (linuxoldld) or one that does not give us - # useful --help. Gcc wants to distinguish between linuxoldld and linuxaout. + # useful --help. Gcc wants to distinguish between linuxoldld and linuxaout, + # and between different C library versions. test ! -d /usr/lib/ldscripts/. \ + && test ! -d /usr/*-*-linux*/lib/ldscripts \ && echo "${UNAME_MACHINE}-unknown-linuxoldld" && exit 0 # Determine whether the default compiler is a.out or elf cat >dummy.c < main(argc, argv) int argc; char *argv[]; { #ifdef __ELF__ - printf ("%s-unknown-linux\n", argv[1]); +# ifdef __GLIBC__ +# if __GLIBC__ >= 2 + printf ("%s-unknown-linux\n", argv[1]); +# else + printf ("%s-unknown-linuxlibc1\n", argv[1]); +# endif +# else + printf ("%s-unknown-linuxlibc1\n", argv[1]); +# endif #else printf ("%s-unknown-linuxaout\n", argv[1]); #endif --- ./INSTALL.2722 Tue Jul 2 11:19:38 1996 +++ ./INSTALL Mon Sep 23 18:04:02 2002 @@ -695,6 +695,11 @@ GNU systems. This configuration is being superseded. You must use gas/binutils version 2.5.2 or later. +`i386-*-linuxlibc1' + Use this configuration to generate ELF binaries on Linux-based GNU + systems using GNU libc version 1 (Linux libc version 5). You must + use gas/binutils version 2.5.2 or later. + `i386-*-linux' Use this configuration to generate ELF binaries on Linux-based GNU systems. You must use gas/binutils version 2.5.2 or later. --- ./configure.2722 Mon Sep 23 17:46:56 2002 +++ ./configure Mon Sep 23 18:09:14 2002 @@ -860,7 +860,7 @@ xm_file=i370/xm-mvs.h out_file=i370/mvs370.c ;; - i[345]86-ibm-aix*) # IBM PS/2 running AIX + i[3456]86-ibm-aix*) # IBM PS/2 running AIX cpu_type=i386 if [ x$gas = xyes ] then @@ -883,7 +883,7 @@ extra_parts="crtbegin.o crtend.o" tmake_file=i386/t-crtpic ;; - i[345]86-next-*) + i[3456]86-next-*) cpu_type=i386 tm_file=i386/next.h out_file=i386/next.c @@ -891,7 +891,7 @@ tmake_file=i386/t-next xmake_file=i386/x-next ;; - i[345]86-sequent-bsd*) # 80386 from Sequent + i[3456]86-sequent-bsd*) # 80386 from Sequent cpu_type=i386 use_collect2=yes if [ x$gas = xyes ] @@ -901,7 +901,7 @@ tm_file=i386/sequent.h fi ;; - i[345]86-sequent-ptx1*) + i[3456]86-sequent-ptx1*) cpu_type=i386 xm_file=i386/xm-sysv3.h xmake_file=i386/x-sysv3 @@ -912,7 +912,7 @@ install_headers_dir=install-headers-cpio broken_install=yes ;; - i[345]86-sequent-ptx2* | i[345]86-sequent-sysv*) + i[3456]86-sequent-ptx2* | i[3456]86-sequent-sysv*) cpu_type=i386 xm_file=i386/xm-sysv3.h xmake_file=i386/x-sysv3 @@ -928,18 +928,18 @@ tm_file=i386/sun.h use_collect2=yes ;; - i[345]86-*-aout*) + i[3456]86-*-aout*) cpu_type=i386 tm_file=i386/i386-aout.h tmake_file=i386/t-i386bare ;; - i[345]86-*-bsdi* | i[345]86-*-bsd386*) + i[3456]86-*-bsdi* | i[3456]86-*-bsd386*) cpu_type=i386 tm_file=i386/bsd386.h xm_file=i386/xm-bsd386.h # tmake_file=t-libc-ok ;; - i[345]86-*-bsd*) + i[3456]86-*-bsd*) cpu_type=i386 tm_file=i386/386bsd.h xm_file=i386/xm-bsd386.h @@ -947,7 +947,7 @@ # Next line turned off because both 386BSD and BSD/386 use GNU ld. # use_collect2=yes ;; - i[345]86-*-freebsd*) + i[3456]86-*-freebsd*) cpu_type=i386 tm_file=i386/freebsd.h xm_file=i386/xm-freebsd.h @@ -955,7 +955,7 @@ fixincludes=Makefile.in xmake_file=i386/x-freebsd ;; - i[345]86-*-netbsd*) + i[3456]86-*-netbsd*) cpu_type=i386 tm_file=i386/netbsd.h xm_file=i386/xm-netbsd.h @@ -964,19 +964,19 @@ tmake_file=t-libc-ok xmake_file=x-netbsd ;; - i[345]86-*-coff*) + i[3456]86-*-coff*) cpu_type=i386 tm_file=i386/i386-coff.h tmake_file=i386/t-i386bare ;; - i[345]86-*-gnu*) + i[3456]86-*-gnu*) cpu_type=i386 # GNU supports this CPU; rest done below. ;; - i[345]86-*-isc*) # 80386 running ISC system + i[3456]86-*-isc*) # 80386 running ISC system cpu_type=i386 xm_file=i386/xm-isc.h case $machine in - i[345]86-*-isc[34]*) + i[3456]86-*-isc[34]*) xmake_file=i386/x-isc3 ;; *) @@ -997,41 +997,53 @@ install_headers_dir=install-headers-cpio broken_install=yes ;; - i[345]86-*-linux*oldld*) # Intel 80386's running Linux + i[3456]86-*-linux*oldld*) # Intel 80386's running GNU/Linux cpu_type=i386 # with a.out format using pre BFD linkers xm_file=i386/xm-linux.h xmake_file=x-linux-aout tm_file=i386/linux-oldld.h - fixincludes=Makefile.in #On Linux, the headers are ok already. + fixincludes=Makefile.in # The headers are ok already. broken_install=yes gnu_ld=yes ;; - i[345]86-*-linux*aout*) # Intel 80386's running Linux + i[3456]86-*-linux*aout*) # Intel 80386's running GNU/Linux cpu_type=i386 # with a.out format xm_file=i386/xm-linux.h xmake_file=x-linux-aout tm_file=i386/linux-aout.h - fixincludes=Makefile.in #On Linux, the headers are ok already. + fixincludes=Makefile.in # The headers are ok already. broken_install=yes gnu_ld=yes ;; - i[345]86-*-linux*) # Intel 80386's running Linux - cpu_type=i386 # with ELF format + i[3456]86-*-linuxlibc1*) # Intel 80386's running GNU/Linux + cpu_type=i386 # with ELF format, using GNU libc v1. xm_file=i386/xm-linux.h xmake_file=x-linux + tmake_file=t-linux-libc1 tm_file=i386/linux.h - fixincludes=Makefile.in #On Linux, the headers are ok already. + fixincludes=Makefile.in # The headers are ok already. broken_install=yes gnu_ld=yes - # Don't use it. Linux uses a slightly different one. - # The real one comes with the Linux C library. + # GNU libc v1 supplies these. #extra_parts="crtbegin.o crtend.o" ;; - i[345]86-go32-msdos | i[345]86-*-go32) + i[3456]86-*-linux*) # Intel 80386's running GNU/Linux + cpu_type=i386 # with ELF format + xm_file=i386/xm-linux.h + xmake_file=x-linux + tm_file=i386/linux.h + fixincludes=Makefile.in # The headers are ok already. + broken_install=yes + gnu_ld=yes + # GNU libc version 2 does not supply these; + # we want them from GCC. + extra_parts="crtbegin.o crtend.o" + ;; + i[3456]86-go32-msdos | i[3456]86-*-go32) cpu_type=i386 tm_file=i386/go32.h ;; - i[345]86-*-lynxos*) + i[3456]86-*-lynxos*) cpu_type=i386 if [ x$gas = xyes ] then @@ -1043,13 +1055,13 @@ tmake_file=i386/t-i386bare xmake_file=x-lynx ;; - i[345]86-*-mach*) + i[3456]86-*-mach*) cpu_type=i386 tm_file=i386/mach.h # tmake_file=t-libc-ok use_collect2=yes ;; - i[345]86-*-osfrose*) # 386 using OSF/rose + i[3456]86-*-osfrose*) # 386 using OSF/rose cpu_type=i386 if [ x$elf = xyes ] then @@ -1063,7 +1075,7 @@ xmake_file=i386/x-osfrose extra_objs=halfpic.o ;; - i[345]86-*-sco3.2v4*) # 80386 running SCO 3.2v4 system + i[3456]86-*-sco3.2v4*) # 80386 running SCO 3.2v4 system cpu_type=i386 xm_file=i386/xm-sco.h xmake_file=i386/x-sco4 @@ -1081,7 +1093,7 @@ extra_parts="crtbegin.o crtend.o" fi ;; - i[345]86-*-sco*) # 80386 running SCO system + i[3456]86-*-sco*) # 80386 running SCO system cpu_type=i386 xm_file=i386/xm-sco.h xmake_file=i386/x-sco @@ -1099,7 +1111,7 @@ fi truncate_target=yes ;; - i[345]86-*-solaris2* | i[345]86-*-sunos5*) + i[3456]86-*-solaris2* | i[3456]86-*-sunos5*) cpu_type=i386 xm_file=i386/xm-sysv4.h tm_file=i386/sol2.h @@ -1109,7 +1121,7 @@ fixincludes=fixinc.svr4 broken_install=yes ;; - i[345]86-*-sysv4*) # Intel 80386's running system V.4 + i[3456]86-*-sysv4*) # Intel 80386's running system V.4 cpu_type=i386 xm_file=i386/xm-sysv4.h if [ x$stabs = xyes ] @@ -1122,7 +1134,7 @@ xmake_file=x-svr4 extra_parts="crtbegin.o crtend.o" ;; - i[345]86-*-sysv*) # Intel 80386's running system V + i[3456]86-*-sysv*) # Intel 80386's running system V cpu_type=i386 xm_file=i386/xm-sysv3.h xmake_file=i386/x-sysv3 @@ -1150,7 +1162,7 @@ tmake_file=i386/t-vsta xmake_file=i386/x-vsta ;; - i[345]86-*-winnt3*) + i[3456]86-*-winnt3*) cpu_type=i386 tm_file=i386/win-nt.h out_file=i386/i386.c @@ -1539,26 +1551,24 @@ extra_parts="crtbegin.o crtend.o" extra_headers=math-68881.h ;; - m68k-*-linux*aout*) # Motorola m68k's running Linux + m68k-*-linux*aout*) # Motorola m68k's running GNU/Linux xm_file=m68k/xm-linux.h # with a.out format xmake_file=x-linux tm_file=m68k/linux-aout.h tmake_file=m68k/t-linux - fixincludes=Makefile.in #On Linux, the headers are ok already. + fixincludes=Makefile.in # The headers are ok already. extra_headers=math-68881.h gnu_ld=yes ;; - m68k-*-linux*) # Motorola m68k's running Linux + m68k-*-linux*) # Motorola m68k's running GNU/Linux xm_file=m68k/xm-linux.h # with ELF format xmake_file=x-linux tm_file=m68k/linux.h tmake_file=m68k/t-linux - fixincludes=Makefile.in #On Linux, the headers are ok already. + fixincludes=Makefile.in # The headers are ok already. extra_headers=math-68881.h gnu_ld=yes - # Don't use it. Linux uses a slightly different one. - # The real one comes with the Linux C library. - #extra_parts="crtbegin.o crtend.o" + extra_parts="crtbegin.o crtend.o" ;; m88k-dg-dgux*) case $machine in @@ -2572,7 +2582,7 @@ case $lang in ..) ;; # The odd quoting in the next line works around - # an apparent bug in bash 1.12 on linux. + # an apparent bug in bash 1.12 on GNU/Linux. ${srcdir}/[*]/config-lang.in) ;; *) subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`" ;; esac @@ -2580,7 +2590,7 @@ # Are we using gcc as the native compiler? case $canon_host in -*linux*) # All Linux's use gcc as the native compiler. +*linux*) # All GNU/Linux systems use gcc as the native compiler. prefix=$native_prefix ;; esac --- ./version.c.2722 Wed Jul 24 18:55:50 1996 +++ ./version.c Mon Sep 23 18:04:03 2002 @@ -1 +1 @@ -char *version_string = "2.7.2.1"; +char *version_string = "2.7.2.2"; --- ./install.texi.2722 Sat Jun 29 16:27:34 1996 +++ ./install.texi Mon Sep 23 18:04:04 2002 @@ -814,6 +814,11 @@ systems. This configuration is being superseded. You must use gas/binutils version 2.5.2 or later. +@item i386-*-linuxlibc1 +Use this configuration to generate ELF binaries on Linux-based GNU +systems using GNU libc version 1 (Linux libc version 5). You must use +gas/binutils version 2.5.2 or later. + @item i386-*-linux Use this configuration to generate ELF binaries on Linux-based GNU systems. You must use gas/binutils version 2.5.2 or later. --- ./README.2722 Sun Nov 26 19:55:48 1995 +++ ./README Mon Sep 23 18:04:04 2002 @@ -1,6 +1,9 @@ -This directory contains the version 2.7.2 release of the GNU C +This directory contains the version 2.7.2.2 release of the GNU C compiler. It includes all of the support for compiling C++ and Objective C, including a run-time library for Objective C. + +The reason for the 2.7.2.2 release is to add support for GNU C library +version 2 on GNU/Linux systems. The GNU C compiler is free software. See the file COPYING for copying permission.