diff options
author | obrien <obrien@FreeBSD.org> | 1999-07-10 23:03:59 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 1999-07-10 23:03:59 +0000 |
commit | d4db5fb866b7ad5216abd5047774a3973b9901a9 (patch) | |
tree | edca008aa0e9cdfae2ef7478f9109ca7f3a2a028 /contrib/gcc | |
parent | b822db150531f5b7067d4d970080b7358e07ae89 (diff) | |
download | FreeBSD-src-d4db5fb866b7ad5216abd5047774a3973b9901a9.zip FreeBSD-src-d4db5fb866b7ad5216abd5047774a3973b9901a9.tar.gz |
Virgin import of GCC 2.7.2.3
Diffstat (limited to 'contrib/gcc')
-rw-r--r-- | contrib/gcc/ChangeLog | 91 | ||||
-rw-r--r-- | contrib/gcc/Makefile.in | 6 | ||||
-rw-r--r-- | contrib/gcc/README | 5 | ||||
-rwxr-xr-x | contrib/gcc/config.guess | 24 | ||||
-rwxr-xr-x | contrib/gcc/config.sub | 32 | ||||
-rw-r--r-- | contrib/gcc/config/alpha/alpha.c | 3 | ||||
-rw-r--r-- | contrib/gcc/config/i386/linux.h | 23 | ||||
-rwxr-xr-x | contrib/gcc/configure | 113 | ||||
-rw-r--r-- | contrib/gcc/cp/ChangeLog | 14 | ||||
-rw-r--r-- | contrib/gcc/cp/errfn.c | 4 | ||||
-rw-r--r-- | contrib/gcc/cp/lex.c | 7 | ||||
-rw-r--r-- | contrib/gcc/cse.c | 14 | ||||
-rw-r--r-- | contrib/gcc/function.c | 17 | ||||
-rw-r--r-- | contrib/gcc/gcc.c | 10 | ||||
-rw-r--r-- | contrib/gcc/install.texi | 21 | ||||
-rw-r--r-- | contrib/gcc/unroll.c | 11 | ||||
-rw-r--r-- | contrib/gcc/varasm.c | 2 | ||||
-rw-r--r-- | contrib/gcc/version.c | 2 |
18 files changed, 312 insertions, 87 deletions
diff --git a/contrib/gcc/ChangeLog b/contrib/gcc/ChangeLog index 3f955fb..ffdc477 100644 --- a/contrib/gcc/ChangeLog +++ b/contrib/gcc/ChangeLog @@ -1,3 +1,94 @@ +Thu Aug 22 23:47:38 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * Version 2.7.2.3 released. + +Wed Aug 13 08:28:18 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * INSTALL, install.texi: Update for m68k-*-linuxaout, + m68k-*-linux-gnulibc1 and m68k-*-linux. + +1997-08-12 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * config/m68k/t-linux: Define INSTALL_ASSERT_H and + TARGET_LIBGCC2_CFLAGS. + * config/m68k/t-linux-gnulibc1: New file. + + * configure: Don't use GNU setup for *-*-linux-gnu*. + (m68k-*-linux*gnulibc1): New target. + (m68k-*-linux*): Set $extra_parts correctly. + + * config/m68k/linux.h (STRICT_ALIGNMENT): Define to zero. + (CPP_SPEC, LIB_SPEC, LINK_SPEC): Add support for glibc 2. + (LIBGCC_SPEC): Always link in -lgcc independent of -shared. + (LIBCALL_VALUE): Use correct register for XFmode. + (LEGITIMATE_PIC_OPERAND_P): Reject CONST_DOUBLE with MEM with + invalid pic address. + (FINALIZE_TRAMPOLINE, CLEAR_INSN_CACHE): New. + +Mon Mar 17 17:03:55 1997 J.T. Conklin <jtc@cygnus.com> + + * m68k.md (beq0_di, bne0_di, bge0_di, blt0_di): Use cmpw #0 + instead of tstl when testing address registers on the 68000. + +Fri Aug 8 08:15:55 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * Makefile.in (INSTALL): Fix the rule. + (stamp-crtS): Depend on stamp-crt for parallel make. + + * install1.texi: New. + +Mon Jul 21 22:47:13 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * configure (gxx_include_dir): Set it to $prefix/include/g++ + for Linux. + +Tue Jun 24 11:24:56 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * INSTALL, install.texi: Refer Linux running libc 5.x.x as + i386-*-linux-gnulibc1. + + * config/i386/linux.h, config.guess, config.sub, configure: + Correct support for glibc 2. + + * config/t-linux: New, makefile fragment for Linux target with + glibc 2. + + * config/t-linux-gnulibc1: New, makefile fragment for Linux + target with libc 5.x.x. + + * config/t-linux-libc1: Removed. + + * config.sub: Add support for i686. + + * gcc.c (main): check and read ${libdir}/gcc-lib/specs to + override the default specs. + +Mon Jun 23 22:48:00 1997 Jim Wilson <wilson@cygnus.com> + + * unroll.c (find_splittable_givs): Set splittable_regs_updates + to biv_count for reduced givs. + +Tue Apr 16 16:59:49 1996 Richard Henderson <rth@tamu.edu> + + * function.c (expand_function_end): Allow TRAMPOLINE_TEMPLATE + to be omitted on systems for which it is not cost effective. + * varasm.c (assemble_trampoline_template): No such function + if no TRAMPOLINE_TEMPLATE. + * m68k.h: Greatly simplify the run-time trampoline code: + (TRAMPOLINE_TEMPLATE, TRANSFER_FROM_TRAMPOLINE): Delete define. + (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Changed. + (TRAMPOLINE_ALIGN): No point aligning to cache line. + (FINISH_INIT_TRAMPOLINE): New define. + * m68k/next.h: Instead of redefining INITIALIZE_TRAMPOLINE, + make use of the new FINISH_INIT_TRAMPOLINE. + * m68k/{m68k.h,next.h} (FINISH_INIT_TRAMPOLINE): + Rename to FINALIZE_TRAMPOLINE. + +Mon Apr 15 08:49:20 1996 Tom May (ftom@netcom.com) + + * cse.c (invalidate_skipped_set): Ignore CLOBBER after calling + note_mem_written, not before. + Sat Jun 29 12:33:39 1996 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * Version 2.7.2.1 released. diff --git a/contrib/gcc/Makefile.in b/contrib/gcc/Makefile.in index 0eaa67b..7ab05ff 100644 --- a/contrib/gcc/Makefile.in +++ b/contrib/gcc/Makefile.in @@ -1031,7 +1031,7 @@ stamp-crt: crtstuff.c $(GCC_PASSES) $(CONFIG_H) gbl-ctors.h # compiled using PIC for use in shared libraries. crtbeginS.o crtendS.o: stamp-crtS ; @true -stamp-crtS: crtstuff.c $(GCC_PASSES) $(CONFIG_H) gbl-ctors.h +stamp-crtS: stamp-crt crtstuff.c $(GCC_PASSES) $(CONFIG_H) gbl-ctors.h $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(CRTSTUFF_T_CFLAGS) \ -DCRT_BEGIN -finhibit-size-directive -fno-inline-functions \ -g0 -c $(srcdir)/crtstuff.c -fPIC @@ -1886,8 +1886,8 @@ $(srcdir)/cpp.dvi: cpp.texi $(TEXI2DVI) $< $(srcdir)/INSTALL: install1.texi install.texi - $(MAKEINFO) -D INSTALLONLY --no-header --no-split \ - `echo $(srcdir)/install1.texi | sed 's,^\./,,'` + cd $(srcdir); $(MAKEINFO) -D INSTALLONLY --no-header \ + --no-split install1.texi -o INSTALL # Deletion of files made during compilation. # There are four levels of this: diff --git a/contrib/gcc/README b/contrib/gcc/README index 43ed75d..0923669 100644 --- a/contrib/gcc/README +++ b/contrib/gcc/README @@ -1,7 +1,10 @@ -This directory contains the version 2.7.2 release of the GNU C +This directory contains the version 2.7.2.3 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.3 release is to correct the 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. diff --git a/contrib/gcc/config.guess b/contrib/gcc/config.guess index 2ff0eba..5508638 100755 --- a/contrib/gcc/config.guess +++ b/contrib/gcc/config.guess @@ -319,9 +319,9 @@ EOF # 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: i[345]86coff"; then echo "${UNAME_MACHINE}-unknown-linuxcoff" ; exit 0 @@ -329,17 +329,27 @@ EOF 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. - test ! -d /usr/lib/ldscripts/. \ - && echo "${UNAME_MACHINE}-unknown-linuxoldld" && exit 0 + # useful --help. Gcc wants to distinguish between linuxoldld and linuxaout, + # and between different C library versions. + echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:" + test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 # Determine whether the default compiler is a.out or elf cat >dummy.c <<EOF +#include <features.h> 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-linux-gnulibc1\n", argv[1]); +# endif +# else + printf ("%s-unknown-linux-gnulibc1\n", argv[1]); +# endif #else printf ("%s-unknown-linuxaout\n", argv[1]); #endif diff --git a/contrib/gcc/config.sub b/contrib/gcc/config.sub index e67a800..9bb45e9 100755 --- a/contrib/gcc/config.sub +++ b/contrib/gcc/config.sub @@ -62,11 +62,21 @@ case $1 in ;; esac -# Separate what the user gave into CPU-COMPANY and OS (if any). -basic_machine=`echo $1 | sed 's/-[^-]*$//'` -if [ $basic_machine != $1 ] -then os=`echo $1 | sed 's/.*-/-/'` -else os=; fi +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + linux-gnu*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also @@ -129,7 +139,7 @@ esac case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. - tahoe | i[345]86 | i860 | m68k | m68000 | m88k | ns32k | arm \ + tahoe | i[3456]86 | i860 | m68k | m68000 | m88k | ns32k | arm \ | arme[lb] | pyramid \ | tron | a29k | 580 | i960 | h8300 | hppa1.0 | hppa1.1 \ | alpha | we32k | ns16k | clipper | sparclite | i370 | sh \ @@ -144,7 +154,7 @@ case $basic_machine in exit 1 ;; # Recognize the basic CPU types with company name. - vax-* | tahoe-* | i[345]86-* | i860-* | m68k-* | m68000-* | m88k-* \ + vax-* | tahoe-* | i[3456]86-* | i860-* | m68k-* | m68000-* | m88k-* \ | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \ | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \ | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \ @@ -308,19 +318,19 @@ case $basic_machine in os=-mvs ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? - i[345]86v32) + i[3456]86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'` os=-sysv32 ;; - i[345]86v4*) + i[3456]86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'` os=-sysv4 ;; - i[345]86v) + i[3456]86v) basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'` os=-sysv ;; - i[345]86sol2) + i[3456]86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-unknown/'` os=-solaris2 ;; diff --git a/contrib/gcc/config/alpha/alpha.c b/contrib/gcc/config/alpha/alpha.c index f7428c3..b77dc14 100644 --- a/contrib/gcc/config/alpha/alpha.c +++ b/contrib/gcc/config/alpha/alpha.c @@ -1238,8 +1238,7 @@ direct_return () /* Write a version stamp. Don't write anything if we are running as a cross-compiler. Otherwise, use the versions in /usr/include/stamp.h. */ -#if !defined(CROSS_COMPILE) && !defined(_WIN32) && \ - !defined(__NetBSD__) && !defined(__FreeBSD__) +#if !defined(CROSS_COMPILE) && !defined(_WIN32) #include <stamp.h> #endif diff --git a/contrib/gcc/config/i386/linux.h b/contrib/gcc/config/i386/linux.h index f077de5..a0b49ba 100644 --- a/contrib/gcc/config/i386/linux.h +++ b/contrib/gcc/config/i386/linux.h @@ -151,13 +151,21 @@ Boston, MA 02111-1307, USA. */ #define CPP_PREDEFINES "-D__ELF__ -Dunix -Di386 -Dlinux -Asystem(unix) -Asystem(posix) -Acpu(i386) -Amachine(i386)" #undef CPP_SPEC +#ifdef USE_GNULIBC_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 USE_GNULIBC_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 USE_GNULIBC_1 */ + +#undef LIBGCC_SPEC +#define LIBGCC_SPEC "-lgcc" #undef LIB_SPEC +#ifdef USE_GNULIBC_1 #if 1 /* We no longer link with libc_p.a or libg.a by default. If you * want to profile or debug the Linux C library, please add @@ -172,6 +180,11 @@ Boston, MA 02111-1307, USA. */ %{mieee-fp:-lieee} %{p:-lgmon -lc_p} %{pg:-lgmon -lc_p} \ %{!p:%{!pg:%{!g*:-lc} %{g*:-lg}}}}" #endif +#else +#define LIB_SPEC \ + "%{!shared: %{mieee-fp:-lieee} %{pthread:-lpthread} \ + %{profile:-lc_p} %{!profile: -lc}}" +#endif /* not USE_GNULIBC_1 */ /* Provide a LINK_SPEC appropriate for Linux. Here we provide support for the special GCC options -static and -shared, which allow us to @@ -190,6 +203,7 @@ Boston, MA 02111-1307, USA. */ /* If ELF is the default format, we should not use /lib/elf. */ #undef LINK_SPEC +#ifdef USE_GNULIBC_1 #ifndef LINUX_DEFAULT_ELF #define LINK_SPEC "-m elf_i386 %{shared:-shared} \ %{!shared: \ @@ -207,6 +221,15 @@ Boston, MA 02111-1307, USA. */ %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.1}} \ %{static:-static}}}" #endif +#else /* not USE_GNULIBC_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 USE_GNULIBC_1 */ /* Get perform_* macros to build libgcc.a. */ #include "i386/perform.h" diff --git a/contrib/gcc/configure b/contrib/gcc/configure index 1be333c..9c2b12e 100755 --- a/contrib/gcc/configure +++ b/contrib/gcc/configure @@ -844,7 +844,7 @@ for machine in $canon_build $canon_host $canon_target; do 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 @@ -867,7 +867,7 @@ for machine in $canon_build $canon_host $canon_target; do 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 @@ -875,7 +875,7 @@ for machine in $canon_build $canon_host $canon_target; do 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 ] @@ -885,7 +885,7 @@ for machine in $canon_build $canon_host $canon_target; do 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 @@ -896,7 +896,7 @@ for machine in $canon_build $canon_host $canon_target; do 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 @@ -912,18 +912,18 @@ for machine in $canon_build $canon_host $canon_target; do 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 @@ -931,7 +931,7 @@ for machine in $canon_build $canon_host $canon_target; do # 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 @@ -939,7 +939,7 @@ for machine in $canon_build $canon_host $canon_target; do 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 @@ -948,19 +948,16 @@ for machine in $canon_build $canon_host $canon_target; do 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*) - 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 ;; *) @@ -981,41 +978,56 @@ for machine in $canon_build $canon_host $canon_target; do 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 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 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[3456]86-*-linux*gnulibc1) # 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-gnulibc1 + tm_file=i386/linux.h + fixincludes=Makefile.in # The headers are ok already. broken_install=yes gnu_ld=yes + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" ;; - i[345]86-*-linux*) # Intel 80386's running Linux + 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 + tmake_file=t-linux 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. - #extra_parts="crtbegin.o crtend.o" + # GNU libc version 2 does not supply these; + # we want them from GCC. + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" ;; - i[345]86-go32-msdos | i[345]86-*-go32) + i[3456]86-*-gnu*) + cpu_type=i386 # GNU supports this CPU; rest done below. + ;; + 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 @@ -1027,13 +1039,13 @@ for machine in $canon_build $canon_host $canon_target; do 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 @@ -1047,7 +1059,7 @@ for machine in $canon_build $canon_host $canon_target; do 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 @@ -1065,7 +1077,7 @@ for machine in $canon_build $canon_host $canon_target; do 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 @@ -1083,7 +1095,7 @@ for machine in $canon_build $canon_host $canon_target; do 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 @@ -1093,7 +1105,7 @@ for machine in $canon_build $canon_host $canon_target; do 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 ] @@ -1106,7 +1118,7 @@ for machine in $canon_build $canon_host $canon_target; do 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 @@ -1134,7 +1146,7 @@ for machine in $canon_build $canon_host $canon_target; do 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 @@ -1523,26 +1535,36 @@ for machine in $canon_build $canon_host $canon_target; do 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*libc1) # Motorola m68k's running GNU/Linux + xm_file=m68k/xm-linux.h # with ELF format, using GNU libc v1. + xmake_file=x-linux + tm_file=m68k/linux.h + tmake_file=m68k/t-linux-gnulibc1 + fixincludes=Makefile.in # The headers are ok already. + extra_headers=math-68881.h + gnu_ld=yes + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" + ;; + 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" + # GNU libc version 2 does not supply these; + # we want them from GCC. + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" ;; m88k-dg-dgux*) case $machine in @@ -2379,6 +2401,8 @@ for machine in $canon_build $canon_host $canon_target; do esac case $machine in + *-*-linux-gnu*) + ;; # Existing Linux/GNU systems do not use the GNU setup. *-*-gnu*) # On the GNU system, the setup is just about the same on # each different CPU. The specific machines that GNU @@ -2535,7 +2559,7 @@ do 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 @@ -2543,8 +2567,9 @@ done # 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 + gxx_include_dir=$prefix/include/g++ ;; esac diff --git a/contrib/gcc/cp/ChangeLog b/contrib/gcc/cp/ChangeLog index d2ef74f..420e25d 100644 --- a/contrib/gcc/cp/ChangeLog +++ b/contrib/gcc/cp/ChangeLog @@ -1,3 +1,17 @@ +Thu Aug 22 23:47:38 1997 H.J. Lu (hjl@gnu.ai.mit.edu) + + * Version 2.7.2.3 released. + +Mon Apr 29 00:27:53 1996 Jason Merrill <jason@yorick.cygnus.com> + + * lex.c (real_yylex): Fix handling of __PRETTY_FUNCTION__ like C + frontend. + +Thu Oct 26 16:45:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com> + + * errfn.c: Include stdio.h. + (cp_sprintf): Take out decl of sprintf, and cast sprintf to errorfn*. + Mon Nov 20 14:06:28 1995 Mike Stump <mrs@cygnus.com> * Version 2.7.2 released. diff --git a/contrib/gcc/cp/errfn.c b/contrib/gcc/cp/errfn.c index f36b0e1..4da07fa 100644 --- a/contrib/gcc/cp/errfn.c +++ b/contrib/gcc/cp/errfn.c @@ -21,6 +21,7 @@ Boston, MA 02111-1307, USA. */ #include "config.h" #include "tree.h" +#include <stdio.h> #include <ctype.h> /* cp_printer is the type of a function which converts an argument into @@ -195,8 +196,7 @@ cp_sprintf (format, arglist) char *format; arglist_dcl { - extern errorfn sprintf; - cp_thing (sprintf, 0, format, arglist); + cp_thing ((errorfn *) sprintf, 0, format, arglist); } void diff --git a/contrib/gcc/cp/lex.c b/contrib/gcc/cp/lex.c index 22763f5..9e51883 100644 --- a/contrib/gcc/cp/lex.c +++ b/contrib/gcc/cp/lex.c @@ -3381,7 +3381,12 @@ real_yylex () && DECL_INITIAL (tmp) != NULL_TREE && TREE_CODE (DECL_INITIAL (tmp)) == STRING_CST) { - yylval.ttype = DECL_INITIAL (tmp); + tree stringval = DECL_INITIAL (tmp); + + /* Copy the string value so that we won't clobber anything + if we put something in the TREE_CHAIN of this one. */ + yylval.ttype = build_string (TREE_STRING_LENGTH (stringval), + TREE_STRING_POINTER (stringval)); value = STRING; } } diff --git a/contrib/gcc/cse.c b/contrib/gcc/cse.c index efd05de..00c5122 100644 --- a/contrib/gcc/cse.c +++ b/contrib/gcc/cse.c @@ -7811,13 +7811,6 @@ invalidate_skipped_set (dest, set) rtx set; rtx dest; { - if (GET_CODE (set) == CLOBBER -#ifdef HAVE_cc0 - || dest == cc0_rtx -#endif - || dest == pc_rtx) - return; - if (GET_CODE (dest) == MEM) note_mem_written (dest, &skipped_writes_memory); @@ -7827,6 +7820,13 @@ invalidate_skipped_set (dest, set) if (skipped_writes_memory.nonscalar) skipped_writes_memory.all = 1; + if (GET_CODE (set) == CLOBBER +#ifdef HAVE_cc0 + || dest == cc0_rtx +#endif + || dest == pc_rtx) + return; + if (GET_CODE (dest) == REG || GET_CODE (dest) == SUBREG || (! skipped_writes_memory.all && ! cse_rtx_addr_varies_p (dest))) invalidate (dest, VOIDmode); diff --git a/contrib/gcc/function.c b/contrib/gcc/function.c index e45eec6..4d15f71 100644 --- a/contrib/gcc/function.c +++ b/contrib/gcc/function.c @@ -5229,7 +5229,9 @@ expand_function_end (filename, line, end_bindings) register int i; tree link; +#ifdef TRAMPOLINE_TEMPLATE static rtx initial_trampoline; +#endif if (output_bytecode) { @@ -5262,8 +5264,10 @@ expand_function_end (filename, line, end_bindings) tree function = TREE_PURPOSE (link); rtx context = lookup_static_chain (function); rtx tramp = RTL_EXPR_RTL (TREE_VALUE (link)); + rtx blktramp; rtx seq; +#ifdef TRAMPOLINE_TEMPLATE /* First make sure this compilation has a template for initializing trampolines. */ if (initial_trampoline == 0) @@ -5273,15 +5277,18 @@ expand_function_end (filename, line, end_bindings) = gen_rtx (MEM, BLKmode, assemble_trampoline_template ()); resume_temporary_allocation (); } +#endif /* Generate insns to initialize the trampoline. */ start_sequence (); - tramp = change_address (initial_trampoline, BLKmode, - round_trampoline_addr (XEXP (tramp, 0))); - emit_block_move (tramp, initial_trampoline, GEN_INT (TRAMPOLINE_SIZE), + tramp = round_trampoline_addr (XEXP (tramp, 0)); +#ifdef TRAMPOLINE_TEMPLATE + blktramp = change_address (initial_trampoline, BLKmode, tramp); + emit_block_move (blktramp, initial_trampoline, + GEN_INT (TRAMPOLINE_SIZE), FUNCTION_BOUNDARY / BITS_PER_UNIT); - INITIALIZE_TRAMPOLINE (XEXP (tramp, 0), - XEXP (DECL_RTL (function), 0), context); +#endif + INITIALIZE_TRAMPOLINE (tramp, XEXP (DECL_RTL (function), 0), context); seq = get_insns (); end_sequence (); diff --git a/contrib/gcc/gcc.c b/contrib/gcc/gcc.c index 7622771..fe7de5b 100644 --- a/contrib/gcc/gcc.c +++ b/contrib/gcc/gcc.c @@ -4275,6 +4275,16 @@ main (argc, argv) if (specs_file != 0 && strcmp (specs_file, "specs")) read_specs (specs_file); + /* We need to check standard_exec_prefix/just_machine_suffix/specs + for any override of as, ld and libraries. */ + specs_file =(char *) alloca (strlen (standard_exec_prefix) + + strlen (just_machine_suffix) + sizeof ("specs")); + strcpy (specs_file, standard_exec_prefix); + strcat (specs_file, just_machine_suffix); + strcat (specs_file, "specs"); + if (access (specs_file, R_OK) == 0) + read_specs (specs_file, TRUE); + /* If not cross-compiling, look for startfiles in the standard places. */ /* The fact that these are done here, after reading the specs file, means that it cannot be found in these directories. diff --git a/contrib/gcc/install.texi b/contrib/gcc/install.texi index 962a6e7..337da79 100644 --- a/contrib/gcc/install.texi +++ b/contrib/gcc/install.texi @@ -814,9 +814,15 @@ Use this configuration to generate a.out binaries on Linux-based GNU systems. This configuration is being superseded. You must use gas/binutils version 2.5.2 or later. +@item i386-*-linux-gnulibc1 +Use this configuration to generate ELF binaries on Linux-based GNU +systems using the 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. +systems using glibc 2. You must use gas/binutils version 2.8.1 or +later. @item i386-*-sco Compilation with RCC is recommended. Also, it may be a good idea to @@ -934,6 +940,19 @@ HP 9000 series 200 running BSD. Note that the C compiler that comes with this system cannot compile GNU CC; contact @code{law@@cs.utah.edu} to get binaries of GNU CC for bootstrapping. +@item m68k-*-linuxaout +Use this configuration to generate a.out binaries on Linux. This configuration +is being superseded. You must use gas/binutils version 2.5.2 or later. + +@item m68k-*-linux-gnulibc1 +Use this configuration to generate ELF binaries on Linux with the +Linux C library 5.x.x. You must use gas/binutils version 2.8.1 later. + +@item m68k-*-linux +Use this configuration to generate ELF binaries on Linux-based GNU +systems with the GNU C library 2. You must use gas/binutils version +2.8.1 or later. + @item m68k-altos Altos 3068. You must use the GNU assembler, linker and debugger. Also, you must fix a kernel bug. Details in the file @file{README.ALTOS}. diff --git a/contrib/gcc/unroll.c b/contrib/gcc/unroll.c index c598578..4ba6efb 100644 --- a/contrib/gcc/unroll.c +++ b/contrib/gcc/unroll.c @@ -2908,12 +2908,19 @@ find_splittable_givs (bl, unroll_type, loop_start, loop_end, increment, #endif } - /* Givs are only updated once by definition. Mark it so if this is + /* Unreduced givs are only updated once by definition. Reduced givs + are updated as many times as their biv is. Mark it so if this is a splittable register. Don't need to do anything for address givs where this may not be a register. */ if (GET_CODE (v->new_reg) == REG) - splittable_regs_updates[REGNO (v->new_reg)] = 1; + { + int count = 1; + if (! v->ignore) + count = reg_biv_class[REGNO (v->src_reg)]->biv_count; + + splittable_regs_updates[REGNO (v->new_reg)] = count; + } result++; diff --git a/contrib/gcc/varasm.c b/contrib/gcc/varasm.c index 42b81fa..12c935e 100644 --- a/contrib/gcc/varasm.c +++ b/contrib/gcc/varasm.c @@ -1640,6 +1640,7 @@ assemble_static_space (size) This is done at most once per compilation. Returns an RTX for the address of the template. */ +#ifdef TRAMPOLINE_TEMPLATE rtx assemble_trampoline_template () { @@ -1673,6 +1674,7 @@ assemble_trampoline_template () = (char *) obstack_copy0 (&permanent_obstack, label, strlen (label)); return gen_rtx (SYMBOL_REF, Pmode, name); } +#endif /* Assemble the integer constant X into an object of SIZE bytes. X must be either a CONST_INT or CONST_DOUBLE. diff --git a/contrib/gcc/version.c b/contrib/gcc/version.c index 3480e3f..dd8c145 100644 --- a/contrib/gcc/version.c +++ b/contrib/gcc/version.c @@ -1 +1 @@ -char *version_string = "2.7.2.1"; +char *version_string = "2.7.2.3"; |