aboutsummaryrefslogtreecommitdiff
path: root/3.2.2
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2008-06-22 11:00:01 +0000
committerMike Frysinger <vapier@gentoo.org>2008-06-22 11:00:01 +0000
commitdbd04aa83b38eee68f21a3442f9321c130691fef (patch)
tree6c1d068009da68a45847178fb19486334188efcc /3.2.2
parentinitial 4.3.1 patchset based on last 4.3.0 patchset (diff)
downloadgcc-patches-dbd04aa83b38eee68f21a3442f9321c130691fef.tar.gz
gcc-patches-dbd04aa83b38eee68f21a3442f9321c130691fef.tar.bz2
gcc-patches-dbd04aa83b38eee68f21a3442f9321c130691fef.zip
move from $FILESDIR
Diffstat (limited to '3.2.2')
-rw-r--r--3.2.2/gentoo/21_all_gcc32-pr7768.patch65
-rw-r--r--3.2.2/gentoo/22_all_gcc32-pr8213.patch69
-rw-r--r--3.2.2/gentoo/23_all_gcc-3.2.2-cross-compile.patch11
-rw-r--r--3.2.2/gentoo/24_all_gcc-3.2.2-no-COPYING-cross-compile.patch40
4 files changed, 185 insertions, 0 deletions
diff --git a/3.2.2/gentoo/21_all_gcc32-pr7768.patch b/3.2.2/gentoo/21_all_gcc32-pr7768.patch
new file mode 100644
index 0000000..72b4910
--- /dev/null
+++ b/3.2.2/gentoo/21_all_gcc32-pr7768.patch
@@ -0,0 +1,65 @@
+2002-09-14 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/7768
+ * pt.c (build_template_decl): Copy DECL_DESTRUCTOR_P.
+
+2002-09-15 Nathan Sidwell <nathan@codesourcery.com>
+
+ * g++.dg/template/pretty1.C: New test.
+
+--- gcc-3.2.1/gcc/cp/pt.c.pr7768 2003-01-20 14:14:15.000000000 +0100
++++ gcc-3.2.1/gcc/cp/pt.c 2003-02-08 14:42:15.000000000 +0100
+@@ -2108,6 +2108,7 @@ build_template_decl (decl, parms)
+ DECL_VIRTUAL_CONTEXT (tmpl) = DECL_VIRTUAL_CONTEXT (decl);
+ DECL_STATIC_FUNCTION_P (tmpl) = DECL_STATIC_FUNCTION_P (decl);
+ DECL_CONSTRUCTOR_P (tmpl) = DECL_CONSTRUCTOR_P (decl);
++ DECL_DESTRUCTOR_P (tmpl) = DECL_DESTRUCTOR_P (decl);
+ DECL_NONCONVERTING_P (tmpl) = DECL_NONCONVERTING_P (decl);
+ DECL_ASSIGNMENT_OPERATOR_P (tmpl) = DECL_ASSIGNMENT_OPERATOR_P (decl);
+ if (DECL_OVERLOADED_OPERATOR_P (decl))
+--- gcc-3.2.1/gcc/testsuite/g++.dg/template/pretty1.C.pr7768 2003-02-08 14:42:03.000000000 +0100
++++ gcc-3.2.1/gcc/testsuite/g++.dg/template/pretty1.C 2003-02-08 14:41:52.000000000 +0100
+@@ -0,0 +1,43 @@
++// { dg-do run }
++
++// Copyright (C) 2002 Free Software Foundation, Inc.
++// Contributed by Nathan Sidwell 14 Sep 2002 <nathan@codesourcery.com>
++
++// PR 7768 template dtor pretty function wrong
++
++#include <string.h>
++
++static size_t current = 0;
++static bool error = false;
++
++static char const *names[] =
++{
++ "X<T>::X() [with T = void]",
++ "X<T>::~X() [with T = void]",
++ 0
++};
++
++void Verify (char const *ptr)
++{
++ error = strcmp (ptr, names[current++]);
++}
++
++template <typename T>
++struct X
++{
++ X() { Verify (__PRETTY_FUNCTION__); }
++ ~X() { Verify (__PRETTY_FUNCTION__); }
++};
++
++int main()
++{
++ {
++ X<void> x;
++
++ if (error)
++ return current;
++ }
++ if (error)
++ return current;
++ return 0;
++}
diff --git a/3.2.2/gentoo/22_all_gcc32-pr8213.patch b/3.2.2/gentoo/22_all_gcc32-pr8213.patch
new file mode 100644
index 0000000..762d198
--- /dev/null
+++ b/3.2.2/gentoo/22_all_gcc32-pr8213.patch
@@ -0,0 +1,69 @@
+2002-10-30 Jan Hubicka <jh@suse.cz>
+
+ PR target/8213
+ * config/i386/i386.c (ix86_expand_int_movcc): Fix RTL sharing problem.
+
+2002-11-04 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com>
+
+ * testsuite/gcc.c-torture/execute/20021104.c: New test.
+
+--- gcc-3.2/gcc/config/i386/i386.c.pr8213 2002-11-04 12:56:37.000000000 -0500
++++ gcc-3.2/gcc/config/i386/i386.c 2002-11-04 13:21:22.000000000 -0500
+@@ -8274,11 +8274,11 @@ ix86_expand_int_movcc (operands)
+ /* On x86_64 the lea instruction operates on Pmode, so we need to get arithmetics
+ done in proper mode to match. */
+ if (diff == 1)
+- tmp = out;
++ tmp = copy_rtx (out);
+ else
+ {
+ rtx out1;
+- out1 = out;
++ out1 = copy_rtx (out);
+ tmp = gen_rtx_MULT (mode, out1, GEN_INT (diff & ~1));
+ nops++;
+ if (diff & 1)
+@@ -8302,12 +8302,12 @@ ix86_expand_int_movcc (operands)
+ clob = gen_rtx_REG (CCmode, FLAGS_REG);
+ clob = gen_rtx_CLOBBER (VOIDmode, clob);
+
+- tmp = gen_rtx_SET (VOIDmode, out, tmp);
++ tmp = gen_rtx_SET (VOIDmode, copy_rtx (out), tmp);
+ tmp = gen_rtx_PARALLEL (VOIDmode, gen_rtvec (2, copy_rtx (tmp), clob));
+ emit_insn (tmp);
+ }
+ else
+- emit_insn (gen_rtx_SET (VOIDmode, out, tmp));
++ emit_insn (gen_rtx_SET (VOIDmode, copy_rtx (out), tmp));
+ }
+ if (out != operands[0])
+ emit_move_insn (operands[0], copy_rtx (out));
+--- gcc-3.2/gcc/testsuite/gcc.c-torture/execute/20021104.c.pr8213 2002-11-04 13:22:33.000000000 -0500
++++ gcc-3.2/gcc/testsuite/gcc.c-torture/execute/20021104.c 2002-11-04 13:24:12.000000000 -0500
+@@ -0,0 +1,26 @@
++/* PR target/8213
++ This testcase, distilled from GNU gmp 4.1, was miscompiled on x86-64
++ because of RTL sharing problems. */
++
++int f(long x, long y)
++{
++ if ((x < 0) == (y < 0))
++ {
++ if (x == 0)
++ return -(y != 0);
++ if (y == 0)
++ return x != 0;
++ }
++ else
++ {
++ return x >= 0 ? 1 : -1;
++ }
++}
++
++int main(void)
++{
++ if (f(-1, 1) != -1)
++ abort();
++
++ return 0;
++}
diff --git a/3.2.2/gentoo/23_all_gcc-3.2.2-cross-compile.patch b/3.2.2/gentoo/23_all_gcc-3.2.2-cross-compile.patch
new file mode 100644
index 0000000..076cbf1
--- /dev/null
+++ b/3.2.2/gentoo/23_all_gcc-3.2.2-cross-compile.patch
@@ -0,0 +1,11 @@
+--- gcc/configure.orig 2005-08-20 04:28:13.000000000 -0400
++++ gcc/configure 2005-08-20 04:28:38.000000000 -0400
+@@ -6790,7 +6790,7 @@
+ # This prevents libgcc2 from containing any code which requires libc
+ # support.
+ inhibit_libc=
+-if test x$host != x$target && test x$with_headers = x; then
++if test x$host != x$target && { test "x$with_headers" = x || test "x$with_headers" = xno ; } ; then
+ inhibit_libc=-Dinhibit_libc
+ else
+ if test x$with_newlib = xyes; then
diff --git a/3.2.2/gentoo/24_all_gcc-3.2.2-no-COPYING-cross-compile.patch b/3.2.2/gentoo/24_all_gcc-3.2.2-no-COPYING-cross-compile.patch
new file mode 100644
index 0000000..6f42e74
--- /dev/null
+++ b/3.2.2/gentoo/24_all_gcc-3.2.2-no-COPYING-cross-compile.patch
@@ -0,0 +1,40 @@
+--- gcc-3.2.2/configure.in
++++ gcc-3.2.2/configure.in
+@@ -517,37 +517,6 @@
+ esac
+ fi
+
+-# Handle ${copy_dirs}
+-set fnord ${copy_dirs}
+-shift
+-while [ $# != 0 ]; do
+- if [ -f $2/COPIED ] && [ x"`cat $2/COPIED`" = x"$1" ]; then
+- :
+- else
+- echo Copying $1 to $2
+-
+- # Use the install script to create the directory and all required
+- # parent directories.
+- if [ -d $2 ]; then
+- :
+- else
+- echo >config.temp
+- ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
+- fi
+-
+- # Copy the directory, assuming we have tar.
+- # FIXME: Should we use B in the second tar? Not all systems support it.
+- (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
+-
+- # It is the responsibility of the user to correctly adjust all
+- # symlinks. If somebody can figure out how to handle them correctly
+- # here, feel free to add the code.
+-
+- echo $1 > $2/COPIED
+- fi
+- shift; shift
+-done
+-
+ # Configure extra directories which are host specific
+
+ case "${host}" in