diff options
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/gcc/ChangeLog | 91 | ||||
-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/i386/linux.h | 23 | ||||
-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/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 |
13 files changed, 217 insertions, 33 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/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/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/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/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"; |