This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] gcc: add support for 4.3.4


# HG changeset patch
# User Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
# Date 1249575421 -7200
# Node ID 13a04b49a68e640d09912c91e3e6a95bb4ea94f6
# Parent  367156067ce8543c8654fabcf9c417169041f6fa
gcc: add support for 4.3.4

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

diff -r 367156067ce8 -r 13a04b49a68e config/cc/gcc.in
--- a/config/cc/gcc.in	Wed Aug 05 15:23:52 2009 +0200
+++ b/config/cc/gcc.in	Thu Aug 06 18:17:01 2009 +0200
@@ -125,6 +125,11 @@
     select CC_GCC_4_3_or_later
     select CC_GCC_4_4_or_later
 
+config CC_V_4_3_4
+    bool
+    prompt "4.3.4"
+    select CC_GCC_4_3_or_later
+
 # CT_INSERT_VERSION_ABOVE
 # Don't remove above line!
 endchoice
@@ -163,6 +168,7 @@
     default "4.3.3" if CC_V_4_3_3
     default "4.4.0" if CC_V_4_4_0
     default "4.4.1" if CC_V_4_4_1
+    default "4.3.4" if CC_V_4_3_4
 # CT_INSERT_VERSION_STRING_ABOVE
 # Don't remove above line!
 
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/100-alpha-mieee-default.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/100-alpha-mieee-default.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,39 @@
+Original patch from: ../4.3.2/100-alpha-mieee-default.patch
+
+-= BEGIN original header =-
+Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/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>
+
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/gcc/config/alpha/alpha.h gcc-4.3.3/gcc/config/alpha/alpha.h
+--- gcc-4.3.3.orig/gcc/config/alpha/alpha.h	2007-12-06 14:25:37.000000000 +0100
++++ gcc-4.3.3/gcc/config/alpha/alpha.h	2009-01-27 22:19:02.000000000 +0100
+@@ -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))
+ 
+diff -durN gcc-4.3.3.orig/gcc/config/alpha/alpha.opt gcc-4.3.3/gcc/config/alpha/alpha.opt
+--- gcc-4.3.3.orig/gcc/config/alpha/alpha.opt	2007-08-02 12:49:31.000000000 +0200
++++ gcc-4.3.3/gcc/config/alpha/alpha.opt	2009-01-27 22:19:02.000000000 +0100
+@@ -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
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/110-trampolinewarn.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/110-trampolinewarn.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,40 @@
+Original patch from: ../4.3.2/110-trampolinewarn.patch
+
+-= BEGIN original header =-
+Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/00_all_gcc-trampolinewarn.patch
+	This trivial patch causes gcc to emit a warning whenever
+	it generates a trampoline.  These are otherwise hard to
+	locate.  It is rigged to default ON - to have it default
+	to OFF remove the text 'Init(1)' from the common.opt
+	patch, leaving just 'Common Var(warn_trampolines)'.
+	Kevin F. Quinn <kevquinn@gentoo.org> 17 Jan 2006
+
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/gcc/builtins.c gcc-4.3.3/gcc/builtins.c
+--- gcc-4.3.3.orig/gcc/builtins.c	2008-08-19 18:37:13.000000000 +0200
++++ gcc-4.3.3/gcc/builtins.c	2009-01-27 22:19:12.000000000 +0100
+@@ -5662,6 +5662,9 @@
+   trampolines_created = 1;
+   INITIALIZE_TRAMPOLINE (r_tramp, r_func, r_chain);
+ 
++  if (warn_trampolines)
++    warning (OPT_Wtrampolines, "generating trampoline in object (requires executable stack)");
++
+   return const0_rtx;
+ }
+ 
+diff -durN gcc-4.3.3.orig/gcc/common.opt gcc-4.3.3/gcc/common.opt
+--- gcc-4.3.3.orig/gcc/common.opt	2008-01-22 15:11:44.000000000 +0100
++++ gcc-4.3.3/gcc/common.opt	2009-01-27 22:19:12.000000000 +0100
+@@ -182,6 +182,10 @@
+ Common Var(warn_system_headers) Warning
+ Do not suppress warnings from system headers
+ 
++Wtrampolines
++Common Var(warn_trampolines) Init(1)
++Warn whenever a trampoline is generated
++
+ Wuninitialized
+ Common Var(warn_uninitialized) Warning
+ Warn about uninitialized automatic variables
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/120-java-nomulti.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/120-java-nomulti.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,52 @@
+Original patch from: ../4.3.2/120-java-nomulti.patch
+
+-= BEGIN original header =-
+Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/03_all_gcc43-java-nomulti.patch
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/libjava/configure gcc-4.3.3/libjava/configure
+--- gcc-4.3.3.orig/libjava/configure	2009-01-24 11:32:29.000000000 +0100
++++ gcc-4.3.3/libjava/configure	2009-01-27 22:19:14.000000000 +0100
+@@ -1018,6 +1018,8 @@
+   --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
+@@ -1850,6 +1852,16 @@
+ 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.
+ 
+ 
+diff -durN gcc-4.3.3.orig/libjava/configure.ac gcc-4.3.3/libjava/configure.ac
+--- gcc-4.3.3.orig/libjava/configure.ac	2008-07-02 23:23:43.000000000 +0200
++++ gcc-4.3.3/libjava/configure.ac	2009-01-27 22:19:14.000000000 +0100
+@@ -82,6 +82,13 @@
+ 	[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
+ 
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/130-cross-compile.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/130-cross-compile.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,49 @@
+Original patch from: ../4.3.2/130-cross-compile.patch
+
+-= BEGIN original header =-
+Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/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
+
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/gcc/configure gcc-4.3.3/gcc/configure
+--- gcc-4.3.3.orig/gcc/configure	2008-08-01 11:51:03.000000000 +0200
++++ gcc-4.3.3/gcc/configure	2009-01-27 22:19:16.000000000 +0100
+@@ -13442,7 +13442,7 @@
+ 	    | 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
+ 
+diff -durN gcc-4.3.3.orig/gcc/configure.ac gcc-4.3.3/gcc/configure.ac
+--- gcc-4.3.3.orig/gcc/configure.ac	2008-08-01 11:51:03.000000000 +0200
++++ gcc-4.3.3/gcc/configure.ac	2009-01-27 22:19:16.000000000 +0100
+@@ -1749,7 +1749,7 @@
+ 	    | 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
+ 
+diff -durN gcc-4.3.3.orig/gcc/unwind-dw2.c gcc-4.3.3/gcc/unwind-dw2.c
+--- gcc-4.3.3.orig/gcc/unwind-dw2.c	2008-09-25 00:44:28.000000000 +0200
++++ gcc-4.3.3/gcc/unwind-dw2.c	2009-01-27 22:19:16.000000000 +0100
+@@ -334,9 +334,11 @@
+ }
+ #endif
+ 
++#ifndef inhibit_libc
+ #ifdef MD_UNWIND_SUPPORT
+ #include MD_UNWIND_SUPPORT
+ #endif
++#endif
+ 
+ /* Extract any interesting information from the CIE for the translation
+    unit F belongs to.  Return a pointer to the byte after the augmentation,
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/140-netbsd-symbolic.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/140-netbsd-symbolic.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,19 @@
+Original patch from: ../4.3.2/140-netbsd-symbolic.patch
+
+-= BEGIN original header =-
+Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/11_all_gcc-netbsd-symbolic.patch
+http://bugs.gentoo.org/122698
+
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/gcc/config/netbsd-elf.h gcc-4.3.3/gcc/config/netbsd-elf.h
+--- gcc-4.3.3.orig/gcc/config/netbsd-elf.h	2007-09-03 18:14:04.000000000 +0200
++++ gcc-4.3.3/gcc/config/netbsd-elf.h	2009-01-27 22:19:18.000000000 +0100
+@@ -82,6 +82,7 @@
+ #define NETBSD_LINK_SPEC_ELF \
+   "%{assert*} %{R*} %{rpath*} \
+    %{shared:-shared} \
++   %{symbolic:-Bsymbolic} \
+    %{!shared: \
+      -dc -dp \
+      %{!nostdlib: \
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/150-sparc64-bsd.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/150-sparc64-bsd.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,35 @@
+Original patch from: ../4.3.2/150-sparc64-bsd.patch
+
+-= BEGIN original header =-
+Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/14_all_gcc-sparc64-bsd.patch
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/gcc/config/sparc/freebsd.h gcc-4.3.3/gcc/config/sparc/freebsd.h
+--- gcc-4.3.3.orig/gcc/config/sparc/freebsd.h	2007-08-02 12:49:31.000000000 +0200
++++ gcc-4.3.3/gcc/config/sparc/freebsd.h	2009-01-27 22:19:20.000000000 +0100
+@@ -25,9 +25,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}}						\
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/160-flatten-switch-stmt-00.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/160-flatten-switch-stmt-00.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,81 @@
+Original patch from: ../4.3.2/160-flatten-switch-stmt-00.patch
+
+-= BEGIN original header =-
+Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/18_all_904-flatten-switch-stmt-00.patch
+http://gcc.gnu.org/ml/gcc-patches/2007-04/msg00927.html
+
+Hi,
+
+The attached patch makes sure that we create smaller object code for
+simple switch statements. We just make sure to flatten the switch
+statement into an if-else chain, basically.
+
+This fixes a size-regression as compared to gcc-3.4, as can be seen
+below.
+
+2007-04-15  Bernhard Fischer  <..>
+
+	* stmt.c (expand_case): Do not create a complex binary tree when
+	optimizing for size but rather use the simple ordered list.
+	(emit_case_nodes): do not emit jumps to the default_label when
+	optimizing for size.
+
+Not regtested so far.
+Comments?
+
+Attached is the test switch.c mentioned below.
+
+$ for i in 2.95 3.3 3.4 4.0 4.1 4.2.orig-HEAD 4.3.orig-HEAD 4.3-HEAD;do
+gcc-$i  -DCHAIN -Os -o switch-CHAIN-$i.o -c switch.c ;done
+$ for i in 2.95 3.3 3.4 4.0 4.1 4.2.orig-HEAD 4.3.orig-HEAD 4.3-HEAD;do
+gcc-$i  -UCHAIN -Os -o switch-$i.o -c switch.c ;done
+
+$ size switch-*.o
+   text	   data	    bss	    dec	    hex	filename
+    169	      0	      0	    169	     a9	switch-2.95.o
+    115	      0	      0	    115	     73	switch-3.3.o
+    103	      0	      0	    103	     67	switch-3.4.o
+    124	      0	      0	    124	     7c	switch-4.0.o
+    124	      0	      0	    124	     7c	switch-4.1.o
+    124	      0	      0	    124	     7c	switch-4.2.orig-HEAD.o
+     95	      0	      0	     95	     5f	switch-4.3-HEAD.o
+    124	      0	      0	    124	     7c	switch-4.3.orig-HEAD.o
+    166	      0	      0	    166	     a6	switch-CHAIN-2.95.o
+    111	      0	      0	    111	     6f	switch-CHAIN-3.3.o
+     95	      0	      0	     95	     5f	switch-CHAIN-3.4.o
+     95	      0	      0	     95	     5f	switch-CHAIN-4.0.o
+     95	      0	      0	     95	     5f	switch-CHAIN-4.1.o
+     95	      0	      0	     95	     5f	switch-CHAIN-4.2.orig-HEAD.o
+     95	      0	      0	     95	     5f	switch-CHAIN-4.3-HEAD.o
+     95	      0	      0	     95	     5f	switch-CHAIN-4.3.orig-HEAD.o
+
+
+Content-Type: text/x-diff; charset=us-ascii
+Content-Disposition: attachment; filename="gcc-4.3.gcc-flatten-switch-stmt.00.diff"
+
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/gcc/stmt.c gcc-4.3.3/gcc/stmt.c
+--- gcc-4.3.3.orig/gcc/stmt.c	2008-05-09 20:12:13.000000000 +0200
++++ gcc-4.3.3/gcc/stmt.c	2009-01-27 22:19:28.000000000 +0100
+@@ -2509,7 +2509,11 @@
+ 	  use_cost_table
+ 	    = (TREE_CODE (orig_type) != ENUMERAL_TYPE
+ 	       && estimate_case_costs (case_list));
+-	  balance_case_nodes (&case_list, NULL);
++	  /* When optimizing for size, we want a straight list to avoid
++	     jumps as much as possible. This basically creates an if-else
++	     chain.  */
++	  if (!optimize_size)
++	    balance_case_nodes (&case_list, NULL);
+ 	  emit_case_nodes (index, case_list, default_label, index_type);
+ 	  emit_jump (default_label);
+ 	}
+@@ -3067,6 +3071,7 @@
+ 	    {
+ 	      if (!node_has_low_bound (node, index_type))
+ 		{
++		  if (!optimize_size) /* don't jl to the .default_label. */
+ 		  emit_cmp_and_jump_insns (index,
+ 					   convert_modes
+ 					   (mode, imode,
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/170-libiberty-pic.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/170-libiberty-pic.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,17 @@
+Original patch from: ../4.3.2/170-libiberty-pic.patch
+
+-= BEGIN original header =-
+Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/51_all_gcc-3.4-libiberty-pic.patch
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/libiberty/Makefile.in gcc-4.3.3/libiberty/Makefile.in
+--- gcc-4.3.3.orig/libiberty/Makefile.in	2007-07-25 08:26:45.000000000 +0200
++++ gcc-4.3.3/libiberty/Makefile.in	2009-01-27 22:19:30.000000000 +0100
+@@ -225,6 +225,7 @@
+ 	  $(AR) $(AR_FLAGS) $(TARGETLIB) \
+ 	    $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \
+ 	  $(RANLIB) $(TARGETLIB); \
++	  cp $(TARGETLIB) ../ ; \
+ 	  cd ..; \
+ 	else true; fi
+ 
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/180-superh-default-multilib.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/180-superh-default-multilib.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,30 @@
+Original patch from: ../4.3.2/180-superh-default-multilib.patch
+
+-= BEGIN original header =-
+Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/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
+
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/gcc/config.gcc gcc-4.3.3/gcc/config.gcc
+--- gcc-4.3.3.orig/gcc/config.gcc	2008-11-20 18:09:53.000000000 +0100
++++ gcc-4.3.3/gcc/config.gcc	2009-01-27 22:19:32.000000000 +0100
+@@ -2275,7 +2275,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=`cd ${srcdir}/config/sh ; echo t-mlib-sh[1-4]* | sed 's:t-mlib-sh:,m:g;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 ;;
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/190-libstdc++-pic.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/190-libstdc++-pic.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,61 @@
+Original patch from: ../4.3.2/190-libstdc++-pic.patch
+
+-= BEGIN original header =-
+Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/54_all_300-libstdc++-pic.patch
+install libstdc++_pic.a if we have pic objs
+
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/libstdc++-v3/src/Makefile.am gcc-4.3.3/libstdc++-v3/src/Makefile.am
+--- gcc-4.3.3.orig/libstdc++-v3/src/Makefile.am	2008-02-29 19:26:50.000000000 +0100
++++ gcc-4.3.3/libstdc++-v3/src/Makefile.am	2009-01-27 22:19:34.000000000 +0100
+@@ -289,6 +289,13 @@
+ 	  $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
+ 
+ 
++install-exec-local:
++	pic_objs=`sed -n "s:'::g;s:^pic_object=::p" *.lo | grep -v '^none$$'`; \
++	if [ x"$$pic_objs" != x ]; then \
++		$(AR) cru libstdc++_pic.a $$pic_objs $(top_builddir)/libsupc++/*.o || exit 1; \
++		$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) || exit 1; \
++	fi
++
+ # Added bits to build debug library.
+ if GLIBCXX_BUILD_DEBUG
+ all-local: build_debug
+diff -durN gcc-4.3.3.orig/libstdc++-v3/src/Makefile.in gcc-4.3.3/libstdc++-v3/src/Makefile.in
+--- gcc-4.3.3.orig/libstdc++-v3/src/Makefile.in	2008-02-29 19:26:50.000000000 +0100
++++ gcc-4.3.3/libstdc++-v3/src/Makefile.in	2009-01-27 22:19:34.000000000 +0100
+@@ -693,7 +693,7 @@
+ 
+ install-data-am: install-data-local
+ 
+-install-exec-am: install-toolexeclibLTLIBRARIES
++install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
+ 
+ install-info: install-info-am
+ 
+@@ -732,7 +732,7 @@
+ 	maintainer-clean-generic mostlyclean mostlyclean-compile \
+ 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ 	tags uninstall uninstall-am uninstall-info-am \
+-	uninstall-toolexeclibLTLIBRARIES
++	uninstall-toolexeclibLTLIBRARIES install-exec-local
+ 
+ 
+ # Symbol versioning for shared libraries.
+@@ -858,6 +858,14 @@
+ install_debug:
+ 	(cd ${debugdir} && $(MAKE) \
+ 	toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
++
++install-exec-local:
++	pic_objs=`sed -n "s:'::g;s:^pic_object=::p" *.lo | grep -v '^none$$'`; \
++	if [ x"$$pic_objs" != x ]; then \
++		$(AR) cru libstdc++_pic.a $$pic_objs $(top_builddir)/libsupc++/*.o || exit 1; \
++		$(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) || exit 1; \
++	fi
++
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/200-pr24170.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/200-pr24170.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,66 @@
+Original patch from: ../4.3.2/200-pr24170.patch
+
+-= BEGIN original header =-
+Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/61_all_gcc43-pr24170.patch
+http://gcc.gnu.org/PR24170
+
+2008-02-20  Tom Tromey  <tromey@redhat.com>
+
+	PR libgcj/24170:
+	* java/io/natFilePosix.cc (File::performList): Don't use
+	readdir_r.
+	* configure, include/config.h.in: Rebuilt.
+	* configure.ac: Don't check for readdir_r.
+
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/libjava/configure.ac gcc-4.3.3/libjava/configure.ac
+--- gcc-4.3.3.orig/libjava/configure.ac	2009-01-27 22:19:16.000000000 +0100
++++ gcc-4.3.3/libjava/configure.ac	2009-01-27 22:19:36.000000000 +0100
+@@ -1030,7 +1030,7 @@
+    PLATFORMNET=NoNet
+ else
+    AC_CHECK_FUNCS([strerror_r select fstat open fsync sleep opendir \
+-                   localtime_r readdir_r getpwuid_r getcwd \
++                   localtime_r getpwuid_r getcwd \
+ 		   access stat lstat mkdir rename rmdir unlink utime chmod readlink \
+ 		   nl_langinfo setlocale \
+ 		   inet_pton uname inet_ntoa \
+diff -durN gcc-4.3.3.orig/libjava/include/config.h.in gcc-4.3.3/libjava/include/config.h.in
+--- gcc-4.3.3.orig/libjava/include/config.h.in	2007-07-31 18:17:21.000000000 +0200
++++ gcc-4.3.3/libjava/include/config.h.in	2009-01-27 22:19:36.000000000 +0100
+@@ -214,9 +214,6 @@
+ /* Define to 1 if you have the <pwd.h> header file. */
+ #undef HAVE_PWD_H
+ 
+-/* Define to 1 if you have the `readdir_r' function. */
+-#undef HAVE_READDIR_R
+-
+ /* Define to 1 if you have the `readlink' function. */
+ #undef HAVE_READLINK
+ 
+diff -durN gcc-4.3.3.orig/libjava/java/io/natFilePosix.cc gcc-4.3.3/libjava/java/io/natFilePosix.cc
+--- gcc-4.3.3.orig/libjava/java/io/natFilePosix.cc	2007-08-04 23:50:01.000000000 +0200
++++ gcc-4.3.3/libjava/java/io/natFilePosix.cc	2009-01-27 22:19:36.000000000 +0100
+@@ -1,6 +1,6 @@
+ // natFile.cc - Native part of File class for POSIX.
+ 
+-/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006
++/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2006, 2008
+    Free Software Foundation
+ 
+    This file is part of libgcj.
+@@ -292,13 +292,7 @@
+ 
+   java::util::ArrayList *list = new java::util::ArrayList ();
+   struct dirent *d;
+-#if defined(HAVE_READDIR_R) && defined(_POSIX_PTHREAD_SEMANTICS)
+-  int name_max = pathconf (buf, _PC_NAME_MAX);
+-  char dbuf[sizeof (struct dirent) + name_max + 1];
+-  while (readdir_r (dir, (struct dirent *) dbuf, &d) == 0 && d != NULL)
+-#else /* HAVE_READDIR_R */
+   while ((d = readdir (dir)) != NULL)
+-#endif /* HAVE_READDIR_R */
+     {
+       // Omit "." and "..".
+       if (d->d_name[0] == '.'
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/210-noteGNUstack-00.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/210-noteGNUstack-00.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,101 @@
+Original patch from: ../4.3.2/210-noteGNUstack-00.patch
+
+-= BEGIN original header =-
+Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/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.
+
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/gcc/config/ia64/crtbegin.asm gcc-4.3.3/gcc/config/ia64/crtbegin.asm
+--- gcc-4.3.3.orig/gcc/config/ia64/crtbegin.asm	2005-09-27 02:52:24.000000000 +0200
++++ gcc-4.3.3/gcc/config/ia64/crtbegin.asm	2009-01-27 22:19:39.000000000 +0100
+@@ -255,3 +255,7 @@
+ .weak __cxa_finalize
+ #endif
+ .weak _Jv_RegisterClasses
++
++#ifdef __linux__
++.section .note.GNU-stack; .previous
++#endif
+diff -durN gcc-4.3.3.orig/gcc/config/ia64/crtend.asm gcc-4.3.3/gcc/config/ia64/crtend.asm
+--- gcc-4.3.3.orig/gcc/config/ia64/crtend.asm	2005-09-27 02:52:24.000000000 +0200
++++ gcc-4.3.3/gcc/config/ia64/crtend.asm	2009-01-27 22:19:39.000000000 +0100
+@@ -122,3 +122,7 @@
+ 
+ 	br.ret.sptk.many rp
+ 	.endp __do_global_ctors_aux
++
++#ifdef __linux__
++.section .note.GNU-stack; .previous
++#endif
+diff -durN gcc-4.3.3.orig/gcc/config/ia64/crti.asm gcc-4.3.3/gcc/config/ia64/crti.asm
+--- gcc-4.3.3.orig/gcc/config/ia64/crti.asm	2005-06-25 03:22:41.000000000 +0200
++++ gcc-4.3.3/gcc/config/ia64/crti.asm	2009-01-27 22:19:39.000000000 +0100
+@@ -64,3 +64,7 @@
+ 	.body
+ 
+ # end of crti.asm
++
++#ifdef __linux__
++.section .note.GNU-stack; .previous
++#endif
+diff -durN gcc-4.3.3.orig/gcc/config/ia64/crtn.asm gcc-4.3.3/gcc/config/ia64/crtn.asm
+--- gcc-4.3.3.orig/gcc/config/ia64/crtn.asm	2005-06-25 03:22:41.000000000 +0200
++++ gcc-4.3.3/gcc/config/ia64/crtn.asm	2009-01-27 22:19:39.000000000 +0100
+@@ -54,3 +54,7 @@
+ 	br.ret.sptk.many b0
+ 
+ # end of crtn.asm
++
++#ifdef __linux__
++.section .note.GNU-stack; .previous
++#endif
+diff -durN gcc-4.3.3.orig/gcc/config/ia64/lib1funcs.asm gcc-4.3.3/gcc/config/ia64/lib1funcs.asm
+--- gcc-4.3.3.orig/gcc/config/ia64/lib1funcs.asm	2005-09-27 02:52:24.000000000 +0200
++++ gcc-4.3.3/gcc/config/ia64/lib1funcs.asm	2009-01-27 22:19:39.000000000 +0100
+@@ -792,3 +792,7 @@
+ 	}
+ 	.endp __floattitf
+ #endif
++
++#ifdef __linux__
++.section .note.GNU-stack; .previous
++#endif
+diff -durN gcc-4.3.3.orig/gcc/config/ia64/linux.h gcc-4.3.3/gcc/config/ia64/linux.h
+--- gcc-4.3.3.orig/gcc/config/ia64/linux.h	2006-12-12 16:15:19.000000000 +0100
++++ gcc-4.3.3/gcc/config/ia64/linux.h	2009-01-27 22:19:39.000000000 +0100
+@@ -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*}"
+diff -durN gcc-4.3.3.orig/gcc/config/rs6000/ppc-asm.h gcc-4.3.3/gcc/config/rs6000/ppc-asm.h
+--- gcc-4.3.3.orig/gcc/config/rs6000/ppc-asm.h	2003-06-04 18:44:51.000000000 +0200
++++ gcc-4.3.3/gcc/config/rs6000/ppc-asm.h	2009-01-27 22:19:39.000000000 +0100
+@@ -158,7 +158,7 @@
+ 	.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
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/220-noteGNUstack-01.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/220-noteGNUstack-01.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,203 @@
+Original patch from: ../4.3.2/220-noteGNUstack-01.patch
+
+-= BEGIN original header =-
+Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/62_all_gcc4-noteGNUstack.patch
+2005-02-08  Jakub Jelinek  <jakub@redhat.com>
+
+	* src/alpha/osf.S: Add .note.GNU-stack on Linux.
+	* src/s390/sysv.S: Likewise.
+	* src/powerpc/linux64.S: Likewise.
+	* src/powerpc/linux64_closure.S: Likewise.
+	* src/powerpc/ppc_closure.S: Likewise.
+	* src/powerpc/sysv.S: Likewise.
+	* src/x86/unix64.S: Likewise.
+	* src/x86/sysv.S: Likewise.
+	* src/sparc/v8.S: Likewise.
+	* src/sparc/v9.S: Likewise.
+	* src/m68k/sysv.S: Likewise.
+	* src/ia64/unix.S: Likewise.
+	* src/arm/sysv.S: Likewise.
+
+	* ia64_save_regs_in_stack.s: Moved to...
+	* ia64_save_regs_in_stack.S: ... this.  Add .note.GNU-stack
+	on Linux.
+
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/boehm-gc/ia64_save_regs_in_stack.S gcc-4.3.3/boehm-gc/ia64_save_regs_in_stack.S
+--- gcc-4.3.3.orig/boehm-gc/ia64_save_regs_in_stack.S	1970-01-01 01:00:00.000000000 +0100
++++ gcc-4.3.3/boehm-gc/ia64_save_regs_in_stack.S	2009-01-27 22:25:27.000000000 +0100
+@@ -0,0 +1,15 @@
++        .text
++        .align 16
++        .global GC_save_regs_in_stack
++        .proc GC_save_regs_in_stack
++GC_save_regs_in_stack:
++        .bodyfoo.mpg
++        flushrs
++        ;;
++        mov r8=ar.bsp
++        br.ret.sptk.few rp
++        .endp GC_save_regs_in_stack
++
++#ifdef __linux__
++	.section .note.GNU-stack,"",@progbits
++#endif
+diff -durN gcc-4.3.3.orig/boehm-gc/ia64_save_regs_in_stack.s gcc-4.3.3/boehm-gc/ia64_save_regs_in_stack.s
+--- gcc-4.3.3.orig/boehm-gc/ia64_save_regs_in_stack.s	2001-10-15 06:57:59.000000000 +0200
++++ gcc-4.3.3/boehm-gc/ia64_save_regs_in_stack.s	1970-01-01 01:00:00.000000000 +0100
+@@ -1,12 +0,0 @@
+-        .text
+-        .align 16
+-        .global GC_save_regs_in_stack
+-        .proc GC_save_regs_in_stack
+-GC_save_regs_in_stack:
+-        .body
+-        flushrs
+-        ;;
+-        mov r8=ar.bsp
+-        br.ret.sptk.few rp
+-        .endp GC_save_regs_in_stack
+-
+diff -durN gcc-4.3.3.orig/libffi/src/alpha/osf.S gcc-4.3.3/libffi/src/alpha/osf.S
+--- gcc-4.3.3.orig/libffi/src/alpha/osf.S	2007-04-06 18:24:16.000000000 +0200
++++ gcc-4.3.3/libffi/src/alpha/osf.S	2009-01-27 22:25:27.000000000 +0100
+@@ -358,4 +358,8 @@
+ 	.byte	16		# uleb128 offset 16*-8
+ 	.align 3
+ $LEFDE3:
++
++#ifdef __linux__
++	.section	.note.GNU-stack,"",@progbits
++#endif
+ #endif
+diff -durN gcc-4.3.3.orig/libffi/src/arm/sysv.S gcc-4.3.3/libffi/src/arm/sysv.S
+--- gcc-4.3.3.orig/libffi/src/arm/sysv.S	2007-09-04 19:52:45.000000000 +0200
++++ gcc-4.3.3/libffi/src/arm/sysv.S	2009-01-27 22:25:27.000000000 +0100
+@@ -293,3 +293,6 @@
+ 	UNWIND .fnend
+         .size    CNAME(ffi_closure_SYSV),.ffi_closure_SYSV_end-CNAME(ffi_closure_SYSV)
+ 
++#if defined __ELF__ && defined __linux__
++	.section	.note.GNU-stack,"",%progbits
++#endif
+diff -durN gcc-4.3.3.orig/libffi/src/ia64/unix.S gcc-4.3.3/libffi/src/ia64/unix.S
+--- gcc-4.3.3.orig/libffi/src/ia64/unix.S	2005-03-30 23:49:19.000000000 +0200
++++ gcc-4.3.3/libffi/src/ia64/unix.S	2009-01-27 22:25:27.000000000 +0100
+@@ -553,3 +553,7 @@
+ 	data8	@pcrel(.Lld_hfa_float)		// FFI_IA64_TYPE_HFA_FLOAT
+ 	data8	@pcrel(.Lld_hfa_double)		// FFI_IA64_TYPE_HFA_DOUBLE
+ 	data8	@pcrel(.Lld_hfa_ldouble)	// FFI_IA64_TYPE_HFA_LDOUBLE
++
++#if defined __ELF__ && defined __linux__
++	.section	.note.GNU-stack,"",@progbits
++#endif
+diff -durN gcc-4.3.3.orig/libffi/src/m68k/sysv.S gcc-4.3.3/libffi/src/m68k/sysv.S
+--- gcc-4.3.3.orig/libffi/src/m68k/sysv.S	2007-05-10 23:29:04.000000000 +0200
++++ gcc-4.3.3/libffi/src/m68k/sysv.S	2009-01-27 22:25:27.000000000 +0100
+@@ -207,3 +207,7 @@
+ 	rts
+ 	CFI_ENDPROC()
+ 	.size	ffi_closure_struct_SYSV,.-ffi_closure_struct_SYSV
++
++#if defined __ELF__ && defined __linux__
++	.section	.note.GNU-stack,"",@progbits
++#endif
+diff -durN gcc-4.3.3.orig/libffi/src/powerpc/linux64.S gcc-4.3.3/libffi/src/powerpc/linux64.S
+--- gcc-4.3.3.orig/libffi/src/powerpc/linux64.S	2007-11-17 00:24:53.000000000 +0100
++++ gcc-4.3.3/libffi/src/powerpc/linux64.S	2009-01-27 22:25:27.000000000 +0100
+@@ -179,3 +179,7 @@
+ 	.align 3
+ .LEFDE1:
+ #endif
++
++#if defined __ELF__ && defined __linux__
++	.section	.note.GNU-stack,"",@progbits
++#endif
+diff -durN gcc-4.3.3.orig/libffi/src/powerpc/linux64_closure.S gcc-4.3.3/libffi/src/powerpc/linux64_closure.S
+--- gcc-4.3.3.orig/libffi/src/powerpc/linux64_closure.S	2005-08-11 23:18:24.000000000 +0200
++++ gcc-4.3.3/libffi/src/powerpc/linux64_closure.S	2009-01-27 22:25:27.000000000 +0100
+@@ -204,3 +204,7 @@
+ 	.align 3
+ .LEFDE1:
+ #endif
++
++#if defined __ELF__ && defined __linux__
++	.section	.note.GNU-stack,"",@progbits
++#endif
+diff -durN gcc-4.3.3.orig/libffi/src/powerpc/ppc_closure.S gcc-4.3.3/libffi/src/powerpc/ppc_closure.S
+--- gcc-4.3.3.orig/libffi/src/powerpc/ppc_closure.S	2007-12-01 22:00:04.000000000 +0100
++++ gcc-4.3.3/libffi/src/powerpc/ppc_closure.S	2009-01-27 22:25:27.000000000 +0100
+@@ -295,3 +295,7 @@
+ .LEFDE1:
+ 
+ #endif
++
++#if defined __ELF__ && defined __linux__
++	.section	.note.GNU-stack,"",@progbits
++#endif
+diff -durN gcc-4.3.3.orig/libffi/src/powerpc/sysv.S gcc-4.3.3/libffi/src/powerpc/sysv.S
+--- gcc-4.3.3.orig/libffi/src/powerpc/sysv.S	2007-12-01 22:00:04.000000000 +0100
++++ gcc-4.3.3/libffi/src/powerpc/sysv.S	2009-01-27 22:25:27.000000000 +0100
+@@ -223,3 +223,7 @@
+       .align 2
+ .LEFDE1:
+ #endif
++
++#if defined __ELF__ && defined __linux__
++	.section	.note.GNU-stack,"",@progbits
++#endif
+diff -durN gcc-4.3.3.orig/libffi/src/s390/sysv.S gcc-4.3.3/libffi/src/s390/sysv.S
+--- gcc-4.3.3.orig/libffi/src/s390/sysv.S	2003-10-21 21:01:58.000000000 +0200
++++ gcc-4.3.3/libffi/src/s390/sysv.S	2009-01-27 22:25:27.000000000 +0100
+@@ -427,3 +427,6 @@
+ 
+ #endif
+ 
++#if defined __ELF__ && defined __linux__
++	.section	.note.GNU-stack,"",@progbits
++#endif
+diff -durN gcc-4.3.3.orig/libffi/src/sparc/v8.S gcc-4.3.3/libffi/src/sparc/v8.S
+--- gcc-4.3.3.orig/libffi/src/sparc/v8.S	2008-11-21 23:13:13.000000000 +0100
++++ gcc-4.3.3/libffi/src/sparc/v8.S	2009-01-27 22:25:27.000000000 +0100
+@@ -306,3 +306,7 @@
+ 	.byte	0x1f	! uleb128 0x1f
+ 	.align	WS
+ .LLEFDE2:
++
++#if defined __ELF__ && defined __linux__
++	.section	.note.GNU-stack,"",@progbits
++#endif
+diff -durN gcc-4.3.3.orig/libffi/src/sparc/v9.S gcc-4.3.3/libffi/src/sparc/v9.S
+--- gcc-4.3.3.orig/libffi/src/sparc/v9.S	2004-01-25 07:58:33.000000000 +0100
++++ gcc-4.3.3/libffi/src/sparc/v9.S	2009-01-27 22:25:27.000000000 +0100
+@@ -300,3 +300,7 @@
+ 	.align 8
+ .LLEFDE2:
+ #endif
++
++#ifdef __linux__
++	.section	.note.GNU-stack,"",@progbits
++#endif
+diff -durN gcc-4.3.3.orig/libffi/src/x86/sysv.S gcc-4.3.3/libffi/src/x86/sysv.S
+--- gcc-4.3.3.orig/libffi/src/x86/sysv.S	2008-01-30 15:36:58.000000000 +0100
++++ gcc-4.3.3/libffi/src/x86/sysv.S	2009-01-27 22:25:27.000000000 +0100
+@@ -430,3 +430,7 @@
+ #endif
+ 
+ #endif /* ifndef __x86_64__ */
++
++#if defined __ELF__ && defined __linux__
++	.section	.note.GNU-stack,"",@progbits
++#endif
+diff -durN gcc-4.3.3.orig/libffi/src/x86/unix64.S gcc-4.3.3/libffi/src/x86/unix64.S
+--- gcc-4.3.3.orig/libffi/src/x86/unix64.S	2005-05-05 06:06:38.000000000 +0200
++++ gcc-4.3.3/libffi/src/x86/unix64.S	2009-01-27 22:25:27.000000000 +0100
+@@ -410,3 +410,7 @@
+ .LEFDE3:
+ 
+ #endif /* __x86_64__ */
++
++#if defined __ELF__ && defined __linux__
++	.section	.note.GNU-stack,"",@progbits
++#endif
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/230-pr34571.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/230-pr34571.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,28 @@
+Original patch from: ../4.3.2/230-pr34571.patch
+
+-= BEGIN original header =-
+Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/64_all_gcc43-pr34571.patch
+http://gcc.gnu.org/PR34571
+
+2007-12-26  Rask Ingemann Lambertsen  <rask@sygehus.dk>
+
+	PR target/34571
+	* config/alpha/alpha.c (alpha_cannot_force_const_mem): Use
+	symbolic_operand.
+	* varasm.c (output_constant_pool_1): Fix typo.
+
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/gcc/config/alpha/alpha.c gcc-4.3.3/gcc/config/alpha/alpha.c
+--- gcc-4.3.3.orig/gcc/config/alpha/alpha.c	2008-09-09 01:16:55.000000000 +0200
++++ gcc-4.3.3/gcc/config/alpha/alpha.c	2009-01-27 22:25:29.000000000 +0100
+@@ -1113,8 +1113,7 @@
+ static bool
+ alpha_cannot_force_const_mem (rtx x)
+ {
+-  enum rtx_code code = GET_CODE (x);
+-  return code == SYMBOL_REF || code == LABEL_REF || code == CONST;
++  return symbolic_operand (x, GET_MODE (x));
+ }
+ 
+ /* We do not allow indirect calls to be optimized into sibling calls, nor
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/240-pr25343.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/240-pr25343.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,26 @@
+Original patch from: ../4.3.2/240-pr25343.patch
+
+-= BEGIN original header =-
+Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/66_all_gcc43-pr25343.patch
+http://gcc.gnu.org/PR25343
+
+sniped from Debian
+
+2008-04-27  Roman Zippel <zippel@linux-m68k.org>
+
+	* config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
+
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/gcc/config/host-linux.c gcc-4.3.3/gcc/config/host-linux.c
+--- gcc-4.3.3.orig/gcc/config/host-linux.c	2007-08-02 12:49:31.000000000 +0200
++++ gcc-4.3.3/gcc/config/host-linux.c	2009-01-27 22:25:31.000000000 +0100
+@@ -84,6 +84,8 @@
+ # define TRY_EMPTY_VM_SPACE	0x8000000000
+ #elif defined(__sparc__)
+ # define TRY_EMPTY_VM_SPACE	0x60000000
++#elif defined(__mc68000__)
++# define TRY_EMPTY_VM_SPACE	0x40000000
+ #else
+ # define TRY_EMPTY_VM_SPACE	0
+ #endif
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/250-sh-pr24836.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/250-sh-pr24836.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,33 @@
+Original patch from: ../4.3.2/250-sh-pr24836.patch
+
+-= BEGIN original header =-
+Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/74_all_sh-pr24836.patch
+http://sourceforge.net/mailarchive/forum.php?thread_id=8959304&forum_id=5348
+http://gcc.gnu.org/PR24836
+
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/gcc/configure gcc-4.3.3/gcc/configure
+--- gcc-4.3.3.orig/gcc/configure	2009-01-27 22:19:18.000000000 +0100
++++ gcc-4.3.3/gcc/configure	2009-01-27 22:25:33.000000000 +0100
+@@ -20689,7 +20689,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
+diff -durN gcc-4.3.3.orig/gcc/configure.ac gcc-4.3.3/gcc/configure.ac
+--- gcc-4.3.3.orig/gcc/configure.ac	2009-01-27 22:19:18.000000000 +0100
++++ gcc-4.3.3/gcc/configure.ac	2009-01-27 22:25:33.000000000 +0100
+@@ -2552,7 +2552,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
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/260-uclibc-conf-noupstream.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/260-uclibc-conf-noupstream.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,18 @@
+Original patch from: ../4.3.2/260-uclibc-conf-noupstream.patch
+
+-= BEGIN original header =-
+Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/uclibc/90_all_103-uclibc-conf-noupstream.patch
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/gcc/config.gcc gcc-4.3.3/gcc/config.gcc
+--- gcc-4.3.3.orig/gcc/config.gcc	2009-01-27 22:19:34.000000000 +0100
++++ gcc-4.3.3/gcc/config.gcc	2009-01-27 22:25:35.000000000 +0100
+@@ -2146,7 +2146,7 @@
+         ;;
+ sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \
+ sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
+-  sh-*-linux* | sh[346lbe]*-*-linux* | \
++  sh*-*-linux* | sh[346lbe]*-*-linux* | \
+   sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
+    sh64-*-netbsd* | sh64l*-*-netbsd*)
+ 	tmake_file="${tmake_file} sh/t-sh sh/t-elf"
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/270-missing-execinfo_h.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/270-missing-execinfo_h.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,18 @@
+Original patch from: ../4.3.2/270-missing-execinfo_h.patch
+
+-= BEGIN original header =-
+Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/uclibc/90_all_301-missing-execinfo_h.patch
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/boehm-gc/include/gc.h gcc-4.3.3/boehm-gc/include/gc.h
+--- gcc-4.3.3.orig/boehm-gc/include/gc.h	2007-04-23 23:10:09.000000000 +0200
++++ gcc-4.3.3/boehm-gc/include/gc.h	2009-01-27 22:25:37.000000000 +0100
+@@ -503,7 +503,7 @@
+ #if defined(__linux__) || defined(__GLIBC__)
+ # include <features.h>
+ # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \
+-     && !defined(__ia64__)
++     && !defined(__ia64__) && !defined(__UCLIBC__)
+ #   ifndef GC_HAVE_BUILTIN_BACKTRACE
+ #     define GC_HAVE_BUILTIN_BACKTRACE
+ #   endif
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/280-c99-complex-ugly-hack.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/280-c99-complex-ugly-hack.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,19 @@
+Original patch from: ../4.3.2/280-c99-complex-ugly-hack.patch
+
+-= BEGIN original header =-
+Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/uclibc/90_all_303-c99-complex-ugly-hack.patch
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/libstdc++-v3/configure gcc-4.3.3/libstdc++-v3/configure
+--- gcc-4.3.3.orig/libstdc++-v3/configure	2008-07-07 21:49:54.000000000 +0200
++++ gcc-4.3.3/libstdc++-v3/configure	2009-01-27 22:25:39.000000000 +0100
+@@ -38935,6 +38935,9 @@
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
+ #include <complex.h>
++#ifdef __UCLIBC__
++#error ugly hack to make sure configure test fails here for cross until uClibc supports the complex funcs
++#endif
+ int
+ main ()
+ {
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/290-index_macro.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/290-index_macro.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,32 @@
+Original patch from: ../4.3.2/290-index_macro.patch
+
+-= BEGIN original header =-
+Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/uclibc/90_all_304-index_macro.patch
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/libstdc++-v3/include/ext/rope gcc-4.3.3/libstdc++-v3/include/ext/rope
+--- gcc-4.3.3.orig/libstdc++-v3/include/ext/rope	2008-07-15 12:14:51.000000000 +0200
++++ gcc-4.3.3/libstdc++-v3/include/ext/rope	2009-01-27 22:25:41.000000000 +0100
+@@ -59,6 +59,9 @@
+ #include <bits/gthr.h>
+ #include <tr1/functional>
+ 
++/* cope w/ index defined as macro, SuSv3 proposal */
++#undef index
++
+ # ifdef __GC
+ #   define __GC_CONST const
+ # else
+diff -durN gcc-4.3.3.orig/libstdc++-v3/include/ext/ropeimpl.h gcc-4.3.3/libstdc++-v3/include/ext/ropeimpl.h
+--- gcc-4.3.3.orig/libstdc++-v3/include/ext/ropeimpl.h	2007-05-04 17:06:46.000000000 +0200
++++ gcc-4.3.3/libstdc++-v3/include/ext/ropeimpl.h	2009-01-27 22:25:41.000000000 +0100
+@@ -54,6 +54,9 @@
+ #include <ext/memory> // For uninitialized_copy_n
+ #include <ext/numeric> // For power
+ 
++/* cope w/ index defined as macro, SuSv3 proposal */
++#undef index
++
+ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
+ 
+   using std::size_t;
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/300-libmudflap-susv3-legacy.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/300-libmudflap-susv3-legacy.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,54 @@
+Original patch from: ../4.3.2/300-libmudflap-susv3-legacy.patch
+
+-= BEGIN original header =-
+Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/uclibc/90_all_305-libmudflap-susv3-legacy.patch
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/libmudflap/mf-hooks2.c gcc-4.3.3/libmudflap/mf-hooks2.c
+--- gcc-4.3.3.orig/libmudflap/mf-hooks2.c	2005-09-23 23:58:39.000000000 +0200
++++ gcc-4.3.3/libmudflap/mf-hooks2.c	2009-01-27 22:25:45.000000000 +0100
+@@ -427,7 +427,7 @@
+ {
+   TRACE ("%s\n", __PRETTY_FUNCTION__);
+   MF_VALIDATE_EXTENT(s, n, __MF_CHECK_WRITE, "bzero region");
+-  bzero (s, n);
++  memset (s, 0, n);
+ }
+ 
+ 
+@@ -437,7 +437,7 @@
+   TRACE ("%s\n", __PRETTY_FUNCTION__);
+   MF_VALIDATE_EXTENT(src, n, __MF_CHECK_READ, "bcopy src");
+   MF_VALIDATE_EXTENT(dest, n, __MF_CHECK_WRITE, "bcopy dest");
+-  bcopy (src, dest, n);
++  memmove (dest, src, n);
+ }
+ 
+ 
+@@ -447,7 +447,7 @@
+   TRACE ("%s\n", __PRETTY_FUNCTION__);
+   MF_VALIDATE_EXTENT(s1, n, __MF_CHECK_READ, "bcmp 1st arg");
+   MF_VALIDATE_EXTENT(s2, n, __MF_CHECK_READ, "bcmp 2nd arg");
+-  return bcmp (s1, s2, n);
++  return memcmp (s1, s2, n);
+ }
+ 
+ 
+@@ -456,7 +456,7 @@
+   size_t n = strlen (s);
+   TRACE ("%s\n", __PRETTY_FUNCTION__);
+   MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "index region");
+-  return index (s, c);
++  return strchr (s, c);
+ }
+ 
+ 
+@@ -465,7 +465,7 @@
+   size_t n = strlen (s);
+   TRACE ("%s\n", __PRETTY_FUNCTION__);
+   MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "rindex region");
+-  return rindex (s, c);
++  return strrchr (s, c);
+ }
+ 
+ /* XXX:  stpcpy, memccpy */
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/310-arm-softfloat.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/310-arm-softfloat.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,34 @@
+Original patch from: ../4.3.2/310-arm-softfloat.patch
+
+-= BEGIN original header =-
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/gcc/config/arm/linux-elf.h gcc-4.3.3/gcc/config/arm/linux-elf.h
+--- gcc-4.3.3.orig/gcc/config/arm/linux-elf.h	2007-11-08 14:44:09.000000000 +0100
++++ gcc-4.3.3/gcc/config/arm/linux-elf.h	2009-01-27 22:25:47.000000000 +0100
+@@ -60,7 +60,7 @@
+    %{shared:-lc} \
+    %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
+ 
+-#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
++#define LIBGCC_SPEC "-lgcc"
+ 
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+ 
+diff -durN gcc-4.3.3.orig/gcc/config/arm/t-linux gcc-4.3.3/gcc/config/arm/t-linux
+--- gcc-4.3.3.orig/gcc/config/arm/t-linux	2006-11-09 23:14:27.000000000 +0100
++++ gcc-4.3.3/gcc/config/arm/t-linux	2009-01-27 22:25:47.000000000 +0100
+@@ -3,7 +3,12 @@
+ TARGET_LIBGCC2_CFLAGS = -fomit-frame-pointer -fPIC
+ 
+ LIB1ASMSRC = arm/lib1funcs.asm
+-LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
++LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func \
++	_call_via_rX _interwork_call_via_rX \
++	_lshrdi3 _ashrdi3 _ashldi3 \
++	_negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
++	_truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
++	_fixsfsi _fixunssfsi _floatdidf _floatdisf _floatundidf _floatundisf
+ 
+ # MULTILIB_OPTIONS = mhard-float/msoft-float
+ # MULTILIB_DIRNAMES = hard-float soft-float
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/320-alpha-signal_h.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/320-alpha-signal_h.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,23 @@
+Original patch from: ../4.3.2/320-alpha-signal_h.patch
+
+-= BEGIN original header =-
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/gcc/config/alpha/linux-unwind.h gcc-4.3.3/gcc/config/alpha/linux-unwind.h
+--- gcc-4.3.3.orig/gcc/config/alpha/linux-unwind.h	2006-10-26 21:31:09.000000000 +0200
++++ gcc-4.3.3/gcc/config/alpha/linux-unwind.h	2009-01-27 22:25:49.000000000 +0100
+@@ -29,6 +29,9 @@
+ /* Do code reading to identify a signal frame, and set the frame
+    state data appropriately.  See unwind-dw2.c for the structs.  */
+ 
++/* Don't use this if inhibit_libc is set
++   The build for this target will fail trying to include missing headers */
++#ifndef inhibit_libc
+ #include <signal.h>
+ #include <sys/ucontext.h>
+ 
+@@ -80,3 +83,4 @@
+   fs->retaddr_column = 64;
+   return _URC_NO_REASON;
+ }
++#endif /* inhibit_libc */
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/330-unwind-for-uClibc.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/330-unwind-for-uClibc.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,30 @@
+Original patch from: ../4.3.2/330-unwind-for-uClibc.patch
+
+-= BEGIN original header =-
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/gcc/config/t-linux-uclibc gcc-4.3.3/gcc/config/t-linux-uclibc
+--- gcc-4.3.3.orig/gcc/config/t-linux-uclibc	1970-01-01 01:00:00.000000000 +0100
++++ gcc-4.3.3/gcc/config/t-linux-uclibc	2009-01-27 22:28:53.000000000 +0100
+@@ -0,0 +1,5 @@
++# Remove glibc specific files added in t-linux
++SHLIB_MAPFILES := $(filter-out $(srcdir)/config/libgcc-glibc.ver, $(SHLIB_MAPFILES))
++
++# Use unwind-dw2-fde instead of unwind-dw2-fde-glibc
++LIB2ADDEH := $(subst unwind-dw2-fde-glibc.c,unwind-dw2-fde.c,$(LIB2ADDEH))
+diff -durN gcc-4.3.3.orig/gcc/config.gcc gcc-4.3.3/gcc/config.gcc
+--- gcc-4.3.3.orig/gcc/config.gcc	2009-01-27 22:25:37.000000000 +0100
++++ gcc-4.3.3/gcc/config.gcc	2009-01-27 22:28:53.000000000 +0100
+@@ -2648,6 +2648,12 @@
+ 	;;
+ esac
+ 
++# Rather than hook into each target, just do it after all the linux
++# targets have been processed
++case ${target} in
++  *-linux-uclibc*) tm_defines="${tm_defines} USE_UCLIBC" ; tmake_file="${tmake_file} t-linux-uclibc";;
++esac
++
+ case ${target} in
+ i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1)
+ 	tmake_file="${tmake_file} i386/t-gmm_malloc"
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/340-make-mno-spe-work-as-expected.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/340-make-mno-spe-work-as-expected.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,90 @@
+Original patch from: ../4.3.2/340-make-mno-spe-work-as-expected.patch
+
+-= BEGIN original header =-
+2008-04-03  Nathan Froyd  <froydnj@codesourcery.com>
+            Nathan Sidwell  <nathan@codesourcery.com>
+
+        * config/rs6000/rs6000.opt (mspe): Remove Var property.
+        (misel): Likewise.
+        * config/rs6000/rs6000.h (rs6000_spe): Declare.
+        (rs6000_isel): Likewise.
+        * config/rs6000/rs6000.c (rs6000_spe): New variable.
+        (rs6000_isel): New variable.
+        (rs6000_handle_option): Handle OPT_mspe and OPT_misel.                                                                                         
+
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/gcc/config/rs6000/rs6000.c gcc-4.3.3/gcc/config/rs6000/rs6000.c
+--- gcc-4.3.3.orig/gcc/config/rs6000/rs6000.c	2008-11-18 23:07:58.000000000 +0100
++++ gcc-4.3.3/gcc/config/rs6000/rs6000.c	2009-01-27 22:28:55.000000000 +0100
+@@ -174,9 +174,15 @@
+ /* Nonzero to use AltiVec ABI.  */
+ int rs6000_altivec_abi;
+ 
++/* Nonzero if we want SPE SIMD instructions.  */
++int rs6000_spe;
++
+ /* Nonzero if we want SPE ABI extensions.  */
+ int rs6000_spe_abi;
+ 
++/* Nonzero to use isel instructions.  */
++int rs6000_isel;
++
+ /* Nonzero if floating point operations are done in the GPRs.  */
+ int rs6000_float_gprs = 0;
+ 
+@@ -2144,11 +2150,21 @@
+       rs6000_parse_yes_no_option ("vrsave", arg, &(TARGET_ALTIVEC_VRSAVE));
+       break;
+ 
++    case OPT_misel:
++      rs6000_explicit_options.isel = true;
++      rs6000_isel = value;
++      break;
++
+     case OPT_misel_:
+       rs6000_explicit_options.isel = true;
+       rs6000_parse_yes_no_option ("isel", arg, &(rs6000_isel));
+       break;
+ 
++    case OPT_mspe:
++      rs6000_explicit_options.spe = true;
++      rs6000_spe = value;
++      break;
++
+     case OPT_mspe_:
+       rs6000_explicit_options.spe = true;
+       rs6000_parse_yes_no_option ("spe", arg, &(rs6000_spe));
+diff -durN gcc-4.3.3.orig/gcc/config/rs6000/rs6000.h gcc-4.3.3/gcc/config/rs6000/rs6000.h
+--- gcc-4.3.3.orig/gcc/config/rs6000/rs6000.h	2008-01-26 18:18:35.000000000 +0100
++++ gcc-4.3.3/gcc/config/rs6000/rs6000.h	2009-01-27 22:28:55.000000000 +0100
+@@ -349,6 +349,8 @@
+ extern int rs6000_ieeequad;
+ extern int rs6000_altivec_abi;
+ extern int rs6000_spe_abi;
++extern int rs6000_spe;
++extern int rs6000_isel;
+ extern int rs6000_float_gprs;
+ extern int rs6000_alignment_flags;
+ extern const char *rs6000_sched_insert_nops_str;
+diff -durN gcc-4.3.3.orig/gcc/config/rs6000/rs6000.opt gcc-4.3.3/gcc/config/rs6000/rs6000.opt
+--- gcc-4.3.3.orig/gcc/config/rs6000/rs6000.opt	2007-10-31 08:56:01.000000000 +0100
++++ gcc-4.3.3/gcc/config/rs6000/rs6000.opt	2009-01-27 22:28:55.000000000 +0100
+@@ -190,7 +190,7 @@
+ -mvrsave=yes/no	Deprecated option.  Use -mvrsave/-mno-vrsave instead
+ 
+ misel
+-Target Var(rs6000_isel)
++Target
+ Generate isel instructions
+ 
+ misel=
+@@ -198,7 +198,7 @@
+ -misel=yes/no	Deprecated option.  Use -misel/-mno-isel instead
+ 
+ mspe
+-Target Var(rs6000_spe)
++Target
+ Generate SPE SIMD instructions on E500
+ 
+ mpaired
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/350-sh-without-headers.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/350-sh-without-headers.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,29 @@
+Original patch from: ../4.3.2/350-sh-without-headers.patch
+
+-= BEGIN original header =-
+On 20081011, Khem RAJ writes:
+ You have to bar gcc trying to build unwinding at stage 1. Try the
+ attached patch and see if it helps.
+
+ gcc/config/sh/linux-unwind.h |    3 +++
+ 1 file changed, 3 insertions(+)
+
+-= END original header =-
+
+diff -durN gcc-4.3.3.orig/gcc/config/sh/linux-unwind.h gcc-4.3.3/gcc/config/sh/linux-unwind.h
+--- gcc-4.3.3.orig/gcc/config/sh/linux-unwind.h	2007-09-12 08:59:06.000000000 +0200
++++ gcc-4.3.3/gcc/config/sh/linux-unwind.h	2009-01-27 22:28:57.000000000 +0100
+@@ -26,6 +26,8 @@
+ the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.  */
+ 
++#ifndef inhibit_libc
++
+ /* Do code reading to identify a signal frame, and set the frame
+    state data appropriately.  See unwind-dw2.c for the structs.  */
+ 
+@@ -251,3 +253,4 @@
+   return _URC_NO_REASON;
+ }
+ #endif /* defined (__SH5__) */
++#endif /* ifndef inhibit_libc */
diff -r 367156067ce8 -r 13a04b49a68e patches/gcc/4.3.4/380-pr37436.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/gcc/4.3.4/380-pr37436.patch	Thu Aug 06 18:17:01 2009 +0200
@@ -0,0 +1,86 @@
+gcc svn 142778:
+
+PR target/37436
+* arm.c (arm_legitimate_index): Only accept addresses that are in
+canonical form.
+* predicates.md (arm_reg_or_extendqisi_mem_op): New predicate.
+* arm.md (extendqihi2): Use arm_reg_or_extendqisi_mem_op predicate
+for operand1.
+(extendqisi2): Likewise.
+(arm_extendqisi, arm_extendqisi_v6): Use arm_extendqisi_mem_op
+predicate for operand1.
+
+diff -Nura gcc-4.3.3.orig/gcc/config/arm/arm.c gcc-4.3.3/gcc/config/arm/arm.c
+--- gcc-4.3.3.orig/gcc/config/arm/arm.c	2008-06-11 07:52:55.000000000 -0300
++++ gcc-4.3.3/gcc/config/arm/arm.c	2009-05-21 16:06:45.000000000 -0300
+@@ -3769,6 +3769,7 @@
+       rtx xop1 = XEXP (x, 1);
+ 
+       return ((arm_address_register_rtx_p (xop0, strict_p)
++	       && GET_CODE(xop1) == CONST_INT
+ 	       && arm_legitimate_index_p (mode, xop1, outer, strict_p))
+ 	      || (arm_address_register_rtx_p (xop1, strict_p)
+ 		  && arm_legitimate_index_p (mode, xop0, outer, strict_p)));
+diff -Nura gcc-4.3.3.orig/gcc/config/arm/arm.md gcc-4.3.3/gcc/config/arm/arm.md
+--- gcc-4.3.3.orig/gcc/config/arm/arm.md	2007-09-04 01:44:47.000000000 -0300
++++ gcc-4.3.3/gcc/config/arm/arm.md	2009-05-21 16:06:45.000000000 -0300
+@@ -4199,7 +4199,7 @@
+ 
+ (define_expand "extendqihi2"
+   [(set (match_dup 2)
+-	(ashift:SI (match_operand:QI 1 "general_operand" "")
++	(ashift:SI (match_operand:QI 1 "arm_reg_or_extendqisi_mem_op" "")
+ 		   (const_int 24)))
+    (set (match_operand:HI 0 "s_register_operand" "")
+ 	(ashiftrt:SI (match_dup 2)
+@@ -4224,7 +4224,7 @@
+ 
+ (define_insn "*arm_extendqihi_insn"
+   [(set (match_operand:HI 0 "s_register_operand" "=r")
+-	(sign_extend:HI (match_operand:QI 1 "memory_operand" "Uq")))]
++	(sign_extend:HI (match_operand:QI 1 "arm_extendqisi_mem_op" "Uq")))]
+   "TARGET_ARM && arm_arch4"
+   "ldr%(sb%)\\t%0, %1"
+   [(set_attr "type" "load_byte")
+@@ -4235,7 +4235,7 @@
+ 
+ (define_expand "extendqisi2"
+   [(set (match_dup 2)
+-	(ashift:SI (match_operand:QI 1 "general_operand" "")
++	(ashift:SI (match_operand:QI 1 "arm_reg_or_extendqisi_mem_op" "")
+ 		   (const_int 24)))
+    (set (match_operand:SI 0 "s_register_operand" "")
+ 	(ashiftrt:SI (match_dup 2)
+@@ -4267,7 +4267,7 @@
+ 
+ (define_insn "*arm_extendqisi"
+   [(set (match_operand:SI 0 "s_register_operand" "=r")
+-	(sign_extend:SI (match_operand:QI 1 "memory_operand" "Uq")))]
++	(sign_extend:SI (match_operand:QI 1 "arm_extendqisi_mem_op" "Uq")))]
+   "TARGET_ARM && arm_arch4 && !arm_arch6"
+   "ldr%(sb%)\\t%0, %1"
+   [(set_attr "type" "load_byte")
+@@ -4278,7 +4278,8 @@
+ 
+ (define_insn "*arm_extendqisi_v6"
+   [(set (match_operand:SI 0 "s_register_operand" "=r,r")
+-	(sign_extend:SI (match_operand:QI 1 "nonimmediate_operand" "r,Uq")))]
++	(sign_extend:SI
++	 (match_operand:QI 1 "arm_reg_or_extendqisi_mem_op" "r,Uq")))]
+   "TARGET_ARM && arm_arch6"
+   "@
+    sxtb%?\\t%0, %1
+diff -Nura gcc-4.3.3.orig/gcc/config/arm/predicates.md gcc-4.3.3/gcc/config/arm/predicates.md
+--- gcc-4.3.3.orig/gcc/config/arm/predicates.md	2007-08-02 07:49:31.000000000 -0300
++++ gcc-4.3.3/gcc/config/arm/predicates.md	2009-05-21 16:06:45.000000000 -0300
+@@ -234,6 +234,10 @@
+        (match_test "arm_legitimate_address_p (mode, XEXP (op, 0), SIGN_EXTEND,
+ 					      0)")))
+ 
++(define_special_predicate "arm_reg_or_extendqisi_mem_op"
++  (ior (match_operand 0 "arm_extendqisi_mem_op")
++       (match_operand 0 "s_register_operand")))
++
+ (define_predicate "power_of_two_operand"
+   (match_code "const_int")
+ {

--
For unsubscribe information see http://sourceware.org/lists.html#faq


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]