punt old gcc-2 patches
authorMike Frysinger <vapier@gentoo.org>
Sat, 15 Jan 2005 03:05:28 +0000 (03:05 +0000)
committerMike Frysinger <vapier@gentoo.org>
Sat, 15 Jan 2005 03:05:28 +0000 (03:05 +0000)
Package-Manager: portage-2.0.51-r12

sys-devel/gcc/Manifest
sys-devel/gcc/files/2.95.3/gcc-2.95.3-alpha.diff [deleted file]
sys-devel/gcc/files/2.95.3/gcc-2.95.3-new-atexit.diff [deleted file]

index 40fed212ee5384adc2358db343bdd99ffabc4e74..f4795eace8401c81fe164c018240df9f10613ee6 100644 (file)
@@ -43,8 +43,6 @@ MD5 6df16eb92245a931ecfc4cbcc73c84cf files/digest-gcc-3.3.4-r2 442
 MD5 40e6872c09149a81973f01a78c80bbb7 files/digest-gcc-3.2.3-r4 279
 MD5 e58b6c1f3122b79a5d0d273acc3c008c files/digest-gcc-3.3.2-r7 361
 MD5 c6ea8a92bac6d2638c54c011f98bc5b8 files/digest-gcc-3.4.1-r3 442
-MD5 b1a242694f56184cbcdd40ba25800d50 files/2.95.3/gcc-2.95.3-alpha.diff 14345
-MD5 523970c128b929fe7c7cf36508ebd1d5 files/2.95.3/gcc-2.95.3-new-atexit.diff 13604
 MD5 27120401d2355e5d959b8d2d55eba310 files/3.3.4/gcc334-gentoo-branding.patch 876
 MD5 5fb5b49f3f16cc9e7e27e582c92ffa2f files/3.3.4/libffi-without-libgcj.patch 890
 MD5 86ae592deb82c4564eb61f770fe5f8a7 files/3.4.1/gcc-3.4.1-gentoo-branding.patch 759
@@ -116,7 +114,7 @@ MD5 4edccdf0b4f6dbbc9f7bc9370c255e0c files/3.4.0/gcc34-reiser4-fix.patch 587
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.9.14 (GNU/Linux)
 
-iD8DBQFB6Ig2roRuSHgZdywRAs97AJ44NokebrnlJjXLaqrCrRJja9SENwCfa2sX
-mxTG0AxmgoqWnGv/MuG2yUg=
-=GBMs
+iD4DBQFB6IidroRuSHgZdywRAiyHAJ4mpoWYZSoNTFER1GAuCbJJhXs8bwCY00yq
+aqUAkolWWOjhRdKMBPTwXA==
+=Fd5j
 -----END PGP SIGNATURE-----
