summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>1999-07-10 23:03:59 +0000
committerobrien <obrien@FreeBSD.org>1999-07-10 23:03:59 +0000
commitd4db5fb866b7ad5216abd5047774a3973b9901a9 (patch)
treeedca008aa0e9cdfae2ef7478f9109ca7f3a2a028
parentb822db150531f5b7067d4d970080b7358e07ae89 (diff)
downloadFreeBSD-src-d4db5fb866b7ad5216abd5047774a3973b9901a9.zip
FreeBSD-src-d4db5fb866b7ad5216abd5047774a3973b9901a9.tar.gz
Virgin import of GCC 2.7.2.3
-rw-r--r--contrib/gcc/ChangeLog91
-rw-r--r--contrib/gcc/Makefile.in6
-rw-r--r--contrib/gcc/README5
-rwxr-xr-xcontrib/gcc/config.guess24
-rwxr-xr-xcontrib/gcc/config.sub32
-rw-r--r--contrib/gcc/config/alpha/alpha.c3
-rw-r--r--contrib/gcc/config/i386/linux.h23
-rwxr-xr-xcontrib/gcc/configure113
-rw-r--r--contrib/gcc/cp/ChangeLog14
-rw-r--r--contrib/gcc/cp/errfn.c4
-rw-r--r--contrib/gcc/cp/lex.c7
-rw-r--r--contrib/gcc/cse.c14
-rw-r--r--contrib/gcc/function.c17
-rw-r--r--contrib/gcc/gcc.c10
-rw-r--r--contrib/gcc/install.texi21
-rw-r--r--contrib/gcc/unroll.c11
-rw-r--r--contrib/gcc/varasm.c2
-rw-r--r--contrib/gcc/version.c2
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";
OpenPOWER on IntegriCloud