aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/gcc/08_all_cross-compile.patch40
-rw-r--r--main/gcc/12_all_default-warn-trampolines.patch21
-rw-r--r--main/gcc/16_all_libgo-Werror-pr53679.patch16
-rw-r--r--main/gcc/29_all_arm_armv4t-default.patch16
-rw-r--r--main/gcc/34_all_ia64_note.GNU-stack.patch89
-rw-r--r--main/gcc/49_all_gcc-4.7-x86-libitm-pr52695.patch24
-rw-r--r--main/gcc/67_all_gcc-poison-system-directories.patch209
-rw-r--r--main/gcc/74_all_gcc47_cloog-dl.patch (renamed from main/gcc/74_all_gcc46_cloog-dl.patch)134
-rw-r--r--main/gcc/APKBUILD83
-rw-r--r--main/gcc/gcc-4.7-dynamic-linker.patch (renamed from main/gcc/gcc-4.6-dynamic-linker.patch)259
-rw-r--r--main/gcc/gcc-libgcc-x86.get_pc_thunk.bx.patch38
-rw-r--r--main/gcc/gcc-pure64.patch24
-rw-r--r--main/gcc/pt_gnu_eh_frame.patch4
13 files changed, 514 insertions, 443 deletions
diff --git a/main/gcc/08_all_cross-compile.patch b/main/gcc/08_all_cross-compile.patch
deleted file mode 100644
index 4203e3a623..0000000000
--- a/main/gcc/08_all_cross-compile.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-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
-
---- a/gcc/configure
-+++ b/gcc/configure
-@@ -11354,7 +11354,7 @@ then
- *)
- ;;
- 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
-
---- a/gcc/configure.ac
-+++ b/gcc/configure.ac
-@@ -1759,7 +1759,7 @@ then
- *)
- ;;
- 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
-
---- a/gcc/unwind-dw2.c
-+++ b/gcc/unwind-dw2.c
-@@ -329,9 +329,11 @@ _Unwind_GetTextRelBase (struct _Unwind_Context *context)
- }
- #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/main/gcc/12_all_default-warn-trampolines.patch b/main/gcc/12_all_default-warn-trampolines.patch
index a5606c5ecd..4b26aecd29 100644
--- a/main/gcc/12_all_default-warn-trampolines.patch
+++ b/main/gcc/12_all_default-warn-trampolines.patch
@@ -1,9 +1,8 @@
Enable -Wtrampolines by default.
-
--- a/gcc/common.opt
+++ b/gcc/common.opt
-@@ -611,7 +611,7 @@ Common Var(warn_system_headers) Warning
+@@ -639,7 +639,7 @@ Common Var(warn_system_headers) Warning
Do not suppress warnings from system headers
Wtrampolines
@@ -14,12 +13,12 @@ Enable -Wtrampolines by default.
Wtype-limits
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
-@@ -3766,6 +3766,8 @@ headers---for that, @option{-Wunknown-pragmas} must also be used.
- @opindex Wno-trampolines
- Warn about trampolines generated for pointers to nested functions.
-
-+ In Gentoo, @option{-Wtrampolines} is enabled by default.
-+
- A trampoline is a small piece of data or code that is created at run
- time on the stack when the address of a nested function is taken, and
- is used to call the nested function indirectly. For some targets, it
+@@ -3878,6 +3878,8 @@ headers---for that, @option{-Wunknown-pragmas} must also be used.
+ for most targets, it is made up of code and thus requires the stack
+ to be made executable in order for the program to work properly.
+
++ This warning is enabled by default in Gentoo.
++
+ @item -Wfloat-equal
+ @opindex Wfloat-equal
+ @opindex Wno-float-equal
diff --git a/main/gcc/16_all_libgo-Werror-pr53679.patch b/main/gcc/16_all_libgo-Werror-pr53679.patch
new file mode 100644
index 0000000000..3c1ece3640
--- /dev/null
+++ b/main/gcc/16_all_libgo-Werror-pr53679.patch
@@ -0,0 +1,16 @@
+libgo does not respect --disable-werror
+
+https://bugs.gentoo.org/423153
+http://gcc.gnu.org/PR53679
+
+--- a/libgo/configure
++++ b/libgo/configure
+@@ -13384,7 +13384,7 @@ done
+ WARN_FLAGS='-Wall -Wextra -Wwrite-strings -Wcast-qual'
+
+
+-WERROR="-Werror"
++WERROR=""
+
+
+ glibgo_toolexecdir=no
diff --git a/main/gcc/29_all_arm_armv4t-default.patch b/main/gcc/29_all_arm_armv4t-default.patch
new file mode 100644
index 0000000000..4616cf9ab8
--- /dev/null
+++ b/main/gcc/29_all_arm_armv4t-default.patch
@@ -0,0 +1,16 @@
+gcc defaults to armv5t for all targets even armv4t
+
+http://sourceware.org/ml/crossgcc/2008-05/msg00009.html
+
+
+--- a/gcc/config/arm/linux-eabi.h
++++ b/gcc/config/arm/linux-eabi.h
+@@ -45,7 +45,7 @@
+ The ARM10TDMI core is the default for armv5t, so set
+ SUBTARGET_CPU_DEFAULT to achieve this. */
+ #undef SUBTARGET_CPU_DEFAULT
+-#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi
++#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm9tdmi
+
+ /* TARGET_BIG_ENDIAN_DEFAULT is set in
+ config.gcc for big endian configurations. */
diff --git a/main/gcc/34_all_ia64_note.GNU-stack.patch b/main/gcc/34_all_ia64_note.GNU-stack.patch
deleted file mode 100644
index b156eacb29..0000000000
--- a/main/gcc/34_all_ia64_note.GNU-stack.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-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.
-
-
---- a/gcc/config/ia64/crtbegin.asm
-+++ b/gcc/config/ia64/crtbegin.asm
-@@ -252,3 +252,7 @@ __do_jv_register_classes:
- .weak __cxa_finalize
- #endif
- .weak _Jv_RegisterClasses
-+
-+#ifdef __linux__
-+.section .note.GNU-stack; .previous
-+#endif
---- a/gcc/config/ia64/crtend.asm
-+++ b/gcc/config/ia64/crtend.asm
-@@ -119,3 +119,7 @@ __do_global_ctors_aux:
-
- br.ret.sptk.many rp
- .endp __do_global_ctors_aux
-+
-+#ifdef __linux__
-+.section .note.GNU-stack; .previous
-+#endif
---- a/gcc/config/ia64/crti.asm
-+++ b/gcc/config/ia64/crti.asm
-@@ -51,3 +51,7 @@ _fini:
- .body
-
- # end of crti.asm
-+
-+#ifdef __linux__
-+.section .note.GNU-stack; .previous
-+#endif
---- a/gcc/config/ia64/crtn.asm
-+++ b/gcc/config/ia64/crtn.asm
-@@ -41,3 +41,7 @@
- br.ret.sptk.many b0
-
- # end of crtn.asm
-+
-+#ifdef __linux__
-+.section .note.GNU-stack; .previous
-+#endif
---- a/gcc/config/ia64/lib1funcs.asm
-+++ b/gcc/config/ia64/lib1funcs.asm
-@@ -793,3 +793,7 @@ __floattitf:
- .endp __floattitf
- #endif
- #endif
-+
-+#ifdef __linux__
-+.section .note.GNU-stack; .previous
-+#endif
---- a/gcc/config/ia64/linux.h
-+++ b/gcc/config/ia64/linux.h
-@@ -29,6 +29,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-
- #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*}"
---- a/gcc/config/rs6000/ppc-asm.h
-+++ b/gcc/config/rs6000/ppc-asm.h
-@@ -352,7 +352,7 @@ GLUE(.L,name): \
- #endif
- #endif
-
--#if defined __linux__ && !defined __powerpc64__
-+#if defined __linux__
- .section .note.GNU-stack
- .previous
- #endif
diff --git a/main/gcc/49_all_gcc-4.7-x86-libitm-pr52695.patch b/main/gcc/49_all_gcc-4.7-x86-libitm-pr52695.patch
new file mode 100644
index 0000000000..e1eb2e6ab1
--- /dev/null
+++ b/main/gcc/49_all_gcc-4.7-x86-libitm-pr52695.patch
@@ -0,0 +1,24 @@
+http://gcc.gnu.org/PR52695
+https://bugs.gentoo.org/421305
+
+fix building on x86 systems
+
+--- a/libitm/config/x86/target.h
++++ b/libitm/config/x86/target.h
+@@ -69,16 +69,4 @@
+ } // namespace GTM
+
+ // We'll be using some of the cpu builtins, and their associated types.
+-#ifndef __cplusplus
+-/* ??? It's broken for C++. */
+ #include <x86intrin.h>
+-#else
+-# ifdef __SSE2__
+-# include <emmintrin.h>
+-# elif defined(__SSE__)
+-# include <xmmintrin.h>
+-# endif
+-# ifdef __AVX__
+-# include <immintrin.h>
+-# endif
+-#endif
diff --git a/main/gcc/67_all_gcc-poison-system-directories.patch b/main/gcc/67_all_gcc-poison-system-directories.patch
new file mode 100644
index 0000000000..a9aee2732d
--- /dev/null
+++ b/main/gcc/67_all_gcc-poison-system-directories.patch
@@ -0,0 +1,209 @@
+grabbed from openembedded
+
+Upstream-Status: Inappropriate [distribution: codesourcery]
+
+ gcc/
+ 2008-07-02 Joseph Myers <joseph@codesourcery.com>
+ * c-incpath.c: Include toplev.h.
+ (merge_include_chains): Use warning instead of cpp_error for
+ system directory poisoning diagnostic.
+ * Makefile.in (c-incpath.o): Depend on toplev.h.
+ * gcc.c (LINK_COMMAND_SPEC): Pass
+ --error-poison-system-directories if
+ -Werror=poison-system-directories.
+
+ 2007-06-13 Joseph Myers <joseph@codesourcery.com>
+ * common.opt (--Wno-poison-system-directories): New.
+ * doc/invoke.texi (-Wno-poison-system-directories): Document.
+ * c-incpath.c: Include flags.h.
+ (merge_include_chains): Check flag_poison_system_directories.
+ * gcc.c (LINK_COMMAND_SPEC): Pass --no-poison-system-directories
+ to linker if -Wno-poison-system-directories.
+ * Makefile.in (c-incpath.o): Depend on $(FLAGS_H).
+
+ 2007-03-20 Daniel Jacobowitz <dan@codesourcery.com>
+ Joseph Myers <joseph@codesourcery.com>
+ * configure.ac (--enable-poison-system-directories): New option.
+ * configure, config.in: Regenerate.
+ * c-incpath.c (merge_include_chains): If
+ ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of
+ /usr/include, /usr/local/include or /usr/X11R6/include.
+
+Index: gcc-4_7-branch/gcc/common.opt
+===================================================================
+--- gcc-4_7-branch.orig/gcc/common.opt 2012-04-10 10:54:04.000000000 -0700
++++ gcc-4_7-branch/gcc/common.opt 2012-04-10 10:56:02.259442274 -0700
+@@ -582,6 +582,10 @@
+ Common Var(warn_padded) Warning
+ Warn when padding is required to align structure members
+
++Wpoison-system-directories
++Common Var(flag_poison_system_directories) Init(1) Warning
++Warn for -I and -L options using system directories if cross compiling
++
+ Wshadow
+ Common Var(warn_shadow) Warning
+ Warn when one local variable shadows another
+Index: gcc-4_7-branch/gcc/config.in
+===================================================================
+--- gcc-4_7-branch.orig/gcc/config.in 2012-04-10 10:54:04.000000000 -0700
++++ gcc-4_7-branch/gcc/config.in 2012-04-10 10:56:02.259442274 -0700
+@@ -144,6 +144,12 @@
+ #endif
+
+
++/* Define to warn for use of native system header directories */
++#ifndef USED_FOR_TARGET
++#undef ENABLE_POISON_SYSTEM_DIRECTORIES
++#endif
++
++
+ /* Define if you want all operations on RTL (the basic data structure of the
+ optimizer and back end) to be checked for dynamic type safety at runtime.
+ This is quite expensive. */
+Index: gcc-4_7-branch/gcc/configure.ac
+===================================================================
+--- gcc-4_7-branch.orig/gcc/configure.ac 2012-04-10 10:55:32.000000000 -0700
++++ gcc-4_7-branch/gcc/configure.ac 2012-04-10 10:56:02.259442274 -0700
+@@ -4959,6 +4959,16 @@
+ [specify that runtime libraries should be
+ installed in a compiler-specific directory])])
+
++AC_ARG_ENABLE([poison-system-directories],
++ AS_HELP_STRING([--enable-poison-system-directories],
++ [warn for use of native system header directories]),,
++ [enable_poison_system_directories=no])
++if test "x${enable_poison_system_directories}" = "xyes"; then
++ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
++ [1],
++ [Define to warn for use of native system header directories])
++fi
++
+ # Substitute configuration variables
+ AC_SUBST(subdirs)
+ AC_SUBST(srcdir)
+Index: gcc-4_7-branch/gcc/doc/invoke.texi
+===================================================================
+--- gcc-4_7-branch.orig/gcc/doc/invoke.texi 2012-04-10 10:54:04.000000000 -0700
++++ gcc-4_7-branch/gcc/doc/invoke.texi 2012-04-10 10:56:02.263442231 -0700
+@@ -260,6 +260,7 @@
+ -Woverlength-strings -Wpacked -Wpacked-bitfield-compat -Wpadded @gol
+ -Wparentheses -Wpedantic-ms-format -Wno-pedantic-ms-format @gol
+ -Wpointer-arith -Wno-pointer-to-int-cast @gol
++-Wno-poison-system-directories @gol
+ -Wredundant-decls @gol
+ -Wreturn-type -Wsequence-point -Wshadow @gol
+ -Wsign-compare -Wsign-conversion -Wstack-protector @gol
+@@ -3878,6 +3879,14 @@
+ for most targets, it is made up of code and thus requires the stack
+ to be made executable in order for the program to work properly.
+
++@item -Wno-poison-system-directories
++@opindex Wno-poison-system-directories
++Do not warn for @option{-I} or @option{-L} options using system
++directories such as @file{/usr/include} when cross compiling. This
++option is intended for use in chroot environments when such
++directories contain the correct headers and libraries for the target
++system rather than the host.
++
+ @item -Wfloat-equal
+ @opindex Wfloat-equal
+ @opindex Wno-float-equal
+Index: gcc-4_7-branch/gcc/gcc.c
+===================================================================
+--- gcc-4_7-branch.orig/gcc/gcc.c 2012-04-10 10:54:04.000000000 -0700
++++ gcc-4_7-branch/gcc/gcc.c 2012-04-10 10:56:02.267442207 -0700
+@@ -673,6 +673,8 @@
+ %{flto} %{flto=*} %l " LINK_PIE_SPEC \
+ "%X %{o*} %{e*} %{N} %{n} %{r}\
+ %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!nostartfiles:%S}}\
++ %{Wno-poison-system-directories:--no-poison-system-directories}\
++ %{Werror=poison-system-directories:--error-poison-system-directories}\
+ %{static:} %{L*} %(mfwrap) %(link_libgcc) %o\
+ %{fopenmp|ftree-parallelize-loops=*:%:include(libgomp.spec)%(link_gomp)}\
+ %{fgnu-tm:%:include(libitm.spec)%(link_itm)}\
+Index: gcc-4_7-branch/gcc/incpath.c
+===================================================================
+--- gcc-4_7-branch.orig/gcc/incpath.c 2012-04-10 10:54:04.000000000 -0700
++++ gcc-4_7-branch/gcc/incpath.c 2012-04-10 10:56:02.267442207 -0700
+@@ -361,6 +361,26 @@
+ }
+ fprintf (stderr, _("End of search list.\n"));
+ }
++
++#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
++ if (flag_poison_system_directories)
++ {
++ struct cpp_dir *p;
++
++ for (p = heads[QUOTE]; p; p = p->next)
++ {
++ if ((!strncmp (p->name, "/usr/include", 12))
++ || (!strncmp (p->name, "/usr/local/include", 18))
++ || (!strncmp (p->name, "/usr/X11R6/include", 18))
++ || (!strncmp (p->name, "/sw/include", 11))
++ || (!strncmp (p->name, "/opt/include", 12)))
++ warning (OPT_Wpoison_system_directories,
++ "include location \"%s\" is unsafe for "
++ "cross-compilation",
++ p->name);
++ }
++ }
++#endif
+ }
+
+ /* Use given -I paths for #include "..." but not #include <...>, and
+Index: gcc-4_7-branch/gcc/Makefile.in
+===================================================================
+--- gcc-4_7-branch.orig/gcc/Makefile.in 2012-04-10 10:54:05.000000000 -0700
++++ gcc-4_7-branch/gcc/Makefile.in 2012-04-10 10:56:02.267442207 -0700
+@@ -2065,7 +2065,7 @@
+
+ incpath.o: incpath.c incpath.h $(CONFIG_H) $(SYSTEM_H) $(CPPLIB_H) \
+ intl.h prefix.h coretypes.h $(TM_H) cppdefault.h $(TARGET_H) \
+- $(MACHMODE_H)
++ $(MACHMODE_H) $(FLAGS_H) toplev.h
+
+ CFLAGS-prefix.o += -DPREFIX=\"$(prefix)\" -DBASEVER=$(BASEVER_s)
+ prefix.o: prefix.c $(CONFIG_H) $(SYSTEM_H) coretypes.h prefix.h \
+Index: gcc-4_7-branch/gcc/configure
+===================================================================
+--- gcc-4_7-branch.orig/gcc/configure 2012-04-10 10:55:32.000000000 -0700
++++ gcc-4_7-branch/gcc/configure 2012-04-10 10:56:12.183442720 -0700
+@@ -914,6 +914,7 @@
+ with_system_zlib
+ enable_maintainer_mode
+ enable_version_specific_runtime_libs
++enable_poison_system_directories
+ enable_plugin
+ enable_libquadmath_support
+ with_linker_hash_style
+@@ -1627,6 +1628,8 @@
+ --enable-version-specific-runtime-libs
+ specify that runtime libraries should be installed
+ in a compiler-specific directory
++ --enable-poison-system-directories
++ warn for use of native system header directories
+ --enable-plugin enable plugin support
+ --disable-libquadmath-support
+ disable libquadmath support for Fortran
+@@ -27075,6 +27078,19 @@
+ fi
+
+
++# Check whether --enable-poison-system-directories was given.
++if test "${enable_poison_system_directories+set}" = set; then :
++ enableval=$enable_poison_system_directories;
++else
++ enable_poison_system_directories=no
++fi
++
++if test "x${enable_poison_system_directories}" = "xyes"; then
++
++$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
++
++fi
++
+ # Substitute configuration variables
+
+
diff --git a/main/gcc/74_all_gcc46_cloog-dl.patch b/main/gcc/74_all_gcc47_cloog-dl.patch
index 43c2f96223..ee108e33a9 100644
--- a/main/gcc/74_all_gcc46_cloog-dl.patch
+++ b/main/gcc/74_all_gcc47_cloog-dl.patch
@@ -1,43 +1,28 @@
-When graphite support is enabled, C++ libraries (libppl, libcloog, libgmpxx,
-libstdc++-v3) are linked into cc1. Because of libstdc++ symbol versioning
-this has the unfortunate side effect of making it difficult to switch to a
-previous version of GCC using gcc-config once these libraries have be built
-with the newer version. (http://bugs.gentoo.org/315377#c3)
-
-Instead, dlopen libcloog as necessary. This patch originated in Fedora and
-was modified to work on FreeBSD (http://bugs.gentoo.org/317211).
-
2011-01-04 Jakub Jelinek <jakub@redhat.com>
- * Makefile.in (BACKENDLIBS): Link against -ldl instead of
- -lcloog -lppl.
- (graphite.o, graphite%.o): Force -O, remove -fkeep-inline-functions.
- (GRAPHITE_CLOOG_UTIL_H, GRAPHITE_POLY_H): New.
- (graphite*.o): Adjust dependencies.
- * graphite-cloog-compat.h: Include <dlfcn.h>. Reference libcloog and
- libppl symbols through pointers in cloog_pointers__ variable.
- * graphite.c (init_cloog_pointers): New function.
- (graphite_transform_loops): Call init_cloog_pointers.
- * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Rename
- stmt_for argument to stmt_fora.
- * graphite-poly.h: Include graphite-cloog-util.h.
+ * Makefile.in (BACKENDLIBS): Link against -ldl instead of
+ -lcloog -lppl.
+ (graphite.o, graphite%.o): Force -O, remove -fkeep-inline-functions.
+ (GRAPHITE_CLOOG_UTIL_H, GRAPHITE_POLY_H): New.
+ (graphite*.o): Adjust dependencies.
+ * graphite-cloog-compat.h: Include <dlfcn.h>. Reference libcloog and
+ libppl symbols through pointers in cloog_pointers__ variable.
+ * graphite.c (init_cloog_pointers): New function.
+ (graphite_transform_loops): Call init_cloog_pointers.
+ * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Rename
+ stmt_for argument to stmt_fora.
+ * graphite-poly.h: Include graphite-cloog-util.h.
-2011-04-02 Ryan Hill <dirtyepic@gentoo.org>
+2012-05-19 Ryan Hill <dirtyepic@gentoo.org>
- * configure.ac (DL_LIB): Check how to dlopen.
- * configure: Regenerate.
- * Makefile.in (BACKENDLIBS): Use DL_LIB.
- * graphite-cloog-compat.h: Add missing symbols.
+ * configure.ac (DL_LIB): Check how to dlopen.
+ * configure: Regenerate.
+ * Makefile.in (BACKENDLIBS): Use DL_LIB.
-2012-03-12 Natanael Copa <ncopa@alpinelinux.org>
- * Rebase against gcc 4.6.3
-
-diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index 872956d..7d89f08 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
-@@ -984,6 +984,8 @@ GCC_PLUGIN_H = gcc-plugin.h highlev-plugin-common.h $(CONFIG_H) $(SYSTEM_H) \
+@@ -963,6 +963,8 @@ GCC_PLUGIN_H = gcc-plugin.h highlev-plugin-common.h $(CONFIG_H) $(SYSTEM_H) \
PLUGIN_H = plugin.h $(GCC_PLUGIN_H)
PLUGIN_VERSION_H = plugin-version.h configargs.h
LIBFUNCS_H = libfuncs.h $(HASHTAB_H)
@@ -46,16 +31,16 @@ index 872956d..7d89f08 100644
#
# Now figure out from those variables how to compile and link.
-@@ -1037,7 +1039,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
+@@ -1017,7 +1019,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
# and the system's installed libraries.
- LIBS = @LIBS@ $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBIBERTY) $(LIBDECNUMBER) \
- $(HOST_LIBS)
+ LIBS = @LIBS@ libcommon.a $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBIBERTY) \
+ $(LIBDECNUMBER) $(HOST_LIBS)
-BACKENDLIBS = $(CLOOGLIBS) $(PPLLIBS) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \
+BACKENDLIBS = $(GMPLIBS) $(if $(CLOOGLIBS),@DL_LIB@) $(PLUGINLIBS) $(HOST_LIBS) \
$(ZLIB)
# Any system libraries needed just for GNAT.
SYSLIBS = @GNAT_LIBEXC@
-@@ -2668,40 +2670,40 @@ sese.o : sese.c sese.h $(CONFIG_H) $(SYSTEM_H) coretypes.h tree-pretty-print.h \
+@@ -2603,40 +2605,40 @@ sese.o : sese.c sese.h $(CONFIG_H) $(SYSTEM_H) coretypes.h tree-pretty-print.h \
$(TREE_FLOW_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) tree-pass.h value-prof.h
graphite.o : graphite.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(DIAGNOSTIC_CORE_H) \
$(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) sese.h \
@@ -110,20 +95,22 @@ index 872956d..7d89f08 100644
graphite-sese-to-poly.h
tree-vect-loop.o: tree-vect-loop.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
$(TM_H) $(GGC_H) $(TREE_H) $(BASIC_BLOCK_H) $(DIAGNOSTIC_H) $(TREE_FLOW_H) \
-@@ -3483,6 +3485,11 @@ $(out_object_file): $(out_file) $(CONFIG_H) coretypes.h $(TM_H) $(TREE_H) \
+@@ -3455,6 +3457,15 @@ $(common_out_object_file): $(common_out_file) $(CONFIG_H) $(SYSTEM_H) \
$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
- $(out_file) $(OUTPUT_OPTION)
+ $< $(OUTPUT_OPTION)
+graphite%.o : \
+ ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
+graphite.o : \
+ ALL_CFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CFLAGS))
++graphite%.o : \
++ ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS))
++graphite.o : \
++ ALL_CXXFLAGS := -O $(filter-out -fkeep-inline-functions, $(ALL_CXXFLAGS))
+
# Build auxiliary files that support ecoff format.
- mips-tfile: mips-tfile.o version.o $(LIBDEPS)
+ mips-tfile: mips-tfile.o $(LIBDEPS)
$(LINKER) $(LINKERFLAGS) $(LDFLAGS) -o $@ \
-diff --git a/gcc/configure b/gcc/configure
-index 9b87171..0cf3795 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -602,6 +602,7 @@ ac_subst_vars='LTLIBOBJS
@@ -134,7 +121,7 @@ index 9b87171..0cf3795 100755
CLOOGINC
CLOOGLIBS
PPLINC
-@@ -26282,6 +26283,7 @@ $as_echo "unable to check" >&6; }
+@@ -27236,6 +27237,7 @@ $as_echo "unable to check" >&6; }
fi
# Check -ldl
@@ -142,21 +129,19 @@ index 9b87171..0cf3795 100755
saved_LIBS="$LIBS"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
$as_echo_n "checking for library containing dlopen... " >&6; }
-@@ -26341,7 +26343,9 @@ fi
+@@ -27295,7 +27297,9 @@ fi
if test x"$ac_cv_search_dlopen" = x"-ldl"; then
pluginlibs="$pluginlibs -ldl"
-+ DL_LIB=$ac_cv_search_dlopen
++ DL_LIB=$ac_cv_search_dlopen
fi
+
LIBS="$saved_LIBS"
# Check that we can build shared objects with -fPIC -shared
-diff --git a/gcc/configure.ac b/gcc/configure.ac
-index c574fb6..228fb9f 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
-@@ -4839,11 +4839,14 @@ if test x"$enable_plugin" = x"yes"; then
+@@ -5109,11 +5109,14 @@ if test x"$enable_plugin" = x"yes"; then
fi
# Check -ldl
@@ -165,39 +150,50 @@ index c574fb6..228fb9f 100644
AC_SEARCH_LIBS([dlopen], [dl])
if test x"$ac_cv_search_dlopen" = x"-ldl"; then
pluginlibs="$pluginlibs -ldl"
-+ DL_LIB=$ac_cv_search_dlopen
++ DL_LIB=$ac_cv_search_dlopen
fi
+ AC_SUBST(DL_LIB)
LIBS="$saved_LIBS"
# Check that we can build shared objects with -fPIC -shared
-diff --git a/gcc/graphite-clast-to-gimple.c b/gcc/graphite-clast-to-gimple.c
-index 41356dc..e93cafe 100644
--- a/gcc/graphite-clast-to-gimple.c
+++ b/gcc/graphite-clast-to-gimple.c
-@@ -738,10 +738,10 @@ clast_get_body_of_loop (struct clast_stmt *stmt)
+@@ -836,7 +836,7 @@ clast_get_body_of_loop (struct clast_stmt *stmt)
from STMT_FOR. */
static tree
--gcc_type_for_iv_of_clast_loop (struct clast_for *stmt_for, int level,
-+gcc_type_for_iv_of_clast_loop (struct clast_for *stmt_fora, int level,
- tree lb_type, tree ub_type)
+-type_for_clast_for (struct clast_for *stmt_for, ivs_params_p ip)
++type_for_clast_for (struct clast_for *stmt_fora, ivs_params_p ip)
{
-- struct clast_stmt *stmt = (struct clast_stmt *) stmt_for;
-+ struct clast_stmt *stmt = (struct clast_stmt *) stmt_fora;
- struct clast_user_stmt *body = clast_get_body_of_loop (stmt);
- CloogStatement *cs = body->statement;
- poly_bb_p pbb = (poly_bb_p) cloog_statement_usr (cs);
-diff --git a/gcc/graphite-cloog-compat.h b/gcc/graphite-cloog-compat.h
-index 011377d..550df7a 100644
+ mpz_t bound_one, bound_two;
+ tree lb_type, ub_type;
+@@ -844,8 +844,8 @@ type_for_clast_for (struct clast_for *stmt_for, ivs_params_p ip)
+ mpz_init (bound_one);
+ mpz_init (bound_two);
+
+- lb_type = type_for_clast_expr (stmt_for->LB, ip, bound_one, bound_two);
+- ub_type = type_for_clast_expr (stmt_for->UB, ip, bound_one, bound_two);
++ lb_type = type_for_clast_expr (stmt_fora->LB, ip, bound_one, bound_two);
++ ub_type = type_for_clast_expr (stmt_fora->UB, ip, bound_one, bound_two);
+
+ mpz_clear (bound_one);
+ mpz_clear (bound_two);
--- a/gcc/graphite-cloog-compat.h
+++ b/gcc/graphite-cloog-compat.h
-@@ -272,4 +272,269 @@ static inline int cloog_matrix_nrows (CloogMatrix * m)
+@@ -272,4 +272,279 @@ static inline int cloog_matrix_nrows (CloogMatrix * m)
return m->NbRows;
}
#endif /* CLOOG_ORG */
+
+#include <dlfcn.h>
++#if PPL_VERSION_MAJOR == 0 && PPL_VERSION_MINOR < 11
++#define DYNSYMS_PPL11
++#else
++#define DYNSYMS_PPL11 \
++ DYNSYM (ppl_new_PIP_Problem_from_constraints); \
++ DYNSYM (ppl_PIP_Problem_is_satisfiable); \
++ DYNSYM (ppl_delete_PIP_Problem);
++#endif
+#define DYNSYMS \
+ DYNSYM (cloog_block_alloc); \
+ DYNSYM (cloog_block_list_free); \
@@ -302,16 +298,15 @@ index 011377d..550df7a 100644
+ DYNSYM (stmt_guard); \
+ DYNSYM (stmt_root); \
+ DYNSYM (stmt_user); \
++ DYNSYM (stmt_ass); \
+ DYNSYM (ppl_delete_Constraint_System); \
+ DYNSYM (ppl_initialize); \
+ DYNSYM (ppl_new_Constraint_System_from_Constraint); \
+ DYNSYM (ppl_new_C_Polyhedron_from_Constraint_System); \
+ DYNSYM (ppl_Polyhedron_affine_image); \
+ DYNSYM (ppl_io_fprint_Pointset_Powerset_C_Polyhedron); \
-+ DYNSYM (ppl_new_PIP_Problem_from_constraints); \
-+ DYNSYM (ppl_PIP_Problem_is_satisfiable); \
-+ DYNSYM (ppl_delete_PIP_Problem);
-+extern struct
++ DYNSYMS_PPL11
++extern struct cloog_pointers_s__
+{
+ bool inited;
+ void *h;
@@ -448,22 +443,23 @@ index 011377d..550df7a 100644
+#define stmt_guard (*cloog_pointers__.p_stmt_guard)
+#define stmt_root (*cloog_pointers__.p_stmt_root)
+#define stmt_user (*cloog_pointers__.p_stmt_user)
++#define stmt_ass (*cloog_pointers__.p_stmt_ass)
+#define ppl_delete_Constraint_System (*cloog_pointers__.p_ppl_delete_Constraint_System)
+#define ppl_initialize (*cloog_pointers__.p_ppl_initialize)
+#define ppl_new_Constraint_System_from_Constraint (*cloog_pointers__.p_ppl_new_Constraint_System_from_Constraint)
+#define ppl_new_C_Polyhedron_from_Constraint_System (*cloog_pointers__.p_ppl_new_C_Polyhedron_from_Constraint_System)
+#define ppl_Polyhedron_affine_image (*cloog_pointers__.p_ppl_Polyhedron_affine_image)
+#define ppl_io_fprint_Pointset_Powerset_C_Polyhedron (*cloog_pointers__.p_ppl_io_fprint_Pointset_Powerset_C_Polyhedron)
++#if !(PPL_VERSION_MAJOR == 0 && PPL_VERSION_MINOR < 11)
+#define ppl_new_PIP_Problem_from_constraints (*cloog_pointers__.p_ppl_new_PIP_Problem_from_constraints)
+#define ppl_PIP_Problem_is_satisfiable (*cloog_pointers__.p_ppl_PIP_Problem_is_satisfiable)
+#define ppl_delete_PIP_Problem (*cloog_pointers__.p_ppl_delete_PIP_Problem)
++#endif
+
+#define cloog_finalize (*cloog_pointers__.p_ppl_finalize)
+
+
#endif /* GRAPHITE_CLOOG_COMPAT_H */
-diff --git a/gcc/graphite-poly.h b/gcc/graphite-poly.h
-index 3bf87b0..3ed95b7 100644
--- a/gcc/graphite-poly.h
+++ b/gcc/graphite-poly.h
@@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see
@@ -475,8 +471,6 @@ index 3bf87b0..3ed95b7 100644
typedef struct poly_dr *poly_dr_p;
DEF_VEC_P(poly_dr_p);
DEF_VEC_ALLOC_P (poly_dr_p, heap);
-diff --git a/gcc/graphite.c b/gcc/graphite.c
-index b013447..5637d37 100644
--- a/gcc/graphite.c
+++ b/gcc/graphite.c
@@ -56,6 +56,35 @@ along with GCC; see the file COPYING3. If not see
diff --git a/main/gcc/APKBUILD b/main/gcc/APKBUILD
index da967dbb4c..2b7b747c96 100644
--- a/main/gcc/APKBUILD
+++ b/main/gcc/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gcc
-pkgver=4.6.3
-_piepatchver=0.4.5
+pkgver=4.7.1
+_piepatchver=0.5.3
_specs_ver=0.2.0
_specs_gcc_ver=4.4.3
@@ -12,12 +12,15 @@ pkgdesc="The GNU Compiler Collection"
url="http://gcc.gnu.org"
arch="all"
license="GPL LGPL"
-depends="binutils libgcc libgomp libobjc"
-makedepends="bison flex gmp-dev mpfr-dev texinfo libmpc-dev gawk zlib-dev zip
+depends="binutils libgomp libobjc"
+makedepends="bison flex gmp-dev mpfr-dev texinfo mpc1-dev gawk zlib-dev zip
cloog-dev"
subpackages="$pkgname-doc libstdc++:libcxx g++:gpp libgcc libgomp"
replaces="libstdc++"
+# disable Go til we have getcontex/setcontext
+LANG_GO=off
+
if [ -n "$BOOTSTRAP" ]; then
LANG_OBJC=off
LANG_JAVA=off
@@ -43,33 +46,29 @@ if [ "$LANG_FORTRAN" != "off" ]; then
_languages="$_languages,fortran"
fi
-source="ftp://gcc.gnu.org/pub/gcc/releases/gcc-$pkgver/gcc-core-$pkgver.tar.bz2
- ftp://gcc.gnu.org/pub/gcc/releases/gcc-$pkgver/gcc-g++-$pkgver.tar.bz2
- ftp://gcc.gnu.org/pub/gcc/releases/gcc-$pkgver/gcc-objc-$pkgver.tar.bz2
- ftp://gcc.gnu.org/pub/gcc/releases/gcc-$pkgver/gcc-java-$pkgver.tar.bz2
- ftp://gcc.gnu.org/pub/gcc/releases/gcc-$pkgver/gcc-go-$pkgver.tar.bz2
- ftp://gcc.gnu.org/pub/gcc/releases/gcc-$pkgver/gcc-fortran-$pkgver.tar.bz2
- http://distfiles.gentoo.org/distfiles/gcc-4.6.1-piepatches-v${_piepatchver}.tar.bz2
+source="ftp://gcc.gnu.org/pub/gcc/releases/gcc-$pkgver/gcc-$pkgver.tar.bz2
+ http://distfiles.gentoo.org/distfiles/gcc-4.7.1-piepatches-v${_piepatchver}.tar.bz2
http://distfiles.gentoo.org/distfiles/gcc-$_specs_gcc_ver-specs-$_specs_ver.tar.bz2
ftp://sourceware.org/pub/java/ecj-latest.jar
- 08_all_cross-compile.patch
11_all_default-warn-format-security.patch
12_all_default-warn-trampolines.patch
15_all_libgomp-Werror.patch
- 34_all_ia64_note.GNU-stack.patch
+ 16_all_libgo-Werror-pr53679.patch
+ 29_all_arm_armv4t-default.patch
+ 49_all_gcc-4.7-x86-libitm-pr52695.patch
51_all_libiberty-pic.patch
- 74_all_gcc46_cloog-dl.patch
+ 67_all_gcc-poison-system-directories.patch
+ 74_all_gcc47_cloog-dl.patch
gcc-spec-env.patch
pt_gnu_eh_frame.patch
uclibc-getipinfo.patch
- gcc-4.6-dynamic-linker.patch
+ gcc-4.7-dynamic-linker.patch
gcc-4.6-pr32219.patch
boehem-gc-uclibc.patch
gcc-pure64.patch
gcc-go.patch
- gcc-libgcc-x86.get_pc_thunk.bx.patch
"
# we build out-of-tree
@@ -119,10 +118,9 @@ prepare() {
# by default for everything else.
local _hard_cflags="-DEFAULT_PIE_SSP -DEFAULT_RELRO -DEFAULT_BIND_NOW"
sed -e "/^ALL_CFLAGS/iHARD_CFLAGS = ${_hard_cflags}" \
- -e 's|^ALL_CFLAGS = |ALL_CFLAGS = $(HARD_CFLAGS) -fno-PIE |' \
+ -e 's|^ALL_CFLAGS = |ALL_CFLAGS = $(HARD_CFLAGS) |' \
+ -e 's|^ALL_CXXFLAGS = |ALL_CXXFLAGS = $(HARD_CFLAGS) |' \
-i gcc/Makefile.in || return 1
- sed -e "/stage1_cflags=/s/-fno-stack-protector/-fno-stack-protector -fno-PIE/" \
- -i configure
# see http://gcc.gnu.org/ml/java/2008-04/msg00027.html
mv "$srcdir"/ecj-latest.jar ecj.jar
@@ -173,6 +171,7 @@ build() {
--target=${CTARGET} \
--with-pkgversion="Alpine ${pkgver}-r${pkgrel}" \
--disable-altivec \
+ --disable-build-with-cxx \
--disable-checking \
--disable-fixed-point \
--disable-libssp \
@@ -192,7 +191,8 @@ build() {
$_dynamic_linker \
--with-dynamic-linker-prefix=/lib \
--with-system-zlib \
- --without-system-libunwind
+ --without-system-libunwind \
+ || return 1
make || return 1
}
@@ -288,6 +288,7 @@ libgomp() {
java() {
pkgdesc="Java support for GCC"
+ depends="zlib-dev"
paxctl -c -pm "$pkgdir"/usr/libexec/gcc/*/*/ecj1 || return 1
mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/usr/lib
cd "$pkgdir"/usr/bin
@@ -297,8 +298,12 @@ java() {
mkdir -p "$subpkgdir"/${i%/*}
mv "$pkgdir"/$i "$subpkgdir"/$i || return 1
done
+ for i in "$pkgdir"/usr/lib/libgcj*.so; do
+ if [ -L "$i" ]; then
+ mv "$i" "$subpkgdir"/usr/lib/
+ fi
+ done
mv \
- "$pkgdir"/usr/lib/libgcj*.so \
"$pkgdir"/usr/lib/libgij.so \
"$pkgdir"/usr/lib/libgcj.spec \
"$subpkgdir"/usr/lib/
@@ -306,9 +311,11 @@ java() {
libgcj() {
pkgdesc="Java runtime library for gcc"
+ # libgcj_bc.so moved from gcc-java to libgcj
+ replaces="gcc-java"
mkdir -p "$subpkgdir"/usr/bin
cd "$pkgdir"/usr/bin
- paxctl -c -pmE "$pkgdir"/usr/bin/gij || return 1
+ paxctl -c -pmsE "$pkgdir"/usr/bin/gij || return 1
mv aot-compile gappletviewer gc-analyze gij gjar gjarsigner gkeytool\
gnative2ascii gorbd grmic grmid grmiregistry gserialver \
gtnameserv i486-alpine-linux-uclibc-gcj jv-convert \
@@ -321,11 +328,13 @@ libgcj() {
done
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/gcj-* \
+ "$pkgdir"/usr/lib/libgcj_bc.so \
"$pkgdir"/usr/lib/libgcj*.so.* \
"$pkgdir"/usr/lib/libgij.so.* \
"$pkgdir"/usr/lib/logging.properties \
"$pkgdir"/usr/lib/security \
- "$subpkgdir"/usr/lib/
+ "$subpkgdir"/usr/lib/ \
+ || return 1
mkdir -p "$subpkgdir"/usr/share/
mv "$pkgdir"/usr/share/java "$subpkgdir"/usr/share/
@@ -388,28 +397,24 @@ gfortran() {
"$subpkgdir"/$gcclibs
}
-md5sums="766091220c6a14fcaa2c06dd573e3758 gcc-core-4.6.3.tar.bz2
-37515158a0fb3d0800ec41a08c05e69e gcc-g++-4.6.3.tar.bz2
-48ba23770c34b1cb468f72618b4452c5 gcc-objc-4.6.3.tar.bz2
-ea47e796f9e53118cd6e262fa220085c gcc-java-4.6.3.tar.bz2
-92166ef431c165054467a9524d0819c8 gcc-go-4.6.3.tar.bz2
-26a18d5727f7c8c18581ba924cce1e5f gcc-fortran-4.6.3.tar.bz2
-5dc7efd84b526801b94fed21462aea62 gcc-4.6.1-piepatches-v0.4.5.tar.bz2
+md5sums="933e6f15f51c031060af64a9e14149ff gcc-4.7.1.tar.bz2
+2e1d99664efcdbd86549a40ddf37d405 gcc-4.7.1-piepatches-v0.5.3.tar.bz2
441c76504e1d97170117c294e65c7a72 gcc-4.4.3-specs-0.2.0.tar.bz2
d7cd6a27c8801e66cbaa964a039ecfdb ecj-latest.jar
-b1b5987e7c53f2c8a0fa929444bd9129 08_all_cross-compile.patch
34e4a0260e9dbd434ac84b9dda381240 11_all_default-warn-format-security.patch
-a78022925c0ecb1f13384238b81adbe7 12_all_default-warn-trampolines.patch
+1570f30f65f1c4941d2bd690a7148836 12_all_default-warn-trampolines.patch
6862cb5268fef68a4a1906e0c4ea0d46 15_all_libgomp-Werror.patch
-1a8ce6b7a0b9a115e37fdda311704451 34_all_ia64_note.GNU-stack.patch
+2a6a0be54c283c311a39bba359cc01f4 16_all_libgo-Werror-pr53679.patch
+681499caf97fbdb4d5c97e312cddf47c 29_all_arm_armv4t-default.patch
+4e35639c74fe4b6111f74a91bb3d52a8 49_all_gcc-4.7-x86-libitm-pr52695.patch
d8692c56f04b92667096f59d843e95c5 51_all_libiberty-pic.patch
-a90d4d1ee358b19f2068fe2e4fd5d001 74_all_gcc46_cloog-dl.patch
+406fc6f29ab3d746eaef0202c50fd7e9 67_all_gcc-poison-system-directories.patch
+f24f07ed008324eaecb0f75417c99116 74_all_gcc47_cloog-dl.patch
a695d7648509b4f8e18b389a19e6037c gcc-spec-env.patch
-2db1e3482c5dd59dab70f701afa2ca80 pt_gnu_eh_frame.patch
+ab83248e10b2bf4b3d9240de0fefb52b pt_gnu_eh_frame.patch
6cc2385c5bbd6d0da6eaedd53c8bf547 uclibc-getipinfo.patch
-3be85df859fa1d5c875bbfcc2dee8288 gcc-4.6-dynamic-linker.patch
+3d8131bdfa70e51be4ae186114097173 gcc-4.7-dynamic-linker.patch
32e8e4c0e23ed8f5de95a591cb30f1da gcc-4.6-pr32219.patch
2c6cb49bb9bfd8b6e690222e66ccc901 boehem-gc-uclibc.patch
-d1d3ad2b0c185b5548125a1b81bee154 gcc-pure64.patch
-c94014ece84407a36d239417a2bad25d gcc-go.patch
-978e3fac97ad99902a86bafc6f283727 gcc-libgcc-x86.get_pc_thunk.bx.patch"
+94c36cc724f5c5d6c8cb8650195ee83d gcc-pure64.patch
+c94014ece84407a36d239417a2bad25d gcc-go.patch"
diff --git a/main/gcc/gcc-4.6-dynamic-linker.patch b/main/gcc/gcc-4.7-dynamic-linker.patch
index a6b235cd19..3dbc4d7e98 100644
--- a/main/gcc/gcc-4.6-dynamic-linker.patch
+++ b/main/gcc/gcc-4.7-dynamic-linker.patch
@@ -1,55 +1,8 @@
-commit d929f627aba264e63cf779cd4ca51af97b076445
-Author: Natanael Copa <ncopa@alpinelinux.org>
-Date: Tue Sep 28 09:45:17 2010 +0000
-
- Submitted By: Kevin Day <thekevinday AT gmail DOT com>
- Date: 2008-12-19
- Initial Package Version: 4.3.2
- Upstream Status: Not submitted
- Description: Why not just be able to define the prefix of the dynamic linker instead of hardcoding it..
- This includes the --nostdinc patch as well, so think of this as a specs-3 patch
- This also allows for specifying the dynamic-linker as well
-
-diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index ae2416b..b0b9b2c 100644
---- a/gcc/Makefile.in
-+++ b/gcc/Makefile.in
-@@ -971,7 +971,7 @@ INTERNAL_CFLAGS = -DIN_GCC @CROSS@
- # This is the variable actually used when we compile. If you change this,
- # you probably want to update BUILD_CFLAGS in configure.ac
- ALL_CFLAGS = $(ESP_NOPIE_CFLAGS) $(T_CFLAGS) $(CFLAGS-$@) \
-- $(CFLAGS) $(INTERNAL_CFLAGS) $(COVERAGE_FLAGS) $(WARN_CFLAGS) @DEFS@
-+ $(CFLAGS) $(INTERNAL_CFLAGS) $(COVERAGE_FLAGS) $(WARN_CFLAGS) @DEFS@ @NOSTDINC@
-
- # The C++ version.
- ALL_CXXFLAGS = $(T_CFLAGS) $(CXXFLAGS) $(INTERNAL_CFLAGS) \
-@@ -2105,6 +2105,8 @@ DRIVER_DEFINES = \
- -DSTANDARD_STARTFILE_PREFIX=\"$(unlibsubdir)/\" \
- -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \
- -DSTANDARD_LIBEXEC_PREFIX=\"$(libexecdir)/gcc/\" \
-+ -DDYNAMIC_LINKER_PREFIX=\"@DYNAMICLINKERPREFIX@\" \
-+ -DDYNAMIC_LINKER=\"@DYNAMICLINKER@\" \
- -DDEFAULT_TARGET_VERSION=\"$(version)\" \
- -DDEFAULT_TARGET_MACHINE=\"$(target_noncanonical)\" \
- -DSTANDARD_BINDIR_PREFIX=\"$(bindir)/\" \
-diff --git a/gcc/config/alpha/gnu.h b/gcc/config/alpha/gnu.h
-index f98c3e7..bd16dcf 100644
---- a/gcc/config/alpha/gnu.h
-+++ b/gcc/config/alpha/gnu.h
-@@ -34,7 +34,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
- } while (0)
-
- #undef ELF_DYNAMIC_LINKER
--#define ELF_DYNAMIC_LINKER "/lib/ld.so"
-+#define ELF_DYNAMIC_LINKER DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
-
- #undef STARTFILE_SPEC
- #define STARTFILE_SPEC \
diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h
-index c48fc93..3068717 100644
+index f578ecb..ff4d2ce 100644
--- a/gcc/config/alpha/linux-elf.h
+++ b/gcc/config/alpha/linux-elf.h
-@@ -27,8 +27,8 @@ along with GCC; see the file COPYING3. If not see
+@@ -24,8 +24,8 @@ along with GCC; see the file COPYING3. If not see
#define EXTRA_SPECS \
{ "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
@@ -59,12 +12,12 @@ index c48fc93..3068717 100644
+#define UCLIBC_DYNAMIC_LINKER DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
#if DEFAULT_LIBC == LIBC_UCLIBC
#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
- #else
+ #elif DEFAULT_LIBC == LIBC_GLIBC
diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
-index fce1ed1..c3bcd50 100644
+index 80bd825..64b4595 100644
--- a/gcc/config/arm/linux-eabi.h
+++ b/gcc/config/arm/linux-eabi.h
-@@ -61,7 +61,7 @@
+@@ -62,7 +62,7 @@
/* Use ld-linux.so.3 so that it will be possible to run "classic"
GNU/Linux binaries on an EABI system. */
#undef GLIBC_DYNAMIC_LINKER
@@ -74,20 +27,20 @@ index fce1ed1..c3bcd50 100644
/* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
use the GNU/Linux version, not the generic BPABI version. */
diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
-index 9fdca41..65b0a5a 100644
+index 270e12b..dd613ef 100644
--- a/gcc/config/arm/linux-elf.h
+++ b/gcc/config/arm/linux-elf.h
-@@ -62,7 +62,7 @@
+@@ -59,7 +59,7 @@
- #define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
+ #define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+#define GLIBC_DYNAMIC_LINKER DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
- #define LINUX_TARGET_LINK_SPEC "%{h*} %{version:-v} \
- %{b} \
+ #define LINUX_TARGET_LINK_SPEC "%{h*} \
+ %{static:-Bstatic} \
diff --git a/gcc/config/bfin/linux.h b/gcc/config/bfin/linux.h
-index 5c716cd..b5e464e 100644
+index f91cf17..263351a 100644
--- a/gcc/config/bfin/linux.h
+++ b/gcc/config/bfin/linux.h
@@ -45,7 +45,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
@@ -98,9 +51,9 @@ index 5c716cd..b5e464e 100644
+ -dynamic-linker DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER} \
%{static}} -init __init -fini __fini"
- #define MD_UNWIND_SUPPORT "config/bfin/linux-unwind.h"
+ #undef TARGET_SUPPORTS_SYNC_CALLS
diff --git a/gcc/config/cris/linux.h b/gcc/config/cris/linux.h
-index 38f0a7e..6893407 100644
+index df10721..35f6d77 100644
--- a/gcc/config/cris/linux.h
+++ b/gcc/config/cris/linux.h
@@ -103,7 +103,7 @@ along with GCC; see the file COPYING3. If not see
@@ -110,13 +63,13 @@ index 38f0a7e..6893407 100644
-#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
+#define GLIBC_DYNAMIC_LINKER DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
- /* We need an -rpath-link to ld.so.1, and presumably to each directory
- specified with -B. */
+ #undef CRIS_LINK_SUBTARGET_SPEC
+ #define CRIS_LINK_SUBTARGET_SPEC \
diff --git a/gcc/config/freebsd-spec.h b/gcc/config/freebsd-spec.h
-index 84d8127..fb3e79a 100644
+index 770a3d1..bd02fd6 100644
--- a/gcc/config/freebsd-spec.h
+++ b/gcc/config/freebsd-spec.h
-@@ -144,9 +144,9 @@ is built with the --enable-threads configure-time option.} \
+@@ -129,9 +129,9 @@ is built with the --enable-threads configure-time option.} \
#endif
#if FBSD_MAJOR < 6
@@ -127,9 +80,9 @@ index 84d8127..fb3e79a 100644
+#define FBSD_DYNAMIC_LINKER DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
#endif
- #if defined(HAVE_LD_EH_FRAME_HDR)
+ /* NOTE: The freebsd-spec.h header is included also for various
diff --git a/gcc/config/frv/linux.h b/gcc/config/frv/linux.h
-index 71cd094..221d01d 100644
+index 9847712..089afdf 100644
--- a/gcc/config/frv/linux.h
+++ b/gcc/config/frv/linux.h
@@ -35,7 +35,7 @@
@@ -142,38 +95,34 @@ index 71cd094..221d01d 100644
#undef LINK_SPEC
#define LINK_SPEC "\
diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h
-index 2a31880..9c08adb 100644
+index 73681fe..8c51d30 100644
--- a/gcc/config/i386/linux.h
+++ b/gcc/config/i386/linux.h
-@@ -100,7 +100,7 @@ along with GCC; see the file COPYING3. If not see
+@@ -21,4 +21,4 @@ along with GCC; see the file COPYING3. If not see
+ <http://www.gnu.org/licenses/>. */
- /* These macros may be overridden in k*bsd-gnu.h and i386/k*bsd-gnu.h. */
- #define LINK_EMULATION "elf_i386"
+ #define GNU_USER_LINK_EMULATION "elf_i386"
-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+#define GLIBC_DYNAMIC_LINKER DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
-
- #undef ASM_SPEC
- #define ASM_SPEC \
diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h
-index 867de59..274acca 100644
+index 5b0a212..185c911 100644
--- a/gcc/config/i386/linux64.h
+++ b/gcc/config/i386/linux64.h
-@@ -58,8 +58,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
- When the -shared link option is used a final link is not being
- done. */
+@@ -28,6 +28,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+ #define GNU_USER_LINK_EMULATION64 "elf_x86_64"
+ #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64"
-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
+#define GLIBC_DYNAMIC_LINKER32 "/" DYNAMIC_LINKER
+#define GLIBC_DYNAMIC_LINKER64 DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
-
- #if TARGET_64BIT_DEFAULT
- #define SPEC_32 "m32"
+ #define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2"
++
diff --git a/gcc/config/ia64/linux.h b/gcc/config/ia64/linux.h
-index 587a4f4..450fcb5 100644
+index 00b0ddb..de6bb1e 100644
--- a/gcc/config/ia64/linux.h
+++ b/gcc/config/ia64/linux.h
-@@ -61,7 +61,7 @@ do { \
+@@ -56,7 +56,7 @@ do { \
/* Define this for shared library support because it isn't in the main
linux.h file. */
@@ -183,36 +132,38 @@ index 587a4f4..450fcb5 100644
#undef LINK_SPEC
#define LINK_SPEC "\
diff --git a/gcc/config/knetbsd-gnu.h b/gcc/config/knetbsd-gnu.h
-index 4cc8eb7..bb7a063 100644
+index 30fa99a..5059b85 100644
--- a/gcc/config/knetbsd-gnu.h
+++ b/gcc/config/knetbsd-gnu.h
-@@ -34,5 +34,5 @@ along with GCC; see the file COPYING3. If not see
+@@ -33,4 +33,5 @@ along with GCC; see the file COPYING3. If not see
- #ifdef GLIBC_DYNAMIC_LINKER
- #undef GLIBC_DYNAMIC_LINKER
--#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
+
+ #undef GNU_USER_DYNAMIC_LINKER
+-#define GNU_USER_DYNAMIC_LINKER "/lib/ld.so.1"
+#define GLIBC_DYNAMIC_LINKER DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
- #endif
++
diff --git a/gcc/config/linux.h b/gcc/config/linux.h
-index e567e9a..c052fd0 100644
+index dbbeea5..0147ece 100644
--- a/gcc/config/linux.h
+++ b/gcc/config/linux.h
-@@ -117,9 +117,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+@@ -74,10 +74,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
GLIBC_DYNAMIC_LINKER must be defined for each target using them, or
GLIBC_DYNAMIC_LINKER32 and GLIBC_DYNAMIC_LINKER64 for targets
supporting both 32-bit and 64-bit compilation. */
-#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
-#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
+-#define UCLIBC_DYNAMIC_LINKERX32 "/lib/ldx32-uClibc.so.0"
+#define UCLIBC_DYNAMIC_LINKER DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
+#define UCLIBC_DYNAMIC_LINKER32 DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
+#define UCLIBC_DYNAMIC_LINKER64 DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
++#define UCLIBC_DYNAMIC_LINKERX32 DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
#define BIONIC_DYNAMIC_LINKER "/system/bin/linker"
#define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker"
#define BIONIC_DYNAMIC_LINKER64 "/system/bin/linker64"
-@@ -135,3 +135,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-
+@@ -104,3 +104,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
/* Whether we have sincos that follows the GNU extension. */
+ #undef TARGET_HAS_SINCOS
#define TARGET_HAS_SINCOS (OPTION_GLIBC || OPTION_BIONIC)
+
+#ifdef NOSTDINC
@@ -220,12 +171,12 @@ index e567e9a..c052fd0 100644
+#define STANDARD_INCLUDE_DIR 0
+#endif
diff --git a/gcc/config/m32r/linux.h b/gcc/config/m32r/linux.h
-index 0515e5b..019e850 100644
+index bc7802b..6ff030f 100644
--- a/gcc/config/m32r/linux.h
+++ b/gcc/config/m32r/linux.h
-@@ -58,7 +58,7 @@
-
- /* If ELF is the default format, we should not use /lib/elf. */
+@@ -38,7 +38,7 @@
+ When the -shared link option is used a final link is not being
+ done. */
-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+#define GLIBC_DYNAMIC_LINKER DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
@@ -233,12 +184,12 @@ index 0515e5b..019e850 100644
#undef LINK_SPEC
#if TARGET_LITTLE_ENDIAN
diff --git a/gcc/config/m68k/linux.h b/gcc/config/m68k/linux.h
-index 1d73ee0..e57cf50 100644
+index 325faf7..01bb765 100644
--- a/gcc/config/m68k/linux.h
+++ b/gcc/config/m68k/linux.h
-@@ -84,7 +84,7 @@ along with GCC; see the file COPYING3. If not see
-
- /* If ELF is the default format, we should not use /lib/elf. */
+@@ -72,7 +72,7 @@ along with GCC; see the file COPYING3. If not see
+ When the -shared link option is used a final link is not being
+ done. */
-#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
+#define GLIBC_DYNAMIC_LINKER DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
@@ -246,25 +197,23 @@ index 1d73ee0..e57cf50 100644
#undef LINK_SPEC
#define LINK_SPEC "-m m68kelf %{shared} \
diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h
-index 0512ef7..7efe2fd 100644
+index bce9c17..46a2b0f 100644
--- a/gcc/config/mips/linux.h
+++ b/gcc/config/mips/linux.h
-@@ -64,7 +64,7 @@ along with GCC; see the file COPYING3. If not see
- #undef MIPS_DEFAULT_GVALUE
- #define MIPS_DEFAULT_GVALUE 0
+@@ -18,4 +18,5 @@ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3. If not see
+ <http://www.gnu.org/licenses/>. */
-#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
+#define GLIBC_DYNAMIC_LINKER DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
-
- /* Borrowed from sparc/linux.h */
- #undef LINK_SPEC
++
diff --git a/gcc/config/mips/linux64.h b/gcc/config/mips/linux64.h
-index 2f24dfa..850cb22 100644
+index 6e92719..736aa6d 100644
--- a/gcc/config/mips/linux64.h
+++ b/gcc/config/mips/linux64.h
-@@ -35,10 +35,10 @@ along with GCC; see the file COPYING3. If not see
- %{!shared: \
- %{profile:-lc_p} %{!profile:-lc}}"
+@@ -23,11 +23,11 @@ along with GCC; see the file COPYING3. If not see
+ #define GNU_USER_LINK_EMULATION64 "elf64%{EB:b}%{EL:l}tsmip"
+ #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32"
-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld.so.1"
@@ -276,16 +225,16 @@ index 2f24dfa..850cb22 100644
+#define GLIBC_DYNAMIC_LINKERN32 DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
+#define UCLIBC_DYNAMIC_LINKERN32 DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
+#define BIONIC_DYNAMIC_LINKERN32 DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
- #define LINUX_DYNAMIC_LINKERN32 \
+ #define GNU_USER_DYNAMIC_LINKERN32 \
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32, \
BIONIC_DYNAMIC_LINKERN32)
diff --git a/gcc/config/mn10300/linux.h b/gcc/config/mn10300/linux.h
-index ac9f8c5..8ab78b1 100644
+index d63b95a..93c54b1 100644
--- a/gcc/config/mn10300/linux.h
+++ b/gcc/config/mn10300/linux.h
-@@ -32,7 +32,7 @@
+@@ -33,7 +33,7 @@
#undef ASM_SPEC
- #define ASM_SPEC "%{Wa,*:%*}"
+ #define ASM_SPEC ""
-#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
+#define GLIBC_DYNAMIC_LINKER DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
@@ -293,10 +242,10 @@ index ac9f8c5..8ab78b1 100644
#undef LINK_SPEC
#define LINK_SPEC "%{mrelax:--relax} %{shared:-shared} \
diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
-index da7bca3..c36e7d6 100644
+index 7c516eb..687264e 100644
--- a/gcc/config/rs6000/linux64.h
+++ b/gcc/config/rs6000/linux64.h
-@@ -348,10 +348,10 @@ extern int dot_symbols;
+@@ -358,10 +358,10 @@ extern int dot_symbols;
#undef LINK_OS_DEFAULT_SPEC
#define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
@@ -312,10 +261,10 @@ index da7bca3..c36e7d6 100644
#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
#elif DEFAULT_LIBC == LIBC_GLIBC
diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h
-index ddbcfa9..59bfd28 100644
+index e5385ec..72df4ac 100644
--- a/gcc/config/s390/linux.h
+++ b/gcc/config/s390/linux.h
-@@ -72,8 +72,8 @@ along with GCC; see the file COPYING3. If not see
+@@ -61,8 +61,8 @@ along with GCC; see the file COPYING3. If not see
#define MULTILIB_DEFAULTS { "m31" }
#endif
@@ -327,10 +276,10 @@ index ddbcfa9..59bfd28 100644
#undef LINK_SPEC
#define LINK_SPEC \
diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h
-index d513af8..2ad27a7 100644
+index a5c2734..9eff3c4 100644
--- a/gcc/config/sh/linux.h
+++ b/gcc/config/sh/linux.h
-@@ -47,7 +47,7 @@ along with GCC; see the file COPYING3. If not see
+@@ -45,7 +45,7 @@ along with GCC; see the file COPYING3. If not see
#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
@@ -340,12 +289,12 @@ index d513af8..2ad27a7 100644
#undef SUBTARGET_LINK_EMUL_SUFFIX
#define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
-index b12c881..83bdd8e 100644
+index 60dc869..9930e21 100644
--- a/gcc/config/sparc/linux.h
+++ b/gcc/config/sparc/linux.h
-@@ -83,7 +83,7 @@ along with GCC; see the file COPYING3. If not see
-
- /* If ELF is the default format, we should not use /lib/elf. */
+@@ -84,7 +84,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
+ When the -shared link option is used a final link is not being
+ done. */
-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+#define GLIBC_DYNAMIC_LINKER DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
@@ -353,12 +302,12 @@ index b12c881..83bdd8e 100644
#undef LINK_SPEC
#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h
-index c2e78d7..8481a34 100644
+index 14966b9..c134401 100644
--- a/gcc/config/sparc/linux64.h
+++ b/gcc/config/sparc/linux64.h
-@@ -109,8 +109,8 @@ along with GCC; see the file COPYING3. If not see
-
- /* If ELF is the default format, we should not use /lib/elf. */
+@@ -93,8 +93,8 @@ along with GCC; see the file COPYING3. If not see
+ When the -shared link option is used a final link is not being
+ done. */
-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2"
@@ -368,10 +317,10 @@ index c2e78d7..8481a34 100644
#ifdef SPARC_BI_ARCH
diff --git a/gcc/config/xtensa/linux.h b/gcc/config/xtensa/linux.h
-index 69ab626..ebc8e0b 100644
+index f5caeb7..c9274e4 100644
--- a/gcc/config/xtensa/linux.h
+++ b/gcc/config/xtensa/linux.h
-@@ -43,7 +43,7 @@ along with GCC; see the file COPYING3. If not see
+@@ -45,7 +45,7 @@ along with GCC; see the file COPYING3. If not see
%{mlongcalls:--longcalls} \
%{mno-longcalls:--no-longcalls}"
@@ -381,10 +330,10 @@ index 69ab626..ebc8e0b 100644
#undef LINK_SPEC
#define LINK_SPEC \
diff --git a/gcc/configure b/gcc/configure
-index b623a4a..230719b 100755
+index 3e9152a..4e1fdd3 100755
--- a/gcc/configure
+++ b/gcc/configure
-@@ -757,6 +757,9 @@ AWK
+@@ -755,6 +755,9 @@ AWK
SET_MAKE
REPORT_BUGS_TEXI
REPORT_BUGS_TO
@@ -392,24 +341,28 @@ index b623a4a..230719b 100755
+DYNAMICLINKERPREFIX
+NOSTDINC
PKGVERSION
- onestep
CONFIGURE_SPECS
-@@ -1657,6 +1660,14 @@ Optional Packages:
- --with-gc={page,zone} choose the garbage collection mechanism to use
- with the compiler
+ CROSS_SYSTEM_HEADER_DIR
+@@ -1669,6 +1672,18 @@ Optional Packages:
+ --with-gc={page,zone} choose the garbage collection mechanism to use with
+ the compiler
--with-system-zlib use installed libz
+ --with-dynamic-linker=PATH
+ specifies path to dynamic linker.
-+ example: "/lib/ld-linux.so.2", where this defines "ld-linux.so.2"
++ example: "/lib/ld-linux.so.2", where this defines
++ "ld-linux.so.2"
+ --with-dynamic-linker-prefix=PATH
+ specifies path to dynamic linker.
-+ example: "/lib/ld-linux.so.2", where this defines "/lib"
++ example: "/lib/ld-linux.so.2", where this defines
++ "/lib"
+ --with-nostdinc build gcc to ignore standard include directories.
-+ You will have to use --with-local-prefix with this option.
- --with-slibdir=DIR shared libraries in DIR [LIBDIR]
++ You will have to use --with-local-prefix with this
++ option.
++
+ --with-linker-hash-style={sysv,gnu,both}
+ specify the linker hash style
- Some influential environment variables:
-@@ -6065,6 +6076,47 @@ fi
+@@ -6378,6 +6393,47 @@ fi
@@ -457,3 +410,23 @@ index b623a4a..230719b 100755
# ---------------------
# Warnings and checking
+--- ./gcc/Makefile.in.orig
++++ ./gcc/Makefile.in
+@@ -986,7 +986,7 @@
+ # This is the variable actually used when we compile. If you change this,
+ # you probably want to update BUILD_CFLAGS in configure.ac
+ ALL_CFLAGS = $(ESP_NOPIE_CFLAGS) $(T_CFLAGS) $(CFLAGS-$@) \
+- $(CFLAGS) $(INTERNAL_CFLAGS) $(COVERAGE_FLAGS) $(WARN_CFLAGS) @DEFS@
++ $(CFLAGS) $(INTERNAL_CFLAGS) $(COVERAGE_FLAGS) $(WARN_CFLAGS) @DEFS@ @NOSTDINC@
+
+ # The C++ version.
+ ALL_CXXFLAGS = $(ESP_NOPIE_CFLAGS) $(T_CFLAGS) $(CFLAGS-$@) $(CXXFLAGS) \
+@@ -2090,6 +2090,8 @@
+ -DSTANDARD_STARTFILE_PREFIX=\"$(unlibsubdir)/\" \
+ -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \
+ -DSTANDARD_LIBEXEC_PREFIX=\"$(libexecdir)/gcc/\" \
++ -DDYNAMIC_LINKER_PREFIX=\"@DYNAMICLINKERPREFIX@\" \
++ -DDYNAMIC_LINKER=\"@DYNAMICLINKER@\" \
+ -DDEFAULT_TARGET_VERSION=\"$(version)\" \
+ -DDEFAULT_TARGET_MACHINE=\"$(target_noncanonical)\" \
+ -DSTANDARD_BINDIR_PREFIX=\"$(bindir)/\" \
diff --git a/main/gcc/gcc-libgcc-x86.get_pc_thunk.bx.patch b/main/gcc/gcc-libgcc-x86.get_pc_thunk.bx.patch
deleted file mode 100644
index 551e6150ab..0000000000
--- a/main/gcc/gcc-libgcc-x86.get_pc_thunk.bx.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Index: libgcc/config/i386/morestack.S
-===================================================================
---- ./libgcc/config/i386/morestack.S (revision 173993)
-+++ ./libgcc/config/i386/morestack.S (revision 173994)
-@@ -278,8 +278,7 @@
- movl 4(%esp),%eax # Function argument.
- movl %eax,(%esp)
- #ifdef __PIC__
--#undef __i686
-- call __i686.get_pc_thunk.bx # %ebx may not be set up for us.
-+ call __x86.get_pc_thunk.bx # %ebx may not be set up for us.
- addl $_GLOBAL_OFFSET_TABLE_, %ebx
- call _Unwind_Resume@PLT # Resume unwinding.
- #else
-@@ -449,6 +448,23 @@
- .size __morestack, . - __morestack
- #endif
-
-+#if !defined(__x86_64__) && defined(__PIC__)
-+# Output the thunk to get PC into bx, since we use it above.
-+ .section .text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat
-+ .globl __x86.get_pc_thunk.bx
-+ .hidden __x86.get_pc_thunk.bx
-+#ifdef __ELF__
-+ .type __x86.get_pc_thunk.bx, @function
-+#endif
-+__x86.get_pc_thunk.bx:
-+ .cfi_startproc
-+ movl (%esp), %ebx
-+ ret
-+ .cfi_endproc
-+#ifdef __ELF__
-+ .size __x86.get_pc_thunk.bx, . - __x86.get_pc_thunk.bx
-+#endif
-+#endif
-
- # The exception table. This tells the personality routine to execute
- # the exception handler.
diff --git a/main/gcc/gcc-pure64.patch b/main/gcc/gcc-pure64.patch
index f9ab69326e..392aa56957 100644
--- a/main/gcc/gcc-pure64.patch
+++ b/main/gcc/gcc-pure64.patch
@@ -1,12 +1,14 @@
-diff -Naur gcc-4.2.0.orig/gcc/config/i386/t-linux64 gcc-4.2.0/gcc/config/i386/t-linux64
---- gcc-4.2.0.orig/gcc/config/i386/t-linux64 2007-05-16 19:21:19.000000000 -0400
-+++ gcc-4.2.0/gcc/config/i386/t-linux64 2007-05-18 17:04:36.000000000 -0400
-@@ -6,7 +6,7 @@
-
- MULTILIB_OPTIONS = m64/m32
- MULTILIB_DIRNAMES = 64 32
--MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
-+MULTILIB_OSDIRNAMES = ../lib ../lib32
-
+diff -Naur gcc-orig/gcc/config/i386/t-linux64 gcc/gcc/config/i386/t-linux64
+--- gcc-orig/gcc/config/i386/t-linux64 2011-07-08 01:38:34.000000000 +1000
++++ gcc/gcc/config/i386/t-linux64 2011-07-24 19:49:41.000000000 +1000
+@@ -34,8 +34,8 @@
+ comma=,
+ MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG))
+ MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS)))
+-MULTILIB_OSDIRNAMES = m64=../lib64
+-MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
++MULTILIB_OSDIRNAMES = m64=../lib
++MULTILIB_OSDIRNAMES+= m32=../lib32
+ MULTILIB_OSDIRNAMES+= mx32=../libx32
+
LIBGCC = stmp-multilib
- INSTALL_LIBGCC = install-multilib
diff --git a/main/gcc/pt_gnu_eh_frame.patch b/main/gcc/pt_gnu_eh_frame.patch
index 3e029104aa..f093eac43b 100644
--- a/main/gcc/pt_gnu_eh_frame.patch
+++ b/main/gcc/pt_gnu_eh_frame.patch
@@ -1,5 +1,5 @@
---- gcc-4.3.2/gcc/crtstuff.c.orig Mon Nov 17 16:02:38 2008
-+++ gcc-4.3.2/gcc/crtstuff.c Mon Nov 17 16:02:52 2008
+--- ./libgcc/crtstuff.c.orig Mon Nov 17 16:02:38 2008
++++ ./libgcc/crtstuff.c Mon Nov 17 16:02:52 2008
@@ -94,8 +94,7 @@
#include <link.h>
/* uClibc pretends to be glibc 2.2 and DT_CONFIG is defined in its link.h.