diff --git a/sys-devel/gcc/files/2.95.3/gcc-2.95.3-alpha.diff b/sys-devel/gcc/files/2.95.3/gcc-2.95.3-alpha.diff
deleted file mode 100644 (file)
index f97fb94..0000000
+++ /dev/null
@@ -1,427 +0,0 @@
-2000-04-29  Richard Henderson  <rth@cygnus.com>
-
-       * config/alpha/crtbegin.asm: Use C comments instead of #.
-       Mark __dso_handle hidden.
-
-2000-02-16  Richard Henderson  <rth@cygnus.com>
-
-       * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
-       Add crtbeginS.o and crtendS.o.
-       * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
-       (ENDFILE_SPEC): Use crtendS.o.
-       * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
-
-       * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
-       (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
-       shared and present.
-       (__dso_handle): New variable.
-
-2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
-
-       * acconfig.h: Add HAVE_GAS_HIDDEN.
-       * config.in: Regenerated.
-       * configure.in: Add test for .hidden pseudo-op in gas.
-       * configure: Regenerated.
-       * crtstuff.c: Include auto-host.h.
-       Emit additional .hidden pseudo-op for __dso_handle if the
-       assembler knows about it.
-
---- gcc-2.95.x/gcc/config/alpha/crtbegin.asm.jj        Wed Dec 16 22:00:53 1998
-+++ gcc-2.95.x/gcc/config/alpha/crtbegin.asm   Mon Aug 13 11:16:43 2001
-@@ -1,42 +1,46 @@
-- # Copyright (C) 1996, 1998 Free Software Foundation, Inc.
-- #  Contributed by Richard Henderson (rth@tamu.edu)
-- #
-- # This file is free software; you can redistribute it and/or modify it
-- # under the terms of the GNU General Public License as published by the
-- # Free Software Foundation; either version 2, or (at your option) any
-- # later version.
-- # 
-- # In addition to the permissions in the GNU General Public License, the
-- # Free Software Foundation gives you unlimited permission to link the
-- # compiled version of this file with other programs, and to distribute
-- # those programs without any restriction coming from the use of this
-- # file.  (The General Public License restrictions do apply in other
-- # respects; for example, they cover modification of the file, and
-- # distribution when not linked into another program.)
-- # 
-- # This file is distributed in the hope that it will be useful, but
-- # WITHOUT ANY WARRANTY; without even the implied warranty of
-- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-- # General Public License for more details.
-- # 
-- # You should have received a copy of the GNU General Public License
-- # along with this program; see the file COPYING.  If not, write to
-- # the Free Software Foundation, 59 Temple Place - Suite 330,
-- # Boston, MA 02111-1307, USA.
-- # 
-- #    As a special exception, if you link this library with files
-- #    compiled with GCC to produce an executable, this does not cause
-- #    the resulting executable to be covered by the GNU General Public License.
-- #    This exception does not however invalidate any other reasons why
-- #    the executable file might be covered by the GNU General Public License.
--
-- #
-- # Heads of the constructor/destructor lists.
-- #
--
-- # The __*TOR_LIST__ symbols are not global because when this file is used
-- # in a shared library, we do not want the symbol to fall over to the
-- # application's lists.
-+/* Copyright (C) 1996, 1998 Free Software Foundation, Inc.
-+ *  Contributed by Richard Henderson (rth@tamu.edu)
-+ *
-+ * This file is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2, or (at your option) any
-+ * later version.
-+ * 
-+ * In addition to the permissions in the GNU General Public License, the
-+ * Free Software Foundation gives you unlimited permission to link the
-+ * compiled version of this file with other programs, and to distribute
-+ * those programs without any restriction coming from the use of this
-+ * file.  (The General Public License restrictions do apply in other
-+ * respects; for example, they cover modification of the file, and
-+ * distribution when not linked into another program.)
-+ * 
-+ * This file is distributed in the hope that it will be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+ * General Public License for more details.
-+ * 
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; see the file COPYING.  If not, write to
-+ * the Free Software Foundation, 59 Temple Place - Suite 330,
-+ * Boston, MA 02111-1307, USA.
-+ * 
-+ *    As a special exception, if you link this library with files
-+ *    compiled with GCC to produce an executable, this does not cause
-+ *    the resulting executable to be covered by the GNU General Public License.
-+ *    This exception does not however invalidate any other reasons why
-+ *    the executable file might be covered by the GNU General Public License.
-+ */
-+
-+
-+
-+/*
-+ * Heads of the constructor/destructor lists.
-+ */
-+
-+/* The __*TOR_LIST__ symbols are not global because when this file is used
-+ * in a shared library, we do not want the symbol to fall over to the
-+ * application's lists.
-+ */
- 
- .section .ctors,"aw"
- 
-@@ -53,34 +57,34 @@ __DTOR_LIST__:
- .section .eh_frame,"aw"
- __EH_FRAME_BEGIN__:
- 
-- #
-- # Fragment of the ELF _fini routine that invokes our dtor cleanup.
-- #
-+/*
-+ * Fragment of the ELF _fini routine that invokes our dtor cleanup.
-+ */
- 
- .section .fini,"ax"
- 
--      # Since the bits of the _fini function are spread across many
--      # object files, each potentially with its own GP, we must
--      # assume we need to load ours.  Further, our .fini section
--      # can easily be more than 4MB away from our .text bits so we
--      # can't use bsr.
-+      /* Since the bits of the _fini function are spread across many
-+         object files, each potentially with its own GP, we must
-+         assume we need to load ours.  Further, our .fini section
-+         can easily be more than 4MB away from our .text bits so we
-+         can't use bsr.  */
- 
-       br      $29,1f
- 1:    ldgp    $29,0($29)
-       jsr     $26,__do_global_dtors_aux
- 
--      # Ideally this call would go in crtend.o, except that we can't
--      # get hold of __EH_FRAME_BEGIN__ there.
-+      /* Ideally this call would go in crtend.o, except that we can't
-+         get hold of __EH_FRAME_BEGIN__ there  */
- 
-       jsr     $26,__do_frame_takedown
- 
--      # Must match the alignment we got from crti.o else we get
--      # zero-filled holes in our _fini function and then SIGILL.
-+      /* Must match the alignment we got from crti.o else we get
-+         zero-filled holes in our _fini function and then SIGILL.  */
-       .align 3
- 
-- #
-- # Fragment of the ELF _init routine that sets up the frame info.
-- #
-+/*
-+ * Fragment of the ELF _init routine that sets up the frame info.
-+ */
- 
- .section .init,"ax"
-        br      $29,1f
-@@ -88,32 +92,68 @@ __EH_FRAME_BEGIN__:
-        jsr     $26,__do_frame_setup
-        .align 3
- 
-- #
-- # Invoke our destructors in order.
-- #
-+/*
-+ * Invoke our destructors in order.
-+ */
- 
- .data
- 
-- # Support recursive calls to exit.
-+/* Support recursive calls to exit.  */
- $ptr: .quad   __DTOR_LIST__
- 
-+/* A globally unique widget for c++ local destructors to hang off.
-+
-+   This has a unique value in every dso; in the main program its
-+   value is zero.  The object should be protected.  This means the
-+   instance in any dso or the main program is not used in any other
-+   dso.  The dynamic linker takes care of this.  */
-+
-+      .global __dso_handle
-+      .type __dso_handle,@object
-+      .size __dso_handle,8
-+#ifdef SHARED
-+.section .data
-+      .align 3
-+__dso_handle:
-+      .quad   __dso_handle
-+#else
-+.section .bss
-+      .align 3
-+__dso_handle:
-+      .zero 8
-+#endif
-+#ifdef HAVE_GAS_HIDDEN
-+      .hidden __dso_handle
-+#endif
-+
- .text
- 
-       .align 3
-       .ent __do_global_dtors_aux
- 
- __do_global_dtors_aux:
-+      ldgp    $29,0($27)
-       lda     $30,-16($30)
-       .frame  $30,16,$26,0
-       stq     $9,8($30)
-       stq     $26,0($30)
-       .mask   0x4000200,-16
--      .prologue 0
-+      .prologue 1
- 
-+#ifdef SHARED
-+        /* Do c++ local destructors.  */
-+        lda     $1,__cxa_finalize
-+        beq     $1,2f
-+        lda     $16,__dso_handle
-+        jsr     $26,__cxa_finalize
-+        ldgp    $29,0($26)
-+2:
-+#endif
-       lda     $9,$ptr
-       br      1f
- 0:    stq     $1,0($9)
-       jsr     $26,($27)
-+      ldgp    $29,0($26)
- 1:    ldq     $1,0($9)
-       ldq     $27,8($1)
-       addq    $1,8,$1
-@@ -126,11 +166,11 @@ __do_global_dtors_aux:
- 
-       .end __do_global_dtors_aux
- 
-- #
-- # Install our frame info.
-- #
-+/*
-+ * Install our frame info.
-+ */
- 
-- # ??? How can we rationally keep this size correct?
-+/* ??? How can we rationally keep this size correct?  */
- 
- .section .bss
-       .type $object,@object
-@@ -163,9 +203,9 @@ __do_frame_setup:
- 
-       .end __do_frame_setup
- 
-- #
-- # Remove our frame info.
-- #
-+/*
-+ * Remove our frame info.
-+ */
- 
-       .align 3
-       .ent __do_frame_takedown
-@@ -190,3 +230,6 @@ __do_frame_takedown:
- 
- .weak __register_frame_info
- .weak __deregister_frame_info
-+#ifdef SHARED
-+.weak __cxa_finalize
-+#endif
---- gcc-2.95.x/gcc/config/alpha/t-crtbe.jj     Wed Dec 16 22:01:05 1998
-+++ gcc-2.95.x/gcc/config/alpha/t-crtbe        Mon Aug 13 11:08:08 2001
-@@ -3,7 +3,13 @@ T = disable
- 
- # Assemble startup files.
- crtbegin.o: $(srcdir)/config/alpha/crtbegin.asm $(GCC_PASSES)
--      $(GCC_FOR_TARGET) -c -o crtbegin.o -x assembler $(srcdir)/config/alpha/crtbegin.asm
-+      $(GCC_FOR_TARGET) -c -o crtbegin.o -x assembler-with-cpp $(srcdir)/config/alpha/crtbegin.asm
- 
- crtend.o: $(srcdir)/config/alpha/crtend.asm $(GCC_PASSES)
--      $(GCC_FOR_TARGET) -c -o crtend.o -x assembler $(srcdir)/config/alpha/crtend.asm
-+      $(GCC_FOR_TARGET) -c -o crtend.o -x assembler $(srcdir)/config/alpha/crtend.asm
-+
-+crtbeginS.o: $(srcdir)/config/alpha/crtbegin.asm $(GCC_PASSES)
-+      $(GCC_FOR_TARGET) -DSHARED -c -o crtbeginS.o -x assembler-with-cpp -I. $(srcdir)/config/alpha/crtbegin.asm
-+
-+crtendS.o: $(srcdir)/config/alpha/crtend.asm $(GCC_PASSES)
-+      $(GCC_FOR_TARGET) -c -o crtendS.o -x assembler -I. $(srcdir)/config/alpha/crtend.asm
---- gcc-2.95.x/gcc/config/alpha/elf.h.jj       Mon Jun 21 22:15:10 1999
-+++ gcc-2.95.x/gcc/config/alpha/elf.h  Mon Aug 13 11:09:13 2001
-@@ -513,7 +513,7 @@ do {                                                                       \
- #define STARTFILE_SPEC \
-   "%{!shared: \
-      %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}}\
--   crti.o%s crtbegin.o%s"
-+   crti.o%s %{shared:crtbeginS.o%s}%{!shared:crtbegin.o%s}"
- 
- /* Provide a ENDFILE_SPEC appropriate for ELF.  Here we tack on the
-    magical crtend.o file which provides part of the support for
-@@ -522,7 +522,7 @@ do {                                                                       \
- 
- #undef        ENDFILE_SPEC
- #define ENDFILE_SPEC \
--  "crtend.o%s crtn.o%s"
-+  "%{shared:crtendS.o%s}%{!shared:crtend.o%s} crtn.o%s"
- 
- /* We support #pragma.  */
- #define HANDLE_SYSV_PRAGMA
---- gcc-2.95.x/gcc/crtstuff.c  2001/04/03 10:34:32     1.18.4.1
-+++ gcc-2.95.x/gcc/crtstuff.c  2001/08/09 06:56:33
-@@ -55,6 +55,7 @@ Boston, MA 02111-1307, USA.  */
- #include "defaults.h"
- #include <stddef.h>
- #include "frame.h"
-+#include "auto-host.h"
- 
- /* We do not want to add the weak attribute to the declarations of these
-    routines in frame.h because that will cause the definition of these
-@@ -134,7 +135,29 @@ typedef void (*func_ptr) (void);
- #ifdef INIT_SECTION_ASM_OP
- 
- #ifdef OBJECT_FORMAT_ELF
-+/* Declare the __dso_handle variable.  It should have a unique value
-+   in every shared-object; in a main program its value is zero.  The
-+   object should in any case be protected.  This means the instance
-+   in one DSO or the main program is not used in another object.  The
-+   dynamic linker takes care of this.  */
-+
-+/* XXX Ideally the following should be implemented using
-+   __attribute__ ((__visibility__ ("hidden")))
-+   but the __attribute__ support is not yet there.  */
-+#ifdef HAVE_GAS_HIDDEN
-+asm (".hidden\t__dso_handle");
-+#endif
-+
-+#ifdef CRTSTUFFS_O
-+void *__dso_handle = &__dso_handle;
-+#else
-+void *__dso_handle = 0;
-+#endif
- 
-+/* The __cxa_finalize function may not be available so we use only a
-+   weak declaration.  */
-+extern void __cxa_finalize (void *) TARGET_ATTRIBUTE_WEAK;
-+
- /* Run all the global destructors on exit from the program.  */
-  
- /* Some systems place the number of pointers in the first word of the
-@@ -164,6 +187,11 @@ __do_global_dtors_aux (void)
- 
-   if (completed)
-     return;
-+
-+#ifdef CRTSTUFFS_O
-+  if (__cxa_finalize)
-+    __cxa_finalize (__dso_handle);
-+#endif
- 
-   while (*p)
-     {
---- gcc-2.95.x/gcc/configure.in.jj     Wed Oct 13 09:58:02 1999
-+++ gcc-2.95.x/gcc/configure.in        Mon Aug 13 11:11:39 2001
-@@ -608,7 +608,7 @@ changequote([,])dnl
-               tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h"
-               target_cpu_default="MASK_GAS"
-               tmake_file="t-linux t-linux-gnulibc1 alpha/t-linux alpha/t-crtbe alpha/t-ieee"
--              extra_parts="crtbegin.o crtend.o"
-+              extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
-               xmake_file=none
-               gas=yes gnu_ld=yes
-               if test x$enable_threads = xyes; then
-@@ -619,7 +619,7 @@ changequote([,])dnl
-               tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h"
-               target_cpu_default="MASK_GAS"
-               tmake_file="t-linux alpha/t-linux alpha/t-crtbe alpha/t-ieee"
--              extra_parts="crtbegin.o crtend.o"
-+              extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
-               xmake_file=none
-               gas=yes gnu_ld=yes
-               if test x$enable_threads = xyes; then
-@@ -630,7 +630,7 @@ changequote([,])dnl
-               tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h"
-               target_cpu_default="MASK_GAS"
-               tmake_file="alpha/t-crtbe alpha/t-ieee"
--              extra_parts="crtbegin.o crtend.o"
-+              extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
-               xmake_file=none
-               gas=yes gnu_ld=yes
-               ;;
-@@ -4052,6 +4052,21 @@ EOF
-       rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
- fi
- AC_MSG_RESULT($gcc_cv_as_subsections)
-+
-+AC_MSG_CHECKING(assembler hidden support)
-+gcc_cv_as_hidden=
-+if test x$gcc_cv_as != x; then
-+      # Check if we have .hidden
-+      echo "  .hidden foobar" > conftest.s
-+      echo "foobar:" >> conftest.s
-+      if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
-+              AC_DEFINE(HAVE_GAS_HIDDEN, 1,
-+                      [Define if your assembler supports .hidden.])
-+              gcc_cv_as_hidden="yes"
-+      fi
-+      rm -f conftest.s conftest.o conftest.nm1 conftest.nm2
-+fi
-+AC_MSG_RESULT($gcc_cv_as_hidden)
- 
- AC_MSG_CHECKING(assembler instructions)
- gcc_cv_as_instructions=
---- gcc-2.95.x/gcc/config.in.jj     Mon Oct 25 10:02:08 1999
-+++ gcc-2.95.x/gcc/config.in        Wed Jun 13 12:45:56 2001
-2 the beginning of your section */
- #undef HAVE_GAS_SUBSECTION_ORDERING
-
-+/* Define if your assembler supports .hidden. */
-+#undef HAVE_GAS_HIDDEN
-+
- /* Define if your assembler uses the old HImode fild and fist notation.  */
- #undef HAVE_GAS_FILDS_FISTS
diff --git a/sys-devel/gcc/files/2.95.3/gcc-2.95.3-new-atexit.diff b/sys-devel/gcc/files/2.95.3/gcc-2.95.3-new-atexit.diff
deleted file mode 100644 (file)
index af4de79..0000000
+++ /dev/null
@@ -1,397 +0,0 @@
---- gcc-2.95.3-orig/gcc/c-common.c     Tue Sep  7 03:11:16 1999
-+++ gcc-2.95.3/gcc/c-common.c  Tue Aug 14 11:15:53 2001
-@@ -697,7 +697,23 @@
-           if (exact_log2 (align) == -1)
-             error ("requested alignment is not a power of 2");
-           else if (is_type)
--            TYPE_ALIGN (type) = align;
-+            {
-+              /* If we have a TYPE_DECL, then copy the type, so that we
-+                 don't accidentally modify a builtin type.  See pushdecl.  */
-+              if (decl && TREE_TYPE (decl) != error_mark_node
-+                  && DECL_ORIGINAL_TYPE (decl) == NULL_TREE)
-+                {
-+                  tree tt = TREE_TYPE (decl);
-+                  DECL_ORIGINAL_TYPE (decl) = tt;
-+                  tt = build_type_copy (tt);
-+                  TYPE_NAME (tt) = decl;
-+                  TREE_USED (tt) = TREE_USED (decl);
-+                  TREE_TYPE (decl) = tt;
-+                  type = tt;
-+                }
-+
-+              TYPE_ALIGN (type) = align;
-+            }
-           else if (TREE_CODE (decl) != VAR_DECL
-                    && TREE_CODE (decl) != FIELD_DECL)
-             error_with_decl (decl,
---- gcc-2.95.3-orig/gcc/config/alpha/crtbegin.asm      Wed Dec 16 15:00:53 1998
-+++ gcc-2.95.3/gcc/config/alpha/crtbegin.asm   Tue Aug 14 11:15:53 2001
-@@ -97,6 +97,31 @@
-  # Support recursive calls to exit.
- $ptr: .quad   __DTOR_LIST__
- 
-+/* A globally unique widget for c++ local destructors to hang off.
-+
-+   This has a unique value in every dso; in the main program its
-+   value is zero.  The object should be protected.  This means the
-+   instance in any dso or the main program is not used in any other
-+   dso.  The dynamic linker takes care of this.  */
-+
-+       .global __dso_handle
-+       .type __dso_handle,@object
-+       .size __dso_handle,8
-+#ifdef SHARED
-+.section .data
-+       .align 3
-+__dso_handle:
-+       .quad   __dso_handle
-+#else
-+.section .bss
-+       .align 3
-+__dso_handle:
-+       .zero 8
-+#endif
-+#ifdef HAVE_GAS_HIDDEN
-+       .hidden __dso_handle
-+#endif
-+
- .text
- 
-       .align 3
---- gcc-2.95.3-orig/gcc/config/i386/i386.c     Tue Sep  7 02:38:56 1999
-+++ gcc-2.95.3/gcc/config/i386/i386.c  Tue Aug 14 11:17:15 2001
-@@ -291,7 +291,7 @@
- 
-   if (ix86_arch_string == 0)
-     {
--      ix86_arch_string = PROCESSOR_PENTIUM_STRING;
-+      ix86_arch_string = PROCESSOR_DEFAULT_STRING;
-       if (ix86_cpu_string == 0)
-       ix86_cpu_string = PROCESSOR_DEFAULT_STRING;
-     }
-@@ -308,7 +308,7 @@
-   if (i == ptt_size)
-     {
-       error ("bad value (%s) for -march= switch", ix86_arch_string);
--      ix86_arch_string = PROCESSOR_PENTIUM_STRING;
-+      ix86_arch_string = PROCESSOR_DEFAULT_STRING;
-       ix86_arch = PROCESSOR_DEFAULT;
-     }
- 
---- gcc-2.95.3-orig/gcc/config/i386/linux.h    Wed Apr  7 19:32:13 1999
-+++ gcc-2.95.3/gcc/config/i386/linux.h Tue Aug 14 11:15:53 2001
-@@ -234,3 +234,21 @@
-     }                                                                 \
-   } while (0)
- #endif
-+
-+#if defined(__PIC__) && defined (USE_GNULIBC_1)
-+/* This is a kludge. The i386 GNU/Linux dynamic linker needs ___brk_addr,
-+   __environ and atexit (). We have to make sure they are in the .dynsym
-+   section. We accomplish it by making a dummy call here. This
-+   code is never reached.  */
-+
-+#define CRT_END_INIT_DUMMY             \
-+  do                                   \
-+    {                                  \
-+      extern void *___brk_addr;                \
-+      extern char **__environ;         \
-+                                       \
-+      ___brk_addr = __environ;         \
-+      atexit (0);                      \
-+    }                                  \
-+  while (0)
-+#endif
---- gcc-2.95.3-orig/gcc/config/rs6000/rs6000.md        Thu Jan 25 08:03:35 2001
-+++ gcc-2.95.3/gcc/config/rs6000/rs6000.md     Tue Aug 14 11:15:53 2001
-@@ -6184,7 +6184,9 @@
-      reg.  So expand it.  */
-   if (GET_CODE (operands[0]) == SUBREG
-       && GET_CODE (SUBREG_REG (operands[0])) == REG
--      && REGNO (SUBREG_REG (operands[0])) < FIRST_PSEUDO_REGISTER)
-+      && REGNO (SUBREG_REG (operands[0])) < FIRST_PSEUDO_REGISTER
-+      && (! REG_FUNCTION_VALUE_P (SUBREG_REG (operands[0]))
-+        || ! rtx_equal_function_value_matters))
-     operands[0] = alter_subreg (operands[0]);
-   if (GET_CODE (operands[1]) == SUBREG
-       && GET_CODE (SUBREG_REG (operands[1])) == REG
---- gcc-2.95.3-orig/gcc/crtstuff.c     Mon Mar 22 18:43:51 1999
-+++ gcc-2.95.3/gcc/crtstuff.c  Tue Aug 14 11:15:53 2001
-@@ -55,6 +55,7 @@
- #include "defaults.h"
- #include <stddef.h>
- #include "frame.h"
-+#include "auto-host.h"
- 
- /* We do not want to add the weak attribute to the declarations of these
-    routines in frame.h because that will cause the definition of these
-@@ -134,6 +135,29 @@
- #ifdef INIT_SECTION_ASM_OP
- 
- #ifdef OBJECT_FORMAT_ELF
-+/* Declare the __dso_handle variable.  It should have a unique value
-+   in every shared-object; in a main program its value is zero.  The
-+   object should in any case be protected.  This means the instance
-+   in one DSO or the main program is not used in another object.  The
-+   dynamic linker takes care of this.  */
-+
-+/* XXX Ideally the following should be implemented using
-+   __attribute__ ((__visibility__ ("hidden")))
-+   but the __attribute__ support is not yet there.  */
-+#define HAVE_GAS_HIDDEN 1
-+#ifdef HAVE_GAS_HIDDEN
-+asm (".hidden\t__dso_handle");
-+#endif
-+
-+#ifdef CRTSTUFFS_O
-+void *__dso_handle = &__dso_handle;
-+#else
-+void *__dso_handle = 0;
-+#endif
-+
-+/* The __cxa_finalize function may not be available so we use only a
-+   weak declaration.  */
-+extern void __cxa_finalize (void *) TARGET_ATTRIBUTE_WEAK;
- 
- /* Run all the global destructors on exit from the program.  */
-  
-@@ -165,6 +189,11 @@
-   if (completed)
-     return;
- 
-+#ifdef CRTSTUFFS_O
-+  if (__cxa_finalize)
-+    __cxa_finalize (__dso_handle);
-+#endif
-+
-   while (*p)
-     {
-       p++;
-@@ -379,20 +408,8 @@
-   FORCE_INIT_SECTION_ALIGN;
- #endif
-   asm (TEXT_SECTION_ASM_OP);
--
--/* This is a kludge. The i386 GNU/Linux dynamic linker needs ___brk_addr,
--   __environ and atexit (). We have to make sure they are in the .dynsym
--   section. We accomplish it by making a dummy call here. This
--   code is never reached.  */
-- 
--#if defined(__linux__) && defined(__PIC__) && defined(__i386__)
--  {
--    extern void *___brk_addr;
--    extern char **__environ;
--
--    ___brk_addr = __environ;
--    atexit ();
--  }
-+#ifdef CRT_END_INIT_DUMMY
-+  CRT_END_INIT_DUMMY;
- #endif
- }
- 
---- gcc-2.95.3-orig/gcc/cse.c  Thu Jan 25 08:03:03 2001
-+++ gcc-2.95.3/gcc/cse.c       Tue Aug 14 11:15:53 2001
-@@ -695,8 +695,6 @@
- static struct cse_reg_info* get_cse_reg_info PROTO((int));
- static void free_cse_reg_info   PROTO((splay_tree_value));
- static void flush_hash_table  PROTO((void));
--
--extern int rtx_equal_function_value_matters;
- \f
- /* Dump the expressions in the equivalence class indicated by CLASSP.
-    This function is used only for debugging.  */
---- gcc-2.95.3-orig/gcc/function.c     Thu Jan 25 08:03:15 2001
-+++ gcc-2.95.3/gcc/function.c  Tue Aug 14 11:15:53 2001
-@@ -5292,7 +5292,18 @@
-                               - offset_ptr->constant); 
-     }
- #else /* !ARGS_GROW_DOWNWARD */
--  pad_to_arg_alignment (initial_offset_ptr, boundary);
-+  if (!in_regs 
-+#ifdef REG_PARM_STACK_SPACE
-+      || REG_PARM_STACK_SPACE (fndecl) > 0
-+#else
-+      /* For the gcc-2_95-branch we want to make sure not to break something
-+         on platforms which pass argument in registers but don't define
-+         REG_PARM_STACK_SPACE. So we force the original behaviour here.  */
-+      || 1
-+#endif
-+      )
-+    pad_to_arg_alignment (initial_offset_ptr, boundary);
-+
-   *offset_ptr = *initial_offset_ptr;
- 
- #ifdef PUSH_ROUNDING
---- gcc-2.95.3-orig/gcc/rtl.h  Thu Jan 25 08:03:22 2001
-+++ gcc-2.95.3/gcc/rtl.h       Tue Aug 14 11:16:20 2001
-@@ -168,7 +168,8 @@
-      either changing how we compute the frame address or saving and
-      restoring registers in the prologue and epilogue.  
-      1 in a MEM if the MEM refers to a scalar, rather than a member of
--     an aggregate.  */
-+     an aggregate.
-+     1 in a SYMBOL_REF if the symbol is weak.  */
-   unsigned frame_related : 1;
-   /* The first element of the operands of this rtx.
-      The number of operands and their types are controlled
-@@ -661,6 +662,9 @@
- /* 1 means a SYMBOL_REF has been the library function in emit_library_call.  */
- #define SYMBOL_REF_USED(RTX) ((RTX)->used)
- 
-+/* 1 means a SYMBOL_REF is weak.  */
-+#define SYMBOL_REF_WEAK(RTX) ((RTX)->frame_related)
-+
- /* For an INLINE_HEADER rtx, FIRST_FUNCTION_INSN is the first insn
-    of the function that is not involved in copying parameters to
-    pseudo-registers.  FIRST_PARM_INSN is the very first insn of
-@@ -888,6 +892,12 @@
- /* For a NOTE_INSN_LIVE note, the original basic block number.  */
- #define RANGE_LIVE_ORIG_BLOCK(INSN) (XINT (INSN, 1))
- \f
-+/* Nonzero if we need to distinguish between the return value of this function
-+   and the return value of a function called by this function.  This helps
-+   integrate.c.
-+   This is 1 until after the rtl generation pass.  */
-+extern int rtx_equal_function_value_matters;
-+
- /* Generally useful functions.  */
- 
- /* The following functions accept a wide integer argument.  Rather than
---- gcc-2.95.3-orig/gcc/rtlanal.c      Thu Jan 25 08:03:22 2001
-+++ gcc-2.95.3/gcc/rtlanal.c   Tue Aug 14 11:16:20 2001
-@@ -136,11 +136,9 @@
-   switch (code)
-     {
-     case SYMBOL_REF:
-+      return SYMBOL_REF_WEAK (x);
-+
-     case LABEL_REF:
--      /* SYMBOL_REF is problematic due to the possible presence of
--       a #pragma weak, but to say that loads from symbols can trap is
--       *very* costly.  It's not at all clear what's best here.  For
--       now, we ignore the impact of #pragma weak.  */
-       return 0;
- 
-     case REG:
---- gcc-2.95.3-orig/gcc/stor-layout.c  Thu Mar 11 07:56:20 1999
-+++ gcc-2.95.3/gcc/stor-layout.c       Tue Aug 14 11:15:53 2001
-@@ -264,8 +264,8 @@
-       if (spec_size == 0 && DECL_NAME (decl) != 0)
-       abort ();
- 
--      /* Size is specified number of bits.  */
--      DECL_SIZE (decl) = size_int (spec_size);
-+      /* Size is specified in number of bits.  */
-+      DECL_SIZE (decl) = bitsize_int (spec_size, 0);
-     }
-   /* Force alignment required for the data type.
-      But if the decl itself wants greater alignment, don't override that.
-@@ -301,7 +301,7 @@
-         DECL_ALIGN (decl) = MAX ((unsigned) GET_MODE_ALIGNMENT (xmode),
-                                  DECL_ALIGN (decl));
-         DECL_MODE (decl) = xmode;
--        DECL_SIZE (decl) = size_int (GET_MODE_BITSIZE (xmode));
-+        DECL_SIZE (decl) = bitsize_int (GET_MODE_BITSIZE (xmode), 0);
-         /* This no longer needs to be accessed as a bit field.  */
-         DECL_BIT_FIELD (decl) = 0;
-       }
-@@ -520,7 +520,7 @@
-       DECL_FIELD_BITPOS (field) = var_size;
-       else
-       {
--        DECL_FIELD_BITPOS (field) = size_int (const_size);
-+        DECL_FIELD_BITPOS (field) = bitsize_int (const_size, 0L);
- 
-         /* If this field ended up more aligned than we thought it
-            would be (we approximate this by seeing if its position
-@@ -562,7 +562,7 @@
- 
-   if (var_size == 0)
-     {
--      TYPE_SIZE (rec) = size_int (const_size);
-+      TYPE_SIZE (rec) = bitsize_int (const_size, 0L);
-     }
-   else
-     {
-@@ -610,7 +610,7 @@
-   /* The size of the union, based on the fields scanned so far,
-      is max (CONST_SIZE, VAR_SIZE).
-      VAR_SIZE may be null; then CONST_SIZE by itself is the size.  */
--  register int const_size = 0;
-+  register HOST_WIDE_INT const_size = 0;
-   register tree var_size = 0;
- 
- #ifdef STRUCTURE_SIZE_BOUNDARY
-@@ -627,6 +627,8 @@
- 
-   for (field = TYPE_FIELDS (rec); field; field = TREE_CHAIN (field))
-     {
-+      tree dsize;
-+      
-       /* Enums which are local to this class need not be laid out.  */
-       if (TREE_CODE (field) == CONST_DECL || TREE_CODE (field) == TYPE_DECL)
-       continue;
-@@ -645,19 +647,22 @@
-       union_align = MAX (union_align, TYPE_ALIGN (TREE_TYPE (field)));
- #endif
- 
-+      dsize = DECL_SIZE (field);
-       if (TREE_CODE (rec) == UNION_TYPE)
-       {
-         /* Set union_size to max (decl_size, union_size).
-            There are more and less general ways to do this.
-            Use only CONST_SIZE unless forced to use VAR_SIZE.  */
- 
--        if (TREE_CODE (DECL_SIZE (field)) == INTEGER_CST)
-+        if (TREE_CODE (dsize) == INTEGER_CST
-+              && ! TREE_CONSTANT_OVERFLOW (dsize)
-+              && TREE_INT_CST_HIGH (dsize) == 0)
-           const_size
--            = MAX (const_size, TREE_INT_CST_LOW (DECL_SIZE (field)));
-+            = MAX (const_size, TREE_INT_CST_LOW (dsize));
-         else if (var_size == 0)
--          var_size = DECL_SIZE (field);
-+          var_size = dsize;
-         else
--          var_size = size_binop (MAX_EXPR, var_size, DECL_SIZE (field));
-+          var_size = size_binop (MAX_EXPR, var_size, dsize);
-       }
-       else if (TREE_CODE (rec) == QUAL_UNION_TYPE)
-       var_size = fold (build (COND_EXPR, sizetype, DECL_QUALIFIER (field),
---- gcc-2.95.3-orig/gcc/toplev.c       Thu Jan 25 08:03:23 2001
-+++ gcc-2.95.3/gcc/toplev.c    Tue Aug 14 11:15:53 2001
-@@ -137,8 +137,6 @@
- #define DIR_SEPARATOR '/'
- #endif
- 
--extern int rtx_equal_function_value_matters;
--
- #if ! (defined (VMS) || defined (OS2))
- extern char **environ;
- #endif
---- gcc-2.95.3-orig/gcc/varasm.c       Mon Feb 19 08:02:02 2001
-+++ gcc-2.95.3/gcc/varasm.c    Tue Aug 14 11:16:20 2001
-@@ -723,6 +723,8 @@
-        Also handle vars declared register invalidly.  */
-       if (DECL_RTL (decl) == 0)
-       {
-+        rtx x;
-+
-         /* Can't use just the variable's own name for a variable
-            whose scope is less than the whole file.
-            Concatenate a distinguishing number.  */
-@@ -752,8 +754,10 @@
-                                  new_name, strlen (new_name));
-           }
- 
--        DECL_RTL (decl) = gen_rtx_MEM (DECL_MODE (decl),
--                                       gen_rtx_SYMBOL_REF (Pmode, name));
-+        x = gen_rtx_SYMBOL_REF (Pmode, name);
-+        SYMBOL_REF_WEAK (x) = DECL_WEAK (decl);
-+        DECL_RTL (decl) = gen_rtx_MEM (DECL_MODE (decl), x);
-+
-         MEM_ALIAS_SET (DECL_RTL (decl)) = get_alias_set (decl);
-           
-         /* If this variable is to be treated as volatile, show its