public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo commit in src/patchsets/gcc/4.5.4/gentoo: 00_all_gcc-4.1-alpha-mieee-default.patch 01_all_gcc-4.1-alpha-asm-mcpu.patch 03_all_gcc43-java-nomulti.patch 08_all_gcc-4.1-cross-compile.patch 09_all_gcc-4.5-Wtrampolines.patch 10_all_gcc-default-format-security.patch 10_all_gcc-default-fortify-source.patch 11_all_gcc-netbsd-symbolic.patch 14_all_gcc-sparc64-bsd.patch 15_all_gcc-libgomp-no-werror.patch 22_all_4.6_pr45094_arm-dword-move.patch 23_all_4.6_pr45886_ARM_PCS_VFP.patch 30_all_gcc-4.5-ppc-msingle-pic-base.patch 31_all_gcc-4.4-ppc-fpic-mrelocatable.patch 33_all_armhf.patch 40_all_gcc-4.4-libiberty.h-asprintf.patch 47_all_arm-unbreak-armv4t.patch 51_all_gcc-3.4-libiberty-pic.patch 53_all_gcc4-superh-default-multilib.patch 61_all_gcc4-ia64-noteGNUstack.patch 74_all_sh-pr24836.patch 92_all_freebsd-pie.patch 93_all_gcc-4.5-cloog-dl.patch 94_all_gcc-4.5-pch-nostdinc.patch 95_all_arm-pr43440.patch 99_all_testsuite-01-Wformat.patch 99_all_testsuite-02 -Wtrampolines.pat ch 99_all_testsuite-03-check-lto.patch README.history
@ 2012-07-15  5:28 Ryan Hill (dirtyepic)
  0 siblings, 0 replies; only message in thread
From: Ryan Hill (dirtyepic) @ 2012-07-15  5:28 UTC (permalink / raw
  To: gentoo-commits

dirtyepic    12/07/15 05:28:55

  Added:                00_all_gcc-4.1-alpha-mieee-default.patch
                        01_all_gcc-4.1-alpha-asm-mcpu.patch
                        03_all_gcc43-java-nomulti.patch
                        08_all_gcc-4.1-cross-compile.patch
                        09_all_gcc-4.5-Wtrampolines.patch
                        10_all_gcc-default-format-security.patch
                        10_all_gcc-default-fortify-source.patch
                        11_all_gcc-netbsd-symbolic.patch
                        14_all_gcc-sparc64-bsd.patch
                        15_all_gcc-libgomp-no-werror.patch
                        22_all_4.6_pr45094_arm-dword-move.patch
                        23_all_4.6_pr45886_ARM_PCS_VFP.patch
                        30_all_gcc-4.5-ppc-msingle-pic-base.patch
                        31_all_gcc-4.4-ppc-fpic-mrelocatable.patch
                        33_all_armhf.patch
                        40_all_gcc-4.4-libiberty.h-asprintf.patch
                        47_all_arm-unbreak-armv4t.patch
                        51_all_gcc-3.4-libiberty-pic.patch
                        53_all_gcc4-superh-default-multilib.patch
                        61_all_gcc4-ia64-noteGNUstack.patch
                        74_all_sh-pr24836.patch 92_all_freebsd-pie.patch
                        93_all_gcc-4.5-cloog-dl.patch
                        94_all_gcc-4.5-pch-nostdinc.patch
                        95_all_arm-pr43440.patch
                        99_all_testsuite-01-Wformat.patch
                        99_all_testsuite-02-Wtrampolines.patch
                        99_all_testsuite-03-check-lto.patch README.history
  Log:
  Initial 4.5.4 patchset based off latest 4.5.3 patchset.

Revision  Changes    Path
1.1                  src/patchsets/gcc/4.5.4/gentoo/00_all_gcc-4.1-alpha-mieee-default.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/00_all_gcc-4.1-alpha-mieee-default.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/00_all_gcc-4.1-alpha-mieee-default.patch?rev=1.1&content-type=text/plain

Index: 00_all_gcc-4.1-alpha-mieee-default.patch
===================================================================
Set the default behavior on alpha to use -mieee since the large majority of
time we want this (bad/weird things can happen with packages built without
-mieee).

To satisfy those people who may not want -mieee forced on them all the time,
we also provide -mno-ieee.

Patch by Mike Frysinger <vapier@gentoo.org>

--- gcc-4.3.0/gcc/config/alpha/alpha.h
+++ gcc-4.3.0/gcc/config/alpha/alpha.h
@@ -95,6 +95,8 @@
   while (0)
 #endif
 
+#define CPP_SPEC "%{!no-ieee:-mieee}"
+
 #define WORD_SWITCH_TAKES_ARG(STR)		\
  (!strcmp (STR, "rpath") || DEFAULT_WORD_SWITCH_TAKES_ARG(STR))
 
--- gcc-4.3.0/gcc/config/alpha/alpha.opt
+++ gcc-4.3.0/gcc/config/alpha/alpha.opt
@@ -39,7 +39,7 @@
 Request IEEE-conformant math library routines (OSF/1)
 
 mieee
-Target Report RejectNegative Mask(IEEE)
+Target Report Mask(IEEE)
 Emit IEEE-conformant code, without inexact exceptions
 
 mieee-with-inexact



1.1                  src/patchsets/gcc/4.5.4/gentoo/01_all_gcc-4.1-alpha-asm-mcpu.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/01_all_gcc-4.1-alpha-asm-mcpu.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/01_all_gcc-4.1-alpha-asm-mcpu.patch?rev=1.1&content-type=text/plain

Index: 01_all_gcc-4.1-alpha-asm-mcpu.patch
===================================================================
http://bugs.gentoo.org/170146
http://gcc.gnu.org/ml/gcc-patches/2009-11/msg00403.html

alpha: turn -mcpu=<cpu> into -m<cpu> for assembler all the time

--- gcc-x/gcc/config/alpha/elf.h
+++ gcc-x/gcc/config/alpha/elf.h
@@ -46,7 +46,7 @@
 #define CC1_SPEC  "%{G*}"
 
 #undef  ASM_SPEC
-#define ASM_SPEC  "%{G*} %{relax:-relax} %{!gstabs*:-no-mdebug}%{gstabs*:-mdebug}"
+#define ASM_SPEC  "%{G*} %{relax:-relax} %{!gstabs*:-no-mdebug}%{gstabs*:-mdebug} %{mcpu=*:-m%*}"
 
 #undef  IDENT_ASM_OP
 #define IDENT_ASM_OP "\t.ident\t"



1.1                  src/patchsets/gcc/4.5.4/gentoo/03_all_gcc43-java-nomulti.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/03_all_gcc43-java-nomulti.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/03_all_gcc43-java-nomulti.patch?rev=1.1&content-type=text/plain

Index: 03_all_gcc43-java-nomulti.patch
===================================================================
--- libjava/configure.ac.jj
+++ libjava/configure.ac
@@ -82,6 +82,13 @@ AC_ARG_ENABLE(java-maintainer-mode,
 	[allow rebuilding of .class and .h files]))
 AM_CONDITIONAL(JAVA_MAINTAINER_MODE, test "$enable_java_maintainer_mode" = yes)
 
+AC_ARG_ENABLE(libjava-multilib,
+	AS_HELP_STRING([--enable-libjava-multilib], [build libjava as multilib]))
+if test "$enable_libjava_multilib" = no; then
+  multilib=no
+  ac_configure_args="$ac_configure_args --disable-multilib"
+fi
+
 # It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
 GCC_NO_EXECUTABLES
 
--- libjava/configure.jj
+++ libjava/configure
@@ -1018,6 +1018,8 @@ Optional Features:
   --enable-gconf-peer     compile GConf native peers for util.preferences
   --enable-java-maintainer-mode
                           allow rebuilding of .class and .h files
+  --enable-libjava-multilib
+                          build libjava as multilib
   --disable-dependency-tracking  speeds up one-time build
   --enable-dependency-tracking   do not reject slow dependency extractors
   --enable-maintainer-mode  enable make rules and dependencies not useful
@@ -1848,6 +1850,16 @@ else
 fi
 
 
+# Check whether --enable-libjava-multilib was given.
+if test "${enable_libjava_multilib+set}" = set; then
+  enableval=$enable_libjava_multilib;
+fi
+
+if test "$enable_libjava_multilib" = no; then
+  multilib=no
+  ac_configure_args="$ac_configure_args --disable-multilib"
+fi
+
 # It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
 
 



1.1                  src/patchsets/gcc/4.5.4/gentoo/08_all_gcc-4.1-cross-compile.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/08_all_gcc-4.1-cross-compile.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/08_all_gcc-4.1-cross-compile.patch?rev=1.1&content-type=text/plain

Index: 08_all_gcc-4.1-cross-compile.patch
===================================================================
Some notes on the 'bootstrap with or without libc headers' debate:
http://linuxfromscratch.org/pipermail/lfs-dev/2005-July/052409.html
http://gcc.gnu.org/ml/gcc/2005-07/msg01195.html

--- gcc/unwind-dw2.c
+++ gcc/unwind-dw2.c
@@ -253,9 +253,11 @@
 }
 #endif
 
+#ifndef inhibit_libc
 #ifdef MD_UNWIND_SUPPORT
 #include MD_UNWIND_SUPPORT
 #endif
+#endif
 \f
 /* Extract any interesting information from the CIE for the translation
    unit F belongs to.  Return a pointer to the byte after the augmentation,
--- gcc/configure
+++ gcc/configure
@@ -12857,7 +12857,7 @@ then
 	    | powerpc*-*-*,powerpc64*-*-*)
 		CROSS="$CROSS -DNATIVE_CROSS" ;;
 	esac
-elif test "x$TARGET_SYSTEM_ROOT" != x; then
+elif test "x$TARGET_SYSTEM_ROOT" != x -o $build != $host; then
         SYSTEM_HEADER_DIR=$build_system_header_dir
 fi
 
--- gcc/configure.ac
+++ gcc/configure.ac
@@ -1717,7 +1717,7 @@ then
 	    | powerpc*-*-*,powerpc64*-*-*)
 		CROSS="$CROSS -DNATIVE_CROSS" ;;
 	esac
-elif test "x$TARGET_SYSTEM_ROOT" != x; then
+elif test "x$TARGET_SYSTEM_ROOT" != x -o $build != $host; then
         SYSTEM_HEADER_DIR=$build_system_header_dir 
 fi
 



1.1                  src/patchsets/gcc/4.5.4/gentoo/09_all_gcc-4.5-Wtrampolines.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/09_all_gcc-4.5-Wtrampolines.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/09_all_gcc-4.5-Wtrampolines.patch?rev=1.1&content-type=text/plain

Index: 09_all_gcc-4.5-Wtrampolines.patch
===================================================================
2010-07-15  Magnus Granberg  <zorry@gentoo.org>
            Kevin F. Quinn  <kevquinn@gentoo.org>

            * builtins.c (expand_builtin_init_trampoline): If
              -Wtrampolines make a warning.
            * common.opt:  Add -Wtrampolines.
            * doc/invoke.texi:  Add -Wtrampolines.

2010-07-31	Magnus Granberg <zorry@gentoo.org>

            #328451 set -Wtrampolines as default

http://gcc.gnu.org/viewcvs?view=revision&revision=162205

--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -5155,6 +5155,10 @@ expand_builtin_init_trampoline (tree exp)
   targetm.calls.trampoline_init (m_tramp, t_func, r_chain);
 
   trampolines_created = 1;
+
+  warning_at (DECL_SOURCE_LOCATION (t_func), OPT_Wtrampolines,
+              "trampoline generated for nested function %qD", t_func);
+
   return const0_rtx;
 }
 
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -192,6 +192,10 @@ Wsystem-headers
 Common Var(warn_system_headers) Warning
 Do not suppress warnings from system headers
 
+Wtrampolines
+Common Var(warn_trampolines) Init(1) Warning
+Warn whenever a trampoline is generated
+
 Wtype-limits
 Common Var(warn_type_limits) Init(-1) Warning
 Warn if a comparison is always true or always false due to the limited range of the data type
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -3611,6 +3611,21 @@ code.  However, note that using @option{-Wall} in conjunction with this
 option will @emph{not} warn about unknown pragmas in system
 headers---for that, @option{-Wunknown-pragmas} must also be used.
 
+@item -Wtrampolines
+@opindex Wtrampolines
+@opindex Wno-trampolines
+ Warn about trampolines generated for pointers to nested functions.
+ 
+ NOTE: In Gentoo, @option{-Wtrampolines} is set by default.
+ To disable, specify @option{-Wno-trampolines}
+
+ A trampoline is a small piece of data or code that is created at run
+ time on the stack when the address of a nested function is taken, and
+ is used to call the nested function indirectly.  For some targets, it
+ is made up of data only and thus requires no special treatment.  But,
+ for most targets, it is made up of code and thus requires the stack
+ to be made executable in order for the program to work properly.
+
 @item -Wfloat-equal
 @opindex Wfloat-equal
 @opindex Wno-float-equal



1.1                  src/patchsets/gcc/4.5.4/gentoo/10_all_gcc-default-format-security.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/10_all_gcc-default-format-security.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/10_all_gcc-default-format-security.patch?rev=1.1&content-type=text/plain

Index: 10_all_gcc-default-format-security.patch
===================================================================
ripped from Debian

# DP: Turn on -Wformat -Wformat-security by  default for C, C++, ObjC, ObjC++.

--- gcc/c-common.c
+++ gcc/c-common.c
@@ -277,7 +277,7 @@
 /* Warn about format/argument anomalies in calls to formatted I/O functions
    (*printf, *scanf, strftime, strfmon, etc.).  */
 
