diff options
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 3f955fb4a2e5..ffdc47730939 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 0eaa67bed09c..7ab05ffd6bbf 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 43ed75d6f9f4..09236696251a 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 2ff0eba28acf..550863832136 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 e67a800b5150..9bb45e9adf22 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 f7428c354779..b77dc149bc61 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 f077de57efbd..a0b49bab544e 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 1be333cc0f57..9c2b12e92300 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 d2ef74f206f9..420e25d00315 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 f36b0e1e1f9a..4da07fa40dca 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 22763f56f626..9e51883b8669 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 efd05dedaf92..00c51222b880 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 e45eec64e063..4d15f71340f2 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 7622771d8ff1..fe7de5bbb402 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 962a6e7a088b..337da7951809 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 c5985780a828..4ba6efb54e45 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 42b81fa4d86d..12c935e63de9 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 3480e3fdac2e..dd8c145d84e0 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";  | 
