diff --git a/config/cc/gcc.in b/config/cc/gcc.in index 64d27cb3..6835b634 100644 --- a/config/cc/gcc.in +++ b/config/cc/gcc.in @@ -93,6 +93,12 @@ config CC_V_4_3_1 prompt "4.3.1" select CC_GCC_4_3_or_later +config CC_V_4_3_2 + bool + prompt "4.3.2 (EXPERIMENTAL)" + depends on EXPERIMENTAL + select CC_GCC_4_3_or_later + # CT_INSERT_VERSION_ABOVE # Don't remove above line! endchoice @@ -118,6 +124,7 @@ config CC_VERSION default "4.2.4" if CC_V_4_2_4 default "4.3.0" if CC_V_4_3_0 default "4.3.1" if CC_V_4_3_1 + default "4.3.2" if CC_V_4_3_2 # CT_INSERT_VERSION_STRING_ABOVE # Don't remove above line! diff --git a/patches/gcc/4.3.2/100-alpha-mieee-default.patch b/patches/gcc/4.3.2/100-alpha-mieee-default.patch new file mode 100644 index 00000000..e4496699 --- /dev/null +++ b/patches/gcc/4.3.2/100-alpha-mieee-default.patch @@ -0,0 +1,34 @@ +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 + +diff -durN gcc-4.3.1.orig/gcc/config/alpha/alpha.h gcc-4.3.1/gcc/config/alpha/alpha.h +--- gcc-4.3.1.orig/gcc/config/alpha/alpha.h 2007-12-06 14:25:37.000000000 +0100 ++++ gcc-4.3.1/gcc/config/alpha/alpha.h 2008-06-10 14:56:36.000000000 +0200 +@@ -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.1.orig/gcc/config/alpha/alpha.opt gcc-4.3.1/gcc/config/alpha/alpha.opt +--- gcc-4.3.1.orig/gcc/config/alpha/alpha.opt 2007-08-02 12:49:31.000000000 +0200 ++++ gcc-4.3.1/gcc/config/alpha/alpha.opt 2008-06-10 14:56:36.000000000 +0200 +@@ -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 --git a/patches/gcc/4.3.2/110-trampolinewarn.patch b/patches/gcc/4.3.2/110-trampolinewarn.patch new file mode 100644 index 00000000..7dcfe4dd --- /dev/null +++ b/patches/gcc/4.3.2/110-trampolinewarn.patch @@ -0,0 +1,35 @@ +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 17 Jan 2006 + +diff -durN gcc-4.3.1.orig/gcc/builtins.c gcc-4.3.1/gcc/builtins.c +--- gcc-4.3.1.orig/gcc/builtins.c 2008-04-23 00:36:27.000000000 +0200 ++++ gcc-4.3.1/gcc/builtins.c 2008-06-10 14:56:54.000000000 +0200 +@@ -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.1.orig/gcc/common.opt gcc-4.3.1/gcc/common.opt +--- gcc-4.3.1.orig/gcc/common.opt 2008-01-22 15:11:44.000000000 +0100 ++++ gcc-4.3.1/gcc/common.opt 2008-06-10 14:56:54.000000000 +0200 +@@ -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 --git a/patches/gcc/4.3.2/120-java-nomulti.patch b/patches/gcc/4.3.2/120-java-nomulti.patch new file mode 100644 index 00000000..ad43ce49 --- /dev/null +++ b/patches/gcc/4.3.2/120-java-nomulti.patch @@ -0,0 +1,47 @@ +Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/03_all_gcc43-java-nomulti.patch +diff -durN gcc-4.3.1.orig/libjava/configure gcc-4.3.1/libjava/configure +--- gcc-4.3.1.orig/libjava/configure 2008-06-06 16:49:11.000000000 +0200 ++++ gcc-4.3.1/libjava/configure 2008-06-10 14:57:38.000000000 +0200 +@@ -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.1.orig/libjava/configure.ac gcc-4.3.1/libjava/configure.ac +--- gcc-4.3.1.orig/libjava/configure.ac 2007-12-22 16:48:46.000000000 +0100 ++++ gcc-4.3.1/libjava/configure.ac 2008-06-10 14:57:38.000000000 +0200 +@@ -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 --git a/patches/gcc/4.3.2/130-cross-compile.patch b/patches/gcc/4.3.2/130-cross-compile.patch new file mode 100644 index 00000000..a69409f2 --- /dev/null +++ b/patches/gcc/4.3.2/130-cross-compile.patch @@ -0,0 +1,44 @@ +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 + +diff -durN gcc-4.3.2.orig/gcc/configure gcc-4.3.2/gcc/configure +--- gcc-4.3.2.orig/gcc/configure 2008-08-01 11:51:03.000000000 +0200 ++++ gcc-4.3.2/gcc/configure 2008-09-23 19:39:43.000000000 +0200 +@@ -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.2.orig/gcc/configure.ac gcc-4.3.2/gcc/configure.ac +--- gcc-4.3.2.orig/gcc/configure.ac 2008-08-01 11:51:03.000000000 +0200 ++++ gcc-4.3.2/gcc/configure.ac 2008-09-23 19:39:43.000000000 +0200 +@@ -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.2.orig/gcc/unwind-dw2.c gcc-4.3.2/gcc/unwind-dw2.c +--- gcc-4.3.2.orig/gcc/unwind-dw2.c 2007-07-25 20:14:57.000000000 +0200 ++++ gcc-4.3.2/gcc/unwind-dw2.c 2008-09-23 19:39:43.000000000 +0200 +@@ -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 --git a/patches/gcc/4.3.2/140-netbsd-symbolic.patch b/patches/gcc/4.3.2/140-netbsd-symbolic.patch new file mode 100644 index 00000000..d06a04a4 --- /dev/null +++ b/patches/gcc/4.3.2/140-netbsd-symbolic.patch @@ -0,0 +1,14 @@ +Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/11_all_gcc-netbsd-symbolic.patch +http://bugs.gentoo.org/122698 + +diff -durN gcc-4.3.1.orig/gcc/config/netbsd-elf.h gcc-4.3.1/gcc/config/netbsd-elf.h +--- gcc-4.3.1.orig/gcc/config/netbsd-elf.h 2007-09-03 18:14:04.000000000 +0200 ++++ gcc-4.3.1/gcc/config/netbsd-elf.h 2008-06-10 14:57:48.000000000 +0200 +@@ -82,6 +82,7 @@ + #define NETBSD_LINK_SPEC_ELF \ + "%{assert*} %{R*} %{rpath*} \ + %{shared:-shared} \ ++ %{symbolic:-Bsymbolic} \ + %{!shared: \ + -dc -dp \ + %{!nostdlib: \ diff --git a/patches/gcc/4.3.2/150-sparc64-bsd.patch b/patches/gcc/4.3.2/150-sparc64-bsd.patch new file mode 100644 index 00000000..5ac2b430 --- /dev/null +++ b/patches/gcc/4.3.2/150-sparc64-bsd.patch @@ -0,0 +1,30 @@ +Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/14_all_gcc-sparc64-bsd.patch +diff -durN gcc-4.3.1.orig/gcc/config/sparc/freebsd.h gcc-4.3.1/gcc/config/sparc/freebsd.h +--- gcc-4.3.1.orig/gcc/config/sparc/freebsd.h 2007-08-02 12:49:31.000000000 +0200 ++++ gcc-4.3.1/gcc/config/sparc/freebsd.h 2008-06-10 14:57:54.000000000 +0200 +@@ -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 --git a/patches/gcc/4.3.2/160-flatten-switch-stmt-00.patch b/patches/gcc/4.3.2/160-flatten-switch-stmt-00.patch new file mode 100644 index 00000000..55cafcbc --- /dev/null +++ b/patches/gcc/4.3.2/160-flatten-switch-stmt-00.patch @@ -0,0 +1,76 @@ +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" + +diff -durN gcc-4.3.1.orig/gcc/stmt.c gcc-4.3.1/gcc/stmt.c +--- gcc-4.3.1.orig/gcc/stmt.c 2008-05-09 20:12:13.000000000 +0200 ++++ gcc-4.3.1/gcc/stmt.c 2008-06-10 14:57:58.000000000 +0200 +@@ -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 --git a/patches/gcc/4.3.2/170-libiberty-pic.patch b/patches/gcc/4.3.2/170-libiberty-pic.patch new file mode 100644 index 00000000..0b1e6b4f --- /dev/null +++ b/patches/gcc/4.3.2/170-libiberty-pic.patch @@ -0,0 +1,12 @@ +Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/51_all_gcc-3.4-libiberty-pic.patch +diff -durN gcc-4.3.1.orig/libiberty/Makefile.in gcc-4.3.1/libiberty/Makefile.in +--- gcc-4.3.1.orig/libiberty/Makefile.in 2007-07-25 08:26:45.000000000 +0200 ++++ gcc-4.3.1/libiberty/Makefile.in 2008-06-10 14:58:02.000000000 +0200 +@@ -225,6 +225,7 @@ + $(AR) $(AR_FLAGS) $(TARGETLIB) \ + $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \ + $(RANLIB) $(TARGETLIB); \ ++ cp $(TARGETLIB) ../ ; \ + cd ..; \ + else true; fi + diff --git a/patches/gcc/4.3.2/180-superh-default-multilib.patch b/patches/gcc/4.3.2/180-superh-default-multilib.patch new file mode 100644 index 00000000..bc24221b --- /dev/null +++ b/patches/gcc/4.3.2/180-superh-default-multilib.patch @@ -0,0 +1,25 @@ +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 + +diff -durN gcc-4.3.1.orig/gcc/config.gcc gcc-4.3.1/gcc/config.gcc +--- gcc-4.3.1.orig/gcc/config.gcc 2008-05-21 10:54:15.000000000 +0200 ++++ gcc-4.3.1/gcc/config.gcc 2008-06-10 14:58:06.000000000 +0200 +@@ -2278,7 +2278,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 --git a/patches/gcc/4.3.2/190-libstdc++-pic.patch b/patches/gcc/4.3.2/190-libstdc++-pic.patch new file mode 100644 index 00000000..61cab192 --- /dev/null +++ b/patches/gcc/4.3.2/190-libstdc++-pic.patch @@ -0,0 +1,56 @@ +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 + +diff -durN gcc-4.3.1.orig/libstdc++-v3/src/Makefile.am gcc-4.3.1/libstdc++-v3/src/Makefile.am +--- gcc-4.3.1.orig/libstdc++-v3/src/Makefile.am 2008-02-29 19:26:50.000000000 +0100 ++++ gcc-4.3.1/libstdc++-v3/src/Makefile.am 2008-06-10 14:58:09.000000000 +0200 +@@ -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.1.orig/libstdc++-v3/src/Makefile.in gcc-4.3.1/libstdc++-v3/src/Makefile.in +--- gcc-4.3.1.orig/libstdc++-v3/src/Makefile.in 2008-02-29 19:26:50.000000000 +0100 ++++ gcc-4.3.1/libstdc++-v3/src/Makefile.in 2008-06-10 14:58:09.000000000 +0200 +@@ -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 --git a/patches/gcc/4.3.2/200-pr24170.patch b/patches/gcc/4.3.2/200-pr24170.patch new file mode 100644 index 00000000..cd13698d --- /dev/null +++ b/patches/gcc/4.3.2/200-pr24170.patch @@ -0,0 +1,61 @@ +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 + + 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. + +diff -durN gcc-4.3.1.orig/libjava/configure.ac gcc-4.3.1/libjava/configure.ac +--- gcc-4.3.1.orig/libjava/configure.ac 2008-06-10 14:57:42.000000000 +0200 ++++ gcc-4.3.1/libjava/configure.ac 2008-06-10 14:58:13.000000000 +0200 +@@ -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.1.orig/libjava/include/config.h.in gcc-4.3.1/libjava/include/config.h.in +--- gcc-4.3.1.orig/libjava/include/config.h.in 2007-07-31 18:17:21.000000000 +0200 ++++ gcc-4.3.1/libjava/include/config.h.in 2008-06-10 14:58:13.000000000 +0200 +@@ -214,9 +214,6 @@ + /* Define to 1 if you have the 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.1.orig/libjava/java/io/natFilePosix.cc gcc-4.3.1/libjava/java/io/natFilePosix.cc +--- gcc-4.3.1.orig/libjava/java/io/natFilePosix.cc 2007-08-04 23:50:01.000000000 +0200 ++++ gcc-4.3.1/libjava/java/io/natFilePosix.cc 2008-06-10 14:58:13.000000000 +0200 +@@ -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 --git a/patches/gcc/4.3.2/210-noteGNUstack-00.patch b/patches/gcc/4.3.2/210-noteGNUstack-00.patch new file mode 100644 index 00000000..d656661f --- /dev/null +++ b/patches/gcc/4.3.2/210-noteGNUstack-00.patch @@ -0,0 +1,96 @@ +Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/61_all_gcc4-ia64-noteGNUstack.patch +2004-09-20 Jakub Jelinek + + * 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 + + * config/ia64/linux.h (TARGET_ASM_FILE_END): Define. + +diff -durN gcc-4.3.1.orig/gcc/config/ia64/crtbegin.asm gcc-4.3.1/gcc/config/ia64/crtbegin.asm +--- gcc-4.3.1.orig/gcc/config/ia64/crtbegin.asm 2005-09-27 02:52:24.000000000 +0200 ++++ gcc-4.3.1/gcc/config/ia64/crtbegin.asm 2008-06-10 14:58:17.000000000 +0200 +@@ -255,3 +255,7 @@ + .weak __cxa_finalize + #endif + .weak _Jv_RegisterClasses ++ ++#ifdef __linux__ ++.section .note.GNU-stack; .previous ++#endif +diff -durN gcc-4.3.1.orig/gcc/config/ia64/crtend.asm gcc-4.3.1/gcc/config/ia64/crtend.asm +--- gcc-4.3.1.orig/gcc/config/ia64/crtend.asm 2005-09-27 02:52:24.000000000 +0200 ++++ gcc-4.3.1/gcc/config/ia64/crtend.asm 2008-06-10 14:58:17.000000000 +0200 +@@ -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.1.orig/gcc/config/ia64/crti.asm gcc-4.3.1/gcc/config/ia64/crti.asm +--- gcc-4.3.1.orig/gcc/config/ia64/crti.asm 2005-06-25 03:22:41.000000000 +0200 ++++ gcc-4.3.1/gcc/config/ia64/crti.asm 2008-06-10 14:58:17.000000000 +0200 +@@ -64,3 +64,7 @@ + .body + + # end of crti.asm ++ ++#ifdef __linux__ ++.section .note.GNU-stack; .previous ++#endif +diff -durN gcc-4.3.1.orig/gcc/config/ia64/crtn.asm gcc-4.3.1/gcc/config/ia64/crtn.asm +--- gcc-4.3.1.orig/gcc/config/ia64/crtn.asm 2005-06-25 03:22:41.000000000 +0200 ++++ gcc-4.3.1/gcc/config/ia64/crtn.asm 2008-06-10 14:58:17.000000000 +0200 +@@ -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.1.orig/gcc/config/ia64/lib1funcs.asm gcc-4.3.1/gcc/config/ia64/lib1funcs.asm +--- gcc-4.3.1.orig/gcc/config/ia64/lib1funcs.asm 2005-09-27 02:52:24.000000000 +0200 ++++ gcc-4.3.1/gcc/config/ia64/lib1funcs.asm 2008-06-10 14:58:17.000000000 +0200 +@@ -792,3 +792,7 @@ + } + .endp __floattitf + #endif ++ ++#ifdef __linux__ ++.section .note.GNU-stack; .previous ++#endif +diff -durN gcc-4.3.1.orig/gcc/config/ia64/linux.h gcc-4.3.1/gcc/config/ia64/linux.h +--- gcc-4.3.1.orig/gcc/config/ia64/linux.h 2006-12-12 16:15:19.000000000 +0100 ++++ gcc-4.3.1/gcc/config/ia64/linux.h 2008-06-10 14:58:17.000000000 +0200 +@@ -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.1.orig/gcc/config/rs6000/ppc-asm.h gcc-4.3.1/gcc/config/rs6000/ppc-asm.h +--- gcc-4.3.1.orig/gcc/config/rs6000/ppc-asm.h 2003-06-04 18:44:51.000000000 +0200 ++++ gcc-4.3.1/gcc/config/rs6000/ppc-asm.h 2008-06-10 14:58:17.000000000 +0200 +@@ -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 --git a/patches/gcc/4.3.2/220-noteGNUstack-01.patch b/patches/gcc/4.3.2/220-noteGNUstack-01.patch new file mode 100644 index 00000000..a74e5e87 --- /dev/null +++ b/patches/gcc/4.3.2/220-noteGNUstack-01.patch @@ -0,0 +1,198 @@ +Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/62_all_gcc4-noteGNUstack.patch +2005-02-08 Jakub Jelinek + + * 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. + +diff -durN gcc-4.3.1.orig/boehm-gc/ia64_save_regs_in_stack.S gcc-4.3.1/boehm-gc/ia64_save_regs_in_stack.S +--- gcc-4.3.1.orig/boehm-gc/ia64_save_regs_in_stack.S 1970-01-01 01:00:00.000000000 +0100 ++++ gcc-4.3.1/boehm-gc/ia64_save_regs_in_stack.S 2008-06-10 14:58:21.000000000 +0200 +@@ -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.1.orig/boehm-gc/ia64_save_regs_in_stack.s gcc-4.3.1/boehm-gc/ia64_save_regs_in_stack.s +--- gcc-4.3.1.orig/boehm-gc/ia64_save_regs_in_stack.s 2001-10-15 06:57:59.000000000 +0200 ++++ gcc-4.3.1/boehm-gc/ia64_save_regs_in_stack.s 2008-06-10 14:58:21.000000000 +0200 +@@ -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.1.orig/libffi/src/alpha/osf.S gcc-4.3.1/libffi/src/alpha/osf.S +--- gcc-4.3.1.orig/libffi/src/alpha/osf.S 2007-04-06 18:24:16.000000000 +0200 ++++ gcc-4.3.1/libffi/src/alpha/osf.S 2008-06-10 14:58:21.000000000 +0200 +@@ -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.1.orig/libffi/src/arm/sysv.S gcc-4.3.1/libffi/src/arm/sysv.S +--- gcc-4.3.1.orig/libffi/src/arm/sysv.S 2007-09-04 19:52:45.000000000 +0200 ++++ gcc-4.3.1/libffi/src/arm/sysv.S 2008-06-10 14:58:21.000000000 +0200 +@@ -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.1.orig/libffi/src/ia64/unix.S gcc-4.3.1/libffi/src/ia64/unix.S +--- gcc-4.3.1.orig/libffi/src/ia64/unix.S 2005-03-30 23:49:19.000000000 +0200 ++++ gcc-4.3.1/libffi/src/ia64/unix.S 2008-06-10 14:58:21.000000000 +0200 +@@ -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.1.orig/libffi/src/m68k/sysv.S gcc-4.3.1/libffi/src/m68k/sysv.S +--- gcc-4.3.1.orig/libffi/src/m68k/sysv.S 2007-05-10 23:29:04.000000000 +0200 ++++ gcc-4.3.1/libffi/src/m68k/sysv.S 2008-06-10 14:58:21.000000000 +0200 +@@ -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.1.orig/libffi/src/powerpc/linux64.S gcc-4.3.1/libffi/src/powerpc/linux64.S +--- gcc-4.3.1.orig/libffi/src/powerpc/linux64.S 2007-11-17 00:24:53.000000000 +0100 ++++ gcc-4.3.1/libffi/src/powerpc/linux64.S 2008-06-10 14:58:21.000000000 +0200 +@@ -179,3 +179,7 @@ + .align 3 + .LEFDE1: + #endif ++ ++#if defined __ELF__ && defined __linux__ ++ .section .note.GNU-stack,"",@progbits ++#endif +diff -durN gcc-4.3.1.orig/libffi/src/powerpc/linux64_closure.S gcc-4.3.1/libffi/src/powerpc/linux64_closure.S +--- gcc-4.3.1.orig/libffi/src/powerpc/linux64_closure.S 2005-08-11 23:18:24.000000000 +0200 ++++ gcc-4.3.1/libffi/src/powerpc/linux64_closure.S 2008-06-10 14:58:21.000000000 +0200 +@@ -204,3 +204,7 @@ + .align 3 + .LEFDE1: + #endif ++ ++#if defined __ELF__ && defined __linux__ ++ .section .note.GNU-stack,"",@progbits ++#endif +diff -durN gcc-4.3.1.orig/libffi/src/powerpc/ppc_closure.S gcc-4.3.1/libffi/src/powerpc/ppc_closure.S +--- gcc-4.3.1.orig/libffi/src/powerpc/ppc_closure.S 2007-12-01 22:00:04.000000000 +0100 ++++ gcc-4.3.1/libffi/src/powerpc/ppc_closure.S 2008-06-10 14:58:21.000000000 +0200 +@@ -295,3 +295,7 @@ + .LEFDE1: + + #endif ++ ++#if defined __ELF__ && defined __linux__ ++ .section .note.GNU-stack,"",@progbits ++#endif +diff -durN gcc-4.3.1.orig/libffi/src/powerpc/sysv.S gcc-4.3.1/libffi/src/powerpc/sysv.S +--- gcc-4.3.1.orig/libffi/src/powerpc/sysv.S 2007-12-01 22:00:04.000000000 +0100 ++++ gcc-4.3.1/libffi/src/powerpc/sysv.S 2008-06-10 14:58:21.000000000 +0200 +@@ -223,3 +223,7 @@ + .align 2 + .LEFDE1: + #endif ++ ++#if defined __ELF__ && defined __linux__ ++ .section .note.GNU-stack,"",@progbits ++#endif +diff -durN gcc-4.3.1.orig/libffi/src/s390/sysv.S gcc-4.3.1/libffi/src/s390/sysv.S +--- gcc-4.3.1.orig/libffi/src/s390/sysv.S 2003-10-21 21:01:58.000000000 +0200 ++++ gcc-4.3.1/libffi/src/s390/sysv.S 2008-06-10 14:58:21.000000000 +0200 +@@ -427,3 +427,6 @@ + + #endif + ++#if defined __ELF__ && defined __linux__ ++ .section .note.GNU-stack,"",@progbits ++#endif +diff -durN gcc-4.3.1.orig/libffi/src/sparc/v8.S gcc-4.3.1/libffi/src/sparc/v8.S +--- gcc-4.3.1.orig/libffi/src/sparc/v8.S 2004-11-22 19:35:16.000000000 +0100 ++++ gcc-4.3.1/libffi/src/sparc/v8.S 2008-06-10 14:58:21.000000000 +0200 +@@ -265,3 +265,7 @@ + .byte 0x1f ! uleb128 0x1f + .align WS + .LLEFDE2: ++ ++#if defined __ELF__ && defined __linux__ ++ .section .note.GNU-stack,"",@progbits ++#endif +diff -durN gcc-4.3.1.orig/libffi/src/sparc/v9.S gcc-4.3.1/libffi/src/sparc/v9.S +--- gcc-4.3.1.orig/libffi/src/sparc/v9.S 2004-01-25 07:58:33.000000000 +0100 ++++ gcc-4.3.1/libffi/src/sparc/v9.S 2008-06-10 14:58:21.000000000 +0200 +@@ -300,3 +300,7 @@ + .align 8 + .LLEFDE2: + #endif ++ ++#ifdef __linux__ ++ .section .note.GNU-stack,"",@progbits ++#endif +diff -durN gcc-4.3.1.orig/libffi/src/x86/sysv.S gcc-4.3.1/libffi/src/x86/sysv.S +--- gcc-4.3.1.orig/libffi/src/x86/sysv.S 2008-01-30 15:36:58.000000000 +0100 ++++ gcc-4.3.1/libffi/src/x86/sysv.S 2008-06-10 14:58:21.000000000 +0200 +@@ -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.1.orig/libffi/src/x86/unix64.S gcc-4.3.1/libffi/src/x86/unix64.S +--- gcc-4.3.1.orig/libffi/src/x86/unix64.S 2005-05-05 06:06:38.000000000 +0200 ++++ gcc-4.3.1/libffi/src/x86/unix64.S 2008-06-10 14:58:21.000000000 +0200 +@@ -410,3 +410,7 @@ + .LEFDE3: + + #endif /* __x86_64__ */ ++ ++#if defined __ELF__ && defined __linux__ ++ .section .note.GNU-stack,"",@progbits ++#endif diff --git a/patches/gcc/4.3.2/230-pr34571.patch b/patches/gcc/4.3.2/230-pr34571.patch new file mode 100644 index 00000000..16d0c302 --- /dev/null +++ b/patches/gcc/4.3.2/230-pr34571.patch @@ -0,0 +1,35 @@ +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 + + PR target/34571 + * config/alpha/alpha.c (alpha_cannot_force_const_mem): Use + symbolic_operand. + * varasm.c (output_constant_pool_1): Fix typo. + +diff -durN gcc-4.3.1.orig/gcc/config/alpha/alpha.c gcc-4.3.1/gcc/config/alpha/alpha.c +--- gcc-4.3.1.orig/gcc/config/alpha/alpha.c 2008-02-07 18:45:24.000000000 +0100 ++++ gcc-4.3.1/gcc/config/alpha/alpha.c 2008-06-10 14:58:24.000000000 +0200 +@@ -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 -durN gcc-4.3.1.orig/gcc/varasm.c gcc-4.3.1/gcc/varasm.c +--- gcc-4.3.1.orig/gcc/varasm.c 2007-12-05 22:55:10.000000000 +0100 ++++ gcc-4.3.1/gcc/varasm.c 2008-06-10 14:58:24.000000000 +0200 +@@ -3710,7 +3710,7 @@ + /* FALLTHRU */ + + case LABEL_REF: +- tmp = XEXP (x, 0); ++ tmp = XEXP (tmp, 0); + gcc_assert (!INSN_DELETED_P (tmp)); + gcc_assert (!NOTE_P (tmp) + || NOTE_KIND (tmp) != NOTE_INSN_DELETED); diff --git a/patches/gcc/4.3.2/240-pr25343.patch b/patches/gcc/4.3.2/240-pr25343.patch new file mode 100644 index 00000000..776f607f --- /dev/null +++ b/patches/gcc/4.3.2/240-pr25343.patch @@ -0,0 +1,21 @@ +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 + + * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__. + +diff -durN gcc-4.3.1.orig/gcc/config/host-linux.c gcc-4.3.1/gcc/config/host-linux.c +--- gcc-4.3.1.orig/gcc/config/host-linux.c 2007-08-02 12:49:31.000000000 +0200 ++++ gcc-4.3.1/gcc/config/host-linux.c 2008-06-10 14:58:28.000000000 +0200 +@@ -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 --git a/patches/gcc/4.3.2/250-sh-pr24836.patch b/patches/gcc/4.3.2/250-sh-pr24836.patch new file mode 100644 index 00000000..42b2b4c4 --- /dev/null +++ b/patches/gcc/4.3.2/250-sh-pr24836.patch @@ -0,0 +1,28 @@ +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 + +diff -durN gcc-4.3.2.orig/gcc/configure gcc-4.3.2/gcc/configure +--- gcc-4.3.2.orig/gcc/configure 2008-09-23 19:41:45.000000000 +0200 ++++ gcc-4.3.2/gcc/configure 2008-09-23 19:43:11.000000000 +0200 +@@ -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.2.orig/gcc/configure.ac gcc-4.3.2/gcc/configure.ac +--- gcc-4.3.2.orig/gcc/configure.ac 2008-09-23 19:41:45.000000000 +0200 ++++ gcc-4.3.2/gcc/configure.ac 2008-09-23 19:43:11.000000000 +0200 +@@ -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 --git a/patches/gcc/4.3.2/260-uclibc-conf-noupstream.patch b/patches/gcc/4.3.2/260-uclibc-conf-noupstream.patch new file mode 100644 index 00000000..5176968a --- /dev/null +++ b/patches/gcc/4.3.2/260-uclibc-conf-noupstream.patch @@ -0,0 +1,13 @@ +Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/uclibc/90_all_103-uclibc-conf-noupstream.patch +diff -durN gcc-4.3.1.orig/gcc/config.gcc gcc-4.3.1/gcc/config.gcc +--- gcc-4.3.1.orig/gcc/config.gcc 2008-06-10 14:58:09.000000000 +0200 ++++ gcc-4.3.1/gcc/config.gcc 2008-06-10 14:58:36.000000000 +0200 +@@ -2149,7 +2149,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 --git a/patches/gcc/4.3.2/270-missing-execinfo_h.patch b/patches/gcc/4.3.2/270-missing-execinfo_h.patch new file mode 100644 index 00000000..fa749b2e --- /dev/null +++ b/patches/gcc/4.3.2/270-missing-execinfo_h.patch @@ -0,0 +1,13 @@ +Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/uclibc/90_all_301-missing-execinfo_h.patch +diff -durN gcc-4.3.1.orig/boehm-gc/include/gc.h gcc-4.3.1/boehm-gc/include/gc.h +--- gcc-4.3.1.orig/boehm-gc/include/gc.h 2007-04-23 23:10:09.000000000 +0200 ++++ gcc-4.3.1/boehm-gc/include/gc.h 2008-06-10 14:58:54.000000000 +0200 +@@ -503,7 +503,7 @@ + #if defined(__linux__) || defined(__GLIBC__) + # include + # 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 --git a/patches/gcc/4.3.2/280-c99-complex-ugly-hack.patch b/patches/gcc/4.3.2/280-c99-complex-ugly-hack.patch new file mode 100644 index 00000000..8462919a --- /dev/null +++ b/patches/gcc/4.3.2/280-c99-complex-ugly-hack.patch @@ -0,0 +1,14 @@ +Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/uclibc/90_all_303-c99-complex-ugly-hack.patch +diff -durN gcc-4.3.2.orig/libstdc++-v3/configure gcc-4.3.2/libstdc++-v3/configure +--- gcc-4.3.2.orig/libstdc++-v3/configure 2008-07-07 21:49:54.000000000 +0200 ++++ gcc-4.3.2/libstdc++-v3/configure 2008-09-23 19:45:27.000000000 +0200 +@@ -38935,6 +38935,9 @@ + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ + #include ++#ifdef __UCLIBC__ ++#error ugly hack to make sure configure test fails here for cross until uClibc supports the complex funcs ++#endif + int + main () + { diff --git a/patches/gcc/4.3.2/290-index_macro.patch b/patches/gcc/4.3.2/290-index_macro.patch new file mode 100644 index 00000000..65794aa4 --- /dev/null +++ b/patches/gcc/4.3.2/290-index_macro.patch @@ -0,0 +1,27 @@ +Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/uclibc/90_all_304-index_macro.patch +diff -durN gcc-4.3.1.orig/libstdc++-v3/include/ext/rope gcc-4.3.1/libstdc++-v3/include/ext/rope +--- gcc-4.3.1.orig/libstdc++-v3/include/ext/rope 2008-01-31 19:44:55.000000000 +0100 ++++ gcc-4.3.1/libstdc++-v3/include/ext/rope 2008-06-10 14:59:02.000000000 +0200 +@@ -59,6 +59,9 @@ + #include + #include + ++/* cope w/ index defined as macro, SuSv3 proposal */ ++#undef index ++ + # ifdef __GC + # define __GC_CONST const + # else +diff -durN gcc-4.3.1.orig/libstdc++-v3/include/ext/ropeimpl.h gcc-4.3.1/libstdc++-v3/include/ext/ropeimpl.h +--- gcc-4.3.1.orig/libstdc++-v3/include/ext/ropeimpl.h 2007-05-04 17:06:46.000000000 +0200 ++++ gcc-4.3.1/libstdc++-v3/include/ext/ropeimpl.h 2008-06-10 14:59:02.000000000 +0200 +@@ -54,6 +54,9 @@ + #include // For uninitialized_copy_n + #include // For power + ++/* cope w/ index defined as macro, SuSv3 proposal */ ++#undef index ++ + _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) + + using std::size_t; diff --git a/patches/gcc/4.3.2/300-libmudflap-susv3-legacy.patch b/patches/gcc/4.3.2/300-libmudflap-susv3-legacy.patch new file mode 100644 index 00000000..9672fc44 --- /dev/null +++ b/patches/gcc/4.3.2/300-libmudflap-susv3-legacy.patch @@ -0,0 +1,49 @@ +Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/uclibc/90_all_305-libmudflap-susv3-legacy.patch +diff -durN gcc-4.3.1.orig/libmudflap/mf-hooks2.c gcc-4.3.1/libmudflap/mf-hooks2.c +--- gcc-4.3.1.orig/libmudflap/mf-hooks2.c 2005-09-23 23:58:39.000000000 +0200 ++++ gcc-4.3.1/libmudflap/mf-hooks2.c 2008-06-10 14:59:05.000000000 +0200 +@@ -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 --git a/patches/gcc/4.3.2/310-arm-softfloat.patch b/patches/gcc/4.3.2/310-arm-softfloat.patch new file mode 100644 index 00000000..4e7ea7c0 --- /dev/null +++ b/patches/gcc/4.3.2/310-arm-softfloat.patch @@ -0,0 +1,29 @@ +diff -durN gcc-4.3.1.orig/gcc/config/arm/linux-elf.h gcc-4.3.1/gcc/config/arm/linux-elf.h +--- gcc-4.3.1.orig/gcc/config/arm/linux-elf.h 2007-11-08 14:44:09.000000000 +0100 ++++ gcc-4.3.1/gcc/config/arm/linux-elf.h 2008-07-23 15:30:57.000000000 +0200 +@@ -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.1.orig/gcc/config/arm/t-linux gcc-4.3.1/gcc/config/arm/t-linux +--- gcc-4.3.1.orig/gcc/config/arm/t-linux 2006-11-09 23:14:27.000000000 +0100 ++++ gcc-4.3.1/gcc/config/arm/t-linux 2008-07-23 19:15:25.000000000 +0200 +@@ -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 --git a/patches/gcc/4.3.2/320-alpha-signal_h.patch b/patches/gcc/4.3.2/320-alpha-signal_h.patch new file mode 100644 index 00000000..d7e1796d --- /dev/null +++ b/patches/gcc/4.3.2/320-alpha-signal_h.patch @@ -0,0 +1,17 @@ +--- gcc-4.2.1-stock/gcc/config/alpha/linux-unwind.h 2005-06-24 20:22:41.000000000 -0500 ++++ gcc-4.2.1/gcc/config/alpha/linux-unwind.h 2007-09-01 20:21:34.000000000 -0500 +@@ -29,6 +29,9 @@ Boston, MA 02110-1301, USA. */ + /* 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 + #include + +@@ -80,3 +83,4 @@ alpha_fallback_frame_state (struct _Unwi + fs->retaddr_column = 64; + return _URC_NO_REASON; + } ++#endif /* inhibit_libc */ diff --git a/patches/gcc/4.3.2/330-unwind-for-uClibc.patch b/patches/gcc/4.3.2/330-unwind-for-uClibc.patch new file mode 100644 index 00000000..55f7f393 --- /dev/null +++ b/patches/gcc/4.3.2/330-unwind-for-uClibc.patch @@ -0,0 +1,25 @@ +diff -durN gcc-4.3.1.orig/gcc/config/t-linux-uclibc gcc-4.3.1/gcc/config/t-linux-uclibc +--- gcc-4.3.1.orig/gcc/config/t-linux-uclibc 1970-01-01 01:00:00.000000000 +0100 ++++ gcc-4.3.1/gcc/config/t-linux-uclibc 2008-07-29 13:07:15.000000000 +0200 +@@ -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.1.orig/gcc/config.gcc gcc-4.3.1/gcc/config.gcc +--- gcc-4.3.1.orig/gcc/config.gcc 2008-07-29 13:11:02.000000000 +0200 ++++ gcc-4.3.1/gcc/config.gcc 2008-07-29 13:10:05.000000000 +0200 +@@ -2651,6 +2651,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 --git a/patches/gcc/4.3.2/340-make-mno-spe-work-as-expected.patch b/patches/gcc/4.3.2/340-make-mno-spe-work-as-expected.patch new file mode 100644 index 00000000..bb702d5b --- /dev/null +++ b/patches/gcc/4.3.2/340-make-mno-spe-work-as-expected.patch @@ -0,0 +1,85 @@ +2008-04-03 Nathan Froyd + Nathan Sidwell + + * 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. + +diff -durN gcc-4.3.2.orig/gcc/config/rs6000/rs6000.c gcc-4.3.2/gcc/config/rs6000/rs6000.c +--- gcc-4.3.2.orig/gcc/config/rs6000/rs6000.c 2008-06-10 19:13:57.000000000 +0200 ++++ gcc-4.3.2/gcc/config/rs6000/rs6000.c 2008-09-23 19:46:45.000000000 +0200 +@@ -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.2.orig/gcc/config/rs6000/rs6000.opt gcc-4.3.2/gcc/config/rs6000/rs6000.opt +--- gcc-4.3.2.orig/gcc/config/rs6000/rs6000.opt 2007-10-31 08:56:01.000000000 +0100 ++++ gcc-4.3.2/gcc/config/rs6000/rs6000.opt 2008-09-23 19:46:45.000000000 +0200 +@@ -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 -durN gcc-4.3.2.orig/gcc/config/rs6000/rs6000.h gcc-4.3.2/gcc/config/rs6000/rs6000.h +--- gcc-4.3.2.orig/gcc/config/rs6000/rs6000.h 2008-01-26 18:18:35.000000000 +0100 ++++ gcc-4.3.2/gcc/config/rs6000/rs6000.h 2008-09-23 19:46:45.000000000 +0200 +@@ -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;