-int warn_format;
+int warn_format = 1;
 
 /* Warn about using __null (as NULL in C++) as sentinel.  For code compiled
    with GCC this doesn't matter as __null is guaranteed to have the right
--- gcc/c.opt
+++ gcc/c.opt
@@ -228,7 +228,7 @@
 Warn about format strings that contain NUL bytes
 
 Wformat-security
-C ObjC C++ ObjC++ Var(warn_format_security) Warning
+C ObjC C++ ObjC++ Var(warn_format_security) Init(1) Warning
 Warn about possible security problems with format functions
 
 Wformat-y2k
--- gcc/doc/invoke.texi
+++ gcc/doc/invoke.texi
@@ -2802,6 +2802,9 @@
 @option{-Wformat-nonliteral}, @option{-Wformat-security}, and
 @option{-Wformat=2} are available, but are not included in @option{-Wall}.
 
+NOTE: In Gentoo, this option is enabled by default for C, C++, ObjC, ObjC++.
+To disable, use @option{-Wformat=0}.
+
 @item -Wformat-y2k
 @opindex Wformat-y2k
 @opindex Wno-format-y2k
@@ -2849,6 +2852,11 @@
 in future warnings may be added to @option{-Wformat-security} that are not
 included in @option{-Wformat-nonliteral}.)
 
+NOTE: In Gentoo, this option is enabled by default for C, C++, ObjC, ObjC++.
+To disable, use @option{-Wno-format-security}, or disable all format warnings
+with @option{-Wformat=0}.  To make format security warnings fatal, specify
+@option{-Werror=format-security}.
+
 @item -Wformat=2
 @opindex Wformat=2
 @opindex Wno-format=2



1.1                  src/patchsets/gcc/4.5.4/gentoo/10_all_gcc-default-fortify-source.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/10_all_gcc-default-fortify-source.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/10_all_gcc-default-fortify-source.patch?rev=1.1&content-type=text/plain

Index: 10_all_gcc-default-fortify-source.patch
===================================================================
ripped from Debian

# DP: Turn on -D_FORTIFY_SOURCE=2 by default for C, C++, ObjC, ObjC++.

--- gcc/doc/invoke.texi
+++ gcc/doc/invoke.texi
@@ -5204,6 +5204,11 @@
 Please note the warning under @option{-fgcse} about
 invoking @option{-O2} on programs that use computed gotos.
 
+NOTE: In Gentoo, @option{-D_FORTIFY_SOURCE=2} is set by default, and is
+activated when @option{-O} is set to 2 or higher.  This enables additional
+compile-time and run-time checks for several libc functions.  To disable,
+specify either @option{-U_FORTIFY_SOURCE} or @option{-D_FORTIFY_SOURCE=0}.
+
 @item -O3
 @opindex O3
 Optimize yet more.  @option{-O3} turns on all optimizations specified by
--- gcc/gcc.c
+++ gcc/gcc.c
@@ -802,6 +802,7 @@
  %{H} %C %{D*&U*&A*} %{i*} %Z %i\
  %{fmudflap:-D_MUDFLAP -include mf-runtime.h}\
  %{fmudflapth:-D_MUDFLAP -D_MUDFLAPTH -include mf-runtime.h}\
+ %{!D_FORTIFY_SOURCE:%{!D_FORTIFY_SOURCE=*:%{!U_FORTIFY_SOURCE:-D_FORTIFY_SOURCE=2}}}\
  %{E|M|MM:%W{o*}}";
 
 /* This contains cpp options which are common with cc1_options and are passed



1.1                  src/patchsets/gcc/4.5.4/gentoo/11_all_gcc-netbsd-symbolic.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/11_all_gcc-netbsd-symbolic.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/11_all_gcc-netbsd-symbolic.patch?rev=1.1&content-type=text/plain

Index: 11_all_gcc-netbsd-symbolic.patch
===================================================================
http://bugs.gentoo.org/122698

--- gcc/config/netbsd-elf.h
+++ gcc/config/netbsd-elf.h
@@ -83,6 +83,7 @@
 #define NETBSD_LINK_SPEC_ELF \
   "%{assert*} %{R*} %{rpath*} \
    %{shared:-shared} \
+   %{symbolic:-Bsymbolic} \
    %{!shared: \
      -dc -dp \
      %{!nostdlib: \



1.1                  src/patchsets/gcc/4.5.4/gentoo/14_all_gcc-sparc64-bsd.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/14_all_gcc-sparc64-bsd.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/14_all_gcc-sparc64-bsd.patch?rev=1.1&content-type=text/plain

Index: 14_all_gcc-sparc64-bsd.patch
===================================================================
--- a/gcc/config/sparc/freebsd.h
+++ b/gcc/config/sparc/freebsd.h
@@ -26,9 +26,22 @@
 /* FreeBSD needs the platform name (sparc64) defined.
    Emacs needs to know if the arch is 64 or 32-bits.  */
 
-#undef  CPP_CPU64_DEFAULT_SPEC
-#define CPP_CPU64_DEFAULT_SPEC \
-  "-D__sparc64__ -D__sparc_v9__ -D__sparcv9 -D__arch64__"
+#undef  FBSD_TARGET_CPU_CPP_BUILTINS
+#define FBSD_TARGET_CPU_CPP_BUILTINS()                  \
+  do                                                    \
+    {                                                   \
+      if (TARGET_ARCH64)                                \
+        {                                               \
+          builtin_define ("__sparc64__");               \
+          builtin_define ("__sparc_v9__");              \
+          builtin_define ("__sparcv9");                 \
+        }                                               \
+      else                                              \
+        builtin_define ("__sparc");                     \
+      builtin_define ("__sparc__");                     \
+    }                                                   \
+  while (0)
+
 
 #define LINK_SPEC "%(link_arch)						\
   %{!mno-relax:%{!r:-relax}}						\



1.1                  src/patchsets/gcc/4.5.4/gentoo/15_all_gcc-libgomp-no-werror.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/15_all_gcc-libgomp-no-werror.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/15_all_gcc-libgomp-no-werror.patch?rev=1.1&content-type=text/plain

Index: 15_all_gcc-libgomp-no-werror.patch
===================================================================
libgomp does not respect --disable-werror

http://bugs.gentoo.org/229059
http://gcc.gnu.org/PR38436

--- gcc-4.3.2/libgomp/configure
+++ gcc-4.3.2/libgomp/configure
@@ -3297,7 +3297,7 @@
 
 # Add -Wall -Werror if we are using GCC.
 if test "x$GCC" = "xyes"; then
-  XCFLAGS="$XCFLAGS -Wall -Werror"
+  XCFLAGS="$XCFLAGS -Wall"
 fi
 
 # Find other programs we need.



1.1                  src/patchsets/gcc/4.5.4/gentoo/22_all_4.6_pr45094_arm-dword-move.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/22_all_4.6_pr45094_arm-dword-move.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/22_all_4.6_pr45094_arm-dword-move.patch?rev=1.1&content-type=text/plain

Index: 22_all_4.6_pr45094_arm-dword-move.patch
===================================================================
Backport from 4.6

http://gcc.gnu.org/PR45094
https://bugs.gentoo.org/352064

--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -12182,13 +12182,13 @@ output_move_double (rtx *operands)
 	    {
 	      if (GET_CODE (XEXP (operands[0], 0)) == PRE_MODIFY)
 		{
-		  output_asm_insn ("ldr%?\t%0, [%1, %2]!", otherops);
-		  output_asm_insn ("ldr%?\t%H0, [%1, #4]", otherops);
+		  output_asm_insn ("str%?\t%0, [%1, %2]!", otherops);
+		  output_asm_insn ("str%?\t%H0, [%1, #4]", otherops);
 		}
 	      else
 		{
-		  output_asm_insn ("ldr%?\t%H0, [%1, #4]", otherops);
-		  output_asm_insn ("ldr%?\t%0, [%1], %2", otherops);
+		  output_asm_insn ("str%?\t%H0, [%1, #4]", otherops);
+		  output_asm_insn ("str%?\t%0, [%1], %2", otherops);
 		}
 	    }
 	  else if (GET_CODE (XEXP (operands[0], 0)) == PRE_MODIFY)
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/pr45094.c
@@ -0,0 +1,26 @@
+/* { dg-do run } */
+/* { dg-require-effective-target arm_neon_hw } */
+/* { dg-options "-O2 -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp" } */
+
+#include <stdlib.h>
+
+long long buffer[32];
+
+void __attribute__((noinline)) f(long long *p, int n)
+{
+  while (--n >= 0)
+    {
+      *p = 1;
+      p += 32;
+    }
+}
+
+int main(void)
+{
+  f(buffer, 1);
+  
+  if (!buffer[0])
+    abort();
+
+  return 0;
+}



1.1                  src/patchsets/gcc/4.5.4/gentoo/23_all_4.6_pr45886_ARM_PCS_VFP.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/23_all_4.6_pr45886_ARM_PCS_VFP.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/23_all_4.6_pr45886_ARM_PCS_VFP.patch?rev=1.1&content-type=text/plain

Index: 23_all_4.6_pr45886_ARM_PCS_VFP.patch
===================================================================
Backport from 4.6

http://gcc.gnu.org/PR45886
https://bugs.gentoo.org/351851

--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -700,7 +700,7 @@ static int after_arm_reorg = 0;
 /* The maximum number of insns to be used when loading a constant.  */
 static int arm_constant_limit = 3;
 
-static enum arm_pcs arm_pcs_default;
+enum arm_pcs arm_pcs_default;
 
 /* For an explanation of these variables, see final_prescan_insn below.  */
 int arm_ccfsm_state;
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -94,7 +94,13 @@ extern char arm_arch_name[];
 	if (arm_arch_iwmmxt)				\
 	  builtin_define ("__IWMMXT__");		\
 	if (TARGET_AAPCS_BASED)				\
-	  builtin_define ("__ARM_EABI__");		\
+	  {						\
+	    if (arm_pcs_default == ARM_PCS_AAPCS_VFP)	\
+	      builtin_define ("__ARM_PCS_VFP");		\
+	    else if (arm_pcs_default == ARM_PCS_AAPCS)	\
+	      builtin_define ("__ARM_PCS");		\
+	    builtin_define ("__ARM_EABI__");		\
+	  }						\
     } while (0)
 
 /* The various ARM cores.  */
@@ -1648,6 +1654,9 @@ enum arm_pcs
   ARM_PCS_UNKNOWN
 };
 
+/* Default procedure calling standard of current compilation unit. */
+extern enum arm_pcs arm_pcs_default;
+
 /* A C type for declaring a variable that is used as the first argument of
    `FUNCTION_ARG' and other related values.  */
 typedef struct



1.1                  src/patchsets/gcc/4.5.4/gentoo/30_all_gcc-4.5-ppc-msingle-pic-base.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/30_all_gcc-4.5-ppc-msingle-pic-base.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/30_all_gcc-4.5-ppc-msingle-pic-base.patch?rev=1.1&content-type=text/plain

Index: 30_all_gcc-4.5-ppc-msingle-pic-base.patch
===================================================================
https://bugs.gentoo.org/347281

backported from gcc-4.6

From aaf90e018802d80e9cd6ba86c6d03aee1456d737 Mon Sep 17 00:00:00 2001
From: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
Date: Sat, 9 Oct 2010 12:45:39 +0200
Subject: [PATCH] PowerPC: Add msingle-pic-base option, gcc 4.5.

Do not generate fPIC/fpic prologue nor save
and restore PIC register.

Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
---
 gcc/config/rs6000/rs6000.c   |    5 +++++
 gcc/config/rs6000/rs6000.opt |    4 ++++
 gcc/doc/invoke.texi          |    9 ++++++++-
 3 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 01e6d71..1552ec1 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -18553,8 +18553,10 @@ rs6000_reg_live_or_pic_offset_p (int reg)
   return ((df_regs_ever_live_p (reg)
            && (!call_used_regs[reg]
                || (reg == RS6000_PIC_OFFSET_TABLE_REGNUM
+		   && !TARGET_SINGLE_PIC_BASE
                    && TARGET_TOC && TARGET_MINIMAL_TOC)))
           || (reg == RS6000_PIC_OFFSET_TABLE_REGNUM
+	      && !TARGET_SINGLE_PIC_BASE
               && ((DEFAULT_ABI == ABI_V4 && flag_pic != 0)
                   || (DEFAULT_ABI == ABI_DARWIN && flag_pic))));
 }
@@ -19305,6 +19307,9 @@ rs6000_emit_prologue (void)
       insn = emit_insn (generate_set_vrsave (reg, info, 0));
     }
 
