aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2013-07-12 15:56:45 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2013-07-12 15:56:45 +0000
commit3e800bf8214c23fd8ebce936f9f846949750034e (patch)
tree057e4560c6198189f98f6c2829a1549a7fb45c16
parent0a61db5bf5537be193aada0990fcdd355ebc264d (diff)
downloadaports-3e800bf8214c23fd8ebce936f9f846949750034e.tar.gz
aports-3e800bf8214c23fd8ebce936f9f846949750034e.tar.bz2
aports-3e800bf8214c23fd8ebce936f9f846949750034e.tar.xz
main/gcc: upgrade to 4.8.1
TODO: fix gcc-go
-rw-r--r--main/gcc/11_all_default-warn-format-security.patch49
-rw-r--r--main/gcc/12_all_default-warn-trampolines.patch4
-rw-r--r--main/gcc/15_all_libgfortran-Werror.patch17
-rw-r--r--main/gcc/16_all_libgo-Werror-pr53679.patch16
-rw-r--r--main/gcc/16_all_libgomp-Werror.patch (renamed from main/gcc/15_all_libgomp-Werror.patch)3
-rw-r--r--main/gcc/29_all_arm_armv4t-default.patch16
-rw-r--r--main/gcc/48_all_x86_pr53113_libitm-avx.patch28
-rw-r--r--main/gcc/49_all_gcc-4.7-x86-libitm-pr52695.patch24
-rw-r--r--main/gcc/50_all_libiberty-asprintf.patch18
-rw-r--r--main/gcc/67_all_gcc-poison-system-directories.patch188
-rw-r--r--main/gcc/74_all_gcc47_cloog-dl.patch524
-rw-r--r--main/gcc/74_all_gcc48_cloog-dl.patch537
-rw-r--r--main/gcc/APKBUILD115
-rw-r--r--main/gcc/gcc-4.8-dynamic-linker.patch (renamed from main/gcc/gcc-4.7-dynamic-linker.patch)171
-rw-r--r--main/gcc/gcc-4.8-musl.patch (renamed from main/gcc/gcc-4.7.3-musl.patch)208
-rw-r--r--main/gcc/gcc-go.patch11
-rw-r--r--main/gcc/libgcc-backports.patch124
-rw-r--r--main/gcc/pr45078.patch36
18 files changed, 922 insertions, 1167 deletions
diff --git a/main/gcc/11_all_default-warn-format-security.patch b/main/gcc/11_all_default-warn-format-security.patch
deleted file mode 100644
index 5dbab43f1d..0000000000
--- a/main/gcc/11_all_default-warn-format-security.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-Enable -Wformat and -Wformat-security by default.
-
-
---- a/gcc/c-family/c-common.c
-+++ b/gcc/c-family/c-common.c
-@@ -201,7 +201,7 @@ int warn_unknown_pragmas; /* Tri state variable. */
- /* Warn about format/argument anomalies in calls to formatted I/O functions
- (*printf, *scanf, strftime, strfmon, etc.). */
-
--int warn_format;
-+int warn_format = 1;
-
- /* C/ObjC language option variables. */
-
---- a/gcc/c-family/c.opt
-+++ b/gcc/c-family/c.opt
-@@ -384,7 +384,7 @@ C ObjC C++ ObjC++ Var(warn_format_contains_nul) Warning
- Warn about format strings that contain NUL bytes
-
- Wformat-security
--C ObjC C++ ObjC++ Var(warn_format_security) Warning
-+C ObjC C++ ObjC++ Var(warn_format_security) Init(1) Warning
- Warn about possible security problems with format functions
-
- Wformat-y2k
---- a/gcc/doc/invoke.texi
-+++ b/gcc/doc/invoke.texi
-@@ -3111,6 +3111,9 @@ aspects of format checking, the options @option{-Wformat-y2k},
- @option{-Wformat-nonliteral}, @option{-Wformat-security}, and
- @option{-Wformat=2} are available, but are not included in @option{-Wall}.
-
-+In Gentoo this option is enabled by default for C, C++, ObjC, ObjC++.
-+To disable, use @option{-Wformat=0}.
-+
- @item -Wformat-y2k
- @opindex Wformat-y2k
- @opindex Wno-format-y2k
-@@ -3164,6 +3167,11 @@ currently a subset of what @option{-Wformat-nonliteral} warns about, but
- in future warnings may be added to @option{-Wformat-security} that are not
- included in @option{-Wformat-nonliteral}.)
-
-+In Gentoo this option is enabled by default for C, C++, ObjC, ObjC++.
-+To disable, use @option{-Wno-format-security}, or disable all format warnings
-+with @option{-Wformat=0}. To make format security warnings fatal, specify
-+@option{-Werror=format-security}.
-+
- @item -Wformat=2
- @opindex Wformat=2
- @opindex Wno-format=2
diff --git a/main/gcc/12_all_default-warn-trampolines.patch b/main/gcc/12_all_default-warn-trampolines.patch
index 4b26aecd29..2fd4051b1e 100644
--- a/main/gcc/12_all_default-warn-trampolines.patch
+++ b/main/gcc/12_all_default-warn-trampolines.patch
@@ -2,7 +2,7 @@ Enable -Wtrampolines by default.
--- a/gcc/common.opt
+++ b/gcc/common.opt
-@@ -639,7 +639,7 @@ Common Var(warn_system_headers) Warning
+@@ -640,7 +640,7 @@ Common Var(warn_system_headers) Warning
Do not suppress warnings from system headers
Wtrampolines
@@ -13,7 +13,7 @@ Enable -Wtrampolines by default.
Wtype-limits
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
-@@ -3878,6 +3878,8 @@ headers---for that, @option{-Wunknown-pragmas} must also be used.
+@@ -4007,6 +4007,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.
diff --git a/main/gcc/15_all_libgfortran-Werror.patch b/main/gcc/15_all_libgfortran-Werror.patch
new file mode 100644
index 0000000000..5f15373d89
--- /dev/null
+++ b/main/gcc/15_all_libgfortran-Werror.patch
@@ -0,0 +1,17 @@
+libgfortran does not respect --disable-werror
+
+https://bugs.gentoo.org/433435
+http://gcc.gnu.org/PR54724
+
+
+--- a/libgfortran/configure
++++ b/libgfortran/configure
+@@ -5764,7 +5764,7 @@ fi
+
+ # Add -Wall -fno-repack-arrays -fno-underscoring if we are using GCC.
+ if test "x$GCC" = "xyes"; then
+- AM_FCFLAGS="-I . -Wall -Werror -fimplicit-none -fno-repack-arrays -fno-underscoring"
++ AM_FCFLAGS="-I . -Wall -fimplicit-none -fno-repack-arrays -fno-underscoring"
+ ## We like to use C99 routines when available. This makes sure that
+ ## __STDC_VERSION__ is set such that libc includes make them available.
+ AM_CFLAGS="-std=gnu99 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wextra -Wwrite-strings"
diff --git a/main/gcc/16_all_libgo-Werror-pr53679.patch b/main/gcc/16_all_libgo-Werror-pr53679.patch
deleted file mode 100644
index 3c1ece3640..0000000000
--- a/main/gcc/16_all_libgo-Werror-pr53679.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-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/15_all_libgomp-Werror.patch b/main/gcc/16_all_libgomp-Werror.patch
index 3456e8ae82..d6a355d67a 100644
--- a/main/gcc/15_all_libgomp-Werror.patch
+++ b/main/gcc/16_all_libgomp-Werror.patch
@@ -3,9 +3,10 @@ libgomp does not respect --disable-werror
https://bugs.gentoo.org/229059
http://gcc.gnu.org/PR38436
+
--- a/libgomp/configure
+++ b/libgomp/configure
-@@ -4284,7 +4284,7 @@ save_CFLAGS="$CFLAGS"
+@@ -4282,7 +4282,7 @@ save_CFLAGS="$CFLAGS"
# Add -Wall -Werror if we are using GCC.
if test "x$GCC" = "xyes"; then
diff --git a/main/gcc/29_all_arm_armv4t-default.patch b/main/gcc/29_all_arm_armv4t-default.patch
deleted file mode 100644
index 4616cf9ab8..0000000000
--- a/main/gcc/29_all_arm_armv4t-default.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-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/48_all_x86_pr53113_libitm-avx.patch b/main/gcc/48_all_x86_pr53113_libitm-avx.patch
new file mode 100644
index 0000000000..b17653023a
--- /dev/null
+++ b/main/gcc/48_all_x86_pr53113_libitm-avx.patch
@@ -0,0 +1,28 @@
+libitm checks for AVX support in the assembler and adds -mavx to x86_avx.cc
+which defines the needed typedefs. User CFLAGS can override -mavx however,
+so also use the fallback typedef if __AVX__ isn't defined.
+
+https://bugs.gentoo.org/417271
+http://gcc.gnu.org/PR53113
+
+
+--- a/libitm/config/x86/x86_avx.cc
++++ b/libitm/config/x86/x86_avx.cc
+@@ -29,7 +29,7 @@
+
+ extern "C" {
+
+-#ifndef HAVE_AS_AVX
++#if !defined (HAVE_AS_AVX) || !defined(__AVX__)
+ // If we don't have an AVX capable assembler, we didn't set -mavx on the
+ // command-line either, which means that libitm.h defined neither this type
+ // nor the functions in this file. Define the type and unconditionally
+@@ -40,7 +40,7 @@ typedef float _ITM_TYPE_M256 __attribute__((vector_size(32), may_alias));
+ // Re-define the memcpy implementations so that we can frob the
+ // interface to deal with possibly missing AVX instruction set support.
+
+-#ifdef HAVE_AS_AVX
++#if defined(HAVE_AS_AVX) && defined(__AVX__)
+ #define RETURN(X) return X
+ #define STORE(X,Y) X = Y
+ #define OUTPUT(T) _ITM_TYPE_##T
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
deleted file mode 100644
index e1eb2e6ab1..0000000000
--- a/main/gcc/49_all_gcc-4.7-x86-libitm-pr52695.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-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/50_all_libiberty-asprintf.patch b/main/gcc/50_all_libiberty-asprintf.patch
new file mode 100644
index 0000000000..9ad4a92660
--- /dev/null
+++ b/main/gcc/50_all_libiberty-asprintf.patch
@@ -0,0 +1,18 @@
+2008-07-25 Magnus Granberg <zorry@ume.nu>
+
+ * include/libiberty.h (asprintf): Don't declare if defined as a macro
+
+--- a/include/libiberty.h
++++ b/include/libiberty.h
+@@ -609,8 +609,11 @@ extern int pwait (int, int *, int);
+ /* Like sprintf but provides a pointer to malloc'd storage, which must
+ be freed by the caller. */
+
++/* asprintf may be declared as a macro by glibc with __USE_FORTIFY_LEVEL. */
++#ifndef asprintf
+ extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2;
+ #endif
++#endif
+
+ #if !HAVE_DECL_VASPRINTF
+ /* Like vsprintf but provides a pointer to malloc'd storage, which
diff --git a/main/gcc/67_all_gcc-poison-system-directories.patch b/main/gcc/67_all_gcc-poison-system-directories.patch
index a9aee2732d..72b7e0d495 100644
--- a/main/gcc/67_all_gcc-poison-system-directories.patch
+++ b/main/gcc/67_all_gcc-poison-system-directories.patch
@@ -29,13 +29,23 @@ Upstream-Status: Inappropriate [distribution: codesourcery]
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
+
+--- a/gcc/Makefile.in
++++ b/gcc/Makefile.in
+@@ -2018,7 +2018,7 @@ attribs.o : attribs.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
+
+ 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 \
+--- a/gcc/common.opt
++++ b/gcc/common.opt
+@@ -595,6 +595,10 @@ Wpedantic
+ Common Var(pedantic) Warning
+ Issue warnings needed for strict compliance to the standard
+Wpoison-system-directories
+Common Var(flag_poison_system_directories) Init(1) Warning
@@ -44,11 +54,9 @@ Index: gcc-4_7-branch/gcc/common.opt
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 @@
+--- a/gcc/config.in
++++ b/gcc/config.in
+@@ -138,6 +138,12 @@
#endif
@@ -61,11 +69,48 @@ Index: gcc-4_7-branch/gcc/config.in
/* 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 @@
+--- a/gcc/configure
++++ b/gcc/configure
+@@ -917,6 +917,7 @@ with_gc
+ with_system_zlib
+ enable_maintainer_mode
+ enable_version_specific_runtime_libs
++enable_poison_system_directories
+ enable_plugin
+ enable_libquadmath_support
+ with_linker_hash_style
+@@ -1630,6 +1631,8 @@ Optional Features:
+ --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
+@@ -27103,6 +27106,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
+ 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
+
+
+--- a/gcc/configure.ac
++++ b/gcc/configure.ac
+@@ -5063,6 +5063,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
[specify that runtime libraries should be
installed in a compiler-specific directory])])
@@ -82,21 +127,19 @@ Index: gcc-4_7-branch/gcc/configure.ac
# 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 @@
+--- a/gcc/doc/invoke.texi
++++ b/gcc/doc/invoke.texi
+@@ -258,6 +258,7 @@ Objective-C and Objective-C++ Dialects}.
-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
+ -Wredundant-decls -Wno-return-local-addr @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.
+ -Wsign-compare -Wsign-conversion -Wsizeof-pointer-memaccess @gol
+@@ -4023,6 +4024,14 @@ should check to see whether the two values have ranges that overlap; and
+ this is done with the relational operators, so equality comparisons are
+ probably mistaken.
+@item -Wno-poison-system-directories
+@opindex Wno-poison-system-directories
@@ -106,31 +149,34 @@ Index: gcc-4_7-branch/gcc/doc/invoke.texi
+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}\
+ @item -Wtraditional @r{(C and Objective-C only)}
+ @opindex Wtraditional
+ @opindex Wno-traditional
+--- a/gcc/gcc.c
++++ b/gcc/gcc.c
+@@ -740,6 +740,8 @@ proper position among the other output files. */
+ "%{fuse-ld=*:-fuse-ld=%*}\
+ %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\
+ %{static:} %{L*} %(mfwrap) %(link_libgcc) " SANITIZER_EARLY_SPEC " %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 @@
+--- a/gcc/incpath.c
++++ b/gcc/incpath.c
+@@ -28,6 +28,7 @@
+ #include "intl.h"
+ #include "incpath.h"
+ #include "cppdefault.h"
++#include "diagnostic.h"
+
+ /* Microsoft Windows does not natively support inodes.
+ VMS has non-numeric inodes. */
+@@ -382,6 +382,25 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose)
}
fprintf (stderr, _("End of search list.\n"));
}
-+
+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
+ if (flag_poison_system_directories)
+ {
@@ -153,57 +199,3 @@ Index: gcc-4_7-branch/gcc/incpath.c
}
/* 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_gcc47_cloog-dl.patch b/main/gcc/74_all_gcc47_cloog-dl.patch
deleted file mode 100644
index ee108e33a9..0000000000
--- a/main/gcc/74_all_gcc47_cloog-dl.patch
+++ /dev/null
@@ -1,524 +0,0 @@
-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.
-
-2012-05-19 Ryan Hill <dirtyepic@gentoo.org>
-
- * configure.ac (DL_LIB): Check how to dlopen.
- * configure: Regenerate.
- * Makefile.in (BACKENDLIBS): Use DL_LIB.
-
-
---- a/gcc/Makefile.in
-+++ b/gcc/Makefile.in
-@@ -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)
-+GRAPHITE_CLOOG_UTIL_H = graphite-cloog-util.h graphite-cloog-compat.h
-+GRAPHITE_POLY_H = graphite-poly.h $(GRAPHITE_CLOOG_UTIL_H)
-
- #
- # Now figure out from those variables how to compile and link.
-@@ -1017,7 +1019,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
- # and the system's installed libraries.
- 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@
-@@ -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 \
-- $(DBGCNT_H) graphite-ppl.h graphite-poly.h graphite-scop-detection.h \
-+ $(DBGCNT_H) graphite-ppl.h $(GRAPHITE_POLY_H) graphite-scop-detection.h \
- graphite-clast-to-gimple.h graphite-sese-to-poly.h
- graphite-blocking.o : graphite-blocking.c $(CONFIG_H) $(SYSTEM_H) \
- coretypes.h $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) \
-- sese.h graphite-ppl.h graphite-poly.h
-+ sese.h graphite-ppl.h $(GRAPHITE_POLY_H)
- graphite-clast-to-gimple.o : graphite-clast-to-gimple.c $(CONFIG_H) \
- $(SYSTEM_H) coretypes.h $(DIAGNOSTIC_CORE_H) $(TREE_FLOW_H) $(TREE_DUMP_H) \
-- $(CFGLOOP_H) $(TREE_DATA_REF_H) sese.h graphite-cloog-util.h \
-- graphite-ppl.h graphite-poly.h graphite-clast-to-gimple.h \
-+ $(CFGLOOP_H) $(TREE_DATA_REF_H) sese.h $(GRAPHITE_CLOOG_UTIL_H) \
-+ graphite-ppl.h $(GRAPHITE_POLY_H) graphite-clast-to-gimple.h \
- graphite-dependences.h graphite-cloog-compat.h
- graphite-cloog-util.o : graphite-cloog-util.c $(CONFIG_H) $(SYSTEM_H) \
-- coretypes.h graphite-cloog-util.h graphite-cloog-compat.h
-+ coretypes.h $(GRAPHITE_CLOOG_UTIL_H) graphite-cloog-compat.h
- graphite-dependences.o : graphite-dependences.c $(CONFIG_H) $(SYSTEM_H) \
- coretypes.h $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) \
-- sese.h graphite-ppl.h graphite-poly.h graphite-dependences.h \
-- graphite-cloog-util.h
-+ sese.h graphite-ppl.h $(GRAPHITE_POLY_H) graphite-dependences.h \
-+ $(GRAPHITE_CLOOG_UTIL_H)
- graphite-flattening.o : graphite-flattening.c $(CONFIG_H) $(SYSTEM_H) \
- coretypes.h $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) \
-- sese.h graphite-ppl.h graphite-poly.h
-+ sese.h graphite-ppl.h $(GRAPHITE_POLY_H)
- graphite-interchange.o : graphite-interchange.c $(CONFIG_H) $(SYSTEM_H) \
- coretypes.h $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) \
-- sese.h graphite-ppl.h graphite-poly.h
-+ sese.h graphite-ppl.h $(GRAPHITE_POLY_H)
- graphite-poly.o : graphite-poly.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
- $(DIAGNOSTIC_CORE_H) $(TREE_FLOW_H) $(TREE_DUMP_H) gimple-pretty-print.h \
-- $(CFGLOOP_H) $(TREE_DATA_REF_H) sese.h graphite-ppl.h graphite-poly.h \
-- graphite-dependences.h graphite-cloog-util.h
-+ $(CFGLOOP_H) $(TREE_DATA_REF_H) sese.h graphite-ppl.h $(GRAPHITE_POLY_H) \
-+ graphite-dependences.h $(GRAPHITE_CLOOG_UTIL_H)
- graphite-ppl.o : graphite-ppl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
-- graphite-cloog-util.h graphite-ppl.h
-+ $(GRAPHITE_CLOOG_UTIL_H) graphite-ppl.h
- graphite-scop-detection.o : graphite-scop-detection.c $(CONFIG_H) $(SYSTEM_H) \
- coretypes.h $(TREE_FLOW_H) $(CFGLOOP_H) $(TREE_DATA_REF_H) $(TREE_PASS_H) \
-- sese.h graphite-ppl.h graphite-poly.h graphite-scop-detection.h
-+ sese.h graphite-ppl.h $(GRAPHITE_POLY_H) graphite-scop-detection.h
- graphite-sese-to-poly.o : graphite-sese-to-poly.c $(CONFIG_H) \
- $(SYSTEM_H) coretypes.h $(TREE_FLOW_H) $(TREE_DUMP_H) $(CFGLOOP_H) \
-- $(TREE_DATA_REF_H) domwalk.h sese.h graphite-ppl.h graphite-poly.h \
-+ $(TREE_DATA_REF_H) domwalk.h sese.h graphite-ppl.h $(GRAPHITE_POLY_H) \
- 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) \
-@@ -3455,6 +3457,15 @@ $(common_out_object_file): $(common_out_file) $(CONFIG_H) $(SYSTEM_H) \
- $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
- $< $(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 $(LIBDEPS)
- $(LINKER) $(LINKERFLAGS) $(LDFLAGS) -o $@ \
---- a/gcc/configure
-+++ b/gcc/configure
-@@ -602,6 +602,7 @@ ac_subst_vars='LTLIBOBJS
- LIBOBJS
- enable_plugin
- pluginlibs
-+DL_LIB
- CLOOGINC
- CLOOGLIBS
- PPLINC
-@@ -27236,6 +27237,7 @@ $as_echo "unable to check" >&6; }
- fi
-
- # Check -ldl
-+ DL_LIB=
- saved_LIBS="$LIBS"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
- $as_echo_n "checking for library containing dlopen... " >&6; }
-@@ -27295,7 +27297,9 @@ fi
-
- if test x"$ac_cv_search_dlopen" = x"-ldl"; then
- pluginlibs="$pluginlibs -ldl"
-+ DL_LIB=$ac_cv_search_dlopen
- fi
-+
- LIBS="$saved_LIBS"
-
- # Check that we can build shared objects with -fPIC -shared
---- a/gcc/configure.ac
-+++ b/gcc/configure.ac
-@@ -5109,11 +5109,14 @@ if test x"$enable_plugin" = x"yes"; then
- fi
-
- # Check -ldl
-+ DL_LIB=
- saved_LIBS="$LIBS"
- AC_SEARCH_LIBS([dlopen], [dl])
- if test x"$ac_cv_search_dlopen" = x"-ldl"; then
- pluginlibs="$pluginlibs -ldl"
-+ DL_LIB=$ac_cv_search_dlopen
- fi
-+ AC_SUBST(DL_LIB)
- LIBS="$saved_LIBS"
-
- # Check that we can build shared objects with -fPIC -shared
---- a/gcc/graphite-clast-to-gimple.c
-+++ b/gcc/graphite-clast-to-gimple.c
-@@ -836,7 +836,7 @@ clast_get_body_of_loop (struct clast_stmt *stmt)
- from STMT_FOR. */
-
- static tree
--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)
- {
- 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,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); \
-+ DYNSYM (cloog_block_list_malloc); \
-+ DYNSYM (cloog_clast_create); \
-+ DYNSYM (cloog_clast_free); \
-+ DYNSYM (cloog_domain_free); \
-+ DYNSYM (cloog_domain_matrix2domain); \
-+ DYNSYM (cloog_initialize); \
-+ DYNSYM (cloog_loop_malloc); \
-+ DYNSYM (cloog_matrix_alloc); \
-+ DYNSYM (cloog_matrix_copy); \
-+ DYNSYM (cloog_matrix_free); \
-+ DYNSYM (cloog_matrix_print); \
-+ DYNSYM (cloog_names_malloc); \
-+ DYNSYM (cloog_names_scalarize); \
-+ DYNSYM (cloog_options_free); \
-+ DYNSYM (cloog_options_malloc); \
-+ DYNSYM (cloog_program_dump_cloog); \
-+ DYNSYM (cloog_program_extract_scalars); \
-+ DYNSYM (cloog_program_free); \
-+ DYNSYM (cloog_program_generate); \
-+ DYNSYM (cloog_program_malloc); \
-+ DYNSYM (cloog_program_print); \
-+ DYNSYM (cloog_program_scatter); \
-+ DYNSYM (cloog_statement_alloc); \
-+ DYNSYM (cloog_domain_union); \
-+ DYNSYM (cloog_matrix_read); \
-+ DYNSYM (cloog_new_pol); \
-+ DYNSYM (cloog_vector_gcd); \
-+ DYNSYM (ppl_finalize); \
-+ DYNSYM (ppl_assign_Coefficient_from_mpz_t); \
-+ DYNSYM (ppl_assign_Linear_Expression_from_Linear_Expression); \
-+ DYNSYM (ppl_Coefficient_to_mpz_t); \
-+ DYNSYM (ppl_Constraint_coefficient); \
-+ DYNSYM (ppl_Constraint_inhomogeneous_term); \
-+ DYNSYM (ppl_Constraint_space_dimension); \
-+ DYNSYM (ppl_Constraint_System_begin); \
-+ DYNSYM (ppl_Constraint_System_const_iterator_dereference); \
-+ DYNSYM (ppl_Constraint_System_const_iterator_equal_test); \
-+ DYNSYM (ppl_Constraint_System_const_iterator_increment); \
-+ DYNSYM (ppl_Constraint_System_end); \
-+ DYNSYM (ppl_Constraint_System_insert_Constraint); \
-+ DYNSYM (ppl_Constraint_System_space_dimension); \
-+ DYNSYM (ppl_Constraint_type); \
-+ DYNSYM (ppl_delete_Coefficient); \
-+ DYNSYM (ppl_delete_Constraint); \
-+ DYNSYM (ppl_delete_Constraint_System_const_iterator); \
-+ DYNSYM (ppl_delete_Linear_Expression); \
-+ DYNSYM (ppl_delete_Pointset_Powerset_C_Polyhedron); \
-+ DYNSYM (ppl_delete_Pointset_Powerset_C_Polyhedron_iterator); \
-+ DYNSYM (ppl_delete_Polyhedron); \
-+ DYNSYM (ppl_Linear_Expression_add_to_coefficient); \
-+ DYNSYM (ppl_Linear_Expression_add_to_inhomogeneous); \
-+ DYNSYM (ppl_Linear_Expression_coefficient); \
-+ DYNSYM (ppl_Linear_Expression_inhomogeneous_term); \
-+ DYNSYM (ppl_Linear_Expression_space_dimension); \
-+ DYNSYM (ppl_new_Coefficient); \
-+ DYNSYM (ppl_new_Coefficient_from_mpz_t); \
-+ DYNSYM (ppl_new_Constraint); \
-+ DYNSYM (ppl_new_Constraint_System); \
-+ DYNSYM (ppl_new_Constraint_System_const_iterator); \
-+ DYNSYM (ppl_new_C_Polyhedron_from_C_Polyhedron); \
-+ DYNSYM (ppl_new_C_Polyhedron_from_space_dimension); \
-+ DYNSYM (ppl_new_C_Polyhedron_recycle_Constraint_System); \
-+ DYNSYM (ppl_new_Linear_Expression); \
-+ DYNSYM (ppl_new_Linear_Expression_from_Constraint); \
-+ DYNSYM (ppl_new_Linear_Expression_from_Linear_Expression); \
-+ DYNSYM (ppl_new_Linear_Expression_with_dimension); \
-+ DYNSYM (ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron); \
-+ DYNSYM (ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron); \
-+ DYNSYM (ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension); \
-+ DYNSYM (ppl_new_Pointset_Powerset_C_Polyhedron_iterator); \
-+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_add_constraint); \
-+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_add_space_dimensions_and_embed); \
-+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_difference_assign); \
-+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_intersection_assign); \
-+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_is_empty); \
-+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_begin); \
-+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_dereference); \
-+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_end); \
-+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_equal_test); \
-+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_iterator_increment); \
-+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_map_space_dimensions); \
-+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_maximize); \
-+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_minimize); \
-+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_remove_space_dimensions); \
-+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_size); \
-+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_space_dimension); \
-+ DYNSYM (ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign); \
-+ DYNSYM (ppl_Polyhedron_add_constraint); \
-+ DYNSYM (ppl_Polyhedron_add_constraints); \
-+ DYNSYM (ppl_Polyhedron_add_space_dimensions_and_embed); \
-+ DYNSYM (ppl_Polyhedron_get_constraints); \
-+ DYNSYM (ppl_Polyhedron_map_space_dimensions); \
-+ DYNSYM (ppl_Polyhedron_remove_space_dimensions); \
-+ DYNSYM (ppl_Polyhedron_space_dimension); \
-+ DYNSYM (ppl_subtract_Linear_Expression_from_Linear_Expression); \
-+ DYNSYM (pprint); \
-+ DYNSYM (stmt_block); \
-+ DYNSYM (stmt_for); \
-+ DYNSYM (stmt_guard); \
-+ DYNSYM (stmt_root); \
-+ DYNSYM (stmt_user); \
-+ 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); \
-+ DYNSYMS_PPL11
-+extern struct cloog_pointers_s__
-+{
-+ bool inited;
-+ void *h;
-+#define DYNSYM(x) __typeof (x) *p_##x
-+ DYNSYMS
-+#undef DYNSYM
-+} cloog_pointers__;
-+
-+#define cloog_block_alloc (*cloog_pointers__.p_cloog_block_alloc)
-+#define cloog_block_list_free (*cloog_pointers__.p_cloog_block_list_free)
-+#define cloog_block_list_malloc (*cloog_pointers__.p_cloog_block_list_malloc)
-+#define cloog_clast_create (*cloog_pointers__.p_cloog_clast_create)
-+#define cloog_clast_free (*cloog_pointers__.p_cloog_clast_free)
-+#define cloog_domain_free (*cloog_pointers__.p_cloog_domain_free)
-+#define cloog_domain_matrix2domain (*cloog_pointers__.p_cloog_domain_matrix2domain)
-+#define cloog_initialize (*cloog_pointers__.p_cloog_initialize)
-+#ifndef CLOOG_ORG
-+#undef cloog_loop_malloc
-+#define cloog_loop_malloc(STATE) (*cloog_pointers__.p_cloog_loop_malloc) ()
-+#else
-+#define cloog_loop_malloc (*cloog_pointers__.p_cloog_loop_malloc)
-+#endif
-+#define cloog_matrix_alloc (*cloog_pointers__.p_cloog_matrix_alloc)
-+#define cloog_matrix_copy (*cloog_pointers__.p_cloog_matrix_copy)
-+#define cloog_matrix_free (*cloog_pointers__.p_cloog_matrix_free)
-+#define cloog_matrix_print (*cloog_pointers__.p_cloog_matrix_print)
-+#define cloog_names_malloc (*cloog_pointers__.p_cloog_names_malloc)
-+#define cloog_names_scalarize (*cloog_pointers__.p_cloog_names_scalarize)
-+#define cloog_options_free (*cloog_pointers__.p_cloog_options_free)
-+#ifndef CLOOG_ORG
-+#undef cloog_options_malloc
-+#define cloog_options_malloc(STATE) (*cloog_pointers__.p_cloog_options_malloc) ()
-+#undef cloog_program_dump_cloog
-+#define cloog_program_dump_cloog(DUMPFILE, PROGRAM, SCATTERINGLIST) \
-+ (*cloog_pointers__.p_cloog_program_dump_cloog) (DUMPFILE, PROGRAM)
-+#undef cloog_program_extract_scalars
-+#define cloog_program_extract_scalars(PROG, SCATT, OPT) \
-+ (*cloog_pointers__.p_cloog_program_extract_scalars) (PROG, SCATT)
-+#else
-+#define cloog_options_malloc (*cloog_pointers__.p_cloog_options_malloc)
-+#define cloog_program_dump_cloog (*cloog_pointers__.p_cloog_program_dump_cloog)
-+#define cloog_program_extract_scalars (*cloog_pointers__.p_cloog_program_extract_scalars)
-+#endif
-+#define cloog_program_free (*cloog_pointers__.p_cloog_program_free)
-+#define cloog_program_generate (*cloog_pointers__.p_cloog_program_generate)
-+#define cloog_program_malloc (*cloog_pointers__.p_cloog_program_malloc)
-+#define cloog_program_print (*cloog_pointers__.p_cloog_program_print)
-+#ifndef CLOOG_ORG
-+#undef cloog_program_scatter
-+#define cloog_program_scatter(PROG, SCATT, OPT) \
-+ (*cloog_pointers__.p_cloog_program_scatter) (PROG, SCATT)
-+#undef cloog_statement_alloc
-+#define cloog_statement_alloc(STATE, INDEX) \
-+ (*cloog_pointers__.p_cloog_statement_alloc) (INDEX)
-+#else
-+#define cloog_program_scatter (*cloog_pointers__.p_cloog_program_scatter)
-+#define cloog_statement_alloc (*cloog_pointers__.p_cloog_statement_alloc)
-+#endif
-+#define cloog_domain_union (*cloog_pointers__.p_cloog_domain_union)
-+#define cloog_matrix_read (*cloog_pointers__.p_cloog_matrix_read)
-+#define cloog_new_pol (*cloog_pointers__.p_cloog_new_pol)
-+#define cloog_vector_gcd (*cloog_pointers__.p_cloog_vector_gcd)
-+#define ppl_finalize (*cloog_pointers__.p_ppl_finalize)
-+#define ppl_assign_Coefficient_from_mpz_t (*cloog_pointers__.p_ppl_assign_Coefficient_from_mpz_t)
-+#define ppl_assign_Linear_Expression_from_Linear_Expression (*cloog_pointers__.p_ppl_assign_Linear_Expression_from_Linear_Expression)
-+#define ppl_Coefficient_to_mpz_t (*cloog_pointers__.p_ppl_Coefficient_to_mpz_t)
-+#define ppl_Constraint_coefficient (*cloog_pointers__.p_ppl_Constraint_coefficient)
-+#define ppl_Constraint_inhomogeneous_term (*cloog_pointers__.p_ppl_Constraint_inhomogeneous_term)
-+#define ppl_Constraint_space_dimension (*cloog_pointers__.p_ppl_Constraint_space_dimension)
-+#define ppl_Constraint_System_begin (*cloog_pointers__.p_ppl_Constraint_System_begin)
-+#define ppl_Constraint_System_const_iterator_dereference (*cloog_pointers__.p_ppl_Constraint_System_const_iterator_dereference)
-+#define ppl_Constraint_System_const_iterator_equal_test (*cloog_pointers__.p_ppl_Constraint_System_const_iterator_equal_test)
-+#define ppl_Constraint_System_const_iterator_increment (*cloog_pointers__.p_ppl_Constraint_System_const_iterator_increment)
-+#define ppl_Constraint_System_end (*cloog_pointers__.p_ppl_Constraint_System_end)
-+#define ppl_Constraint_System_insert_Constraint (*cloog_pointers__.p_ppl_Constraint_System_insert_Constraint)
-+#define ppl_Constraint_System_space_dimension (*cloog_pointers__.p_ppl_Constraint_System_space_dimension)
-+#define ppl_Constraint_type (*cloog_pointers__.p_ppl_Constraint_type)
-+#define ppl_delete_Coefficient (*cloog_pointers__.p_ppl_delete_Coefficient)
-+#define ppl_delete_Constraint (*cloog_pointers__.p_ppl_delete_Constraint)
-+#define ppl_delete_Constraint_System_const_iterator (*cloog_pointers__.p_ppl_delete_Constraint_System_const_iterator)
-+#define ppl_delete_Linear_Expression (*cloog_pointers__.p_ppl_delete_Linear_Expression)
-+#define ppl_delete_Pointset_Powerset_C_Polyhedron (*cloog_pointers__.p_ppl_delete_Pointset_Powerset_C_Polyhedron)
-+#define ppl_delete_Pointset_Powerset_C_Polyhedron_iterator (*cloog_pointers__.p_ppl_delete_Pointset_Powerset_C_Polyhedron_iterator)
-+#define ppl_delete_Polyhedron (*cloog_pointers__.p_ppl_delete_Polyhedron)
-+#define ppl_Linear_Expression_add_to_coefficient (*cloog_pointers__.p_ppl_Linear_Expression_add_to_coefficient)
-+#define ppl_Linear_Expression_add_to_inhomogeneous (*cloog_pointers__.p_ppl_Linear_Expression_add_to_inhomogeneous)
-+#define ppl_Linear_Expression_coefficient (*cloog_pointers__.p_ppl_Linear_Expression_coefficient)
-+#define ppl_Linear_Expression_inhomogeneous_term (*cloog_pointers__.p_ppl_Linear_Expression_inhomogeneous_term)
-+#define ppl_Linear_Expression_space_dimension (*cloog_pointers__.p_ppl_Linear_Expression_space_dimension)
-+#define ppl_new_Coefficient (*cloog_pointers__.p_ppl_new_Coefficient)
-+#define ppl_new_Coefficient_from_mpz_t (*cloog_pointers__.p_ppl_new_Coefficient_from_mpz_t)
-+#define ppl_new_Constraint (*cloog_pointers__.p_ppl_new_Constraint)
-+#define ppl_new_Constraint_System (*cloog_pointers__.p_ppl_new_Constraint_System)
-+#define ppl_new_Constraint_System_const_iterator (*cloog_pointers__.p_ppl_new_Constraint_System_const_iterator)
-+#define ppl_new_C_Polyhedron_from_C_Polyhedron (*cloog_pointers__.p_ppl_new_C_Polyhedron_from_C_Polyhedron)
-+#define ppl_new_C_Polyhedron_from_space_dimension (*cloog_pointers__.p_ppl_new_C_Polyhedron_from_space_dimension)
-+#define ppl_new_C_Polyhedron_recycle_Constraint_System (*cloog_pointers__.p_ppl_new_C_Polyhedron_recycle_Constraint_System)
-+#define ppl_new_Linear_Expression (*cloog_pointers__.p_ppl_new_Linear_Expression)
-+#define ppl_new_Linear_Expression_from_Constraint (*cloog_pointers__.p_ppl_new_Linear_Expression_from_Constraint)
-+#define ppl_new_Linear_Expression_from_Linear_Expression (*cloog_pointers__.p_ppl_new_Linear_Expression_from_Linear_Expression)
-+#define ppl_new_Linear_Expression_with_dimension (*cloog_pointers__.p_ppl_new_Linear_Expression_with_dimension)
-+#define ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron (*cloog_pointers__.p_ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron)
-+#define ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron (*cloog_pointers__.p_ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron)
-+#define ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension (*cloog_pointers__.p_ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension)
-+#define ppl_new_Pointset_Powerset_C_Polyhedron_iterator (*cloog_pointers__.p_ppl_new_Pointset_Powerset_C_Polyhedron_iterator)
-+#define ppl_Pointset_Powerset_C_Polyhedron_add_constraint (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_add_constraint)
-+#define ppl_Pointset_Powerset_C_Polyhedron_add_space_dimensions_and_embed (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_add_space_dimensions_and_embed)
-+#define ppl_Pointset_Powerset_C_Polyhedron_difference_assign (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_difference_assign)
-+#define ppl_Pointset_Powerset_C_Polyhedron_intersection_assign (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_intersection_assign)
-+#define ppl_Pointset_Powerset_C_Polyhedron_is_empty (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_is_empty)
-+#define ppl_Pointset_Powerset_C_Polyhedron_iterator_begin (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_begin)
-+#define ppl_Pointset_Powerset_C_Polyhedron_iterator_dereference (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_dereference)
-+#define ppl_Pointset_Powerset_C_Polyhedron_iterator_end (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_end)
-+#define ppl_Pointset_Powerset_C_Polyhedron_iterator_equal_test (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_equal_test)
-+#define ppl_Pointset_Powerset_C_Polyhedron_iterator_increment (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_iterator_increment)
-+#define ppl_Pointset_Powerset_C_Polyhedron_map_space_dimensions (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_map_space_dimensions)
-+#define ppl_Pointset_Powerset_C_Polyhedron_maximize (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_maximize)
-+#define ppl_Pointset_Powerset_C_Polyhedron_minimize (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_minimize)
-+#define ppl_Pointset_Powerset_C_Polyhedron_remove_space_dimensions (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_remove_space_dimensions)
-+#define ppl_Pointset_Powerset_C_Polyhedron_size (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_size)
-+#define ppl_Pointset_Powerset_C_Polyhedron_space_dimension (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_space_dimension)
-+#define ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign (*cloog_pointers__.p_ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign)
-+#define ppl_Polyhedron_add_constraint (*cloog_pointers__.p_ppl_Polyhedron_add_constraint)
-+#define ppl_Polyhedron_add_constraints (*cloog_pointers__.p_ppl_Polyhedron_add_constraints)
-+#define ppl_Polyhedron_add_space_dimensions_and_embed (*cloog_pointers__.p_ppl_Polyhedron_add_space_dimensions_and_embed)
-+#define ppl_Polyhedron_get_constraints (*cloog_pointers__.p_ppl_Polyhedron_get_constraints)
-+#define ppl_Polyhedron_map_space_dimensions (*cloog_pointers__.p_ppl_Polyhedron_map_space_dimensions)
-+#define ppl_Polyhedron_remove_space_dimensions (*cloog_pointers__.p_ppl_Polyhedron_remove_space_dimensions)
-+#define ppl_Polyhedron_space_dimension (*cloog_pointers__.p_ppl_Polyhedron_space_dimension)
-+#define ppl_subtract_Linear_Expression_from_Linear_Expression (*cloog_pointers__.p_ppl_subtract_Linear_Expression_from_Linear_Expression)
-+#define pprint (*cloog_pointers__.p_pprint)
-+#define stmt_block (*cloog_pointers__.p_stmt_block)
-+#define stmt_for (*cloog_pointers__.p_stmt_for)
-+#define stmt_guard (*cloog_pointers__.p_stmt_guard)
-+#define stmt_root (*cloog_pointers__.p_stmt_root)
-+#define stmt_user (*cloog_pointers__.p_stmt_user)
-+#define 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 */
---- a/gcc/graphite-poly.h
-+++ b/gcc/graphite-poly.h
-@@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see
- #ifndef GCC_GRAPHITE_POLY_H
- #define GCC_GRAPHITE_POLY_H
-
-+#include "graphite-cloog-util.h"
-+
- typedef struct poly_dr *poly_dr_p;
- DEF_VEC_P(poly_dr_p);
- DEF_VEC_ALLOC_P (poly_dr_p, heap);
---- a/gcc/graphite.c
-+++ b/gcc/graphite.c
-@@ -56,6 +56,35 @@ along with GCC; see the file COPYING3. If not see
-
- CloogState *cloog_state;
-
-+__typeof (cloog_pointers__) cloog_pointers__;
-+
-+static bool
-+init_cloog_pointers (void)
-+{
-+ void *h;
-+
-+ if (cloog_pointers__.inited)
-+ return cloog_pointers__.h != NULL;
-+ h = dlopen ("libcloog.so.0", RTLD_LAZY);
-+ cloog_pointers__.h = h;
-+ if (h == NULL)
-+ return false;
-+#define DYNSYM(x) \
-+ do \
-+ { \
-+ union { __typeof (cloog_pointers__.p_##x) p; void *q; } u; \
-+ u.q = dlsym (h, #x); \
-+ if (u.q == NULL) \
-+ return false; \
-+ cloog_pointers__.p_##x = u.p; \
-+ } \
-+ while (0)
-+ DYNSYMS
-+#undef DYNSYM
-+ return true;
-+}
-+
-+
- /* Print global statistics to FILE. */
-
- static void
-@@ -201,6 +230,12 @@ graphite_initialize (void)
- return false;
- }
-
-+ if (!init_cloog_pointers ())
-+ {
-+ sorry ("Graphite loop optimizations cannot be used");
-+ return false;
-+ }
-+
- scev_reset ();
- recompute_all_dominators ();
- initialize_original_copy_tables ();
diff --git a/main/gcc/74_all_gcc48_cloog-dl.patch b/main/gcc/74_all_gcc48_cloog-dl.patch
new file mode 100644
index 0000000000..0fb55b0ade
--- /dev/null
+++ b/main/gcc/74_all_gcc48_cloog-dl.patch
@@ -0,0 +1,537 @@
+dlopen cloog-isl library rather than link to it directly. This prevents
+cloog upgrades that change the soname from breaking the compiler.
+
+http://pkgs.fedoraproject.org/cgit/gcc.git/tree/gcc48-cloog-dl.patch
+
+
+In FreeBSD dlopen is part of libc so we can't just hardcode -ldl.
+
+2013-03-30 Ryan Hill <dirtyepic@gentoo.org>
+
+ * configure.ac (DL_LIB): Check how to dlopen.
+ * configure: Regenerate.
+ * Makefile.in (BACKENDLIBS): Use DL_LIB.
+
+
+--- a/gcc/Makefile.in
++++ b/gcc/Makefile.in
+@@ -1020,7 +1020,7 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
+ # and the system's installed libraries.
+ LIBS = @LIBS@ libcommon.a $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBBACKTRACE) \
+ $(LIBIBERTY) $(LIBDECNUMBER) $(HOST_LIBS)
+-BACKENDLIBS = $(CLOOGLIBS) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \
++BACKENDLIBS = $(if $(CLOOGLIBS),@DL_LIB@) $(GMPLIBS) $(PLUGINLIBS) $(HOST_LIBS) \
+ $(ZLIB)
+ # Any system libraries needed just for GNAT.
+ SYSLIBS = @GNAT_LIBEXC@
+@@ -3443,6 +3443,15 @@ $(common_out_object_file): $(common_out_file) $(CONFIG_H) $(SYSTEM_H) \
+ $(DIAGNOSTIC_CORE_H) $(FLAGS_H) $(OPTS_H) $(TM_H) $(TM_P_H) $(MACHMODE_H)
+ $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) \
+ $< $(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))
+ #
+ # Generate header and source files from the machine description,
+ # and compile them.
+--- a/gcc/configure
++++ b/gcc/configure
+@@ -602,6 +602,7 @@ ac_subst_vars='LTLIBOBJS
+ LIBOBJS
+ enable_plugin
+ pluginlibs
++DL_LIB
+ CLOOGINC
+ CLOOGLIBS
+ ISLINC
+@@ -27263,6 +27264,7 @@ $as_echo "unable to check" >&6; }
+ fi
+
+ # Check -ldl
++ DL_LIB=
+ saved_LIBS="$LIBS"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
+ $as_echo_n "checking for library containing dlopen... " >&6; }
+@@ -27322,9 +27324,11 @@ fi
+
+ if test x"$ac_cv_search_dlopen" = x"-ldl"; then
+ pluginlibs="$pluginlibs -ldl"
++ DL_LIB=$ac_cv_search_dlopen
+ fi
+ LIBS="$saved_LIBS"
+
++
+ # Check that we can build shared objects with -fPIC -shared
+ saved_LDFLAGS="$LDFLAGS"
+ saved_CFLAGS="$CFLAGS"
+--- a/gcc/configure.ac
++++ b/gcc/configure.ac
+@@ -5212,12 +5212,15 @@ if test x"$enable_plugin" = x"yes"; then
+ fi
+
+ # Check -ldl
++ DL_LIB=
+ saved_LIBS="$LIBS"
+ AC_SEARCH_LIBS([dlopen], [dl])
+ if test x"$ac_cv_search_dlopen" = x"-ldl"; then
+ pluginlibs="$pluginlibs -ldl"
++ DL_LIB=$ac_cv_search_dlopen
+ fi
+ LIBS="$saved_LIBS"
++ AC_SUBST(DL_LIB)
+
+ # Check that we can build shared objects with -fPIC -shared
+ saved_LDFLAGS="$LDFLAGS"
+--- a/gcc/graphite-clast-to-gimple.c
++++ b/gcc/graphite-clast-to-gimple.c
+@@ -910,7 +910,7 @@ compute_bounds_for_loop (struct clast_for *loop, mpz_t low, mpz_t up)
+ from STMT_FOR. */
+
+ static tree
+-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)
+ {
+ mpz_t bound_one, bound_two;
+ tree lb_type, ub_type;
+@@ -918,8 +918,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-poly.h
++++ b/gcc/graphite-poly.h
+@@ -22,6 +22,369 @@ along with GCC; see the file COPYING3. If not see
+ #ifndef GCC_GRAPHITE_POLY_H
+ #define GCC_GRAPHITE_POLY_H
+
++#include <isl/aff.h>
++#include <isl/schedule.h>
++#include <isl/ilp.h>
++#include <isl/flow.h>
++#include <isl/options.h>
++#include <cloog/isl/cloog.h>
++#include <dlfcn.h>
++#define DYNSYMS \
++ DYNSYM (clast_pprint); \
++ DYNSYM (cloog_clast_create_from_input); \
++ DYNSYM (cloog_clast_free); \
++ DYNSYM (cloog_domain_from_isl_set); \
++ DYNSYM (cloog_input_alloc); \
++ DYNSYM (cloog_isl_state_malloc); \
++ DYNSYM (cloog_options_free); \
++ DYNSYM (cloog_options_malloc); \
++ DYNSYM (cloog_scattering_from_isl_map); \
++ DYNSYM (cloog_state_free); \
++ DYNSYM (cloog_union_domain_add_domain); \
++ DYNSYM (cloog_union_domain_alloc); \
++ DYNSYM (cloog_union_domain_set_name); \
++ DYNSYM (isl_aff_add_coefficient_si); \
++ DYNSYM (isl_aff_add_constant); \
++ DYNSYM (isl_aff_free); \
++ DYNSYM (isl_aff_get_coefficient); \
++ DYNSYM (isl_aff_get_space); \
++ DYNSYM (isl_aff_mod); \
++ DYNSYM (isl_aff_set_coefficient_si); \
++ DYNSYM (isl_aff_set_constant_si); \
++ DYNSYM (isl_aff_zero_on_domain); \
++ DYNSYM (isl_band_free); \
++ DYNSYM (isl_band_get_children); \
++ DYNSYM (isl_band_get_partial_schedule); \
++ DYNSYM (isl_band_has_children); \
++ DYNSYM (isl_band_list_free); \
++ DYNSYM (isl_band_list_get_band); \
++ DYNSYM (isl_band_list_get_ctx); \
++ DYNSYM (isl_band_list_n_band); \
++ DYNSYM (isl_band_member_is_zero_distance); \
++ DYNSYM (isl_band_n_member); \
++ DYNSYM (isl_basic_map_add_constraint); \
++ DYNSYM (isl_basic_map_project_out); \
++ DYNSYM (isl_basic_map_universe); \
++ DYNSYM (isl_constraint_set_coefficient); \
++ DYNSYM (isl_constraint_set_coefficient_si); \
++ DYNSYM (isl_constraint_set_constant); \
++ DYNSYM (isl_constraint_set_constant_si); \
++ DYNSYM (isl_ctx_alloc); \
++ DYNSYM (isl_ctx_free); \
++ DYNSYM (isl_equality_alloc); \
++ DYNSYM (isl_id_alloc); \
++ DYNSYM (isl_id_copy); \
++ DYNSYM (isl_id_free); \
++ DYNSYM (isl_inequality_alloc); \
++ DYNSYM (isl_local_space_copy); \
++ DYNSYM (isl_local_space_free); \
++ DYNSYM (isl_local_space_from_space); \
++ DYNSYM (isl_local_space_range); \
++ DYNSYM (isl_map_add_constraint); \
++ DYNSYM (isl_map_add_dims); \
++ DYNSYM (isl_map_align_params); \
++ DYNSYM (isl_map_apply_range); \
++ DYNSYM (isl_map_copy); \
++ DYNSYM (isl_map_dim); \
++ DYNSYM (isl_map_dump); \
++ DYNSYM (isl_map_equate); \
++ DYNSYM (isl_map_fix_si); \
++ DYNSYM (isl_map_flat_product); \
++ DYNSYM (isl_map_flat_range_product); \
++ DYNSYM (isl_map_free); \
++ DYNSYM (isl_map_from_basic_map); \
++ DYNSYM (isl_map_from_pw_aff); \
++ DYNSYM (isl_map_from_union_map); \
++ DYNSYM (isl_map_get_ctx); \
++ DYNSYM (isl_map_get_space); \
++ DYNSYM (isl_map_get_tuple_id); \
++ DYNSYM (isl_map_insert_dims); \
++ DYNSYM (isl_map_intersect); \
++ DYNSYM (isl_map_intersect_domain); \
++ DYNSYM (isl_map_intersect_range); \
++ DYNSYM (isl_map_is_empty); \
++ DYNSYM (isl_map_lex_ge); \
++ DYNSYM (isl_map_lex_le); \
++ DYNSYM (isl_map_n_out); \
++ DYNSYM (isl_map_range); \
++ DYNSYM (isl_map_set_tuple_id); \
++ DYNSYM (isl_map_universe); \
++ DYNSYM (isl_options_set_on_error); \
++ DYNSYM (isl_options_set_schedule_fuse); \
++ DYNSYM (isl_options_set_schedule_max_constant_term); \
++ DYNSYM (isl_options_set_schedule_maximize_band_depth); \
++ DYNSYM (isl_printer_free); \
++ DYNSYM (isl_printer_print_aff); \
++ DYNSYM (isl_printer_print_constraint); \
++ DYNSYM (isl_printer_print_map); \
++ DYNSYM (isl_printer_print_set); \
++ DYNSYM (isl_printer_to_file); \
++ DYNSYM (isl_pw_aff_add); \
++ DYNSYM (isl_pw_aff_alloc); \
++ DYNSYM (isl_pw_aff_copy); \
++ DYNSYM (isl_pw_aff_eq_set); \
++ DYNSYM (isl_pw_aff_free); \
++ DYNSYM (isl_pw_aff_from_aff); \
++ DYNSYM (isl_pw_aff_ge_set); \
++ DYNSYM (isl_pw_aff_gt_set); \
++ DYNSYM (isl_pw_aff_is_cst); \
++ DYNSYM (isl_pw_aff_le_set); \
++ DYNSYM (isl_pw_aff_lt_set); \
++ DYNSYM (isl_pw_aff_mod); \
++ DYNSYM (isl_pw_aff_mul); \
++ DYNSYM (isl_pw_aff_ne_set); \
++ DYNSYM (isl_pw_aff_nonneg_set); \
++ DYNSYM (isl_pw_aff_set_tuple_id); \
++ DYNSYM (isl_pw_aff_sub); \
++ DYNSYM (isl_pw_aff_zero_set); \
++ DYNSYM (isl_schedule_free); \
++ DYNSYM (isl_schedule_get_band_forest); \
++ DYNSYM (isl_set_add_constraint); \
++ DYNSYM (isl_set_add_dims); \
++ DYNSYM (isl_set_apply); \
++ DYNSYM (isl_set_coalesce); \
++ DYNSYM (isl_set_copy); \
++ DYNSYM (isl_set_dim); \
++ DYNSYM (isl_set_fix_si); \
++ DYNSYM (isl_set_free); \
++ DYNSYM (isl_set_from_cloog_domain); \
++ DYNSYM (isl_set_get_space); \
++ DYNSYM (isl_set_get_tuple_id); \
++ DYNSYM (isl_set_intersect); \
++ DYNSYM (isl_set_is_empty); \
++ DYNSYM (isl_set_max); \
++ DYNSYM (isl_set_min); \
++ DYNSYM (isl_set_nat_universe); \
++ DYNSYM (isl_set_project_out); \
++ DYNSYM (isl_set_set_tuple_id); \
++ DYNSYM (isl_set_universe); \
++ DYNSYM (isl_space_add_dims); \
++ DYNSYM (isl_space_alloc); \
++ DYNSYM (isl_space_copy); \
++ DYNSYM (isl_space_dim); \
++ DYNSYM (isl_space_domain); \
++ DYNSYM (isl_space_find_dim_by_id); \
++ DYNSYM (isl_space_free); \
++ DYNSYM (isl_space_from_domain); \
++ DYNSYM (isl_space_get_tuple_id); \
++ DYNSYM (isl_space_params_alloc); \
++ DYNSYM (isl_space_range); \
++ DYNSYM (isl_space_set_alloc); \
++ DYNSYM (isl_space_set_dim_id); \
++ DYNSYM (isl_space_set_tuple_id); \
++ DYNSYM (isl_union_map_add_map); \
++ DYNSYM (isl_union_map_align_params); \
++ DYNSYM (isl_union_map_apply_domain); \
++ DYNSYM (isl_union_map_apply_range); \
++ DYNSYM (isl_union_map_compute_flow); \
++ DYNSYM (isl_union_map_copy); \
++ DYNSYM (isl_union_map_empty); \
++ DYNSYM (isl_union_map_flat_range_product); \
++ DYNSYM (isl_union_map_foreach_map); \
++ DYNSYM (isl_union_map_free); \
++ DYNSYM (isl_union_map_from_map); \
++ DYNSYM (isl_union_map_get_ctx); \
++ DYNSYM (isl_union_map_get_space); \
++ DYNSYM (isl_union_map_gist_domain); \
++ DYNSYM (isl_union_map_gist_range); \
++ DYNSYM (isl_union_map_intersect_domain); \
++ DYNSYM (isl_union_map_is_empty); \
++ DYNSYM (isl_union_map_subtract); \
++ DYNSYM (isl_union_map_union); \
++ DYNSYM (isl_union_set_add_set); \
++ DYNSYM (isl_union_set_compute_schedule); \
++ DYNSYM (isl_union_set_copy); \
++ DYNSYM (isl_union_set_empty); \
++ DYNSYM (isl_union_set_from_set); \
++ DYNSYM (stmt_ass); \
++ DYNSYM (stmt_block); \
++ DYNSYM (stmt_for); \
++ DYNSYM (stmt_guard); \
++ DYNSYM (stmt_root); \
++ DYNSYM (stmt_user);
++extern struct cloog_pointers_s__
++{
++ bool inited;
++ void *h;
++#define DYNSYM(x) __typeof (x) *p_##x
++ DYNSYMS
++#undef DYNSYM
++} cloog_pointers__;
++
++#define cloog_block_alloc (*cloog_pointers__.p_cloog_block_alloc)
++#define clast_pprint (*cloog_pointers__.p_clast_pprint)
++#define cloog_clast_create_from_input (*cloog_pointers__.p_cloog_clast_create_from_input)
++#define cloog_clast_free (*cloog_pointers__.p_cloog_clast_free)
++#define cloog_domain_from_isl_set (*cloog_pointers__.p_cloog_domain_from_isl_set)
++#define cloog_input_alloc (*cloog_pointers__.p_cloog_input_alloc)
++#define cloog_isl_state_malloc (*cloog_pointers__.p_cloog_isl_state_malloc)
++#define cloog_options_free (*cloog_pointers__.p_cloog_options_free)
++#define cloog_options_malloc (*cloog_pointers__.p_cloog_options_malloc)
++#define cloog_scattering_from_isl_map (*cloog_pointers__.p_cloog_scattering_from_isl_map)
++#define cloog_state_free (*cloog_pointers__.p_cloog_state_free)
++#define cloog_union_domain_add_domain (*cloog_pointers__.p_cloog_union_domain_add_domain)
++#define cloog_union_domain_alloc (*cloog_pointers__.p_cloog_union_domain_alloc)
++#define cloog_union_domain_set_name (*cloog_pointers__.p_cloog_union_domain_set_name)
++#define isl_aff_add_coefficient_si (*cloog_pointers__.p_isl_aff_add_coefficient_si)
++#define isl_aff_add_constant (*cloog_pointers__.p_isl_aff_add_constant)
++#define isl_aff_free (*cloog_pointers__.p_isl_aff_free)
++#define isl_aff_get_coefficient (*cloog_pointers__.p_isl_aff_get_coefficient)
++#define isl_aff_get_space (*cloog_pointers__.p_isl_aff_get_space)
++#define isl_aff_mod (*cloog_pointers__.p_isl_aff_mod)
++#define isl_aff_set_coefficient_si (*cloog_pointers__.p_isl_aff_set_coefficient_si)
++#define isl_aff_set_constant_si (*cloog_pointers__.p_isl_aff_set_constant_si)
++#define isl_aff_zero_on_domain (*cloog_pointers__.p_isl_aff_zero_on_domain)
++#define isl_band_free (*cloog_pointers__.p_isl_band_free)
++#define isl_band_get_children (*cloog_pointers__.p_isl_band_get_children)
++#define isl_band_get_partial_schedule (*cloog_pointers__.p_isl_band_get_partial_schedule)
++#define isl_band_has_children (*cloog_pointers__.p_isl_band_has_children)
++#define isl_band_list_free (*cloog_pointers__.p_isl_band_list_free)
++#define isl_band_list_get_band (*cloog_pointers__.p_isl_band_list_get_band)
++#define isl_band_list_get_ctx (*cloog_pointers__.p_isl_band_list_get_ctx)
++#define isl_band_list_n_band (*cloog_pointers__.p_isl_band_list_n_band)
++#define isl_band_member_is_zero_distance (*cloog_pointers__.p_isl_band_member_is_zero_distance)
++#define isl_band_n_member (*cloog_pointers__.p_isl_band_n_member)
++#define isl_basic_map_add_constraint (*cloog_pointers__.p_isl_basic_map_add_constraint)
++#define isl_basic_map_project_out (*cloog_pointers__.p_isl_basic_map_project_out)
++#define isl_basic_map_universe (*cloog_pointers__.p_isl_basic_map_universe)
++#define isl_constraint_set_coefficient (*cloog_pointers__.p_isl_constraint_set_coefficient)
++#define isl_constraint_set_coefficient_si (*cloog_pointers__.p_isl_constraint_set_coefficient_si)
++#define isl_constraint_set_constant (*cloog_pointers__.p_isl_constraint_set_constant)
++#define isl_constraint_set_constant_si (*cloog_pointers__.p_isl_constraint_set_constant_si)
++#define isl_ctx_alloc (*cloog_pointers__.p_isl_ctx_alloc)
++#define isl_ctx_free (*cloog_pointers__.p_isl_ctx_free)
++#define isl_equality_alloc (*cloog_pointers__.p_isl_equality_alloc)
++#define isl_id_alloc (*cloog_pointers__.p_isl_id_alloc)
++#define isl_id_copy (*cloog_pointers__.p_isl_id_copy)
++#define isl_id_free (*cloog_pointers__.p_isl_id_free)
++#define isl_inequality_alloc (*cloog_pointers__.p_isl_inequality_alloc)
++#define isl_local_space_copy (*cloog_pointers__.p_isl_local_space_copy)
++#define isl_local_space_free (*cloog_pointers__.p_isl_local_space_free)
++#define isl_local_space_from_space (*cloog_pointers__.p_isl_local_space_from_space)
++#define isl_local_space_range (*cloog_pointers__.p_isl_local_space_range)
++#define isl_map_add_constraint (*cloog_pointers__.p_isl_map_add_constraint)
++#define isl_map_add_dims (*cloog_pointers__.p_isl_map_add_dims)
++#define isl_map_align_params (*cloog_pointers__.p_isl_map_align_params)
++#define isl_map_apply_range (*cloog_pointers__.p_isl_map_apply_range)
++#define isl_map_copy (*cloog_pointers__.p_isl_map_copy)
++#define isl_map_dim (*cloog_pointers__.p_isl_map_dim)
++#define isl_map_dump (*cloog_pointers__.p_isl_map_dump)
++#define isl_map_equate (*cloog_pointers__.p_isl_map_equate)
++#define isl_map_fix_si (*cloog_pointers__.p_isl_map_fix_si)
++#define isl_map_flat_product (*cloog_pointers__.p_isl_map_flat_product)
++#define isl_map_flat_range_product (*cloog_pointers__.p_isl_map_flat_range_product)
++#define isl_map_free (*cloog_pointers__.p_isl_map_free)
++#define isl_map_from_basic_map (*cloog_pointers__.p_isl_map_from_basic_map)
++#define isl_map_from_pw_aff (*cloog_pointers__.p_isl_map_from_pw_aff)
++#define isl_map_from_union_map (*cloog_pointers__.p_isl_map_from_union_map)
++#define isl_map_get_ctx (*cloog_pointers__.p_isl_map_get_ctx)
++#define isl_map_get_space (*cloog_pointers__.p_isl_map_get_space)
++#define isl_map_get_tuple_id (*cloog_pointers__.p_isl_map_get_tuple_id)
++#define isl_map_insert_dims (*cloog_pointers__.p_isl_map_insert_dims)
++#define isl_map_intersect (*cloog_pointers__.p_isl_map_intersect)
++#define isl_map_intersect_domain (*cloog_pointers__.p_isl_map_intersect_domain)
++#define isl_map_intersect_range (*cloog_pointers__.p_isl_map_intersect_range)
++#define isl_map_is_empty (*cloog_pointers__.p_isl_map_is_empty)
++#define isl_map_lex_ge (*cloog_pointers__.p_isl_map_lex_ge)
++#define isl_map_lex_le (*cloog_pointers__.p_isl_map_lex_le)
++#define isl_map_n_out (*cloog_pointers__.p_isl_map_n_out)
++#define isl_map_range (*cloog_pointers__.p_isl_map_range)
++#define isl_map_set_tuple_id (*cloog_pointers__.p_isl_map_set_tuple_id)
++#define isl_map_universe (*cloog_pointers__.p_isl_map_universe)
++#define isl_options_set_on_error (*cloog_pointers__.p_isl_options_set_on_error)
++#define isl_options_set_schedule_fuse (*cloog_pointers__.p_isl_options_set_schedule_fuse)
++#define isl_options_set_schedule_max_constant_term (*cloog_pointers__.p_isl_options_set_schedule_max_constant_term)
++#define isl_options_set_schedule_maximize_band_depth (*cloog_pointers__.p_isl_options_set_schedule_maximize_band_depth)
++#define isl_printer_free (*cloog_pointers__.p_isl_printer_free)
++#define isl_printer_print_aff (*cloog_pointers__.p_isl_printer_print_aff)
++#define isl_printer_print_constraint (*cloog_pointers__.p_isl_printer_print_constraint)
++#define isl_printer_print_map (*cloog_pointers__.p_isl_printer_print_map)
++#define isl_printer_print_set (*cloog_pointers__.p_isl_printer_print_set)
++#define isl_printer_to_file (*cloog_pointers__.p_isl_printer_to_file)
++#define isl_pw_aff_add (*cloog_pointers__.p_isl_pw_aff_add)
++#define isl_pw_aff_alloc (*cloog_pointers__.p_isl_pw_aff_alloc)
++#define isl_pw_aff_copy (*cloog_pointers__.p_isl_pw_aff_copy)
++#define isl_pw_aff_eq_set (*cloog_pointers__.p_isl_pw_aff_eq_set)
++#define isl_pw_aff_free (*cloog_pointers__.p_isl_pw_aff_free)
++#define isl_pw_aff_from_aff (*cloog_pointers__.p_isl_pw_aff_from_aff)
++#define isl_pw_aff_ge_set (*cloog_pointers__.p_isl_pw_aff_ge_set)
++#define isl_pw_aff_gt_set (*cloog_pointers__.p_isl_pw_aff_gt_set)
++#define isl_pw_aff_is_cst (*cloog_pointers__.p_isl_pw_aff_is_cst)
++#define isl_pw_aff_le_set (*cloog_pointers__.p_isl_pw_aff_le_set)
++#define isl_pw_aff_lt_set (*cloog_pointers__.p_isl_pw_aff_lt_set)
++#define isl_pw_aff_mod (*cloog_pointers__.p_isl_pw_aff_mod)
++#define isl_pw_aff_mul (*cloog_pointers__.p_isl_pw_aff_mul)
++#define isl_pw_aff_ne_set (*cloog_pointers__.p_isl_pw_aff_ne_set)
++#define isl_pw_aff_nonneg_set (*cloog_pointers__.p_isl_pw_aff_nonneg_set)
++#define isl_pw_aff_set_tuple_id (*cloog_pointers__.p_isl_pw_aff_set_tuple_id)
++#define isl_pw_aff_sub (*cloog_pointers__.p_isl_pw_aff_sub)
++#define isl_pw_aff_zero_set (*cloog_pointers__.p_isl_pw_aff_zero_set)
++#define isl_schedule_free (*cloog_pointers__.p_isl_schedule_free)
++#define isl_schedule_get_band_forest (*cloog_pointers__.p_isl_schedule_get_band_forest)
++#define isl_set_add_constraint (*cloog_pointers__.p_isl_set_add_constraint)
++#define isl_set_add_dims (*cloog_pointers__.p_isl_set_add_dims)
++#define isl_set_apply (*cloog_pointers__.p_isl_set_apply)
++#define isl_set_coalesce (*cloog_pointers__.p_isl_set_coalesce)
++#define isl_set_copy (*cloog_pointers__.p_isl_set_copy)
++#define isl_set_dim (*cloog_pointers__.p_isl_set_dim)
++#define isl_set_fix_si (*cloog_pointers__.p_isl_set_fix_si)
++#define isl_set_free (*cloog_pointers__.p_isl_set_free)
++#define isl_set_from_cloog_domain (*cloog_pointers__.p_isl_set_from_cloog_domain)
++#define isl_set_get_space (*cloog_pointers__.p_isl_set_get_space)
++#define isl_set_get_tuple_id (*cloog_pointers__.p_isl_set_get_tuple_id)
++#define isl_set_intersect (*cloog_pointers__.p_isl_set_intersect)
++#define isl_set_is_empty (*cloog_pointers__.p_isl_set_is_empty)
++#define isl_set_max (*cloog_pointers__.p_isl_set_max)
++#define isl_set_min (*cloog_pointers__.p_isl_set_min)
++#define isl_set_nat_universe (*cloog_pointers__.p_isl_set_nat_universe)
++#define isl_set_project_out (*cloog_pointers__.p_isl_set_project_out)
++#define isl_set_set_tuple_id (*cloog_pointers__.p_isl_set_set_tuple_id)
++#define isl_set_universe (*cloog_pointers__.p_isl_set_universe)
++#define isl_space_add_dims (*cloog_pointers__.p_isl_space_add_dims)
++#define isl_space_alloc (*cloog_pointers__.p_isl_space_alloc)
++#define isl_space_copy (*cloog_pointers__.p_isl_space_copy)
++#define isl_space_dim (*cloog_pointers__.p_isl_space_dim)
++#define isl_space_domain (*cloog_pointers__.p_isl_space_domain)
++#define isl_space_find_dim_by_id (*cloog_pointers__.p_isl_space_find_dim_by_id)
++#define isl_space_free (*cloog_pointers__.p_isl_space_free)
++#define isl_space_from_domain (*cloog_pointers__.p_isl_space_from_domain)
++#define isl_space_get_tuple_id (*cloog_pointers__.p_isl_space_get_tuple_id)
++#define isl_space_params_alloc (*cloog_pointers__.p_isl_space_params_alloc)
++#define isl_space_range (*cloog_pointers__.p_isl_space_range)
++#define isl_space_set_alloc (*cloog_pointers__.p_isl_space_set_alloc)
++#define isl_space_set_dim_id (*cloog_pointers__.p_isl_space_set_dim_id)
++#define isl_space_set_tuple_id (*cloog_pointers__.p_isl_space_set_tuple_id)
++#define isl_union_map_add_map (*cloog_pointers__.p_isl_union_map_add_map)
++#define isl_union_map_align_params (*cloog_pointers__.p_isl_union_map_align_params)
++#define isl_union_map_apply_domain (*cloog_pointers__.p_isl_union_map_apply_domain)
++#define isl_union_map_apply_range (*cloog_pointers__.p_isl_union_map_apply_range)
++#define isl_union_map_compute_flow (*cloog_pointers__.p_isl_union_map_compute_flow)
++#define isl_union_map_copy (*cloog_pointers__.p_isl_union_map_copy)
++#define isl_union_map_empty (*cloog_pointers__.p_isl_union_map_empty)
++#define isl_union_map_flat_range_product (*cloog_pointers__.p_isl_union_map_flat_range_product)
++#define isl_union_map_foreach_map (*cloog_pointers__.p_isl_union_map_foreach_map)
++#define isl_union_map_free (*cloog_pointers__.p_isl_union_map_free)
++#define isl_union_map_from_map (*cloog_pointers__.p_isl_union_map_from_map)
++#define isl_union_map_get_ctx (*cloog_pointers__.p_isl_union_map_get_ctx)
++#define isl_union_map_get_space (*cloog_pointers__.p_isl_union_map_get_space)
++#define isl_union_map_gist_domain (*cloog_pointers__.p_isl_union_map_gist_domain)
++#define isl_union_map_gist_range (*cloog_pointers__.p_isl_union_map_gist_range)
++#define isl_union_map_intersect_domain (*cloog_pointers__.p_isl_union_map_intersect_domain)
++#define isl_union_map_is_empty (*cloog_pointers__.p_isl_union_map_is_empty)
++#define isl_union_map_subtract (*cloog_pointers__.p_isl_union_map_subtract)
++#define isl_union_map_union (*cloog_pointers__.p_isl_union_map_union)
++#define isl_union_set_add_set (*cloog_pointers__.p_isl_union_set_add_set)
++#define isl_union_set_compute_schedule (*cloog_pointers__.p_isl_union_set_compute_schedule)
++#define isl_union_set_copy (*cloog_pointers__.p_isl_union_set_copy)
++#define isl_union_set_empty (*cloog_pointers__.p_isl_union_set_empty)
++#define isl_union_set_from_set (*cloog_pointers__.p_isl_union_set_from_set)
++#define stmt_ass (*cloog_pointers__.p_stmt_ass)
++#define stmt_block (*cloog_pointers__.p_stmt_block)
++#define stmt_for (*cloog_pointers__.p_stmt_for)
++#define stmt_guard (*cloog_pointers__.p_stmt_guard)
++#define stmt_root (*cloog_pointers__.p_stmt_root)
++#define stmt_user (*cloog_pointers__.p_stmt_user)
++
+ typedef struct poly_dr *poly_dr_p;
+
+ typedef struct poly_bb *poly_bb_p;
+--- a/gcc/graphite.c
++++ b/gcc/graphite.c
+@@ -65,6 +65,34 @@ along with GCC; see the file COPYING3. If not see
+
+ CloogState *cloog_state;
+
++__typeof (cloog_pointers__) cloog_pointers__;
++
++static bool
++init_cloog_pointers (void)
++{
++ void *h;
++
++ if (cloog_pointers__.inited)
++ return cloog_pointers__.h != NULL;
++ h = dlopen ("libcloog-isl.so.4", RTLD_LAZY);
++ cloog_pointers__.h = h;
++ if (h == NULL)
++ return false;
++#define DYNSYM(x) \
++ do \
++ { \
++ union { __typeof (cloog_pointers__.p_##x) p; void *q; } u; \
++ u.q = dlsym (h, #x); \
++ if (u.q == NULL) \
++ return false; \
++ cloog_pointers__.p_##x = u.p; \
++ } \
++ while (0)
++ DYNSYMS
++#undef DYNSYM
++ return true;
++}
++
+ /* Print global statistics to FILE. */
+
+ static void
+@@ -263,6 +291,15 @@ graphite_transform_loops (void)
+ if (parallelized_function_p (cfun->decl))
+ return;
+
++ if (number_of_loops () <= 1)
++ return;
++
++ if (!init_cloog_pointers ())
++ {
++ sorry ("Graphite loop optimizations cannot be used");
++ return;
++ }
++
+ ctx = isl_ctx_alloc ();
+ isl_options_set_on_error(ctx, ISL_ON_ERROR_ABORT);
+ if (!graphite_initialize (ctx))
diff --git a/main/gcc/APKBUILD b/main/gcc/APKBUILD
index db0f88de0f..51ff93a537 100644
--- a/main/gcc/APKBUILD
+++ b/main/gcc/APKBUILD
@@ -1,13 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gcc
-pkgver=4.7.3
-_piepatchver=0.5.3
+pkgver=4.8.1
+_piepatchver=0.5.6
_specs_ver=0.2.0
_specs_gcc_ver=4.4.3
_uclibc_abiver=0.9.32
-pkgrel=8
+pkgrel=0
pkgdesc="The GNU Compiler Collection"
url="http://gcc.gnu.org"
arch="all"
@@ -15,7 +15,7 @@ license="GPL LGPL"
_gccrel=$pkgver-r$pkgrel
depends="binutils libgomp=$_gccrel"
makedepends="bison flex gmp-dev mpfr-dev texinfo mpc1-dev gawk zlib-dev zip
- cloog-dev !libiconv-dev"
+ cloog-dev !libiconv-dev !gettext-dev"
subpackages="$pkgname-doc libgcc libgomp libstdc++:libcxx g++:gpp"
replaces="libstdc++"
@@ -56,34 +56,31 @@ if [ "$LANG_FORTRAN" != "off" ]; then
fi
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-$pkgver-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
-
- 11_all_default-warn-format-security.patch
+
12_all_default-warn-trampolines.patch
- 15_all_libgomp-Werror.patch
- 16_all_libgo-Werror-pr53679.patch
- 29_all_arm_armv4t-default.patch
- 49_all_gcc-4.7-x86-libitm-pr52695.patch
+ 15_all_libgfortran-Werror.patch
+ 16_all_libgomp-Werror.patch
+ 48_all_x86_pr53113_libitm-avx.patch
+ 50_all_libiberty-asprintf.patch
51_all_libiberty-pic.patch
67_all_gcc-poison-system-directories.patch
- 74_all_gcc47_cloog-dl.patch
+ 74_all_gcc48_cloog-dl.patch
gcc-spec-env.patch
- gcc-4.7.3-musl.patch
- libgcc-backports.patch
+ gcc-4.8-musl.patch
libgcc-always-build-gcceh.a.patch
pt_gnu_eh_frame.patch
uclibc-getipinfo.patch
- gcc-4.7-dynamic-linker.patch
gcc-4.6-pr32219.patch
+ gcc-4.8-dynamic-linker.patch
boehem-gc-uclibc.patch
gcc-pure64.patch
- gcc-go.patch
- pr45078.patch
"
+# gcc-go.patch
# we build out-of-tree
_gccdir="$srcdir"/gcc-$pkgver
@@ -451,78 +448,66 @@ gfortran() {
"$subpkgdir"/$_gcclibdir
}
-md5sums="86f428a30379bdee0224e353ee2f999e gcc-4.7.3.tar.bz2
-2e1d99664efcdbd86549a40ddf37d405 gcc-4.7.1-piepatches-v0.5.3.tar.bz2
+md5sums="3b2386c114cd74185aa3754b58a79304 gcc-4.8.1.tar.bz2
+f8ab875eee18868b319ad04dc19adcf6 gcc-4.8.1-piepatches-v0.5.6.tar.bz2
441c76504e1d97170117c294e65c7a72 gcc-4.4.3-specs-0.2.0.tar.bz2
d7cd6a27c8801e66cbaa964a039ecfdb ecj-latest.jar
-34e4a0260e9dbd434ac84b9dda381240 11_all_default-warn-format-security.patch
-1570f30f65f1c4941d2bd690a7148836 12_all_default-warn-trampolines.patch
-6862cb5268fef68a4a1906e0c4ea0d46 15_all_libgomp-Werror.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
+f28e9334c58ce14f69a9e988026bc772 12_all_default-warn-trampolines.patch
+7eb9ad894dfdf1b3d4a8a407a339a6f1 15_all_libgfortran-Werror.patch
+452e457a0ac45e6f8f75eb6d6ba4d04b 16_all_libgomp-Werror.patch
+8975abab9ee8ae5028a55e84b930cf02 48_all_x86_pr53113_libitm-avx.patch
+326fa30475ba206cc2ef1666ec4314c8 50_all_libiberty-asprintf.patch
d8692c56f04b92667096f59d843e95c5 51_all_libiberty-pic.patch
-406fc6f29ab3d746eaef0202c50fd7e9 67_all_gcc-poison-system-directories.patch
-f24f07ed008324eaecb0f75417c99116 74_all_gcc47_cloog-dl.patch
+ca4f395856bbb80d23398246572c30fa 67_all_gcc-poison-system-directories.patch
+9c443d9d0fba2ce97b12f674b7d14c7e 74_all_gcc48_cloog-dl.patch
a695d7648509b4f8e18b389a19e6037c gcc-spec-env.patch
-789c5ace577a7c4aea769af614cffa86 gcc-4.7.3-musl.patch
-15c03ac46867377f347412b05796ae72 libgcc-backports.patch
+cd8ef37289815c939adc954ba95e9294 gcc-4.8-musl.patch
504c7dd8651c5d98229892c4cd9ea591 libgcc-always-build-gcceh.a.patch
ab83248e10b2bf4b3d9240de0fefb52b pt_gnu_eh_frame.patch
6cc2385c5bbd6d0da6eaedd53c8bf547 uclibc-getipinfo.patch
-ac11128f201ee00287f8852697cb86a6 gcc-4.7-dynamic-linker.patch
32e8e4c0e23ed8f5de95a591cb30f1da gcc-4.6-pr32219.patch
+79d00ee1284fac5192456f7f7d3908aa gcc-4.8-dynamic-linker.patch
2c6cb49bb9bfd8b6e690222e66ccc901 boehem-gc-uclibc.patch
-2e2b787bb988d9007c9f7ce42178dfe6 gcc-pure64.patch
-c94014ece84407a36d239417a2bad25d gcc-go.patch
-aa98f3b0db9e5d342792cad4e197ccd9 pr45078.patch"
-sha256sums="2f7c37eb4fc14422ff2358a9ef59c974a75ab41204ef0e49fc34ab1d8981a9c3 gcc-4.7.3.tar.bz2
-26aee7449cd3cd642065a0860d723dbb8062066ad87a398241f61210c68513d9 gcc-4.7.1-piepatches-v0.5.3.tar.bz2
+2e2b787bb988d9007c9f7ce42178dfe6 gcc-pure64.patch"
+sha256sums="545b44be3ad9f2c4e90e6880f5c9d4f0a8f0e5f67e1ffb0d45da9fa01bb05813 gcc-4.8.1.tar.bz2
+4aa0ab0f114b0ff8af5d0c19c18930e3fcd5e5b0956f56ca24e58e5a243964b1 gcc-4.8.1-piepatches-v0.5.6.tar.bz2
f6c7cb99beead66dd4d06f7004c5731a9360330cbe878ce79792c618e008eed2 gcc-4.4.3-specs-0.2.0.tar.bz2
98fd128f1d374d9e42fd9d4836bdd249c6d511ebc6c0df17fbc1b9df96c3d781 ecj-latest.jar
-719e2db2e0adcfd6c0bf3ee3712a962f5ec9dc8ee475861a9d7ee5da25a41a41 11_all_default-warn-format-security.patch
-f3d3a925e447da0e4fe477e4e3452f7ab45dffcf80acc68ba466efaae7aea8e1 12_all_default-warn-trampolines.patch
-f43fd9c30a6cf80305cf4be84921a943fd7a68154a450d1577576c57b7f2deb7 15_all_libgomp-Werror.patch
-4adf7ae1af31065e5b867ade3337fdaf0122ab0649a1fcaa4daf41f4ad06ca5d 16_all_libgo-Werror-pr53679.patch
-afa6b519d1e4351f27d0433748d70c9f7d7766bb54ba64283346cee7baffbdcd 29_all_arm_armv4t-default.patch
-8ed840574cfd92be21eaff4080f203c1ca117062a6da609753c357ab47f6c5f4 49_all_gcc-4.7-x86-libitm-pr52695.patch
+ce7774aa13be5da274220258772ccbdd6f54abdad97a3798ba282865c809f042 12_all_default-warn-trampolines.patch
+8b1450d5a7756af2b890588005690785a663601e2b1533671b609aa8cce0f718 15_all_libgfortran-Werror.patch
+1f106fe03cede7c697bde7d81732e0d3bb2c7197e4967789182a5fd8db532900 16_all_libgomp-Werror.patch
+cead5b092ab4881e8b830d51c0037a8fb149bab632e7661aa505ba574295e0e4 48_all_x86_pr53113_libitm-avx.patch
+38f7c0841d99c6dd3610cd5618b68dd6579713c018eaed856217fc4263bcf6a6 50_all_libiberty-asprintf.patch
da6bbb5dc654d5e1df8ecae5c9ebb56265426c405931f14f5878248b8c79f78d 51_all_libiberty-pic.patch
-830028c0d08f43a0f5ae1f60c20256f1cad6bdae95c05ac901a10bf5a7406899 67_all_gcc-poison-system-directories.patch
-ce041ae09033d8d170a942b30f26d85ef720bf846c90963b39083c2963334c82 74_all_gcc47_cloog-dl.patch
+8ba9dec0ecc2620c8ab1dfbeb0708dd4c29021e57d2e0ea23720108b1db3462e 67_all_gcc-poison-system-directories.patch
+7d129093a6682418da9313611a90e3052855d8af4505d401f7b8b6a64e8f7b17 74_all_gcc48_cloog-dl.patch
64b01f29fb853fee5ecda998b66eeaa7ec86ff1fc3b21432bfd69eb543c93e6a gcc-spec-env.patch
-7ef3c4804ea16c2da10860931349251a6ad2cabc57d77029a8d55cd6de89a10e gcc-4.7.3-musl.patch
-163ae7e199ba9751744794c82cbb927bd87d87c89c6a2b6f39fb4a322a1b90cf libgcc-backports.patch
+8b85ebc6603a1b3488e1eb800fdb00168515ae154006398a1a08af57c1d3b5b5 gcc-4.8-musl.patch
1975189156d70f5428cb7f1516533965d1c8734f3009fc89a9b8e289b72326f1 libgcc-always-build-gcceh.a.patch
78e75cb378bdfe870c98ab3cffef37f54be729d3912979191f27ca00651ad6c4 pt_gnu_eh_frame.patch
53184f842477569973c232dac7c85e71b0018cbe5c4962f95dd9e0273f42083e uclibc-getipinfo.patch
-633b46b3b433550a1ad8f3150904eec0a5fee5f3a284d38dc0b7013f45505b96 gcc-4.7-dynamic-linker.patch
89207a8b62137a857ee2c43499d6b5247d37b530d1338844dbb330a6846b2ad2 gcc-4.6-pr32219.patch
+f3863b997acf8fdf5ad1d3626b41a8a0670b896505e9b7afb517916c7599fb1c gcc-4.8-dynamic-linker.patch
02751ccf223dcfc898c0ce2214cd0859d275e90b742f1a66e38db5c50f94b38c boehem-gc-uclibc.patch
-f5473c6aea96d5137defd68898ba31042944a3f3ed26c05b964a40bd876c6f47 gcc-pure64.patch
-e6b57e7c7d860550a4f7befa3e622024ba077a5906e6f2fd104b33fd47921be0 gcc-go.patch
-af214cc21f5c4de5f222b049d8e27238a951f7b6262d2767c03b10087c362788 pr45078.patch"
-sha512sums="5671a2dd3b6ac0d23f305cb11a796aebd823c1462b873136b412e660966143f4e07439bd8926c1443b78442beb6ae370ef91d819ec615920294875b722b7b0bd gcc-4.7.3.tar.bz2
-47e16c41ec6678f9960bd39b8f7f01a0a956ae112584c3aa8b7fa5107eef1b598eba191d5199280131399ff096a1b0d14c9b5799cdfee837451e48a3405b2374 gcc-4.7.1-piepatches-v0.5.3.tar.bz2
+f5473c6aea96d5137defd68898ba31042944a3f3ed26c05b964a40bd876c6f47 gcc-pure64.patch"
+sha512sums="1becc874aad77a469069b6d9da4158aae9e013e24afa9364fe4feff9a5094d0673ee7694b3840e892c860f73a56b3ece6174338a8214438c42b9f86dd6c35ea7 gcc-4.8.1.tar.bz2
+274e16ef5136348415898d4e5a3bc71763078de8ae7c18645e8b07f54d705609b08c0efadbdb55117fdfb5f6490529b446d09def448174c2747372829d029a9d gcc-4.8.1-piepatches-v0.5.6.tar.bz2
779ecb0a064d2138b54569c8ae501975b8a6b72e5a3acbf8597619a8db77ee42ef9b0e62608d5192a15e4393e7dfc009bb50b994782236faa744b2c46b5fe517 gcc-4.4.3-specs-0.2.0.tar.bz2
d4e1bf7538ace56e3d69fa91da5bbd16c272923b4de0a9d8dee23ea2b75f9f38c603de72fc4061df49285c450b63f3df211cee5270e9fffc5447445d1a9c9e4e ecj-latest.jar
-4770792001da2e1e0da16ad12e48a829d56c5622d001b055dbc3d459c28ba55b544ad8e5819b911011ada68d53fa0f6cb6f6621ea988755e449d0b65648c7976 11_all_default-warn-format-security.patch
-5d591ed6d0a04e9c343cd80e3c2f89ad724523e7215c822f23f28e536b7bb1307bac7816135c34e7d2a7aed8177de762776e2d4ae840c2f34dfcbd7b95eeb72e 12_all_default-warn-trampolines.patch
-f8dfe0b6907fab10009ab009f7b23df80a2b900c02da672f2d795e7609ec344d6ae66e521518d5d77c4390797090d4825f39b73c42e3632ac7b3f38f22c18e1a 15_all_libgomp-Werror.patch
-0d1f414b46a686736833f6af48d0026f759b4f68a39da0d87d5845a78d33b57028765bd962d43615245613c36f6854eb0ca741d8cfa142bb3d918e607808bb5a 16_all_libgo-Werror-pr53679.patch
-3a9c319481ca79ad76d80312040d8cc4c14717b36c98de8b2a70444acfce00ca38f08dedeef951c363c719901fee0d4c3f0ad2ec48d2598a8f79cf4a46b5d14b 29_all_arm_armv4t-default.patch
-4c8e8968e0d549da5871cc01f456b7d91055b3c6ef1f7c15ed3024402a64c7ecb9f2b0609ce9e7ed09a120431858c1f0e2bc2fa14a316a11824aca6f3604fce1 49_all_gcc-4.7-x86-libitm-pr52695.patch
+5069e4b741488913a646a9b5d871af8e7f7a606158ea09305d0ddd46257c5b659770627bc2ca3abeaae039da1717b3ba6c9cd90554a441da74eb4ecf24c13074 12_all_default-warn-trampolines.patch
+c18a99b7303a734fe4dca9d4e90e21d18e5bd71c7d91e1a26c86b1354c73f567590a875941bfe64ce59f0393023b91c606c96b30885c55b98a790c3ab0c84ca7 15_all_libgfortran-Werror.patch
+433404fd9bfa172d69fff4a5505e8648cbbbf5f052d2b4235608ff7af0c4063d557d25d80c85c5bd0d1e1ed64b568e7bbc0cdbce11cc74db4c0189af3a01634a 16_all_libgomp-Werror.patch
+ff16f259fff8d78230593eee8641eab5a72c5c517c6ac5f09597edbc624d964b33f185a0dd5772d6029f757a5edb66431b3eab77dac71e76a0ef155bb7443d2c 48_all_x86_pr53113_libitm-avx.patch
+c6c314a2d24531b4286436dec7189f83e443c4cfa9b88339a4c324c2d40812d766ed44dcfd4a0c3b67695bb76969a4d8a9784ff95876ceba23def305ef8a48f8 50_all_libiberty-asprintf.patch
0a0bc72b9366158f5d23fff1928e756fdd212433bac6ab1f00d632f241382820db8db5d475ddf11ea020eaf7e2e71b12fb9b1c3c870cf84adf6c2b16f15aabca 51_all_libiberty-pic.patch
-77d9383361bbc6701b34ba35356a09b97ebd45d8595c79bac9e3b8277def83caef47418ed813c2d138f2016779dce511c6e68155787c2462ab8ca1479c46c967 67_all_gcc-poison-system-directories.patch
-739fd5e05dbab5090802eb447c24d5f03ed0b581f76acd8d69729c1bbfab9f92a41491eb313415f0f0e80cd80961eb8ea420170efbd705136d682ba71cff87da 74_all_gcc47_cloog-dl.patch
+47331f034e44aea16f1cbb67d9176f8ce8832d6cb7c13a8d3b438efaa3269cee177bd1dd8a9f353ac19cc6b3db436a995de9ae66d493d2772188630b09fbff51 67_all_gcc-poison-system-directories.patch
+6e19b2dc43cff03a6b3ca4e18f76dcfd5b0682c15aac493e94f5c679f5b0a585fbaa09345d200182c0f47541ced2d714b78d65da130bc7d2e9f810362e07037d 74_all_gcc48_cloog-dl.patch
ce9c1f923e2c6d17347ec2d3d8482351a9644194b2753627389294d43bb4f11b9c2ef41eda1b46ad83d09901a0bedebd5b6b8a57a198646030ab61e8d2d8cb48 gcc-spec-env.patch
-f8988835c996c6cc4bb60096aaa9f712e835957ff745db66d78adf65ad09afa3a828ff7767ad11410d51b4b52d1c03bfdc96e3607a789f01faec11ec504f89dd gcc-4.7.3-musl.patch
-719642ba2bc501e270bf09ae1a1b4151510b68006fcd8e8655a7c30d1e678fe134e7de0fb2a2366a9c6a13835a499a82b36b544c203853e556f16b0a2ea2ab59 libgcc-backports.patch
+86ffdd09993004bc093233fcb1ea77d3a17965ccc0e09c59276b8f9e8ad79ae90eb6c6a3942472c638e9de31d2c83a25a46eee0903877033b46447e9f90258f8 gcc-4.8-musl.patch
d08d7ead2de0429e5c9055d5b029ec2be9a8c821d22cecaf9b51f633652c493333f98963d9267fa2fa63850c50ae5eefd5f59e5910ec10d20044dac082182a8b libgcc-always-build-gcceh.a.patch
8464197f01d107872dfa6b47e86e95ae8d75c053527bafbdb7a86bcc7aff4bc5b20a8ec40d6e48d1ad455b0187a3cba9db337cff6c0a6245507c4533e4832d99 pt_gnu_eh_frame.patch
e3edf75df1f27af8771bd263e1bd607f6207c4eb5b2a5e11032577deba43ea201825e3b5008a720105f24e49d2821dd77a61c7ceba7ed91b3621c0dbd9292fc6 uclibc-getipinfo.patch
-91332bea084d13d165bac8abe826c3656f77c8872898a4d86b7e258dbf5af85d1b25b7e51f262f4b19b11ca89bf5d77ab0ac5554068419f15bf017a37a9d1822 gcc-4.7-dynamic-linker.patch
9fc5e32f2573ae67b6cf22119d636d10a47c42718635bceff7d457a93a3f664ae1ed10e154f70964ba2d26b0de04f879a8c05de6411112760d40433373dd0a80 gcc-4.6-pr32219.patch
+db84b6582950378116723116be4f277881f7bdd05add216c58c2b86c0fb3a70abeb7798507a74a64b9b949d5b311167bd4df84a048d2d2d32f5836ea1d34c42e gcc-4.8-dynamic-linker.patch
e1d6a450dfb40b134ad7f759c4c10174d2490b0093fe47cb33479245f26a3a8c54ebcf6255943c0ccfcb5095600d1c05e530baeed35609c8ffe75caac8e57c49 boehem-gc-uclibc.patch
-4a5aeff0399782c752e6e3f2f48d984b2056dfb5d229b23a24eee1562d241339989b2203f139821cfc03c9b25c9bd7da6ccbbdc7a09d242e4de7f0d606c6f63c gcc-pure64.patch
-1a09175bbb9c457893d4e921aa1bfe81fa7d657255d76ddb45f2f6db9232fb74bbc5fbac74d29d972ef74ab01df6a1a70e9ce83092e434a2d7c6b4155ea177b8 gcc-go.patch
-8822d2d7e32b1158169f58e34372c06fa122e2dfbd33ad5b7bd6fc13d57eedc592ba290381134bb078a6cca7a52109289389d0a52b72399903bcfc9584704e45 pr45078.patch"
+4a5aeff0399782c752e6e3f2f48d984b2056dfb5d229b23a24eee1562d241339989b2203f139821cfc03c9b25c9bd7da6ccbbdc7a09d242e4de7f0d606c6f63c gcc-pure64.patch"
diff --git a/main/gcc/gcc-4.7-dynamic-linker.patch b/main/gcc/gcc-4.8-dynamic-linker.patch
index 7fe57a49ff..d49b85b36e 100644
--- a/main/gcc/gcc-4.7-dynamic-linker.patch
+++ b/main/gcc/gcc-4.8-dynamic-linker.patch
@@ -1,8 +1,30 @@
+diff --git a/gcc/Makefile.in b/gcc/Makefile.in
+index 4b04d64..2fc3b95 100644
+--- a/gcc/Makefile.in
++++ b/gcc/Makefile.in
+@@ -987,7 +987,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 = $(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) $(CFLAGS-$@) $(CXXFLAGS) $(INTERNAL_CFLAGS) \
+@@ -2030,6 +2030,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/linux-elf.h b/gcc/config/alpha/linux-elf.h
-index f578ecb..ff4d2ce 100644
+index 84e0596..59b9e80 100644
--- a/gcc/config/alpha/linux-elf.h
+++ b/gcc/config/alpha/linux-elf.h
-@@ -24,8 +24,8 @@ along with GCC; see the file COPYING3. If not see
+@@ -23,8 +23,8 @@ along with GCC; see the file COPYING3. If not see
#define EXTRA_SPECS \
{ "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
@@ -14,23 +36,39 @@ index f578ecb..ff4d2ce 100644
#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
#elif DEFAULT_LIBC == LIBC_GLIBC
diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
-index 80bd825..64b4595 100644
+index 4a425c8..0ec2653 100644
--- a/gcc/config/arm/linux-eabi.h
+++ b/gcc/config/arm/linux-eabi.h
-@@ -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. */
+@@ -59,23 +59,8 @@
+ #undef SUBTARGET_EXTRA_LINK_SPEC
+ #define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION
+
+-/* GNU/Linux on ARM currently supports three dynamic linkers:
+- - ld-linux.so.2 - for the legacy ABI
+- - ld-linux.so.3 - for the EABI-derived soft-float ABI
+- - ld-linux-armhf.so.3 - for the EABI-derived hard-float ABI.
+- All the dynamic linkers live in /lib.
+- We default to soft-float, but this can be overridden by changing both
+- GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI. */
+-
#undef GLIBC_DYNAMIC_LINKER
--#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.3"
+-#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3"
+-#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3"
+-#define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT
+-
+-#define GLIBC_DYNAMIC_LINKER \
+- "%{mfloat-abi=hard:" GLIBC_DYNAMIC_LINKER_HARD_FLOAT "} \
+- %{mfloat-abi=soft*:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "} \
+- %{!mfloat-abi=*:" GLIBC_DYNAMIC_LINKER_DEFAULT "}"
+#define GLIBC_DYNAMIC_LINKER DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
/* 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 270e12b..dd613ef 100644
+index 488efa4..23c8efb 100644
--- a/gcc/config/arm/linux-elf.h
+++ b/gcc/config/arm/linux-elf.h
-@@ -59,7 +59,7 @@
+@@ -57,7 +57,7 @@
#define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
@@ -40,7 +78,7 @@ index 270e12b..dd613ef 100644
#define LINUX_TARGET_LINK_SPEC "%{h*} \
%{static:-Bstatic} \
diff --git a/gcc/config/bfin/linux.h b/gcc/config/bfin/linux.h
-index f91cf17..263351a 100644
+index 2cd7c51..b0c8531 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
@@ -53,10 +91,10 @@ index f91cf17..263351a 100644
#undef TARGET_SUPPORTS_SYNC_CALLS
diff --git a/gcc/config/cris/linux.h b/gcc/config/cris/linux.h
-index df10721..35f6d77 100644
+index 8d0941c..4ea98a4 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
+@@ -102,7 +102,7 @@ along with GCC; see the file COPYING3. If not see
#undef CRIS_DEFAULT_CPU_VERSION
#define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
@@ -66,10 +104,10 @@ index df10721..35f6d77 100644
#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 770a3d1..bd02fd6 100644
+index e46449c..17fae77 100644
--- a/gcc/config/freebsd-spec.h
+++ b/gcc/config/freebsd-spec.h
-@@ -129,9 +129,9 @@ is built with the --enable-threads configure-time option.} \
+@@ -128,9 +128,9 @@ is built with the --enable-threads configure-time option.} \
#endif
#if FBSD_MAJOR < 6
@@ -82,10 +120,10 @@ index 770a3d1..bd02fd6 100644
/* 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 9847712..089afdf 100644
+index 2c0d35c..86f653b 100644
--- a/gcc/config/frv/linux.h
+++ b/gcc/config/frv/linux.h
-@@ -35,7 +35,7 @@
+@@ -34,7 +34,7 @@
#define ENDFILE_SPEC \
"%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
@@ -95,20 +133,20 @@ index 9847712..089afdf 100644
#undef LINK_SPEC
#define LINK_SPEC "\
diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h
-index 73681fe..8c51d30 100644
+index 3c95ee0..89cc00c 100644
--- a/gcc/config/i386/linux.h
+++ b/gcc/config/i386/linux.h
-@@ -21,4 +21,4 @@ along with GCC; see the file COPYING3. If not see
+@@ -20,4 +20,4 @@ along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#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
diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h
-index 5b0a212..185c911 100644
+index b793e08..e7c41b5 100644
--- a/gcc/config/i386/linux64.h
+++ b/gcc/config/i386/linux64.h
-@@ -28,6 +28,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+@@ -27,6 +27,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"
@@ -119,10 +157,10 @@ index 5b0a212..185c911 100644
#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 00b0ddb..de6bb1e 100644
+index bdd6248..3558443 100644
--- a/gcc/config/ia64/linux.h
+++ b/gcc/config/ia64/linux.h
-@@ -56,7 +56,7 @@ do { \
+@@ -55,7 +55,7 @@ do { \
/* Define this for shared library support because it isn't in the main
linux.h file. */
@@ -132,10 +170,10 @@ index 00b0ddb..de6bb1e 100644
#undef LINK_SPEC
#define LINK_SPEC "\
diff --git a/gcc/config/knetbsd-gnu.h b/gcc/config/knetbsd-gnu.h
-index 30fa99a..5059b85 100644
+index 75d9e11..bf8409d 100644
--- a/gcc/config/knetbsd-gnu.h
+++ b/gcc/config/knetbsd-gnu.h
-@@ -33,4 +33,5 @@ along with GCC; see the file COPYING3. If not see
+@@ -32,4 +32,5 @@ along with GCC; see the file COPYING3. If not see
#undef GNU_USER_DYNAMIC_LINKER
@@ -143,10 +181,10 @@ index 30fa99a..5059b85 100644
+#define GLIBC_DYNAMIC_LINKER DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
+
diff --git a/gcc/config/linux.h b/gcc/config/linux.h
-index dbbeea5..0147ece 100644
+index 2be1079..3db010b 100644
--- a/gcc/config/linux.h
+++ b/gcc/config/linux.h
-@@ -74,10 +74,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+@@ -73,10 +73,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. */
@@ -171,10 +209,10 @@ index dbbeea5..0147ece 100644
+#define STANDARD_INCLUDE_DIR 0
+#endif
diff --git a/gcc/config/m32r/linux.h b/gcc/config/m32r/linux.h
-index bc7802b..6ff030f 100644
+index a6dff08..54fe8e2 100644
--- a/gcc/config/m32r/linux.h
+++ b/gcc/config/m32r/linux.h
-@@ -38,7 +38,7 @@
+@@ -37,7 +37,7 @@
When the -shared link option is used a final link is not being
done. */
@@ -184,10 +222,10 @@ index bc7802b..6ff030f 100644
#undef LINK_SPEC
#if TARGET_LITTLE_ENDIAN
diff --git a/gcc/config/m68k/linux.h b/gcc/config/m68k/linux.h
-index 325faf7..01bb765 100644
+index 6450f3b..09f9d70 100644
--- a/gcc/config/m68k/linux.h
+++ b/gcc/config/m68k/linux.h
-@@ -72,7 +72,7 @@ along with GCC; see the file COPYING3. If not see
+@@ -71,7 +71,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. */
@@ -197,10 +235,10 @@ index 325faf7..01bb765 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 bce9c17..46a2b0f 100644
+index 9b4c68d..5eab217 100644
--- a/gcc/config/mips/linux.h
+++ b/gcc/config/mips/linux.h
-@@ -18,4 +18,5 @@ You should have received a copy of the GNU General Public License
+@@ -17,4 +17,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/>. */
@@ -208,10 +246,10 @@ index bce9c17..46a2b0f 100644
+#define GLIBC_DYNAMIC_LINKER DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
+
diff --git a/gcc/config/mips/linux64.h b/gcc/config/mips/linux64.h
-index 6e92719..736aa6d 100644
+index dbba47a..d320d82 100644
--- a/gcc/config/mips/linux64.h
+++ b/gcc/config/mips/linux64.h
-@@ -23,11 +23,11 @@ along with GCC; see the file COPYING3. If not see
+@@ -22,11 +22,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"
@@ -229,10 +267,10 @@ index 6e92719..736aa6d 100644
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 d63b95a..93c54b1 100644
+index 16d3047..e03d463 100644
--- a/gcc/config/mn10300/linux.h
+++ b/gcc/config/mn10300/linux.h
-@@ -33,7 +33,7 @@
+@@ -32,7 +32,7 @@
#undef ASM_SPEC
#define ASM_SPEC ""
@@ -242,10 +280,10 @@ index d63b95a..93c54b1 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 7c516eb..687264e 100644
+index dc6f67f..7d5d290 100644
--- a/gcc/config/rs6000/linux64.h
+++ b/gcc/config/rs6000/linux64.h
-@@ -358,10 +358,10 @@ extern int dot_symbols;
+@@ -360,10 +360,10 @@ extern int dot_symbols;
#undef LINK_OS_DEFAULT_SPEC
#define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
@@ -261,10 +299,10 @@ index 7c516eb..687264e 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 e5385ec..72df4ac 100644
+index 3b4966a..46df5f6 100644
--- a/gcc/config/s390/linux.h
+++ b/gcc/config/s390/linux.h
-@@ -61,8 +61,8 @@ along with GCC; see the file COPYING3. If not see
+@@ -60,8 +60,8 @@ along with GCC; see the file COPYING3. If not see
#define MULTILIB_DEFAULTS { "m31" }
#endif
@@ -276,10 +314,10 @@ index e5385ec..72df4ac 100644
#undef LINK_SPEC
#define LINK_SPEC \
diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h
-index a5c2734..9eff3c4 100644
+index 9e8f32d..ad31782 100644
--- a/gcc/config/sh/linux.h
+++ b/gcc/config/sh/linux.h
-@@ -45,7 +45,7 @@ along with GCC; see the file COPYING3. If not see
+@@ -43,7 +43,7 @@ along with GCC; see the file COPYING3. If not see
#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
@@ -289,10 +327,10 @@ index a5c2734..9eff3c4 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 60dc869..9930e21 100644
+index 49283d3..d068de6 100644
--- a/gcc/config/sparc/linux.h
+++ b/gcc/config/sparc/linux.h
-@@ -84,7 +84,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
+@@ -83,7 +83,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. */
@@ -300,12 +338,12 @@ index 60dc869..9930e21 100644
+#define GLIBC_DYNAMIC_LINKER DYNAMIC_LINKER_PREFIX "/" DYNAMIC_LINKER
#undef LINK_SPEC
- #define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
+ #define LINK_SPEC "-m elf32_sparc %{shared:-shared} \
diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h
-index 14966b9..c134401 100644
+index 7d48e96..07e4112 100644
--- a/gcc/config/sparc/linux64.h
+++ b/gcc/config/sparc/linux64.h
-@@ -93,8 +93,8 @@ along with GCC; see the file COPYING3. If not see
+@@ -92,8 +92,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. */
@@ -317,10 +355,10 @@ index 14966b9..c134401 100644
#ifdef SPARC_BI_ARCH
diff --git a/gcc/config/xtensa/linux.h b/gcc/config/xtensa/linux.h
-index f5caeb7..c9274e4 100644
+index 10e22a4..52fa40b 100644
--- a/gcc/config/xtensa/linux.h
+++ b/gcc/config/xtensa/linux.h
-@@ -45,7 +45,7 @@ along with GCC; see the file COPYING3. If not see
+@@ -44,7 +44,7 @@ along with GCC; see the file COPYING3. If not see
%{mlongcalls:--longcalls} \
%{mno-longcalls:--no-longcalls}"
@@ -330,7 +368,7 @@ index f5caeb7..c9274e4 100644
#undef LINK_SPEC
#define LINK_SPEC \
diff --git a/gcc/configure b/gcc/configure
-index 3e9152a..4e1fdd3 100755
+index feb9a5e..a020d8f 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -755,6 +755,9 @@ AWK
@@ -343,26 +381,25 @@ index 3e9152a..4e1fdd3 100755
PKGVERSION
CONFIGURE_SPECS
CROSS_SYSTEM_HEADER_DIR
-@@ -1669,6 +1672,18 @@ Optional Packages:
- --with-gc={page,zone} choose the garbage collection mechanism to use with
+@@ -1673,6 +1676,17 @@ Optional Packages:
+ 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"
++ "ld-linux.so.2"
+ --with-dynamic-linker-prefix=PATH
+ specifies path to dynamic linker.
+ example: "/lib/ld-linux.so.2", where this defines
-+ "/lib"
++ "/lib"
+ --with-nostdinc build gcc to ignore standard include directories.
+ You will have to use --with-local-prefix with this
-+ option.
-+
++ option.
--with-linker-hash-style={sysv,gnu,both}
specify the linker hash style
-@@ -6378,6 +6393,47 @@ fi
+@@ -6384,6 +6398,47 @@ fi
@@ -410,23 +447,3 @@ index 3e9152a..4e1fdd3 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-4.7.3-musl.patch b/main/gcc/gcc-4.8-musl.patch
index 75fb4efabd..4c32a3e589 100644
--- a/main/gcc/gcc-4.7.3-musl.patch
+++ b/main/gcc/gcc-4.8-musl.patch
@@ -1,14 +1,14 @@
+11b7c7e47a01 tip
# HG changeset patch
-# Parent 53f3e21a7d14d0514ec7cb9ffb67b24dcf1f9fc9
+# Parent 6b1b8174ce29396d7dbd482296f43eba38948222
Support for arm-linux-musl.
-
-diff -r 53f3e21a7d14 -r 0a4e297edad6 gcc/config/arm/linux-eabi.h
---- a/gcc/config/arm/linux-eabi.h Wed Nov 21 21:21:21 2012 -0500
-+++ b/gcc/config/arm/linux-eabi.h Wed Nov 21 21:21:54 2012 -0500
-@@ -64,6 +64,10 @@
- #undef GLIBC_DYNAMIC_LINKER
- #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.3"
+diff -r 6b1b8174ce29 gcc/config/arm/linux-eabi.h
+--- a/gcc/config/arm/linux-eabi.h Fri Mar 29 16:41:20 2013 -0400
++++ b/gcc/config/arm/linux-eabi.h Fri Mar 29 16:41:23 2013 -0400
+@@ -77,6 +77,10 @@
+ %{mfloat-abi=soft*:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "} \
+ %{!mfloat-abi=*:" GLIBC_DYNAMIC_LINKER_DEFAULT "}"
+/* musl has no "classic" (i.e. broken) mode */
+#undef MUSL_DYNAMIC_LINKER
@@ -17,9 +17,9 @@ diff -r 53f3e21a7d14 -r 0a4e297edad6 gcc/config/arm/linux-eabi.h
/* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
use the GNU/Linux version, not the generic BPABI version. */
#undef LINK_SPEC
-diff -r 53f3e21a7d14 -r 0a4e297edad6 libitm/config/arm/hwcap.cc
---- a/libitm/config/arm/hwcap.cc Wed Nov 21 21:21:21 2012 -0500
-+++ b/libitm/config/arm/hwcap.cc Wed Nov 21 21:21:54 2012 -0500
+diff -r 6b1b8174ce29 libitm/config/arm/hwcap.cc
+--- a/libitm/config/arm/hwcap.cc Fri Mar 29 16:41:20 2013 -0400
++++ b/libitm/config/arm/hwcap.cc Fri Mar 29 16:41:23 2013 -0400
@@ -40,7 +40,11 @@
#ifdef __linux__
@@ -33,14 +33,13 @@ diff -r 53f3e21a7d14 -r 0a4e297edad6 libitm/config/arm/hwcap.cc
static void __attribute__((constructor))
# HG changeset patch
-# Parent 193f80e01b026d8de7f53d467f2c59cd0b7927dc
+# Parent 2b29df135cf04fe23c38301f6d0fc5796366aecf
Adding -mmusl as a musl libc specifier, and the necessary hacks for it to know how to find musl's dynamic linker.
-
-diff -r 193f80e01b02 -r 45cd88d4fb7b gcc/config.gcc
---- a/gcc/config.gcc Wed Nov 21 21:17:38 2012 -0500
-+++ b/gcc/config.gcc Wed Nov 21 21:19:19 2012 -0500
-@@ -522,7 +522,7 @@
+diff -r 2b29df135cf0 gcc/config.gcc
+--- a/gcc/config.gcc Fri Mar 29 16:41:11 2013 -0400
++++ b/gcc/config.gcc Fri Mar 29 16:41:14 2013 -0400
+@@ -549,7 +549,7 @@
esac
# Common C libraries.
@@ -49,7 +48,7 @@ diff -r 193f80e01b02 -r 45cd88d4fb7b gcc/config.gcc
# Common parts for widely ported systems.
case ${target} in
-@@ -625,6 +625,9 @@
+@@ -652,6 +652,9 @@
*-*-*uclibc*)
tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
;;
@@ -59,10 +58,10 @@ diff -r 193f80e01b02 -r 45cd88d4fb7b gcc/config.gcc
*)
tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
;;
-diff -r 193f80e01b02 -r 45cd88d4fb7b gcc/config/linux.h
---- a/gcc/config/linux.h Wed Nov 21 21:17:38 2012 -0500
-+++ b/gcc/config/linux.h Wed Nov 21 21:19:19 2012 -0500
-@@ -33,10 +33,12 @@
+diff -r 2b29df135cf0 gcc/config/linux.h
+--- a/gcc/config/linux.h Fri Mar 29 16:41:11 2013 -0400
++++ b/gcc/config/linux.h Fri Mar 29 16:41:14 2013 -0400
+@@ -32,10 +32,12 @@
#define OPTION_GLIBC (DEFAULT_LIBC == LIBC_GLIBC)
#define OPTION_UCLIBC (DEFAULT_LIBC == LIBC_UCLIBC)
#define OPTION_BIONIC (DEFAULT_LIBC == LIBC_BIONIC)
@@ -75,7 +74,7 @@ diff -r 193f80e01b02 -r 45cd88d4fb7b gcc/config/linux.h
#endif
#define GNU_USER_TARGET_OS_CPP_BUILTINS() \
-@@ -54,18 +56,21 @@
+@@ -53,18 +55,21 @@
uClibc or Bionic is the default C library and whether
-muclibc or -mglibc or -mbionic has been passed to change the default. */
@@ -105,7 +104,7 @@ diff -r 193f80e01b02 -r 45cd88d4fb7b gcc/config/linux.h
#else
#error "Unsupported DEFAULT_LIBC"
#endif /* DEFAULT_LIBC */
-@@ -85,16 +90,16 @@
+@@ -84,16 +89,16 @@
#define GNU_USER_DYNAMIC_LINKER \
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \
@@ -126,9 +125,9 @@ diff -r 193f80e01b02 -r 45cd88d4fb7b gcc/config/linux.h
/* Determine whether the entire c99 runtime
is present in the runtime library. */
-diff -r 193f80e01b02 -r 45cd88d4fb7b gcc/config/linux.opt
---- a/gcc/config/linux.opt Wed Nov 21 21:17:38 2012 -0500
-+++ b/gcc/config/linux.opt Wed Nov 21 21:19:19 2012 -0500
+diff -r 2b29df135cf0 gcc/config/linux.opt
+--- a/gcc/config/linux.opt Fri Mar 29 16:41:11 2013 -0400
++++ b/gcc/config/linux.opt Fri Mar 29 16:41:14 2013 -0400
@@ -30,3 +30,7 @@
muclibc
Target Report RejectNegative Var(linux_libc,LIBC_UCLIBC) Negative(mbionic)
@@ -137,10 +136,10 @@ diff -r 193f80e01b02 -r 45cd88d4fb7b gcc/config/linux.opt
+mmusl
+Target Report RejectNegative Var(linux_libc,LIBC_MUSL) Negative(mglibc)
+Use musl C library
-diff -r 193f80e01b02 -r 45cd88d4fb7b gcc/ginclude/stddef.h
---- a/gcc/ginclude/stddef.h Wed Nov 21 21:17:38 2012 -0500
-+++ b/gcc/ginclude/stddef.h Wed Nov 21 21:19:19 2012 -0500
-@@ -184,6 +184,7 @@
+diff -r 2b29df135cf0 gcc/ginclude/stddef.h
+--- a/gcc/ginclude/stddef.h Fri Mar 29 16:41:11 2013 -0400
++++ b/gcc/ginclude/stddef.h Fri Mar 29 16:41:14 2013 -0400
+@@ -181,6 +181,7 @@
#ifndef _GCC_SIZE_T
#ifndef _SIZET_
#ifndef __size_t
@@ -148,7 +147,7 @@ diff -r 193f80e01b02 -r 45cd88d4fb7b gcc/ginclude/stddef.h
#define __size_t__ /* BeOS */
#define __SIZE_T__ /* Cray Unicos/Mk */
#define _SIZE_T
-@@ -200,6 +201,7 @@
+@@ -197,6 +198,7 @@
#define ___int_size_t_h
#define _GCC_SIZE_T
#define _SIZET_
@@ -156,7 +155,7 @@ diff -r 193f80e01b02 -r 45cd88d4fb7b gcc/ginclude/stddef.h
#if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \
|| defined(__FreeBSD_kernel__)
/* __size_t is a typedef on FreeBSD 5, must not trash it. */
-@@ -215,6 +217,7 @@
+@@ -214,6 +216,7 @@
typedef long ssize_t;
#endif /* __BEOS__ */
#endif /* !(defined (__GNUG__) && defined (size_t)) */
@@ -165,13 +164,12 @@ diff -r 193f80e01b02 -r 45cd88d4fb7b gcc/ginclude/stddef.h
#endif /* _SIZET_ */
#endif /* _GCC_SIZE_T */
# HG changeset patch
-# Parent 45cd88d4fb7b0e813578c296004eaab2c2d0bfb9
+# Parent 2b94537ce2496c88e7e797c617e5b95e8d7e4785
A fix for libgomp to correctly request a POSIX version for time support.
-
-diff -r 45cd88d4fb7b -r 0afd9d82498d libgomp/config/posix/time.c
---- a/libgomp/config/posix/time.c Wed Nov 21 21:19:19 2012 -0500
-+++ b/libgomp/config/posix/time.c Wed Nov 21 21:20:22 2012 -0500
+diff -r 2b94537ce249 libgomp/config/posix/time.c
+--- a/libgomp/config/posix/time.c Fri Mar 29 16:41:14 2013 -0400
++++ b/libgomp/config/posix/time.c Fri Mar 29 16:41:17 2013 -0400
@@ -28,6 +28,8 @@
The following implementation uses the most simple POSIX routines.
If present, POSIX 4 clocks should be used instead. */
@@ -182,14 +180,13 @@ diff -r 45cd88d4fb7b -r 0afd9d82498d libgomp/config/posix/time.c
#include <unistd.h>
#if TIME_WITH_SYS_TIME
# HG changeset patch
-# Parent 04a6a82b8e06669a42181c96381b4fbc3ffa008c
+# Parent f50bb54f331f73405131a30b4f353cfda1c70304
Use the generic implementation of libstdc++ primitives when we're on musl, not the glibc one.
-
-diff -r 04a6a82b8e06 -r 193f80e01b02 libstdc++-v3/configure.host
---- a/libstdc++-v3/configure.host Wed Nov 21 21:16:58 2012 -0500
-+++ b/libstdc++-v3/configure.host Wed Nov 21 21:17:38 2012 -0500
-@@ -243,6 +243,13 @@
+diff -r f50bb54f331f libstdc++-v3/configure.host
+--- a/libstdc++-v3/configure.host Fri Mar 29 16:38:52 2013 -0400
++++ b/libstdc++-v3/configure.host Fri Mar 29 16:41:10 2013 -0400
+@@ -264,6 +264,13 @@
os_include_dir="os/bsd/freebsd"
;;
gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)
@@ -203,7 +200,7 @@ diff -r 04a6a82b8e06 -r 193f80e01b02 libstdc++-v3/configure.host
if [ "$uclibc" = "yes" ]; then
os_include_dir="os/uclibc"
elif [ "$bionic" = "yes" ]; then
-@@ -251,6 +258,9 @@
+@@ -272,6 +279,9 @@
os_include_dir="os/gnu-linux"
fi
;;
@@ -214,42 +211,26 @@ diff -r 04a6a82b8e06 -r 193f80e01b02 libstdc++-v3/configure.host
os_include_dir="os/hpux"
;;
# HG changeset patch
-# Parent 800ec1c37f610df2bfe75333ed6ec6caa905d630
-Support (partial) for microblaze-linux-musl.
-
-diff -r 800ec1c37f61 gcc/config.gcc
---- a/gcc/config.gcc Thu Apr 11 13:23:51 2013 -0400
-+++ b/gcc/config.gcc Thu Apr 11 13:24:17 2013 -0400
-@@ -1733,6 +1733,7 @@
- tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
- c_target_objs="${c_target_objs} microblaze-c.o"
- cxx_target_objs="${cxx_target_objs} microblaze-c.o"
-+ tmake_file="${tmake_file} microblaze/t-microblaze"
- ;;
- microblaze*-*-rtems*)
- tm_file="${tm_file} dbxelf.h"
-# HG changeset patch
-# Parent 0a4e297edad6e46f4b66401b93b217aa3194af4e
+# Parent 62831d7bf931658019ba16092c48375177d014b1
Support for mips-linux-musl.
-
-diff -r 0a4e297edad6 -r 78025c74c5c1 gcc/config/mips/linux.h
---- a/gcc/config/mips/linux.h Wed Nov 21 21:21:54 2012 -0500
-+++ b/gcc/config/mips/linux.h Wed Nov 21 21:23:49 2012 -0500
-@@ -19,3 +19,5 @@
+diff -r 62831d7bf931 gcc/config/mips/linux.h
+--- a/gcc/config/mips/linux.h Fri Mar 29 16:41:23 2013 -0400
++++ b/gcc/config/mips/linux.h Fri Mar 29 16:41:25 2013 -0400
+@@ -18,3 +18,5 @@
<http://www.gnu.org/licenses/>. */
#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
+
+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-mips.so.1"
# HG changeset patch
-# Parent 78025c74c5c1705f16ce13f3645ecb86c10cc1c2
+# Parent 2ffe76b215fdb082cbbc262536077627757fa9bf
Support for powerpc-linux-musl.
-diff -r 78025c74c5c1 gcc/config.gcc
---- a/gcc/config.gcc Wed Nov 21 21:23:49 2012 -0500
-+++ b/gcc/config.gcc Wed Nov 21 21:45:58 2012 -0500
-@@ -2078,6 +2078,10 @@
+diff -r 2ffe76b215fd gcc/config.gcc
+--- a/gcc/config.gcc Fri Mar 29 16:41:26 2013 -0400
++++ b/gcc/config.gcc Fri Mar 29 16:41:28 2013 -0400
+@@ -2112,6 +2112,10 @@
powerpc*-*-linux*paired*)
tm_file="${tm_file} rs6000/750cl.h" ;;
esac
@@ -260,10 +241,10 @@ diff -r 78025c74c5c1 gcc/config.gcc
if test x${enable_secureplt} = xyes; then
tm_file="rs6000/secureplt.h ${tm_file}"
fi
-diff -r 78025c74c5c1 gcc/config/rs6000/linux64.h
---- a/gcc/config/rs6000/linux64.h Wed Nov 21 21:23:49 2012 -0500
-+++ b/gcc/config/rs6000/linux64.h Wed Nov 21 21:45:58 2012 -0500
-@@ -362,17 +362,21 @@
+diff -r 2ffe76b215fd gcc/config/rs6000/linux64.h
+--- a/gcc/config/rs6000/linux64.h Fri Mar 29 16:41:26 2013 -0400
++++ b/gcc/config/rs6000/linux64.h Fri Mar 29 16:41:28 2013 -0400
+@@ -364,17 +364,21 @@
#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld64.so.1"
#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
@@ -289,18 +270,18 @@ diff -r 78025c74c5c1 gcc/config/rs6000/linux64.h
#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
-diff -r 78025c74c5c1 gcc/config/rs6000/secureplt.h
---- a/gcc/config/rs6000/secureplt.h Wed Nov 21 21:23:49 2012 -0500
-+++ b/gcc/config/rs6000/secureplt.h Wed Nov 21 21:45:58 2012 -0500
+diff -r 2ffe76b215fd gcc/config/rs6000/secureplt.h
+--- a/gcc/config/rs6000/secureplt.h Fri Mar 29 16:41:26 2013 -0400
++++ b/gcc/config/rs6000/secureplt.h Fri Mar 29 16:41:28 2013 -0400
@@ -18,3 +18,4 @@
<http://www.gnu.org/licenses/>. */
#define CC1_SECURE_PLT_DEFAULT_SPEC "-msecure-plt"
+#define LINK_SECURE_PLT_DEFAULT_SPEC "--secure-plt"
-diff -r 78025c74c5c1 gcc/config/rs6000/sysv4.h
---- a/gcc/config/rs6000/sysv4.h Wed Nov 21 21:23:49 2012 -0500
-+++ b/gcc/config/rs6000/sysv4.h Wed Nov 21 21:45:58 2012 -0500
-@@ -566,6 +566,9 @@
+diff -r 2ffe76b215fd gcc/config/rs6000/sysv4.h
+--- a/gcc/config/rs6000/sysv4.h Fri Mar 29 16:41:26 2013 -0400
++++ b/gcc/config/rs6000/sysv4.h Fri Mar 29 16:41:28 2013 -0400
+@@ -551,6 +551,9 @@
#ifndef CC1_SECURE_PLT_DEFAULT_SPEC
#define CC1_SECURE_PLT_DEFAULT_SPEC ""
#endif
@@ -310,7 +291,7 @@ diff -r 78025c74c5c1 gcc/config/rs6000/sysv4.h
/* Pass -G xxx to the compiler and set correct endian mode. */
#define CC1_SPEC "%{G*} %(cc1_cpu) \
-@@ -626,7 +629,8 @@
+@@ -611,7 +614,8 @@
%{mlittle: --oformat elf32-powerpcle } %{mlittle-endian: --oformat elf32-powerpcle } \
%{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \
%{mcall-i960-old: --oformat elf32-powerpcle} \
@@ -320,7 +301,7 @@ diff -r 78025c74c5c1 gcc/config/rs6000/sysv4.h
/* Any specific OS flags. */
#define LINK_OS_SPEC "\
-@@ -804,15 +808,18 @@
+@@ -789,15 +793,18 @@
#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
@@ -342,7 +323,7 @@ diff -r 78025c74c5c1 gcc/config/rs6000/sysv4.h
#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
%{rdynamic:-export-dynamic} \
-@@ -938,6 +945,7 @@
+@@ -923,6 +930,7 @@
{ "cc1_endian_little", CC1_ENDIAN_LITTLE_SPEC }, \
{ "cc1_endian_default", CC1_ENDIAN_DEFAULT_SPEC }, \
{ "cc1_secure_plt_default", CC1_SECURE_PLT_DEFAULT_SPEC }, \
@@ -350,54 +331,33 @@ diff -r 78025c74c5c1 gcc/config/rs6000/sysv4.h
{ "cpp_os_ads", CPP_OS_ADS_SPEC }, \
{ "cpp_os_yellowknife", CPP_OS_YELLOWKNIFE_SPEC }, \
{ "cpp_os_mvme", CPP_OS_MVME_SPEC }, \
-diff -r 78025c74c5c1 libgcc/config/rs6000/linux-unwind.h
---- a/libgcc/config/rs6000/linux-unwind.h Wed Nov 21 21:23:49 2012 -0500
-+++ b/libgcc/config/rs6000/linux-unwind.h Wed Nov 21 21:45:58 2012 -0500
-@@ -176,6 +176,7 @@
- }
- #endif
-
-+#ifdef __GLIBC__
- /* Find an entry in the process auxiliary vector. The canonical way to
- test for VMX is to look at AT_HWCAP. */
+diff -r 2ffe76b215fd libgcc/config/rs6000/linux-unwind.h
+--- a/libgcc/config/rs6000/linux-unwind.h Fri Mar 29 16:41:26 2013 -0400
++++ b/libgcc/config/rs6000/linux-unwind.h Fri Mar 29 16:41:28 2013 -0400
+@@ -258,6 +258,7 @@
-@@ -207,6 +208,7 @@
- return auxp->a_val;
- return 0;
+ return _URC_NO_REASON;
}
+#endif
- /* Do code reading to identify a signal frame, and set the frame
- state data appropriately. See unwind-dw2.c for the structs. */
-@@ -253,7 +255,11 @@
+ #define MD_FROB_UPDATE_CONTEXT frob_update_context
- if (hwcap == 0)
- {
-+#ifdef __GLIBC__
- hwcap = ppc_linux_aux_vector (16);
-+#else
-+ hwcap = -1;
-+#endif
- /* These will already be set if we found AT_HWCAP. A nonzero
- value stops us looking again if for some reason we couldn't
- find AT_HWCAP. */
# HG changeset patch
-# Parent 0afd9d82498d2cd30aa78529ff25f211bdc0c3b9
+# Parent 3ea10cd626cb7abdfd56d3fe8d2c9ed58a82797b
Support for i386-linux-musl and x86_64-linux-musl.
-
-diff -r 0afd9d82498d -r 53f3e21a7d14 gcc/config/i386/linux.h
---- a/gcc/config/i386/linux.h Wed Nov 21 21:20:22 2012 -0500
-+++ b/gcc/config/i386/linux.h Wed Nov 21 21:21:21 2012 -0500
-@@ -22,3 +22,4 @@
+diff -r 3ea10cd626cb gcc/config/i386/linux.h
+--- a/gcc/config/i386/linux.h Fri Mar 29 16:41:17 2013 -0400
++++ b/gcc/config/i386/linux.h Fri Mar 29 16:41:20 2013 -0400
+@@ -21,3 +21,4 @@
#define GNU_USER_LINK_EMULATION "elf_i386"
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1"
-diff -r 0afd9d82498d -r 53f3e21a7d14 gcc/config/i386/linux64.h
---- a/gcc/config/i386/linux64.h Wed Nov 21 21:20:22 2012 -0500
-+++ b/gcc/config/i386/linux64.h Wed Nov 21 21:21:21 2012 -0500
-@@ -31,3 +31,7 @@
+diff -r 3ea10cd626cb gcc/config/i386/linux64.h
+--- a/gcc/config/i386/linux64.h Fri Mar 29 16:41:17 2013 -0400
++++ b/gcc/config/i386/linux64.h Fri Mar 29 16:41:20 2013 -0400
+@@ -30,3 +30,7 @@
#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2"
@@ -405,9 +365,9 @@ diff -r 0afd9d82498d -r 53f3e21a7d14 gcc/config/i386/linux64.h
+#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-i386.so.1"
+#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-x86_64.so.1"
+#define MUSL_DYNAMIC_LINKERX32 "/lib/ld-musl-x32.so.1"
-diff -r 0afd9d82498d -r 53f3e21a7d14 libitm/config/linux/x86/tls.h
---- a/libitm/config/linux/x86/tls.h Wed Nov 21 21:20:22 2012 -0500
-+++ b/libitm/config/linux/x86/tls.h Wed Nov 21 21:21:21 2012 -0500
+diff -r 3ea10cd626cb libitm/config/linux/x86/tls.h
+--- a/libitm/config/linux/x86/tls.h Fri Mar 29 16:41:17 2013 -0400
++++ b/libitm/config/linux/x86/tls.h Fri Mar 29 16:41:20 2013 -0400
@@ -25,16 +25,19 @@
#ifndef LIBITM_X86_TLS_H
#define LIBITM_X86_TLS_H 1
diff --git a/main/gcc/gcc-go.patch b/main/gcc/gcc-go.patch
deleted file mode 100644
index a882a5a38e..0000000000
--- a/main/gcc/gcc-go.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- gcc-4.6.1.orig/gcc/go/Make-lang.in
-+++ gcc-4.6.1/gcc/go/Make-lang.in
-@@ -63,7 +63,7 @@
- go/unsafe.o
-
- go1$(exeext): $(GO_OBJS) attribs.o $(BACKEND) $(LIBDEPS)
-- $(CXX) $(ALL_CXXFLAGS) $(LDFLAGS) -o $@ \
-+ $(CXX) $(ALL_CXXFLAGS) $(LDFLAGS) -fno-PIE -o $@ \
- $(GO_OBJS) attribs.o $(BACKEND) $(LIBS) $(BACKENDLIBS)
-
- # Documentation.
diff --git a/main/gcc/libgcc-backports.patch b/main/gcc/libgcc-backports.patch
deleted file mode 100644
index af556ed991..0000000000
--- a/main/gcc/libgcc-backports.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-# DP: libgcc backports from the trunk:
-# DP: - Always define USE_PT_GNU_EH_FRAME in crtstuff.c for glibc.
-# DP: - Build static libgcc with hidden visibility even with --disable-shared.
-
-libgcc/
-2012-08-19 Joseph Myers <joseph@codesourcery.com>
-
- * crtstuff.c (USE_PT_GNU_EH_FRAME): Define for systems using glibc
- even if inhibit_libc.
-
-2012-08-22 Joseph Myers <joseph@codesourcery.com>
-
- * Makefile.in (vis_hide, gen-hide-list): Do not make definitions
- depend on --enable-shared.
- ($(lib1asmfuncs-o)): Use %.vis files independent of
- --enable-shared.
- * static-object.mk ($(base)$(objext), $(base).vis)
- ($(base)_s$(objext)): Use same rules for visibility handling as in
- shared-object.mk.
-
-Index: b/libgcc/crtstuff.c
-===================================================================
---- a/libgcc/crtstuff.c
-+++ b/libgcc/crtstuff.c
-@@ -1,7 +1,7 @@
- /* Specialized bits of code needed to support construction and
- destruction of file-scope objects in C++ code.
- Copyright (C) 1991, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-- 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011
-+ 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011, 2012
- Free Software Foundation, Inc.
- Contributed by Ron Guilmette (rfg@monkeys.com).
-
-@@ -113,6 +113,20 @@
- # define USE_PT_GNU_EH_FRAME
- # endif
- #endif
-+
-+#if defined(OBJECT_FORMAT_ELF) \
-+ && !defined(OBJECT_FORMAT_FLAT) \
-+ && defined(HAVE_LD_EH_FRAME_HDR) \
-+ && !defined(CRTSTUFFT_O) \
-+ && defined(inhibit_libc) \
-+ && (defined(__GLIBC__) || defined(__gnu_linux__) || defined(__GNU__))
-+/* On systems using glibc, an inhibit_libc build of libgcc is only
-+ part of a bootstrap process. Build the same crt*.o as would be
-+ built with headers present, so that it is not necessary to build
-+ glibc more than once for the bootstrap to converge. */
-+# define USE_PT_GNU_EH_FRAME
-+#endif
-+
- #if defined(EH_FRAME_SECTION_NAME) && !defined(USE_PT_GNU_EH_FRAME)
- # define USE_EH_FRAME_REGISTRY
- #endif
-Index: b/libgcc/Makefile.in
-===================================================================
---- a/libgcc/Makefile.in
-+++ b/libgcc/Makefile.in
-@@ -362,6 +362,7 @@
- ifneq ($(LIBUNWIND),)
- install-libunwind = install-libunwind
- endif
-+endif
-
- # For -fvisibility=hidden. We need both a -fvisibility=hidden on
- # the command line, and a #define to prevent libgcc2.h etc from
-@@ -385,11 +386,8 @@
- gen-hide-list = echo > $@
- endif
-
--else
--# Not enable_shared.
-+ifneq ($(enable_shared),yes)
- iterator = $(srcdir)/empty.mk $(patsubst %,$(srcdir)/static-object.mk,$(iter-items))
--vis_hide =
--gen-hide-list = echo > \$@
- endif
-
- LIB2ADD += enable-execute-stack.c
-@@ -438,7 +436,6 @@
- $(LIB2_DIVMOD_FUNCS))
-
- # Build "libgcc1" (assembly) components.
--ifeq ($(enable_shared),yes)
-
- lib1asmfuncs-o = $(patsubst %,%$(objext),$(LIB1ASMFUNCS))
- $(lib1asmfuncs-o): %$(objext): $(srcdir)/config/$(LIB1ASMSRC) %.vis
-@@ -450,14 +447,9 @@
- lib1asmfuncs-s-o = $(patsubst %,%_s$(objext),$(LIB1ASMFUNCS))
- $(lib1asmfuncs-s-o): %_s$(objext): $(srcdir)/config/$(LIB1ASMSRC)
- $(gcc_s_compile) -DL$* -xassembler-with-cpp -c $<
--libgcc-s-objects += $(lib1asmfuncs-s-o)
--
--else
-+ifeq ($(enable_shared),yes)
-
--lib1asmfuncs-o = $(patsubst %,%$(objext),$(LIB1ASMFUNCS))
--$(lib1asmfuncs-o): %$(objext): $(srcdir)/config/$(LIB1ASMSRC)
-- $(gcc_compile) -DL$* -xassembler-with-cpp -c $<
--libgcc-objects += $(lib1asmfuncs-o)
-+libgcc-s-objects += $(lib1asmfuncs-s-o)
-
- endif
-
-Index: b/libgcc/static-object.mk
-===================================================================
---- a/libgcc/static-object.mk
-+++ b/libgcc/static-object.mk
-@@ -24,7 +24,13 @@
- endif
- endif
-
--$(base)$(objext): $o
-- $(gcc_compile) -c -xassembler-with-cpp $<
-+$(base)$(objext): $o $(base).vis
-+ $(gcc_compile) -c -xassembler-with-cpp -include $*.vis $<
-+
-+$(base).vis: $(base)_s$(objext)
-+ $(gen-hide-list)
-+
-+$(base)_s$(objext): $o
-+ $(gcc_s_compile) -c -xassembler-with-cpp $<
-
- endif
diff --git a/main/gcc/pr45078.patch b/main/gcc/pr45078.patch
deleted file mode 100644
index 759a2cf767..0000000000
--- a/main/gcc/pr45078.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-# DP: Proposed patch for PR plugin/45078
-
-2011-06-24 Matthias Klose <doko@ubuntu.com>
-
- PR plugin/45078
- * Makefile.in (PLUGIN_HEADERS): Add config/arm/arm-cores.def.
- (install-plugin): Install c-family headers into a c-family subdir.
- * config.gcc: Add vxworks-dummy.h to tm_file for arm, mips, sh and
- sparc targets.
-
-Index: b/gcc/Makefile.in
-===================================================================
---- a/gcc/Makefile.in
-+++ b/gcc/Makefile.in
-@@ -4547,6 +4547,7 @@
- $(C_PRAGMA_H) $(CPPLIB_H) $(FUNCTION_H) \
- cppdefault.h flags.h $(MD5_H) params.def params.h prefix.h tree-inline.h \
- gimple-pretty-print.h tree-pretty-print.h realmpfr.h \
-+ config/arm/arm-cores.def \
- $(IPA_PROP_H) $(RTL_H) $(TM_P_H) $(CFGLOOP_H) $(EMIT_RTL_H) version.h
-
- # generate the 'build fragment' b-header-vars
-Index: b/gcc/config.gcc
-===================================================================
---- a/gcc/config.gcc
-+++ b/gcc/config.gcc
-@@ -486,6 +486,9 @@
- fi
- tm_file="vxworks-dummy.h ${tm_file}"
- ;;
-+arm*-*-*|mips*-*-*|sh*-*-*|sparc*-*-*)
-+ tm_file="vxworks-dummy.h ${tm_file}"
-+ ;;
- esac
-
- # On a.out targets, we need to use collect2.