gcc: Add new patches.
This commit is contained in:
@@ -5,15 +5,15 @@
|
||||
_realname=gcc
|
||||
_mingw_suff=mingw-w64-${CARCH}
|
||||
pkgname=(
|
||||
"${_mingw_suff}-${_realname}"
|
||||
"${_mingw_suff}-${_realname}-libs"
|
||||
"${_mingw_suff}-${_realname}-libgfortran"
|
||||
"${_mingw_suff}-${_realname}-fortran"
|
||||
"${_mingw_suff}-${_realname}-ada"
|
||||
"${_mingw_suff}-${_realname}-objc"
|
||||
)
|
||||
"${_mingw_suff}-${_realname}"
|
||||
"${_mingw_suff}-${_realname}-libs"
|
||||
"${_mingw_suff}-${_realname}-libgfortran"
|
||||
"${_mingw_suff}-${_realname}-fortran"
|
||||
"${_mingw_suff}-${_realname}-ada"
|
||||
"${_mingw_suff}-${_realname}-objc"
|
||||
)
|
||||
pkgver=4.9.0
|
||||
pkgrel=3
|
||||
pkgrel=4
|
||||
pkgdesc="GCC for the MinGW-w64"
|
||||
arch=('any')
|
||||
url="http://gcc.gnu.org"
|
||||
@@ -25,26 +25,28 @@ makedepends=("${_mingw_suff}-${_realname}" 'lndir')
|
||||
optdepends=()
|
||||
options=('strip' '!debug' 'staticlibs' '!emptydirs') # '!buildflags'
|
||||
source=("ftp://gcc.gnu.org/pub/gcc/releases/${_realname}-${pkgver}/${_realname}-${pkgver}.tar.bz2"
|
||||
'gcc-4.9.0-ICE.patch'
|
||||
'gcc-4.8-libstdc++export.patch'
|
||||
'gcc-4.7-stdthreads.patch'
|
||||
'130-dont-escape-arguments-that-dont-need-it-in-pex-win32.c.patch'
|
||||
'140-fix-for-windows-not-minding-non-existent-parent-dirs.patch'
|
||||
'150-windows-lrealpath-no-force-lowercase-nor-backslash.patch'
|
||||
'160-mingw-dont-ignore-native-system-header-dir.patch'
|
||||
'170-0001-PR-ipa-60965.patch'
|
||||
'180-pr-57440.patch'
|
||||
'ktietz-libgomp.patch'
|
||||
'4.9.0-libatomic-cygwin.patch'
|
||||
'build-more-gnattools.mingw.patch'
|
||||
'libgomp-no-static.patch'
|
||||
'enable-libitm.mingw.patch'
|
||||
'enable-libsanitizer.mingw.patch'
|
||||
'enable-shared-gnat.mingw.patch'
|
||||
'no-fpic-in-sanitizer.all.patch'
|
||||
'port-sanitizer-to-mingw.all.patch'
|
||||
'prettify-linking-no-undefined.mingw.patch'
|
||||
)
|
||||
'gcc-4.9.0-ICE.patch'
|
||||
'gcc-4.8-libstdc++export.patch'
|
||||
'gcc-4.7-stdthreads.patch'
|
||||
'130-dont-escape-arguments-that-dont-need-it-in-pex-win32.c.patch'
|
||||
'140-fix-for-windows-not-minding-non-existent-parent-dirs.patch'
|
||||
'150-windows-lrealpath-no-force-lowercase-nor-backslash.patch'
|
||||
'160-mingw-dont-ignore-native-system-header-dir.patch'
|
||||
'170-0001-PR-ipa-60965.patch'
|
||||
'180-pr-57440.patch'
|
||||
'gcc-4.8-filename-output.patch'
|
||||
'gcc-4.9-tree-ssa-threadedge.patch'
|
||||
'ktietz-libgomp.patch'
|
||||
'4.9.0-libatomic-cygwin.patch'
|
||||
'build-more-gnattools.mingw.patch'
|
||||
'libgomp-no-static.patch'
|
||||
'enable-libitm.mingw.patch'
|
||||
'enable-libsanitizer.mingw.patch'
|
||||
'enable-shared-gnat.mingw.patch'
|
||||
'no-fpic-in-sanitizer.all.patch'
|
||||
'port-sanitizer-to-mingw.all.patch'
|
||||
'prettify-linking-no-undefined.mingw.patch'
|
||||
)
|
||||
md5sums=('9709b49ae0e904cbb0a6a1b62853b556'
|
||||
'627405c8f0ec5cad56b0847adf9ad843'
|
||||
'f6b5fb08ff06a7d60ee3280e14240bb2'
|
||||
@@ -55,6 +57,8 @@ md5sums=('9709b49ae0e904cbb0a6a1b62853b556'
|
||||
'60fdccbd072e2b2e724ff879d31ec57e'
|
||||
'e3b36213655f047042089e8f38171411'
|
||||
'347336d5a318e5e8b3cde29e9174413c'
|
||||
'40cb437805e2f7a006aa0d0c3098ab0f'
|
||||
'311ece7f5446d550e84e28692d2fb823'
|
||||
'f539e602715250bbdb8d2a6a25f1ccbe'
|
||||
'9303e0f9cd9c601a1939792123677499'
|
||||
'fde1098e5c71963ec2ed4c5b2c4217bd'
|
||||
@@ -129,6 +133,12 @@ prepare() {
|
||||
|
||||
patch -p1 -i ${srcdir}/180-pr-57440.patch
|
||||
|
||||
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57653
|
||||
patch -p0 -i ${srcdir}/gcc-4.8-filename-output.patch
|
||||
|
||||
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60902
|
||||
patch -p1 -i ${srcdir}/gcc-4.9-tree-ssa-threadedge.patch
|
||||
|
||||
# Kai's libgomp fix.
|
||||
patch -p1 -i ${srcdir}/ktietz-libgomp.patch
|
||||
|
||||
|
||||
17
mingw-w64-gcc/gcc-4.8-filename-output.patch
Normal file
17
mingw-w64-gcc/gcc-4.8-filename-output.patch
Normal file
@@ -0,0 +1,17 @@
|
||||
--- gcc/c-family/c-opts.c (revision 200330)
|
||||
+++ gcc/c-family/c-opts.c (working copy)
|
||||
@@ -1338,10 +1338,14 @@ c_finish_options (void)
|
||||
|
||||
/* Give CPP the next file given by -include, if any. */
|
||||
static void
|
||||
push_command_line_include (void)
|
||||
{
|
||||
+ // This can happen if disabled by -imacros for example.
|
||||
+ if (include_cursor > deferred_count)
|
||||
+ return;
|
||||
+
|
||||
if (!done_preinclude)
|
||||
{
|
||||
done_preinclude = true;
|
||||
if (flag_hosted && std_inc && !cpp_opts->preprocessed)
|
||||
{
|
||||
38
mingw-w64-gcc/gcc-4.9-tree-ssa-threadedge.patch
Normal file
38
mingw-w64-gcc/gcc-4.9-tree-ssa-threadedge.patch
Normal file
@@ -0,0 +1,38 @@
|
||||
--- trunk/gcc/tree-ssa-threadedge.c 2014/04/23 17:53:56 209715
|
||||
+++ trunk/gcc/tree-ssa-threadedge.c 2014/04/23 18:04:46 209716
|
||||
@@ -387,7 +387,34 @@
|
||||
&& (gimple_code (stmt) != GIMPLE_CALL
|
||||
|| gimple_call_lhs (stmt) == NULL_TREE
|
||||
|| TREE_CODE (gimple_call_lhs (stmt)) != SSA_NAME))
|
||||
- continue;
|
||||
+ {
|
||||
+ /* STMT might still have DEFS and we need to invalidate any known
|
||||
+ equivalences for them.
|
||||
+
|
||||
+ Consider if STMT is a GIMPLE_ASM with one or more outputs that
|
||||
+ feeds a conditional inside a loop. We might derive an equivalence
|
||||
+ due to the conditional. */
|
||||
+ tree op;
|
||||
+ ssa_op_iter iter;
|
||||
+
|
||||
+ if (backedge_seen)
|
||||
+ FOR_EACH_SSA_TREE_OPERAND (op, stmt, iter, SSA_OP_DEF)
|
||||
+ {
|
||||
+ /* This call only invalidates equivalences created by
|
||||
+ PHI nodes. This is by design to keep the cost of
|
||||
+ of invalidation reasonable. */
|
||||
+ invalidate_equivalences (op, stack, src_map, dst_map);
|
||||
+
|
||||
+ /* However, conditionals can imply values for real
|
||||
+ operands as well. And those won't be recorded in the
|
||||
+ maps. In fact, those equivalences may be recorded totally
|
||||
+ outside the threading code. We can just create a new
|
||||
+ temporary NULL equivalence here. */
|
||||
+ record_temporary_equivalence (op, NULL_TREE, stack);
|
||||
+ }
|
||||
+
|
||||
+ continue;
|
||||
+ }
|
||||
|
||||
/* The result of __builtin_object_size depends on all the arguments
|
||||
of a phi node. Temporarily using only one edge produces invalid
|
||||
Reference in New Issue
Block a user