+  if (TARGET_SINGLE_PIC_BASE)
+    return; /* Do not set PIC register */
+
   /* If we are using RS6000_PIC_OFFSET_TABLE_REGNUM, we need to set it up.  */
   if ((TARGET_TOC && TARGET_MINIMAL_TOC && get_pool_size () != 0)
       || (DEFAULT_ABI == ABI_V4
diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt
index 63f0f8c..1c97c94 100644
--- a/gcc/config/rs6000/rs6000.opt
+++ b/gcc/config/rs6000/rs6000.opt
@@ -163,6 +163,10 @@ mupdate
 Target Report RejectNegative InverseMask(NO_UPDATE, UPDATE)
 Generate load/store with update instructions
 
+msingle-pic-base
+Target Report Var(TARGET_SINGLE_PIC_BASE) Init(0)
+Do not load the PIC register in function prologues
+
 mavoid-indexed-addresses
 Target Report Var(TARGET_AVOID_XFORM) Init(-1)
 Avoid generation of indexed load/store instructions when possible
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index a1846dc..32e17b6 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -765,7 +765,7 @@ See RS/6000 and PowerPC Options.
 -mstrict-align  -mno-strict-align  -mrelocatable @gol
 -mno-relocatable  -mrelocatable-lib  -mno-relocatable-lib @gol
 -mtoc  -mno-toc  -mlittle  -mlittle-endian  -mbig  -mbig-endian @gol
--mdynamic-no-pic  -maltivec -mswdiv @gol
+-mdynamic-no-pic  -maltivec  -mswdiv  -msingle-pic-base @gol
 -mprioritize-restricted-insns=@var{priority} @gol
 -msched-costly-dep=@var{dependence_type} @gol
 -minsert-sched-nops=@var{scheme} @gol
@@ -15221,6 +15221,13 @@ relocatable, but that its external references are relocatable.  The
 resulting code is suitable for applications, but not shared
 libraries.
 
+@item -msingle-pic-base
+@opindex msingle-pic-base
+Treat the register used for PIC addressing as read-only, rather than
+loading it in the prologue for each function.  The run-time system is
+responsible for initializing this register with an appropriate value
+before execution begins.
+
 @item -mprioritize-restricted-insns=@var{priority}
 @opindex mprioritize-restricted-insns
 This option controls the priority that is assigned to
-- 
1.7.2.2




1.1                  src/patchsets/gcc/4.5.4/gentoo/31_all_gcc-4.4-ppc-fpic-mrelocatable.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/31_all_gcc-4.4-ppc-fpic-mrelocatable.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/31_all_gcc-4.4-ppc-fpic-mrelocatable.patch?rev=1.1&content-type=text/plain

Index: 31_all_gcc-4.4-ppc-fpic-mrelocatable.patch
===================================================================
https://bugs.gentoo.org/347281

backported from gcc-4.6

From d8ff0b3f0b44480542eab04d1659f4368b6b09cf Mon Sep 17 00:00:00 2001
From: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
Date: Sun, 10 Oct 2010 10:34:50 +0200
Subject: [PATCH] powerpc: Support -fpic too with mrelocatable


Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
---
 sysv4.h |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
index 8da8410..e4b8280 100644
--- a/gcc/config/rs6000/sysv4.h
+++ b/gcc/config/rs6000/sysv4.h
@@ -227,7 +227,8 @@ do {									\
     }									\
 									\
   else if (TARGET_RELOCATABLE)						\
-    flag_pic = 2;							\
+    if (!flag_pic)							\
+      flag_pic = 2;							\
 } while (0)
 
 #ifndef RS6000_BI_ARCH
-- 
1.7.2.2




1.1                  src/patchsets/gcc/4.5.4/gentoo/33_all_armhf.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/33_all_armhf.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/33_all_armhf.patch?rev=1.1&content-type=text/plain

Index: 33_all_armhf.patch
===================================================================
use new common path to the arm hard float linker

change taken from upstream gcc

--- a/gcc/config/arm/linux-eabi.h
+++ b/gcc/config/arm/linux-eabi.h
@@ -32,7 +32,8 @@
   while (false)
 
 /* We default to a soft-float ABI so that binaries can run on all
-   target hardware.  */
+   target hardware.  If you override this to use the hard-float ABI then
+   change the setting of GLIBC_DYNAMIC_LINKER_DEFAULT as well.  */
 #undef  TARGET_DEFAULT_FLOAT_ABI
 #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT
 
@@ -59,10 +60,23 @@
 #undef  SUBTARGET_EXTRA_LINK_SPEC
 #define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION
 
-/* Use ld-linux.so.3 so that it will be possible to run "classic"
-   GNU/Linux binaries on an EABI system.  */
+/* GNU/Linux on ARM currently supports three dynamic linkers:
+   - ld-linux.so.2 - for the legacy ABI
+   - ld-linux.so.3 - for the EABI-derived soft-float ABI
+   - ld-linux-armhf.so.3 - for the EABI-derived hard-float ABI.
+   All the dynamic linkers live in /lib.
+   We default to soft-float, but this can be overridden by changing both
+   GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI.  */
+
 #undef  GLIBC_DYNAMIC_LINKER
-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.3"
+#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3"
+#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3"
+#define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT
+
+#define GLIBC_DYNAMIC_LINKER \
+   "%{mfloat-abi=hard:" GLIBC_DYNAMIC_LINKER_HARD_FLOAT "} \
+    %{mfloat-abi=soft*:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "} \
+    %{!mfloat-abi=*:" GLIBC_DYNAMIC_LINKER_DEFAULT "}"
 
 /* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
    use the GNU/Linux version, not the generic BPABI version.  */



1.1                  src/patchsets/gcc/4.5.4/gentoo/40_all_gcc-4.4-libiberty.h-asprintf.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/40_all_gcc-4.4-libiberty.h-asprintf.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/40_all_gcc-4.4-libiberty.h-asprintf.patch?rev=1.1&content-type=text/plain

Index: 40_all_gcc-4.4-libiberty.h-asprintf.patch
===================================================================
2008-07-25  Magnus Granberg  <zorry@ume.nu>

	* include/libiberty.h (asprintf): Don't declare if defined as a macro

--- include/libiberty.h.zorry
+++ include/libiberty.h
@@ -554,8 +554,11 @@
 /* Like sprintf but provides a pointer to malloc'd storage, which must
    be freed by the caller.  */
 
+/* asprintf may be declared as a macro by glibc with __USE_FORTIFY_LEVEL.  */
+#ifndef asprintf
 extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2;
 #endif
+#endif
 
 #if !HAVE_DECL_VASPRINTF
 /* Like vsprintf but provides a pointer to malloc'd storage, which



1.1                  src/patchsets/gcc/4.5.4/gentoo/47_all_arm-unbreak-armv4t.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/47_all_arm-unbreak-armv4t.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/47_all_arm-unbreak-armv4t.patch?rev=1.1&content-type=text/plain

Index: 47_all_arm-unbreak-armv4t.patch
===================================================================
http://sourceware.org/ml/crossgcc/2008-05/msg00009.html

gcc defaults to armv5t for all targets even armv4t

--- gcc/config/arm/linux-eabi.h
+++ gcc/config/arm/linux-eabi.h
@@ -45,7 +45,7 @@
    The ARM10TDMI core is the default for armv5t, so set
    SUBTARGET_CPU_DEFAULT to achieve this.  */
 #undef  SUBTARGET_CPU_DEFAULT
-#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi
+#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm9tdmi
 
 /* TARGET_BIG_ENDIAN_DEFAULT is set in
    config.gcc for big endian configurations.  */



1.1                  src/patchsets/gcc/4.5.4/gentoo/51_all_gcc-3.4-libiberty-pic.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/51_all_gcc-3.4-libiberty-pic.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/51_all_gcc-3.4-libiberty-pic.patch?rev=1.1&content-type=text/plain

Index: 51_all_gcc-3.4-libiberty-pic.patch
===================================================================
--- gcc-4.1.0-orig/libiberty/Makefile.in
+++ gcc-4.1.0/libiberty/Makefile.in
@@ -232,6 +232,7 @@
 	  $(AR) $(AR_FLAGS) $(TARGETLIB) \
 	    $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \
 	  $(RANLIB) $(TARGETLIB); \
+	  cp $(TARGETLIB) ../ ; \
 	  cd ..; \
 	else true; fi
 



1.1                  src/patchsets/gcc/4.5.4/gentoo/53_all_gcc4-superh-default-multilib.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/53_all_gcc4-superh-default-multilib.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/53_all_gcc4-superh-default-multilib.patch?rev=1.1&content-type=text/plain

Index: 53_all_gcc4-superh-default-multilib.patch
===================================================================
The gcc-3.x toolchains would contain all the targets by default.  With gcc-4,
you have to actually list out the multilibs you want or you will end up with
just one when using targets like 'sh4-linux-gnu'.

The resulting toolchain can't even build a kernel as the kernel needs to build
with the nofpu flag to be sure that no fpu ops are generated.

Here we restore the gcc-3.x behavior; the additional overhead of building all
of these multilibs by default is negligible.

http://bugs.gentoo.org/140205
http://bugs.gentoo.org/320251

--- gcc-4.2.0/gcc/config.gcc
+++ gcc-4.2.0/gcc/config.gcc
@@ -2092,7 +2092,7 @@
 	if test x${sh_multilibs} = x ; then
 		case ${target} in
 		sh64-superh-linux* | \
-		sh[1234]*)	sh_multilibs=${sh_cpu_target} ;;
+		sh[1234]*)	sh_multilibs=$(echo $(sed -n '/^[[:space:]]*case ${sh_multilib} in/,/)/{s:case ${sh_multilib} in::;s: | *:,:g;s:[\\)]::g;p}' ${srcdir}/config.gcc) | sed 's: ::g') ;;
 		sh64* | sh5*)	sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;;
 		sh-superh-*)	sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
 		sh*-*-linux*)	sh_multilibs=m1,m3e,m4 ;;



1.1                  src/patchsets/gcc/4.5.4/gentoo/61_all_gcc4-ia64-noteGNUstack.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/61_all_gcc4-ia64-noteGNUstack.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/61_all_gcc4-ia64-noteGNUstack.patch?rev=1.1&content-type=text/plain

Index: 61_all_gcc4-ia64-noteGNUstack.patch
===================================================================
2004-09-20  Jakub Jelinek  <jakub@redhat.com>

	* config/rs6000/ppc-asm.h: Add .note.GNU-stack section also
	on ppc64-linux.

	* config/ia64/lib1funcs.asm: Add .note.GNU-stack section on
	ia64-linux.
	* config/ia64/crtbegin.asm: Likewise.
	* config/ia64/crtend.asm: Likewise.
	* config/ia64/crti.asm: Likewise.
	* config/ia64/crtn.asm: Likewise.

2004-05-14  Jakub Jelinek  <jakub@redhat.com>

	* config/ia64/linux.h (TARGET_ASM_FILE_END): Define.

--- gcc/config/ia64/linux.h.jj
+++ gcc/config/ia64/linux.h
@@ -5,6 +5,8 @@
 
 #define TARGET_VERSION fprintf (stderr, " (IA-64) Linux");
 
+#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
+
 /* This is for -profile to use -lc_p instead of -lc.  */
 #undef CC1_SPEC
 #define CC1_SPEC "%{profile:-p} %{G*}"
--- gcc/config/rs6000/ppc-asm.h.jj
+++ gcc/config/rs6000/ppc-asm.h
@@ -158,7 +158,7 @@ GLUE(.L,name): \
 	.size FUNC_NAME(name),GLUE(.L,name)-FUNC_NAME(name)
 #endif
 
-#if defined __linux__ && !defined __powerpc64__
+#if defined __linux__
 	.section .note.GNU-stack
 	.previous
 #endif
--- gcc/config/ia64/lib1funcs.asm.jj
+++ gcc/config/ia64/lib1funcs.asm
@@ -741,3 +741,7 @@ __floattitf:
 	.endp __floattitf
 
 #endif
+
+#ifdef __linux__
+.section .note.GNU-stack; .previous
+#endif
--- gcc/config/ia64/crtend.asm.jj
+++ gcc/config/ia64/crtend.asm
@@ -113,3 +113,7 @@ __do_global_ctors_aux:
 
 	br.ret.sptk.many rp
 	.endp __do_global_ctors_aux
+
+#ifdef __linux__
+.section .note.GNU-stack; .previous
+#endif
--- gcc/config/ia64/crti.asm.jj
+++ gcc/config/ia64/crti.asm
@@ -64,3 +64,7 @@ _fini:
 	.body
 
 # end of crti.asm
+
+#ifdef __linux__
+.section .note.GNU-stack; .previous
+#endif
--- gcc/config/ia64/crtbegin.asm.jj
+++ gcc/config/ia64/crtbegin.asm
@@ -246,3 +246,7 @@ __do_jv_register_classes:
 .weak __cxa_finalize
 #endif
 .weak _Jv_RegisterClasses
+
+#ifdef __linux__
+.section .note.GNU-stack; .previous
+#endif
--- gcc/config/ia64/crtn.asm.jj
+++ gcc/config/ia64/crtn.asm
@@ -54,3 +54,7 @@
 	br.ret.sptk.many b0
 
 # end of crtn.asm
+
+#ifdef __linux__
+.section .note.GNU-stack; .previous
+#endif



1.1                  src/patchsets/gcc/4.5.4/gentoo/74_all_sh-pr24836.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/74_all_sh-pr24836.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/74_all_sh-pr24836.patch?rev=1.1&content-type=text/plain

Index: 74_all_sh-pr24836.patch
===================================================================
http://sourceforge.net/mailarchive/forum.php?thread_id=8959304&forum_id=5348
http://gcc.gnu.org/PR24836

--- gcc/gcc/configure.ac
+++ gcc/gcc/configure.ac
@@ -2446,7 +2446,7 @@
 	tls_first_minor=14
 	tls_as_opt="-m64 -Aesame --fatal-warnings"
 	;;
-  sh-*-* | sh[34]-*-*)
+  sh-*-* | sh[34]*-*-*)
     conftest_s='
 	.section ".tdata","awT",@progbits
 foo:	.long	25
--- gcc/gcc/configure
+++ gcc/gcc/configure
@@ -14846,7 +14846,7 @@
 	tls_first_minor=14
 	tls_as_opt="-m64 -Aesame --fatal-warnings"
 	;;
-  sh-*-* | sh[34]-*-*)
+  sh-*-* | sh[34]*-*-*)
     conftest_s='
 	.section ".tdata","awT",@progbits
 foo:	.long	25



1.1                  src/patchsets/gcc/4.5.4/gentoo/92_all_freebsd-pie.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/92_all_freebsd-pie.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/92_all_freebsd-pie.patch?rev=1.1&content-type=text/plain

Index: 92_all_freebsd-pie.patch
===================================================================
https://bugs.gentoo.org/415185
http://gcc.gnu.org/ml/gcc-patches/2012-05/msg00555.html

From: Alexis Ballier <aballier@gentoo.org>
To: gcc-patches@gcc.gnu.org
Cc: Alexis Ballier <aballier@gentoo.org>
Date: Tue, 8 May 2012 09:53:43 -0400
Subject: [PATCH] gcc/config/freebsd-spec.h: Fix building PIE executables. Link them with crt{begin,end}S.o and Scrt1.o which are PIC instead of crt{begin,end}.o and crt1.o which are not. Spec synced from gnu-user.h.

gcc/config/i386/freebsd.h: Likewise.
---
 gcc/config/freebsd-spec.h |    9 +++------
 gcc/config/i386/freebsd.h |    9 +++------
 2 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/gcc/config/freebsd-spec.h b/gcc/config/freebsd-spec.h
index 770a3d1..2808582 100644
--- a/gcc/config/freebsd-spec.h
+++ b/gcc/config/freebsd-spec.h
@@ -64,11 +64,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 	before entering `main'.  */
    
 #define FBSD_STARTFILE_SPEC \
-  "%{!shared: \
-     %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
-		       %{!p:%{profile:gcrt1.o%s} \
-			 %{!profile:crt1.o%s}}}} \
-   crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
+  "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
+   crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
 
 /* Provide a ENDFILE_SPEC appropriate for FreeBSD.  Here we tack on
    the magical crtend.o file (see crtstuff.c) which provides part of 
@@ -77,7 +74,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 	`crtn.o'.  */
 
 #define FBSD_ENDFILE_SPEC \
-  "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
+  "%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
 
 /* Provide a LIB_SPEC appropriate for FreeBSD as configured and as
    required by the user-land thread model.  Before __FreeBSD_version
diff --git a/gcc/config/i386/freebsd.h b/gcc/config/i386/freebsd.h
index 649274d..dd69e43 100644
--- a/gcc/config/i386/freebsd.h
+++ b/gcc/config/i386/freebsd.h
@@ -67,11 +67,8 @@ along with GCC; see the file COPYING3.  If not see
    
 #undef	STARTFILE_SPEC
 #define STARTFILE_SPEC \
-  "%{!shared: \
-     %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
-		       %{!p:%{profile:gcrt1.o%s} \
-			 %{!profile:crt1.o%s}}}} \
-   crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
+  "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
+   crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
 
 /* Provide a ENDFILE_SPEC appropriate for FreeBSD.  Here we tack on
    the magical crtend.o file (see crtstuff.c) which provides part of 
@@ -81,7 +78,7 @@ along with GCC; see the file COPYING3.  If not see
 
 #undef	ENDFILE_SPEC
 #define ENDFILE_SPEC \
-  "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
+  "%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
 
 /* Provide a LINK_SPEC appropriate for FreeBSD.  Here we provide support
    for the special GCC options -static and -shared, which allow us to
-- 
1.7.8.6



1.1                  src/patchsets/gcc/4.5.4/gentoo/93_all_gcc-4.5-cloog-dl.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/93_all_gcc-4.5-cloog-dl.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/93_all_gcc-4.5-cloog-dl.patch?rev=1.1&content-type=text/plain

Index: 93_all_gcc-4.5-cloog-dl.patch
===================================================================
When graphite support is enabled, C++ libraries (libppl, libcloog, libgmpxx,
libstdc++-v3) are linked into cc1.  Because of libstdc++ symbol versioning
this has the unfortunate side effect of making it difficult to switch to a
previous version of GCC using gcc-config once these libraries have be built
with the newer version.  (http://bugs.gentoo.org/315377#c3)

Instead, dlopen libcloog as necessary.  This patch originated in Fedora and
was modified to work on FreeBSD (http://bugs.gentoo.org/317211).

http://cvs.fedoraproject.org/viewvc/devel/gcc/gcc45-cloog-dl.patch

2010-07-01  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.in (BACKENDLIBS): Link against -ldl instead of -lcloog -lppl.
	(graphite.o, graphite%.o): Force -O, remove -fkeep-inline-functions.
	(graphite-ppl.o): Depend on graphite.h.
	* graphite.h: Include <dlfcn.h>.  Reference libcloog and libppl symbols
	through pointers in cloog_pointers__ variable.
	* graphite.c (init_cloog_pointers): New function.
	(graphite_transform_loops): Call init_cloog_pointers.
	* graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Rename stmt_for
	argument to stmt_fora.
	* graphite-ppl.c: Include graphite.h.

2010-07-22  Ryan Hill  <dirtyepic@gentoo.org>

	* configure.ac (DL_LIB): Check how to dlopen.
	* configure: Regenerate.
	* Makefile.in (BACKENDLIBS): Use DL_LIB.

--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -1025,7 +1025,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
 # and the system's installed libraries.
 LIBS = @LIBS@ $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBIBERTY) $(LIBDECNUMBER) \
 	$(HOST_LIBS)
-BACKENDLIBS = $(CLOOGLIBS) $(PPLLIBS) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \
+BACKENDLIBS = $(GMPLIBS) $(if $(CLOOGLIBS),@DL_LIB@) $(PLUGINLIBS) $(HOST_LIBS) \
 	$(ZLIB) $(LIBELFLIBS)
 # Any system libraries needed just for GNAT.
 SYSLIBS = @GNAT_LIBEXC@
@@ -2633,7 +2633,7 @@ graphite-poly.o: graphite-poly.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
    $(TREE_DATA_REF_H) tree-pass.h domwalk.h graphite.h graphite-dependences.h \
    pointer-set.h value-prof.h graphite-ppl.h sese.h output.h graphite-poly.h
 graphite-ppl.o: graphite-ppl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
-   $(GGC_H) graphite-ppl.h
+   $(GGC_H) graphite-ppl.h graphite.h
 graphite-scop-detection.o: graphite-scop-detection.c $(CONFIG_H) $(SYSTEM_H) \
    $(GGC_H) $(TREE_H) $(RTL_H) $(BASIC_BLOCK_H) $(DIAGNOSTIC_H) $(TOPLEV_H) \
    $(TREE_FLOW_H) $(TREE_DUMP_H) $(TIMEVAR_H) $(CFGLOOP_H) $(GIMPLE_H) \
@@ -3384,6 +3384,11 @@ $(out_object_file): $(out_file) $(CONFIG_H) coretypes.h $(TM_H) $(TREE_H) \
 	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
 		$(out_file) $(OUTPUT_OPTION)
 
+graphite%.o : \
+  ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
+graphite.o : \
+  ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
+
 # Build auxiliary files that support ecoff format.
 mips-tfile: mips-tfile.o version.o $(LIBDEPS)
 	$(LINKER) $(LINKERFLAGS) $(LDFLAGS) -o $@ \
--- a/gcc/configure
+++ b/gcc/configure
@@ -602,6 +602,7 @@ ac_subst_vars='LTLIBOBJS
 LIBOBJS
 enable_plugin
 pluginlibs
+DL_LIB
 LIBELFINC
 LIBELFLIBS
 CLOOGINC
@@ -25148,6 +25149,72 @@ $as_echo "#define HAVE_libelf 1" >>confdefs.h
 
 fi
 
+# Check how to dlopen
+DL_LIB=
+saved_LIBS="$LIBS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
+$as_echo_n "checking for library containing dlopen... " >&6; }
+if test "${ac_cv_search_dlopen+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+for ac_lib in '' dl; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_search_dlopen=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if test "${ac_cv_search_dlopen+set}" = set; then :
+  break
+fi
+done
+if test "${ac_cv_search_dlopen+set}" = set; then :
+
+else
+  ac_cv_search_dlopen=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
+$as_echo "$ac_cv_search_dlopen" >&6; }
+ac_res=$ac_cv_search_dlopen
+if test "$ac_res" != no; then :
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+case $ac_cv_search_dlopen in
+    no*) ;;
+      *) DL_LIB=$ac_cv_search_dlopen ;;
+esac
+
+LIBS=$saved_LIBS
+
 # Check for plugin support
 # Check whether --enable-plugin was given.
 if test "${enable_plugin+set}" = set; then :
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -4372,6 +4372,17 @@ if test "x${LIBELFLIBS}" != "x" ; then
    AC_DEFINE(HAVE_libelf, 1, [Define if libelf is in use.])
 fi
 
+# Check how to dlopen
+DL_LIB=
+saved_LIBS="$LIBS"
+AC_SEARCH_LIBS([dlopen], [dl])
+case $ac_cv_search_dlopen in
+    no*) ;;
+      *) DL_LIB=$ac_cv_search_dlopen ;;
+esac
+AC_SUBST(DL_LIB)
+LIBS=$saved_LIBS
+
 # Check for plugin support
 AC_ARG_ENABLE(plugin,
 [  --enable-plugin         enable plugin support],
--- a/gcc/graphite-clast-to-gimple.c
+++ b/gcc/graphite-clast-to-gimple.c
@@ -613,11 +613,11 @@ gcc_type_for_cloog_iv (const char *cloog_iv, gimple_bb_p gbb)
    STMT.  */
 
 static tree
-gcc_type_for_iv_of_clast_loop (struct clast_for *stmt_for)
+gcc_type_for_iv_of_clast_loop (struct clast_for *stmt_fora)
 {
-  struct clast_stmt *stmt = (struct clast_stmt *) stmt_for;
+  struct clast_stmt *stmt = (struct clast_stmt *) stmt_fora;
   struct clast_user_stmt *body = clast_get_body_of_loop (stmt);
-  const char *cloog_iv = stmt_for->iterator;
+  const char *cloog_iv = stmt_fora->iterator;
   CloogStatement *cs = body->statement;
   poly_bb_p pbb = (poly_bb_p) cloog_statement_usr (cs);
 
--- a/gcc/graphite-ppl.c
+++ b/gcc/graphite-ppl.c
@@ -29,6 +29,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "ppl_c.h"
 #include "cloog/cloog.h"
 #include "graphite-ppl.h"
+#include "graphite.h"
 
 /* Translates row ROW of the CloogMatrix MATRIX to a PPL Constraint.  */
 
--- a/gcc/graphite.c
+++ b/gcc/graphite.c
@@ -67,6 +67,35 @@ along with GCC; see the file COPYING3.  If not see
 #include "graphite-clast-to-gimple.h"
 #include "graphite-sese-to-poly.h"
 
+__typeof (cloog_pointers__) cloog_pointers__;
+
+static bool
+init_cloog_pointers (void)
+{
+  void *h;
+
+  if (cloog_pointers__.inited)
+    return cloog_pointers__.h != NULL;
+  h = dlopen ("libcloog.so.0", RTLD_LAZY);
+  cloog_pointers__.h = h;
+  if (h == NULL)
+    return false;
+#define DYNSYM(x) \
+  do \
+    { \
+      union { __typeof (cloog_pointers__.p_##x) p; void *q; } u; \
+      u.q = dlsym (h, #x); \
+      if (u.q == NULL) \
+	return false; \
+      cloog_pointers__.p_##x = u.p; \
+    } \
+  while (0)
+  DYNSYMS
+#undef DYNSYM
+  return true;
+}
+
+
 /* Print global statistics to FILE.  */
 
 static void
@@ -210,6 +239,12 @@ graphite_initialize (void)
       return false;
     }
 
+  if (!init_cloog_pointers ())
+    {
+      sorry ("Graphite loop optimizations cannot be used");
+      return false;
+    }
+
   scev_reset ();
   recompute_all_dominators ();
   initialize_original_copy_tables ();
--- a/gcc/graphite.h
+++ b/gcc/graphite.h
@@ -21,4 +21,224 @@ along with GCC; see the file COPYING3.  If not see
 #ifndef GCC_GRAPHITE_H
 #define GCC_GRAPHITE_H
 
+#include <dlfcn.h>
+#define DYNSYMS \
+  DYNSYM (cloog_block_alloc); \
+  DYNSYM (cloog_block_list_free); \
+  DYNSYM (cloog_block_list_malloc); \
+  DYNSYM (cloog_clast_create); \
+  DYNSYM (cloog_clast_free); \
+  DYNSYM (cloog_domain_free); \
+  DYNSYM (cloog_domain_matrix2domain); \
+  DYNSYM (cloog_initialize); \
+  DYNSYM (cloog_loop_malloc); \
+  DYNSYM (cloog_matrix_alloc); \
+  DYNSYM (cloog_matrix_copy); \
+  DYNSYM (cloog_matrix_free); \
+  DYNSYM (cloog_matrix_print); \
+  DYNSYM (cloog_names_malloc); \
+  DYNSYM (cloog_names_scalarize); \
+  DYNSYM (cloog_options_free); \
+  DYNSYM (cloog_options_malloc); \
+  DYNSYM (cloog_program_dump_cloog); \
+  DYNSYM (cloog_program_extract_scalars); \
+  DYNSYM (cloog_program_free); \
+  DYNSYM (cloog_program_generate); \
+  DYNSYM (cloog_program_malloc); \
+  DYNSYM (cloog_program_print); \
+  DYNSYM (cloog_program_scatter); \
+  DYNSYM (cloog_statement_alloc); \
+  DYNSYM (cloog_domain_union); \
+  DYNSYM (cloog_matrix_read); \
+  DYNSYM (cloog_new_pol); \
+  DYNSYM (cloog_vector_gcd); \
+  DYNSYM (ppl_finalize); \
+  DYNSYM (ppl_assign_Coefficient_from_mpz_t); \
+  DYNSYM (ppl_assign_Linear_Expression_from_Linear_Expression); \
+  DYNSYM (ppl_Coefficient_to_mpz_t); \
+  DYNSYM (ppl_Constraint_coefficient); \
+  DYNSYM (ppl_Constraint_inhomogeneous_term); \
+  DYNSYM (ppl_Constraint_space_dimension); \
+  DYNSYM (ppl_Constraint_System_begin); \
+  DYNSYM (ppl_Constraint_System_const_iterator_dereference); \
+  DYNSYM (ppl_Constraint_System_const_iterator_equal_test); \
+  DYNSYM (ppl_Constraint_System_const_iterator_increment); \
+  DYNSYM (ppl_Constraint_System_end); \
+  DYNSYM (ppl_Constraint_System_insert_Constraint); \
+  DYNSYM (ppl_Constraint_System_space_dimension); \
+  DYNSYM (ppl_Constraint_type); \
+  DYNSYM (ppl_delete_Coefficient); \
+  DYNSYM (ppl_delete_Constraint); \
+  DYNSYM (ppl_delete_Constraint_System_const_iterator); \
+  DYNSYM (ppl_delete_Linear_Expression); \
+  DYNSYM (ppl_delete_Pointset_Powerset_C_Polyhedron); \
+  DYNSYM (ppl_delete_Pointset_Powerset_C_Polyhedron_iterator); \
+  DYNSYM (ppl_delete_Polyhedron); \
+  DYNSYM (ppl_Linear_Expression_add_to_coefficient); \
+  DYNSYM (ppl_Linear_Expression_add_to_inhomogeneous); \
+  DYNSYM (ppl_Linear_Expression_coefficient); \
+  DYNSYM (ppl_Linear_Expression_inhomogeneous_term); \
+  DYNSYM (ppl_Linear_Expression_space_dimension); \
+  DYNSYM (ppl_new_Coefficient); \
+  DYNSYM (ppl_new_Coefficient_from_mpz_t); \
+  DYNSYM (ppl_new_Constraint); \
+  DYNSYM (ppl_new_Constraint_System); \
+  DYNSYM (ppl_new_Constraint_System_const_iterator); \
+  DYNSYM (ppl_new_C_Polyhedron_from_C_Polyhedron); \
+  DYNSYM (ppl_new_C_Polyhedron_from_space_dimension); \
+  DYNSYM (ppl_new_C_Polyhedron_recycle_Constraint_System); \
+  DYNSYM (ppl_new_Linear_Expression); \
+  DYNSYM (ppl_new_Linear_Expression_from_Constraint); \
+  DYNSYM (ppl_new_Linear_Expression_from_Linear_Expression); \
+  DYNSYM (ppl_new_Linear_Expression_with_dimension); \
+  DYNSYM (ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron); \
+  DYNSYM (ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron); \
+  DYNSYM (ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension); \
+  DYNSYM (ppl_new_Pointset_Powerset_C_Polyhedron_iterator); \
+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_add_constraint); \
+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_add_space_dimensions_and_embed); \
+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_difference_assign); \
+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_intersection_assign); \
+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_is_empty); \
+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_begin); \
+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_dereference); \
+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_end); \
+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_equal_test); \
+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_increment); \
+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_map_space_dimensions); \
+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_maximize); \
+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_minimize); \
+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_remove_space_dimensions); \
+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_size); \
+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_space_dimension); \
+  DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign); \
+  DYNSYM (ppl_Polyhedron_add_constraint); \
+  DYNSYM (ppl_Polyhedron_add_constraints); \
+  DYNSYM (ppl_Polyhedron_add_space_dimensions_and_embed); \
+  DYNSYM (ppl_Polyhedron_get_constraints); \
+  DYNSYM (ppl_Polyhedron_map_space_dimensions); \
+  DYNSYM (ppl_Polyhedron_remove_space_dimensions); \
+  DYNSYM (ppl_Polyhedron_space_dimension); \
+  DYNSYM (ppl_subtract_Linear_Expression_from_Linear_Expression); \
+  DYNSYM (pprint); \
+  DYNSYM (stmt_block); \
+  DYNSYM (stmt_for); \
+  DYNSYM (stmt_guard); \
+  DYNSYM (stmt_root); \
+  DYNSYM (stmt_user);
+extern struct
+{
+  bool inited;
+  void *h;
+#define DYNSYM(x) __typeof (x) *p_##x
+  DYNSYMS
+#undef DYNSYM
+} cloog_pointers__;
+
+#define cloog_block_alloc (*cloog_pointers__.p_cloog_block_alloc)
+#define cloog_block_list_free (*cloog_pointers__.p_cloog_block_list_free)
+#define cloog_block_list_malloc (*cloog_pointers__.p_cloog_block_list_malloc)
+#define cloog_clast_create (*cloog_pointers__.p_cloog_clast_create)
+#define cloog_clast_free (*cloog_pointers__.p_cloog_clast_free)
+#define cloog_domain_free (*cloog_pointers__.p_cloog_domain_free)
+#define cloog_domain_matrix2domain (*cloog_pointers__.p_cloog_domain_matrix2domain)
+#define cloog_initialize (*cloog_pointers__.p_cloog_initialize)
+#define cloog_loop_malloc (*cloog_pointers__.p_cloog_loop_malloc)
+#define cloog_matrix_alloc (*cloog_pointers__.p_cloog_matrix_alloc)
+#define cloog_matrix_copy (*cloog_pointers__.p_cloog_matrix_copy)
+#define cloog_matrix_free (*cloog_pointers__.p_cloog_matrix_free)
+#define cloog_matrix_print (*cloog_pointers__.p_cloog_matrix_print)
+#define cloog_names_malloc (*cloog_pointers__.p_cloog_names_malloc)
+#define cloog_names_scalarize (*cloog_pointers__.p_cloog_names_scalarize)
+#define cloog_options_free (*cloog_pointers__.p_cloog_options_free)
+#define cloog_options_malloc (*cloog_pointers__.p_cloog_options_malloc)
+#define cloog_program_dump_cloog (*cloog_pointers__.p_cloog_program_dump_cloog)
+#define cloog_program_extract_scalars (*cloog_pointers__.p_cloog_program_extract_scalars)
+#define cloog_program_free (*cloog_pointers__.p_cloog_program_free)
+#define cloog_program_generate (*cloog_pointers__.p_cloog_program_generate)
+#define cloog_program_malloc (*cloog_pointers__.p_cloog_program_malloc)
+#define cloog_program_print (*cloog_pointers__.p_cloog_program_print)
+#define cloog_program_scatter (*cloog_pointers__.p_cloog_program_scatter)
+#define cloog_statement_alloc (*cloog_pointers__.p_cloog_statement_alloc)
+#define cloog_domain_union (*cloog_pointers__.p_cloog_domain_union)
+#define cloog_matrix_read (*cloog_pointers__.p_cloog_matrix_read)
+#define cloog_new_pol (*cloog_pointers__.p_cloog_new_pol)
+#define cloog_vector_gcd (*cloog_pointers__.p_cloog_vector_gcd)
+#define ppl_finalize (*cloog_pointers__.p_ppl_finalize)
+#define ppl_assign_Coefficient_from_mpz_t (*cloog_pointers__.p_ppl_assign_Coefficient_from_mpz_t)
+#define ppl_assign_Linear_Expression_from_Linear_Expression (*cloog_pointers__.p_ppl_assign_Linear_Expression_from_Linear_Expression)
+#define ppl_Coefficient_to_mpz_t (*cloog_pointers__.p_ppl_Coefficient_to_mpz_t)
+#define ppl_Constraint_coefficient (*cloog_pointers__.p_ppl_Constraint_coefficient)
+#define ppl_Constraint_inhomogeneous_term (*cloog_pointers__.p_ppl_Constraint_inhomogeneous_term)
+#define ppl_Constraint_space_dimension (*cloog_pointers__.p_ppl_Constraint_space_dimension)
+#define ppl_Constraint_System_begin (*cloog_pointers__.p_ppl_Constraint_System_begin)
+#define ppl_Constraint_System_const_iterator_dereference (*cloog_pointers__.p_ppl_Constraint_System_const_iterator_dereference)
+#define ppl_Constraint_System_const_iterator_equal_test (*cloog_pointers__.p_ppl_Constraint_System_const_iterator_equal_test)
+#define ppl_Constraint_System_const_iterator_increment (*cloog_pointers__.p_ppl_Constraint_System_const_iterator_increment)
+#define ppl_Constraint_System_end (*cloog_pointers__.p_ppl_Constraint_System_end)
+#define ppl_Constraint_System_insert_Constraint (*cloog_pointers__.p_ppl_Constraint_System_insert_Constraint)
+#define ppl_Constraint_System_space_dimension (*cloog_pointers__.p_ppl_Constraint_System_space_dimension)
+#define ppl_Constraint_type (*cloog_pointers__.p_ppl_Constraint_type)
+#define ppl_delete_Coefficient (*cloog_pointers__.p_ppl_delete_Coefficient)
+#define ppl_delete_Constraint (*cloog_pointers__.p_ppl_delete_Constraint)
+#define ppl_delete_Constraint_System_const_iterator (*cloog_pointers__.p_ppl_delete_Constraint_System_const_iterator)
+#define ppl_delete_Linear_Expression (*cloog_pointers__.p_ppl_delete_Linear_Expression)
+#define ppl_delete_Pointset_Powerset_C_Polyhedron (*cloog_pointers__.p_ppl_delete_Pointset_Powerset_C_Polyhedron)
+#define ppl_delete_Pointset_Powerset_C_Polyhedron_iterator (*cloog_pointers__.p_ppl_delete_Pointset_Powerset_C_Polyhedron_iterator)
+#define ppl_delete_Polyhedron (*cloog_pointers__.p_ppl_delete_Polyhedron)
+#define ppl_Linear_Expression_add_to_coefficient (*cloog_pointers__.p_ppl_Linear_Expression_add_to_coefficient)
+#define ppl_Linear_Expression_add_to_inhomogeneous (*cloog_pointers__.p_ppl_Linear_Expression_add_to_inhomogeneous)
+#define ppl_Linear_Expression_coefficient (*cloog_pointers__.p_ppl_Linear_Expression_coefficient)
+#define ppl_Linear_Expression_inhomogeneous_term (*cloog_pointers__.p_ppl_Linear_Expression_inhomogeneous_term)
+#define ppl_Linear_Expression_space_dimension (*cloog_pointers__.p_ppl_Linear_Expression_space_dimension)
+#define ppl_new_Coefficient (*cloog_pointers__.p_ppl_new_Coefficient)
+#define ppl_new_Coefficient_from_mpz_t (*cloog_pointers__.p_ppl_new_Coefficient_from_mpz_t)
+#define ppl_new_Constraint (*cloog_pointers__.p_ppl_new_Constraint)
+#define ppl_new_Constraint_System (*cloog_pointers__.p_ppl_new_Constraint_System)
+#define ppl_new_Constraint_System_const_iterator (*cloog_pointers__.p_ppl_new_Constraint_System_const_iterator)
+#define ppl_new_C_Polyhedron_from_C_Polyhedron (*cloog_pointers__.p_ppl_new_C_Polyhedron_from_C_Polyhedron)
+#define ppl_new_C_Polyhedron_from_space_dimension (*cloog_pointers__.p_ppl_new_C_Polyhedron_from_space_dimension)
+#define ppl_new_C_Polyhedron_recycle_Constraint_System (*cloog_pointers__.p_ppl_new_C_Polyhedron_recycle_Constraint_System)
+#define ppl_new_Linear_Expression (*cloog_pointers__.p_ppl_new_Linear_Expression)
+#define ppl_new_Linear_Expression_from_Constraint (*cloog_pointers__.p_ppl_new_Linear_Expression_from_Constraint)
+#define ppl_new_Linear_Expression_from_Linear_Expression (*cloog_pointers__.p_ppl_new_Linear_Expression_from_Linear_Expression)
+#define ppl_new_Linear_Expression_with_dimension (*cloog_pointers__.p_ppl_new_Linear_Expression_with_dimension)
+#define ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron (*cloog_pointers__.p_ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron)
+#define ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron (*cloog_pointers__.p_ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron)
+#define ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension (*cloog_pointers__.p_ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension)
+#define ppl_new_Pointset_Powerset_C_Polyhedron_iterator (*cloog_pointers__.p_ppl_new_Pointset_Powerset_C_Polyhedron_iterator)
+#define ppl_Pointset_Powerset_C_Polyhedron_add_constraint (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_add_constraint)
+#define ppl_Pointset_Powerset_C_Polyhedron_add_space_dimensions_and_embed (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_add_space_dimensions_and_embed)
+#define ppl_Pointset_Powerset_C_Polyhedron_difference_assign (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_difference_assign)
+#define ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_intersection_assign)
+#define ppl_Pointset_Powerset_C_Polyhedron_is_empty (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_is_empty)
+#define ppl_Pointset_Powerset_C_Polyhedron_iterator_begin (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_begin)
+#define ppl_Pointset_Powerset_C_Polyhedron_iterator_dereference (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_dereference)
+#define ppl_Pointset_Powerset_C_Polyhedron_iterator_end (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_end)
+#define ppl_Pointset_Powerset_C_Polyhedron_iterator_equal_test (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_equal_test)
+#define ppl_Pointset_Powerset_C_Polyhedron_iterator_increment (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_increment)
+#define ppl_Pointset_Powerset_C_Polyhedron_map_space_dimensions (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_map_space_dimensions)
+#define ppl_Pointset_Powerset_C_Polyhedron_maximize (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_maximize)
+#define ppl_Pointset_Powerset_C_Polyhedron_minimize (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_minimize)
+#define ppl_Pointset_Powerset_C_Polyhedron_remove_space_dimensions (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_remove_space_dimensions)
+#define ppl_Pointset_Powerset_C_Polyhedron_size (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_size)
+#define ppl_Pointset_Powerset_C_Polyhedron_space_dimension (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_space_dimension)
+#define ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign)
+#define ppl_Polyhedron_add_constraint (*cloog_pointers__.p_ppl_Polyhedron_add_constraint)
+#define ppl_Polyhedron_add_constraints (*cloog_pointers__.p_ppl_Polyhedron_add_constraints)
+#define ppl_Polyhedron_add_space_dimensions_and_embed (*cloog_pointers__.p_ppl_Polyhedron_add_space_dimensions_and_embed)
+#define ppl_Polyhedron_get_constraints (*cloog_pointers__.p_ppl_Polyhedron_get_constraints)
+#define ppl_Polyhedron_map_space_dimensions (*cloog_pointers__.p_ppl_Polyhedron_map_space_dimensions)
+#define ppl_Polyhedron_remove_space_dimensions (*cloog_pointers__.p_ppl_Polyhedron_remove_space_dimensions)
+#define ppl_Polyhedron_space_dimension (*cloog_pointers__.p_ppl_Polyhedron_space_dimension)
+#define ppl_subtract_Linear_Expression_from_Linear_Expression (*cloog_pointers__.p_ppl_subtract_Linear_Expression_from_Linear_Expression)
+#define pprint (*cloog_pointers__.p_pprint)
+#define stmt_block (*cloog_pointers__.p_stmt_block)
+#define stmt_for (*cloog_pointers__.p_stmt_for)
+#define stmt_guard (*cloog_pointers__.p_stmt_guard)
+#define stmt_root (*cloog_pointers__.p_stmt_root)
+#define stmt_user (*cloog_pointers__.p_stmt_user)
+
+#define cloog_finalize (*cloog_pointers__.p_ppl_finalize)
+
 #endif  /* GCC_GRAPHITE_H  */



1.1                  src/patchsets/gcc/4.5.4/gentoo/94_all_gcc-4.5-pch-nostdinc.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/94_all_gcc-4.5-pch-nostdinc.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/94_all_gcc-4.5-pch-nostdinc.patch?rev=1.1&content-type=text/plain

Index: 94_all_gcc-4.5-pch-nostdinc.patch
===================================================================
Make precompiled headers cross buildable.

http://bugs.gentoo.org/show_bug.cgi?id=262912

--- gcc-4.5.0.orig//libstdc++-v3/include/Makefile.am
+++ gcc-4.5.0/libstdc++-v3/include/Makefile.am
@@ -893,7 +893,7 @@
 	${pch1_output_builddir} ${pch2_output_builddir} ${pch3_output_builddir}
 pch_output_anchors = \
 	${pch1_output_anchor} ${pch2_output_anchor} ${pch3_output_anchor}
-PCHFLAGS=-x c++-header $(CXXFLAGS)
+PCHFLAGS=-x c++-header $(CXXFLAGS) -nostdinc++
 if GLIBCXX_BUILD_PCH
 pch_build = ${pch_output}
 else
--- gcc-4.5.0.orig//libstdc++-v3/include/Makefile.in
+++ gcc-4.5.0/libstdc++-v3/include/Makefile.in
@@ -1119,7 +1119,7 @@
 pch_output_anchors = \
 	${pch1_output_anchor} ${pch2_output_anchor} ${pch3_output_anchor}
 
-PCHFLAGS = -x c++-header $(CXXFLAGS)
+PCHFLAGS = -x c++-header $(CXXFLAGS) -nostdinc++
 @GLIBCXX_BUILD_PCH_FALSE@pch_build = 
 @GLIBCXX_BUILD_PCH_TRUE@pch_build = ${pch_output}
 



1.1                  src/patchsets/gcc/4.5.4/gentoo/95_all_arm-pr43440.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/95_all_arm-pr43440.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/95_all_arm-pr43440.patch?rev=1.1&content-type=text/plain

Index: 95_all_arm-pr43440.patch
===================================================================
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43440

--- gcc-4.4.4.orig/gcc/config/arm/aout.h
+++ gcc-4.4.4/gcc/config/arm/aout.h
@@ -163,34 +163,49 @@
   {"mvdx12", 39},				\
   {"mvdx13", 40},				\
   {"mvdx14", 41},				\
-  {"mvdx15", 42},				\
-  {"d0", 63}, {"q0", 63},			\
-  {"d1", 65},					\
-  {"d2", 67}, {"q1", 67},			\
-  {"d3", 69},					\
-  {"d4", 71}, {"q2", 71},			\
-  {"d5", 73},					\
-  {"d6", 75}, {"q3", 75},			\
-  {"d7", 77},					\
-  {"d8", 79}, {"q4", 79},			\
-  {"d9", 81},					\
-  {"d10", 83}, {"q5", 83},			\
-  {"d11", 85},					\
-  {"d12", 87}, {"q6", 87},			\
-  {"d13", 89},					\
-  {"d14", 91}, {"q7", 91},			\
-  {"d15", 93},					\
-  {"q8", 95},					\
-  {"q9", 99},					\
-  {"q10", 103},					\
-  {"q11", 107},					\
-  {"q12", 111},					\
-  {"q13", 115},					\
-  {"q14", 119},					\
-  {"q15", 123}					\
+  {"mvdx15", 42}				\
 }
 #endif
 
+#ifndef OVERLAPPING_REGISTER_NAMES
+#define OVERLAPPING_REGISTER_NAMES       \
+{					 \
+  {"d0", 63, 2},			 \
+  {"d1", 65, 2},			 \
+  {"d2", 67, 2},			 \
+  {"d3", 69, 2},			 \
+  {"d4", 71, 2},			 \
+  {"d5", 73, 2},			 \
+  {"d6", 75, 2},			 \
+  {"d7", 77, 2},			 \
+  {"d8", 79, 2},			 \
+  {"d9", 81, 2},			 \
+  {"d10", 83, 2},			 \
+  {"d11", 85, 2},			 \
+  {"d12", 87, 2},			 \
+  {"d13", 89, 2},			 \
+  {"d14", 91, 2},			 \
+  {"d15", 93, 2},			 \
+  {"q0", 63, 4},			 \
+  {"q1", 67, 4},			 \
+  {"q2", 71, 4},			 \
+  {"q3", 75, 4},			 \
+  {"q4", 79, 4},			 \
+  {"q5", 83, 4},			 \
+  {"q6", 87, 4},			 \
+  {"q7", 91, 4},			 \
+  {"q8", 95, 4},			 \
+  {"q9", 99, 4},			 \
+  {"q10", 103, 4},			 \
+  {"q11", 107, 4},			 \
+  {"q12", 111, 4},			 \
+  {"q13", 115, 4},			 \
+  {"q14", 119, 4},			 \
+  {"q15", 123, 4}			 \
+}
+#endif
+
+
 #ifndef NO_DOLLAR_IN_LABEL
 #define NO_DOLLAR_IN_LABEL 1
 #endif
--- gcc-4.4.4.orig/gcc/output.h
+++ gcc-4.4.4/gcc/output.h
@@ -169,6 +169,11 @@
    Prefixes such as % are optional.  */
 extern int decode_reg_name (const char *);
 
+/* Similar to decode_reg_name, but takes an extra parameter that is a
+   pointer to the number of (internal) registers described by the
+   external name.  */
+extern int decode_reg_name_and_count (const char *, int *);
+
 extern void assemble_alias (tree, tree);
 
 extern void default_assemble_visibility (tree, int);
--- gcc-4.4.4.orig/gcc/reginfo.c
+++ gcc-4.4.4/gcc/reginfo.c
@@ -800,39 +800,44 @@
 fix_register (const char *name, int fixed, int call_used)
 {
   int i;
+  int reg, nregs;
 
   /* Decode the name and update the primary form of
      the register info.  */
-
-  if ((i = decode_reg_name (name)) >= 0)
+  if ((reg = decode_reg_name_and_count (name, &nregs)) >= 0)
     {
-      if ((i == STACK_POINTER_REGNUM
+      gcc_assert (nregs >= 1);
+      for (i = reg; i < reg + nregs; i++)
+      {
+        if ((i == STACK_POINTER_REGNUM
 #ifdef HARD_FRAME_POINTER_REGNUM
-	   || i == HARD_FRAME_POINTER_REGNUM
+             || i == HARD_FRAME_POINTER_REGNUM
 #else
-	   || i == FRAME_POINTER_REGNUM
+             || i == FRAME_POINTER_REGNUM
 #endif
-	   )
-	  && (fixed == 0 || call_used == 0))
-	{
-	  static const char * const what_option[2][2] = {
-	    { "call-saved", "call-used" },
-	    { "no-such-option", "fixed" }};
+             )
+            && (fixed == 0 || call_used == 0))
+          {
+            static const char * const what_option[2][2] = {
+              { "call-saved", "call-used" },
+              { "no-such-option", "fixed" }};
 
-	  error ("can't use '%s' as a %s register", name,
-		 what_option[fixed][call_used]);
-	}
-      else
-	{
-	  fixed_regs[i] = fixed;
-	  call_used_regs[i] = call_used;
+            error ("can't use '%s' as a %s register", name,
+                   what_option[fixed][call_used]);
+          }
+        else
+          {
+            fixed_regs[i] = fixed;
+            call_used_regs[i] = call_used;
 #ifdef CALL_REALLY_USED_REGISTERS
-	  if (fixed == 0)
-	    call_really_used_regs[i] = call_used;
+             if (fixed == 0)
+               call_really_used_regs[i] = call_used;
 #endif
-	}
-    }
-  else
+           }
+        }
+      }
+    else
+
     {
       warning (0, "unknown register name: %s", name);
     }
--- gcc-4.4.4.orig/gcc/stmt.c
+++ gcc-4.4.4/gcc/stmt.c
@@ -681,13 +681,14 @@
   for (tail = clobbers; tail; tail = TREE_CHAIN (tail))
     {
       const char *regname;
+      int nregs;
 
       if (TREE_VALUE (tail) == error_mark_node)
 	return;
       regname = TREE_STRING_POINTER (TREE_VALUE (tail));
 
-      i = decode_reg_name (regname);
-      if (i >= 0 || i == -4)
+      i = decode_reg_name_and_count (regname, &nregs);
+      if (i == -4)
 	++nclobbers;
       else if (i == -2)
 	error ("unknown register name %qs in %<asm%>", regname);
@@ -695,14 +696,21 @@
       /* Mark clobbered registers.  */
       if (i >= 0)
         {
-	  /* Clobbering the PIC register is an error.  */
-	  if (i == (int) PIC_OFFSET_TABLE_REGNUM)
-	    {
-	      error ("PIC register %qs clobbered in %<asm%>", regname);
-	      return;
-	    }
+        int reg;
 
-	  SET_HARD_REG_BIT (clobbered_regs, i);
+        for (reg = i; reg < i + nregs; reg++)
+          {
+            ++nclobbers;
+
+            /* Clobbering the PIC register is an error.  */
+            if (reg == (int) PIC_OFFSET_TABLE_REGNUM)
+              {
+                error ("PIC register clobbered by %qs in %<asm%>", regname);
+                return;
+              }
+
+            SET_HARD_REG_BIT (clobbered_regs, reg);
+          }
 	}
     }
 
@@ -1012,8 +1020,9 @@
       for (tail = clobbers; tail; tail = TREE_CHAIN (tail))
 	{
 	  const char *regname = TREE_STRING_POINTER (TREE_VALUE (tail));
-	  int j = decode_reg_name (regname);
-	  rtx clobbered_reg;
+	  int reg, nregs;
+          int j = decode_reg_name_and_count (regname, &nregs);
+          rtx clobbered_reg;
 
 	  if (j < 0)
 	    {
@@ -1033,31 +1042,40 @@
 	      /* Ignore unknown register, error already signaled.  */
 	      continue;
 	    }
-
-	  /* Use QImode since that's guaranteed to clobber just one reg.  */
-	  clobbered_reg = gen_rtx_REG (QImode, j);
-
-	  /* Do sanity check for overlap between clobbers and respectively
-	     input and outputs that hasn't been handled.  Such overlap
-	     should have been detected and reported above.  */
-	  if (!clobber_conflict_found)
-	    {
-	      int opno;
-
-	      /* We test the old body (obody) contents to avoid tripping
-		 over the under-construction body.  */
-	      for (opno = 0; opno < noutputs; opno++)
-		if (reg_overlap_mentioned_p (clobbered_reg, output_rtx[opno]))
-		  internal_error ("asm clobber conflict with output operand");
-
-	      for (opno = 0; opno < ninputs - ninout; opno++)
-		if (reg_overlap_mentioned_p (clobbered_reg,
-					     ASM_OPERANDS_INPUT (obody, opno)))
-		  internal_error ("asm clobber conflict with input operand");
+        
+          for (reg = j; reg < j + nregs; reg++)
+            {
+              /* Use QImode since that's guaranteed to clobber just
+               * one reg.  */
+              clobbered_reg = gen_rtx_REG (QImode, reg);
+
+              /* Do sanity check for overlap between clobbers and
+                 respectively input and outputs that hasn't been
+                 handled.  Such overlap should have been detected and
+                 reported above.  */
+              if (!clobber_conflict_found)
+                {
+                  int opno;
+
+                  /* We test the old body (obody) contents to avoid
+                     tripping over the under-construction body.  */
+                  for (opno = 0; opno < noutputs; opno++)
+                    if (reg_overlap_mentioned_p (clobbered_reg,
+                                                 output_rtx[opno]))
+                      internal_error
+                        ("asm clobber conflict with output operand");
+
+                  for (opno = 0; opno < ninputs - ninout; opno++)
+                    if (reg_overlap_mentioned_p (clobbered_reg,
+                                                 ASM_OPERANDS_INPUT (obody,
+                                                                     opno)))
+                      internal_error
+                        ("asm clobber conflict with input operand");
+                }
+  
+              XVECEXP (body, 0, i++)
+                = gen_rtx_CLOBBER (VOIDmode, clobbered_reg);
 	    }
-
-	  XVECEXP (body, 0, i++)
-	    = gen_rtx_CLOBBER (VOIDmode, clobbered_reg);
 	}
 
       emit_insn (body);
--- gcc-4.4.4.orig/gcc/varasm.c
+++ gcc-4.4.4/gcc/varasm.c
@@ -1031,8 +1031,11 @@
    Prefixes such as % are optional.  */
 
 int
-decode_reg_name (const char *asmspec)
+decode_reg_name_and_count (const char *asmspec, int *pnregs)
 {
+  /* Presume just one register is clobbered.  */
+   *pnregs = 1;
+
   if (asmspec != 0)
     {
       int i;
@@ -1058,6 +1061,25 @@
 	    && ! strcmp (asmspec, strip_reg_name (reg_names[i])))
 	  return i;
 
+#ifdef OVERLAPPING_REGISTER_NAMES
+      {
+      static const struct
+      {
+        const char *const name;
+        const int number;
+        const int nregs;
+      } table[] = OVERLAPPING_REGISTER_NAMES;
+
+      for (i = 0; i < (int) ARRAY_SIZE (table); i++)
+        if (table[i].name[0]
+            && ! strcmp (asmspec, table[i].name))
+          {
+            *pnregs = table[i].nregs;
+            return table[i].number;
+          }
+      }
+#endif /* OVERLAPPING_REGISTER_NAMES */
+
 #ifdef ADDITIONAL_REGISTER_NAMES
       {
 	static const struct { const char *const name; const int number; } table[]
@@ -1081,6 +1103,15 @@
 
   return -1;
 }
+
+int
+decode_reg_name (const char *name)
+{
+   int count;
+   return decode_reg_name_and_count (name, &count);
+}
+
+
 \f
 /* Return true if DECL's initializer is suitable for a BSS section.  */
 



1.1                  src/patchsets/gcc/4.5.4/gentoo/99_all_testsuite-01-Wformat.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/99_all_testsuite-01-Wformat.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/99_all_testsuite-01-Wformat.patch?rev=1.1&content-type=text/plain

Index: 99_all_testsuite-01-Wformat.patch
===================================================================
 Workaround testsuite failures caused by enabling -Wformat -Wformat-security
 by default.

 gcc/testsuite/g++.dg/abi/pragma-pack1.C            |    1 +
 gcc/testsuite/g++.dg/ext/align1.C                  |    2 ++
 gcc/testsuite/g++.dg/opt/alias2.C                  |    2 +-
 gcc/testsuite/g++.old-deja/g++.abi/vbase1.C        |    1 +
 gcc/testsuite/g++.old-deja/g++.brendan/template8.C |    1 +
 gcc/testsuite/g++.old-deja/g++.jason/access23.C    |    1 +
 gcc/testsuite/g++.old-deja/g++.law/cvt8.C          |    1 +
 gcc/testsuite/g++.old-deja/g++.law/operators28.C   |    1 +
 gcc/testsuite/g++.old-deja/g++.mike/net35.C        |    1 +
 gcc/testsuite/g++.old-deja/g++.mike/offset1.C      |    1 +
 gcc/testsuite/g++.old-deja/g++.mike/p12306.C       |    1 +
 gcc/testsuite/g++.old-deja/g++.mike/p3579.C        |    1 +
 gcc/testsuite/g++.old-deja/g++.mike/p3708.C        |    1 +
 gcc/testsuite/g++.old-deja/g++.mike/p3708a.C       |    1 +
 gcc/testsuite/g++.old-deja/g++.mike/p3708b.C       |    1 +
 gcc/testsuite/g++.old-deja/g++.mike/p646.C         |    2 +-
 gcc/testsuite/g++.old-deja/g++.mike/p710.C         |    1 +
 gcc/testsuite/g++.old-deja/g++.mike/p789a.C        |    1 +
 gcc/testsuite/g++.old-deja/g++.mike/pmf2.C         |    1 +
 gcc/testsuite/g++.old-deja/g++.mike/temp.C         |    1 +
 gcc/testsuite/g++.old-deja/g++.other/virtual8.C    |    1 +
 gcc/testsuite/g++.old-deja/g++.pt/memtemp23.C      |    1 +
 gcc/testsuite/g++.old-deja/g++.pt/memtemp24.C      |    1 +
 gcc/testsuite/g++.old-deja/g++.pt/memtemp25.C      |    1 +
 gcc/testsuite/g++.old-deja/g++.pt/memtemp26.C      |    1 +
 gcc/testsuite/g++.old-deja/g++.pt/t39.C            |    1 +
 gcc/testsuite/g++.old-deja/g++.robertl/eb17.C      |    1 +
 gcc/testsuite/gcc.dg/charset/builtin2.c            |    2 +-
 gcc/testsuite/gcc.dg/format/opt-1.c                |    2 +-
 gcc/testsuite/gcc.dg/format/opt-2.c                |    2 +-
 gcc/testsuite/gcc.dg/format/opt-3.c                |    2 +-
 gcc/testsuite/gcc.dg/format/opt-4.c                |    2 +-
 gcc/testsuite/gcc.dg/format/opt-5.c                |    2 +-
 gcc/testsuite/gcc.dg/format/opt-6.c                |    2 +-
 gcc/testsuite/gcc.dg/ipa/ipa-sra-1.c               |    2 +-
 gcc/testsuite/gcc.dg/matrix/matrix-2.c             |    2 +-
 gcc/testsuite/gcc.dg/packed-vla.c                  |    2 +-
 gcc/testsuite/gcc.dg/pch/inline-4.c                |    2 ++
 gcc/testsuite/gcc.dg/pr30473.c                     |    2 +-
 gcc/testsuite/gcc.dg/pr38902.c                     |    2 +-
 40 files changed, 42 insertions(+), 14 deletions(-)

--- a/gcc/testsuite/g++.dg/abi/pragma-pack1.C
+++ b/gcc/testsuite/g++.dg/abi/pragma-pack1.C
@@ -1,3 +1,4 @@
+/* { dg-options "-Wformat=0" } */
 // PR c++/7046
 
 extern "C" int printf (const char *, ...);
--- a/gcc/testsuite/g++.dg/ext/align1.C
+++ b/gcc/testsuite/g++.dg/ext/align1.C
@@ -1,3 +1,5 @@
+/* { dg-options "-Wformat=0" } */
+
 // Test that __attribute__ ((aligned)) is preserved.
 // The alignment used to be 64 but Cygwin does not
 // support an alignment greater than 16 and COFF 
--- a/gcc/testsuite/g++.dg/opt/alias2.C
+++ b/gcc/testsuite/g++.dg/opt/alias2.C
@@ -1,5 +1,5 @@
 // { dg-do run }
-// { dg-options "-O2" }
+// { dg-options "-O2 -Wformat=0" }
 
 extern "C" int printf (const char*, ...);
 
--- a/gcc/testsuite/g++.old-deja/g++.abi/vbase1.C
+++ b/gcc/testsuite/g++.old-deja/g++.abi/vbase1.C
@@ -1,4 +1,5 @@
 // { dg-do run  }
+/* { dg-options "-Wformat=0" } */
 // Copyright (C) 2000 Free Software Foundation, Inc.
 // Contributed by Nathan Sidwell 16 Jan 2001 <nathan@codesourcery.com>
 
--- a/gcc/testsuite/g++.old-deja/g++.brendan/template8.C
+++ b/gcc/testsuite/g++.old-deja/g++.brendan/template8.C
@@ -1,4 +1,5 @@
 // { dg-do assemble  }
+/* { dg-options "-Wformat=0" } */
 // GROUPS passed templates
 #include <stdio.h>
 
--- a/gcc/testsuite/g++.old-deja/g++.jason/access23.C
+++ b/gcc/testsuite/g++.old-deja/g++.jason/access23.C
@@ -1,4 +1,5 @@
 // { dg-do assemble  }
+/* { dg-options "-Wformat=0" } */
 // PRMS Id: 9127
 // Bug: members of anonymous unions are not access-controlled.
 
--- a/gcc/testsuite/g++.old-deja/g++.law/cvt8.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/cvt8.C
@@ -1,4 +1,5 @@
 // { dg-do assemble  }
+/* { dg-options "-Wformat=0" } */
 // GROUPS passed conversions
 // cvt file
 // From: solomon@cs.wisc.edu (Marvin Solomon)
--- a/gcc/testsuite/g++.old-deja/g++.law/operators28.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/operators28.C
@@ -1,4 +1,5 @@
 // { dg-do assemble  }
+/* { dg-options "-Wformat=0" } */
 // GROUPS passed operators
 #include <sys/types.h>
 #include <stdio.h>
--- a/gcc/testsuite/g++.old-deja/g++.mike/net35.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/net35.C
@@ -1,4 +1,5 @@
 // { dg-do run  }
+/* { dg-options "-Wformat=0" } */
 extern "C" int printf(const char *, ...);
 
 class A {
--- a/gcc/testsuite/g++.old-deja/g++.mike/offset1.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/offset1.C
@@ -1,4 +1,5 @@
 // { dg-do run  }
+/* { dg-options "-Wformat=0" } */
 extern "C" int printf(const char *, ...);
 void *vp;
 int fail = 0;
--- a/gcc/testsuite/g++.old-deja/g++.mike/p12306.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/p12306.C
@@ -1,4 +1,5 @@
 // { dg-do run  }
+/* { dg-options "-Wformat=0" } */
 // prms-id: 12306
 
 void *ptr1, *ptr2;
--- a/gcc/testsuite/g++.old-deja/g++.mike/p3579.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/p3579.C
@@ -1,4 +1,5 @@
 // { dg-do run  }
+/* { dg-options "-Wformat=0" } */
 // prms-id: 3579
 
 extern "C" int printf(const char *, ...);
--- a/gcc/testsuite/g++.old-deja/g++.mike/p3708.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/p3708.C
@@ -1,4 +1,5 @@
 // { dg-do run  }
+/* { dg-options "-Wformat=0" } */
 // prms-id: 3708
 
 extern "C" int printf (const char *, ...);
--- a/gcc/testsuite/g++.old-deja/g++.mike/p3708a.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/p3708a.C
@@ -1,4 +1,5 @@
 // { dg-do run  }
+/* { dg-options "-Wformat=0" } */
 // prms-id: 3708
 
 extern "C" int printf (const char *, ...);
--- a/gcc/testsuite/g++.old-deja/g++.mike/p3708b.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/p3708b.C
@@ -1,4 +1,5 @@
 // { dg-do run  }
+/* { dg-options "-Wformat=0" } */
 // prms-id: 3708
 
 extern "C" int printf (const char *, ...);
--- a/gcc/testsuite/g++.old-deja/g++.mike/p646.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/p646.C
@@ -1,5 +1,5 @@
 // { dg-do assemble  }
-// { dg-options "-Wno-deprecated -Wreturn-type" }
+// { dg-options "-Wno-deprecated -Wreturn-type -Wformat=0" }
 // GROUPS passed i960
 /*
   Bug Id: bnr
--- a/gcc/testsuite/g++.old-deja/g++.mike/p710.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/p710.C
@@ -1,4 +1,5 @@
 // { dg-do assemble  }
+/* { dg-options "-Wformat=0" } */
 // GROUPS passed delete
 /*
   Bug Id: 
--- a/gcc/testsuite/g++.old-deja/g++.mike/p789a.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/p789a.C
@@ -1,4 +1,5 @@
 // { dg-do run  }
+/* { dg-options "-Wformat=0" } */
 // global and local multidimensional array objects are not getting
 // constructors called on any dimension, other than the first.  Also,
 // the destructors are not being called.  Seems odd, they probably
--- a/gcc/testsuite/g++.old-deja/g++.mike/pmf2.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/pmf2.C
@@ -1,4 +1,5 @@
 // { dg-do run  }
+/* { dg-options "-Wformat=0" } */
 extern "C" int printf(const char *, ...);
 
 class A_table {
--- a/gcc/testsuite/g++.old-deja/g++.mike/temp.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/temp.C
@@ -1,4 +1,5 @@
 // { dg-do run  }
+/* { dg-options "-Wformat=0" } */
 extern "C" int printf(const char *, ...);
 extern "C" const char *getenv(const char *);
 
--- a/gcc/testsuite/g++.old-deja/g++.other/virtual8.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/virtual8.C
@@ -1,4 +1,5 @@
 // { dg-do run  }
+/* { dg-options "-Wformat=0" } */
 extern "C" int printf (const char*, ...);
 
 struct A
--- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp23.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/memtemp23.C
@@ -1,4 +1,5 @@
 // { dg-do link  }
+/* { dg-options "-Wformat=0" } */
 // GROUPS passed templates membertemplates
 extern "C" int printf(const char*, ...);
 
--- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp24.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/memtemp24.C
@@ -1,4 +1,5 @@
 // { dg-do link  }
+/* { dg-options "-Wformat=0" } */
 // GROUPS passed templates membertemplates
 extern "C" int printf(const char*, ...);
 
--- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp25.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/memtemp25.C
@@ -1,4 +1,5 @@
 // { dg-do link  }
+/* { dg-options "-Wformat=0" } */
 // GROUPS passed templates membertemplates
 extern "C" int printf(const char*, ...);
 
--- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp26.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/memtemp26.C
@@ -1,4 +1,5 @@
 // { dg-do link  }
+/* { dg-options "-Wformat=0" } */
 // GROUPS passed templates membertemplates
 extern "C" int printf(const char*, ...);
 
--- a/gcc/testsuite/g++.old-deja/g++.pt/t39.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/t39.C
@@ -1,4 +1,5 @@
 // { dg-do run  }
+/* { dg-options "-Wformat=0" } */
 extern "C" int printf (const char *, ...);
 
 template <class T>
--- a/gcc/testsuite/g++.old-deja/g++.robertl/eb17.C
+++ b/gcc/testsuite/g++.old-deja/g++.robertl/eb17.C
@@ -1,4 +1,5 @@
 // { dg-do run  }
+/* { dg-options "-Wformat=0" } */
 #include <stdio.h>
 
 class A {
--- a/gcc/testsuite/gcc.dg/charset/builtin2.c
+++ b/gcc/testsuite/gcc.dg/charset/builtin2.c
@@ -3,7 +3,7 @@
 
 /* { dg-do compile } */
 /* { dg-require-iconv "IBM1047" } */
-/* { dg-options "-O2 -fexec-charset=IBM1047" } */
+/* { dg-options "-O2 -fexec-charset=IBM1047 -Wformat=0" } */
 /* { dg-final { scan-assembler-not "printf" } } */
 /* { dg-final { scan-assembler-not "fprintf" } } */
 /* { dg-final { scan-assembler-not "sprintf" } } */
--- a/gcc/testsuite/gcc.dg/format/opt-1.c
+++ b/gcc/testsuite/gcc.dg/format/opt-1.c
@@ -2,6 +2,6 @@
    -Wformat.  -Wformat-extra-args.  */
 /* Origin: Joseph Myers <joseph@codesourcery.com> */
 /* { dg-do compile } */
-/* { dg-options "-Wformat-extra-args" } */
+/* { dg-options "-Wformat=0 -Wformat-extra-args" } */
 
 /* { dg-warning "-Wformat-extra-args ignored without -Wformat" "ignored" { target *-*-* } 0 } */
--- a/gcc/testsuite/gcc.dg/format/opt-2.c
+++ b/gcc/testsuite/gcc.dg/format/opt-2.c
@@ -2,6 +2,6 @@
    -Wformat.  -Wformat-nonliteral.  */
 /* Origin: Joseph Myers <joseph@codesourcery.com> */
 /* { dg-do compile } */
-/* { dg-options "-Wformat-nonliteral" } */
+/* { dg-options "-Wformat=0 -Wformat-nonliteral" } */
 
 /* { dg-warning "-Wformat-nonliteral ignored without -Wformat" "ignored" { target *-*-* } 0 } */
--- a/gcc/testsuite/gcc.dg/format/opt-3.c
+++ b/gcc/testsuite/gcc.dg/format/opt-3.c
@@ -2,6 +2,6 @@
    -Wformat.  -Wformat-security.  */
 /* Origin: Joseph Myers <joseph@codesourcery.com> */
 /* { dg-do compile } */
-/* { dg-options "-Wformat-security" } */
+/* { dg-options "-Wformat=0 -Wformat-security" } */
 
 /* { dg-warning "-Wformat-security ignored without -Wformat" "ignored" { target *-*-* } 0 } */
--- a/gcc/testsuite/gcc.dg/format/opt-4.c
+++ b/gcc/testsuite/gcc.dg/format/opt-4.c
@@ -2,6 +2,6 @@
    -Wformat.  -Wformat-y2k.  */
 /* Origin: Joseph Myers <joseph@codesourcery.com> */
 /* { dg-do compile } */
-/* { dg-options "-Wformat-y2k" } */
+/* { dg-options "-Wformat=0 -Wformat-y2k" } */
 
 /* { dg-warning "-Wformat-y2k ignored without -Wformat" "ignored" { target *-*-* } 0 } */
--- a/gcc/testsuite/gcc.dg/format/opt-5.c
+++ b/gcc/testsuite/gcc.dg/format/opt-5.c
@@ -2,6 +2,6 @@
    -Wformat.  -Wformat-zero-length.  */
 /* Origin: Joseph Myers <joseph@codesourcery.com> */
 /* { dg-do compile } */
-/* { dg-options "-Wformat-zero-length" } */
+/* { dg-options "-Wformat=0 -Wformat-zero-length" } */
 
 /* { dg-warning "-Wformat-zero-length ignored without -Wformat" "ignored" { target *-*-* } 0 } */
--- a/gcc/testsuite/gcc.dg/format/opt-6.c
+++ b/gcc/testsuite/gcc.dg/format/opt-6.c
@@ -2,6 +2,6 @@
    -Wformat.  -Wformat-contains-nul.  */
 /* Origin: Bruce Korb <bkorb@gnu.org> */
 /* { dg-do compile } */
-/* { dg-options "-Wformat-contains-nul" } */
+/* { dg-options "-Wformat=0 -Wformat-contains-nul" } */
 
 /* { dg-warning "-Wformat-contains-nul ignored without -Wformat" "ignored" { target *-*-* } 0 } */
--- a/gcc/testsuite/gcc.dg/ipa/ipa-sra-1.c
+++ b/gcc/testsuite/gcc.dg/ipa/ipa-sra-1.c
@@ -1,5 +1,5 @@
 /* { dg-do run } */
-/* { dg-options "-O2 -fipa-sra -fdump-tree-eipa_sra-details"  } */
+/* { dg-options "-O2 -fipa-sra -fdump-tree-eipa_sra-details -Wformat=0"  } */
 
 struct bovid
 {
--- a/gcc/testsuite/gcc.dg/matrix/matrix-2.c
+++ b/gcc/testsuite/gcc.dg/matrix/matrix-2.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-do run } */
-
+/* { dg-options "-Wformat=0" } */
 
 #include <stdio.h>
 #include <stdlib.h>
--- a/gcc/testsuite/gcc.dg/packed-vla.c
+++ b/gcc/testsuite/gcc.dg/packed-vla.c
@@ -1,6 +1,6 @@
 /* PR middle-end/27945 */
 /* { dg-do run } */
-/* { dg-options "" } */
+/* { dg-options "-Wformat=0" } */
 
 extern int printf (const char *, ...);
 extern void abort ();
--- a/gcc/testsuite/gcc.dg/pch/inline-4.c
+++ b/gcc/testsuite/gcc.dg/pch/inline-4.c
@@ -1,3 +1,5 @@
+/* { dg-options "-Wformat=0" } */
+
 #include "inline-4.h"
 extern int printf (const char *, ...);
 int main(void) {
--- a/gcc/testsuite/gcc.dg/pr30473.c
+++ b/gcc/testsuite/gcc.dg/pr30473.c
@@ -1,7 +1,7 @@
 /* PR middle-end/30473 */
 /* Make sure this doesn't ICE.  */
 /* { dg-do compile } */
-/* { dg-options "-O2" } */
+/* { dg-options "-O2 -Wformat=0" } */
 
 extern int sprintf (char *, const char *, ...);
 
--- a/gcc/testsuite/gcc.dg/pr38902.c
+++ b/gcc/testsuite/gcc.dg/pr38902.c
@@ -1,6 +1,6 @@
 /* PR target/38902 */
 /* { dg-do run } */
-/* { dg-options "-O2 -fstack-protector" } */
+/* { dg-options "-O2 -fstack-protector -Wformat=0" } */
 /* { dg-require-effective-target fstack_protector } */
 
 #ifdef DEBUG



1.1                  src/patchsets/gcc/4.5.4/gentoo/99_all_testsuite-02-Wtrampolines.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/99_all_testsuite-02-Wtrampolines.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/99_all_testsuite-02-Wtrampolines.patch?rev=1.1&content-type=text/plain

Index: 99_all_testsuite-02-Wtrampolines.patch
===================================================================
 Workaround testsuite failures caused by enabling -Wtrampolines by default.
 
 gcc/testsuite/gcc.dg/20050607-1.c                  |    2 +-
 gcc/testsuite/gcc.dg/debug/debug-3.c               |    1 +
 gcc/testsuite/gcc.dg/debug/debug-5.c               |    1 +
 gcc/testsuite/gcc.dg/nested-func-5.c               |    2 +-
 gcc/testsuite/gcc.dg/pr34457-1.c                   |    2 +-
 gcc/testsuite/gcc.dg/torture/nested-fn-1.c         |    2 +-
 gcc/testsuite/gcc.dg/torture/stackalign/nested-5.c |    1 +
 gcc/testsuite/gcc.dg/torture/stackalign/nested-6.c |    1 +
 gcc/testsuite/gcc.dg/trampoline-1.c                |    2 +-
 9 files changed, 9 insertions(+), 5 deletions(-)

--- a/gcc/testsuite/gcc.dg/20050607-1.c
+++ b/gcc/testsuite/gcc.dg/20050607-1.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-require-effective-target trampolines } */
-/* { dg-options "-Wpadded" }
+/* { dg-options "-Wpadded -Wno-trampolines" }
 /* The struct internally constructed for the nested function should
    not result in a warning from -Wpadded. */
 extern int baz(int (*) (int));
--- a/gcc/testsuite/gcc.dg/debug/debug-3.c
+++ b/gcc/testsuite/gcc.dg/debug/debug-3.c
@@ -2,6 +2,7 @@
    (spanned 0 basic blocks) and DWARF-2 couldn't find baz origin.  */
 /* { dg-do compile } */
 /* { dg-require-effective-target trampolines } */
+/* { dg-options "-Wno-trampolines" } */
 
 struct A { char *a, *b, *c, *d; };
 
--- a/gcc/testsuite/gcc.dg/debug/debug-5.c
+++ b/gcc/testsuite/gcc.dg/debug/debug-5.c
@@ -2,6 +2,7 @@
    (spanned 0 basic blocks) and DWARF-2 couldn't find baz origin.  */
 /* { dg-do compile } */
 /* { dg-require-effective-target trampolines } */
+/* { dg-options "-Wno-trampolines" } */
 
 extern void abort (void);
 
--- a/gcc/testsuite/gcc.dg/nested-func-5.c
+++ b/gcc/testsuite/gcc.dg/nested-func-5.c
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-fexceptions" } */
+/* { dg-options "-fexceptions -Wno-trampolines" } */
 /* PR28516: ICE generating ARM unwind directives for nested functions.  */
 /* { dg-require-effective-target trampolines } */
 
--- a/gcc/testsuite/gcc.dg/pr34457-1.c
+++ b/gcc/testsuite/gcc.dg/pr34457-1.c
@@ -1,7 +1,7 @@
 /* PR c/34457 */
 /* { dg-do compile } */
 /* { dg-require-effective-target trampolines } */
-/* { dg-options "--combine -O2" } */
+/* { dg-options "--combine -O2 -Wno-trampolines" } */
 /* { dg-additional-sources "pr34457-2.c" } */
    
 
--- a/gcc/testsuite/gcc.dg/torture/nested-fn-1.c
+++ b/gcc/testsuite/gcc.dg/torture/nested-fn-1.c
@@ -1,7 +1,7 @@
 /* PR middle-end/15345, c/16450 */
 /* Test whether unused nested functions aren't emitted into the assembly.  */
 /* { dg-do compile } */
-/* { dg-options "-g0" } */
+/* { dg-options "-g0 -Wno-trampolines" } */
 /* { dg-require-effective-target trampolines } */
 
 int
--- a/gcc/testsuite/gcc.dg/torture/stackalign/nested-5.c
+++ b/gcc/testsuite/gcc.dg/torture/stackalign/nested-5.c
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-options "-Wno-trampolines" } */
 
 extern void abort (void);
 extern void exit (int);
--- a/gcc/testsuite/gcc.dg/torture/stackalign/nested-6.c
+++ b/gcc/testsuite/gcc.dg/torture/stackalign/nested-6.c
@@ -1,4 +1,5 @@
 /* { dg-do run } */
+/* { dg-options "-Wno-trampolines" } */
 
 #ifndef NO_TRAMPOLINES
 
--- a/gcc/testsuite/gcc.dg/trampoline-1.c
+++ b/gcc/testsuite/gcc.dg/trampoline-1.c
@@ -3,7 +3,7 @@
 
 /* { dg-do run } */
 /* { dg-require-effective-target trampolines } */
-/* { dg-options "-O2" } */
+/* { dg-options "-O2 -Wno-trampolines" } */
 
 #ifndef NO_TRAMPOLINES
 



1.1                  src/patchsets/gcc/4.5.4/gentoo/99_all_testsuite-03-check-lto.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/99_all_testsuite-03-check-lto.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/99_all_testsuite-03-check-lto.patch?rev=1.1&content-type=text/plain

Index: 99_all_testsuite-03-check-lto.patch
===================================================================
Backport from 4.6.0.

http://gcc.gnu.org/PR45638
http://gcc.gnu.org/viewcvs?view=revision&revision=165638

make[3]: [check-parallel-g++] Error 1 (ignored)
make[3]: Leaving directory `/var/tmp/portage/sys-devel/gcc-4.5.2/work/build/gcc'
make[2]: *** No rule to make target `check-lto', needed by `check'.
make[2]: Target `check' not remade because of errors.
make[2]: Leaving directory `/var/tmp/portage/sys-devel/gcc-4.5.2/work/build/gcc'
make[1]: *** [check-gcc] Error 2


--- a/gcc/lto/Make-lang.in
+++ b/gcc/lto/Make-lang.in
@@ -94,3 +94,6 @@ lto/lto-coff.o: lto/lto-coff.c $(CONFIG_H) coretypes.h $(SYSTEM_H) \
 lto/lto-macho.o: lto/lto-macho.c $(CONFIG_H) coretypes.h $(SYSTEM_H) \
 	toplev.h $(LTO_H) $(TM_H) $(LIBIBERTY_H) $(GGC_H) $(LTO_STREAMER_H) \
 	lto/lto-macho.h lto/lto-endian.h
+
+# LTO testing is done as part of C/C++/Fortran etc. testing.
+check-lto:



1.1                  src/patchsets/gcc/4.5.4/gentoo/README.history

file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/README.history?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/gcc/4.5.4/gentoo/README.history?rev=1.1&content-type=text/plain

Index: README.history
===================================================================
1.0	(pending)
	+ 00_all_gcc-4.1-alpha-mieee-default.patch
	+ 01_all_gcc-4.1-alpha-asm-mcpu.patch
	+ 03_all_gcc43-java-nomulti.patch
	+ 08_all_gcc-4.1-cross-compile.patch
	+ 09_all_gcc-4.5-Wtrampolines.patch
	+ 10_all_gcc-default-format-security.patch
	+ 10_all_gcc-default-fortify-source.patch
	+ 11_all_gcc-netbsd-symbolic.patch
	+ 14_all_gcc-sparc64-bsd.patch
	+ 15_all_gcc-libgomp-no-werror.patch
	+ 22_all_4.6_pr45094_arm-dword-move.patch
	+ 23_all_4.6_pr45886_ARM_PCS_VFP.patch
	+ 30_all_gcc-4.5-ppc-msingle-pic-base.patch
	+ 31_all_gcc-4.4-ppc-fpic-mrelocatable.patch
	+ 33_all_armhf.patch
	+ 40_all_gcc-4.4-libiberty.h-asprintf.patch
	+ 47_all_arm-unbreak-armv4t.patch
	+ 51_all_gcc-3.4-libiberty-pic.patch
	+ 53_all_gcc4-superh-default-multilib.patch
	+ 61_all_gcc4-ia64-noteGNUstack.patch
	+ 74_all_sh-pr24836.patch
	+ 92_all_freebsd-pie.patch
	+ 93_all_gcc-4.5-cloog-dl.patch
	+ 94_all_gcc-4.5-pch-nostdinc.patch
	+ 95_all_arm-pr43440.patch
	+ 99_all_testsuite-01-Wformat.patch
	+ 99_all_testsuite-02-Wtrampolines.patch
	+ 99_all_testsuite-03-check-lto.patch






^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2012-07-15  5:29 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-15  5:28 [gentoo-commits] gentoo commit in src/patchsets/gcc/4.5.4/gentoo: 00_all_gcc-4.1-alpha-mieee-default.patch 01_all_gcc-4.1-alpha-asm-mcpu.patch 03_all_gcc43-java-nomulti.patch 08_all_gcc-4.1-cross-compile.patch 09_all_gcc-4.5-Wtrampolines.patch 10_all_gcc-default-format-security.patch 10_all_gcc-default-fortify-source.patch 11_all_gcc-netbsd-symbolic.patch 14_all_gcc-sparc64-bsd.patch 15_all_gcc-libgomp-no-werror.patch 22_all_4.6_pr45094_arm-dword-move.patch 23_all_4.6_pr45886_ARM_PCS_VFP.patch 30_all_gcc-4.5-ppc-msingle-pic-base.patch 31_all_gcc-4.4-ppc-fpic-mrelocatable.patch 33_all_armhf.patch 40_all_gcc-4.4-libiberty.h-asprintf.patch 47_all_arm-unbreak-armv4t.patch 51_all_gcc-3.4-libiberty-pic.patch 53_all_gcc4-superh-default-multilib.patch 61_all_gcc4-ia64-noteGNUstack.patch 74_all_sh-pr24836.patch 92_all_freebsd-pie.patch 93_all_gcc-4.5-cloog-dl.patch 94_all_gcc-4.5-pch-nostdinc.patch 95_all_arm-pr43440.patch 99_all_testsuite-01-Wformat.patch 99_all_testsuite-02 -Wtrampolines.pat ch 99_all_testsuite-03-check-lto.patch README.history Ryan Hill (dirtyepic)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox