summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--system/gcc/APKBUILD6
-rw-r--r--system/gcc/add-classic_table-support.patch181
-rw-r--r--system/gcc/lra-pentium.patch48
3 files changed, 143 insertions, 92 deletions
diff --git a/system/gcc/APKBUILD b/system/gcc/APKBUILD
index 0ae8352ae..5fa1e4e11 100644
--- a/system/gcc/APKBUILD
+++ b/system/gcc/APKBUILD
@@ -6,7 +6,7 @@ pkgver=6.4.0
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname="$pkgname$_target"
-pkgrel=7
+pkgrel=8
pkgdesc="The GNU Compiler Collection"
url="http://gcc.gnu.org"
arch="all"
@@ -187,6 +187,7 @@ source="ftp://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgba
fix-rs6000-pie.patch
add-classic_table-support.patch
+ lra-pentium.patch
"
# we build out-of-tree
@@ -641,4 +642,5 @@ fa44c8158111627aa0e91c43e7cc3aa38642c2041c96532dd4f0932dae4d6f92ea2850b683abcf10
385bc2fa50204f678964e5148c6170f572701dab920fbec8301f505bda34d182cde0adb7da042fee71719e12fb59f59181897f9b1bb4f4716ff59aad46ca1998 310-build-gcj-s390x.patch
f4ef08454e28c8732db69115e4998ec153399e8d229dd27f923dbdcf57b68128a65640d026cc7f45b58ba8764ab1eb575d4eb6d6dfc550a87a183f8b94e76181 320-libffi-gnulinux.patch
01c71cd5881fc07ea3b9b980697e89b3ca0fe98502958ceafc3fca18b2604c844e2f457feab711baf8e03f00a5383b0e38aac7eb954034e306f43d4a37f165ed fix-rs6000-pie.patch
-68483be0f4daa56bff9f1b4ddcbc9db9087bc0a459388c916dd36746ce20558e092116c3d2eac3daa4512978270901504a6ec6b2aa589e81864e6f236e5d9639 add-classic_table-support.patch"
+1860593584f629d24d5b6db14b0a3412e9f93449b663aaa4981301a0923db0159314905e694f27366fbfef72dce06636ab6df86862b7e9e9564847e03bee82c1 add-classic_table-support.patch
+4e1b421ed72668b66ecbcb0a34afa99d2a34cb2ea9ee51c4aad605fc8a0e94e3bfbabae4ebe236efc5ec86fc01a472cbe93f36fe25cf579714939d8102a9b84a lra-pentium.patch"
diff --git a/system/gcc/add-classic_table-support.patch b/system/gcc/add-classic_table-support.patch
index 0f5e0f8e3..e74929302 100644
--- a/system/gcc/add-classic_table-support.patch
+++ b/system/gcc/add-classic_table-support.patch
@@ -43,7 +43,7 @@
_GLIBCXX_END_NAMESPACE_VERSION
--- gcc-6.4.0/libstdc++-v3/config/os/generic/ctype_configure_char.cc.old 2016-01-04 08:30:50.652828000 -0600
+++ gcc-6.4.0/libstdc++-v3/config/os/generic/ctype_configure_char.cc 2017-10-16 08:37:57.986260218 -0500
-@@ -40,7 +40,104 @@
+@@ -40,7 +40,105 @@
const ctype_base::mask*
ctype<char>::classic_table() throw()
@@ -51,98 +51,99 @@
+ {
+ static ctype_base::mask mask[256] = {
+ cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl,
-+ cntrl, cntrl | print | space, cntrl, cntrl, cntrl, cntrl | print, cntrl, cntrl,
++ cntrl, cntrl | blank | space, cntrl | space, cntrl | space,
++ cntrl | space, cntrl | space, cntrl, cntrl,
+ cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl,
+ cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl,
+ print | space | blank,
-+ print | punct | graph, print | punct | graph,
-+ print | punct | graph, print | punct | graph,
-+ print | punct | graph, print | punct | graph,
-+ print | punct | graph, print | punct | graph,
-+ print | punct | graph, print | punct | graph,
-+ print | punct | graph, print | punct | graph,
-+ print | punct | graph, print | punct | graph,
-+ print | punct | graph,
-+ print | graph | alnum | digit | xdigit, print | graph | alnum | digit | xdigit,
-+ print | graph | alnum | digit | xdigit, print | graph | alnum | digit | xdigit,
-+ print | graph | alnum | digit | xdigit, print | graph | alnum | digit | xdigit,
-+ print | graph | alnum | digit | xdigit, print | graph | alnum | digit | xdigit,
-+ print | graph | alnum | digit | xdigit, print | graph | alnum | digit | xdigit,
-+ print | punct | graph, print | punct | graph,
-+ print | graph, print | graph, print | graph,
-+ print | punct | graph, print | graph,
-+ print | graph | alnum | xdigit | alpha | upper,
-+ print | graph | alnum | xdigit | alpha | upper,
-+ print | graph | alnum | xdigit | alpha | upper,
-+ print | graph | alnum | xdigit | alpha | upper,
-+ print | graph | alnum | xdigit | alpha | upper,
-+ print | graph | alnum | xdigit | alpha | upper,
-+ print | graph | alnum | alpha | upper,
-+ print | graph | alnum | alpha | upper,
-+ print | graph | alnum | alpha | upper,
-+ print | graph | alnum | alpha | upper,
-+ print | graph | alnum | alpha | upper,
-+ print | graph | alnum | alpha | upper,
-+ print | graph | alnum | alpha | upper,
-+ print | graph | alnum | alpha | upper,
-+ print | graph | alnum | alpha | upper,
-+ print | graph | alnum | alpha | upper,
-+ print | graph | alnum | alpha | upper,
-+ print | graph | alnum | alpha | upper,
-+ print | graph | alnum | alpha | upper,
-+ print | graph | alnum | alpha | upper,
-+ print | graph | alnum | alpha | upper,
-+ print | graph | alnum | alpha | upper,
-+ print | graph | alnum | alpha | upper,
-+ print | graph | alnum | alpha | upper,
-+ print | graph | alnum | alpha | upper,
-+ print | graph | alnum | alpha | upper,
-+ print | graph, print | graph, print | graph,
-+ print | graph, print | graph, print | graph,
-+ print | graph | alnum | xdigit | alpha | lower,
-+ print | graph | alnum | xdigit | alpha | lower,
-+ print | graph | alnum | xdigit | alpha | lower,
-+ print | graph | alnum | xdigit | alpha | lower,
-+ print | graph | alnum | xdigit | alpha | lower,
-+ print | graph | alnum | xdigit | alpha | lower,
-+ print | graph | alnum | alpha | lower,
-+ print | graph | alnum | alpha | lower,
-+ print | graph | alnum | alpha | lower,
-+ print | graph | alnum | alpha | lower,
-+ print | graph | alnum | alpha | lower,
-+ print | graph | alnum | alpha | lower,
-+ print | graph | alnum | alpha | lower,
-+ print | graph | alnum | alpha | lower,
-+ print | graph | alnum | alpha | lower,
-+ print | graph | alnum | alpha | lower,
-+ print | graph | alnum | alpha | lower,
-+ print | graph | alnum | alpha | lower,
-+ print | graph | alnum | alpha | lower,
-+ print | graph | alnum | alpha | lower,
-+ print | graph | alnum | alpha | lower,
-+ print | graph | alnum | alpha | lower,
-+ print | graph | alnum | alpha | lower,
-+ print | graph | alnum | alpha | lower,
-+ print | graph | alnum | alpha | lower,
-+ print | graph | alnum | alpha | lower,
-+ print | graph, print | graph, print | graph, print | graph,
-+ print,
-+ cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl,
-+ cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl,
-+ cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl,
-+ cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl,
-+ cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl,
-+ cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl,
-+ cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl,
-+ cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl,
-+ cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl,
-+ cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl,
-+ cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl,
-+ cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl,
-+ cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl,
-+ cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl,
-+ cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl,
-+ cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl, cntrl
++ print | punct, print | punct,
++ print | punct, print | punct,
++ print | punct, print | punct,
++ print | punct, print | punct,
++ print | punct, print | punct,
++ print | punct, print | punct,
++ print | punct, print | punct,
++ print | punct,
++ print | alnum | digit | xdigit, print | alnum | digit | xdigit,
++ print | alnum | digit | xdigit, print | alnum | digit | xdigit,
++ print | alnum | digit | xdigit, print | alnum | digit | xdigit,
++ print | alnum | digit | xdigit, print | alnum | digit | xdigit,
++ print | alnum | digit | xdigit, print | alnum | digit | xdigit,
++ print | punct, print | punct,
++ print, print, print,
++ print | punct, print,
++ print | alnum | xdigit | alpha | upper,
++ print | alnum | xdigit | alpha | upper,
++ print | alnum | xdigit | alpha | upper,
++ print | alnum | xdigit | alpha | upper,
++ print | alnum | xdigit | alpha | upper,
++ print | alnum | xdigit | alpha | upper,
++ print | alnum | alpha | upper,
++ print | alnum | alpha | upper,
++ print | alnum | alpha | upper,
++ print | alnum | alpha | upper,
++ print | alnum | alpha | upper,
++ print | alnum | alpha | upper,
++ print | alnum | alpha | upper,
++ print | alnum | alpha | upper,
++ print | alnum | alpha | upper,
++ print | alnum | alpha | upper,
++ print | alnum | alpha | upper,
++ print | alnum | alpha | upper,
++ print | alnum | alpha | upper,
++ print | alnum | alpha | upper,
++ print | alnum | alpha | upper,
++ print | alnum | alpha | upper,
++ print | alnum | alpha | upper,
++ print | alnum | alpha | upper,
++ print | alnum | alpha | upper,
++ print | alnum | alpha | upper,
++ print | punct, print | punct, print | punct,
++ print | punct, print | punct, print | punct,
++ print | alnum | xdigit | alpha | lower,
++ print | alnum | xdigit | alpha | lower,
++ print | alnum | xdigit | alpha | lower,
++ print | alnum | xdigit | alpha | lower,
++ print | alnum | xdigit | alpha | lower,
++ print | alnum | xdigit | alpha | lower,
++ print | alnum | alpha | lower,
++ print | alnum | alpha | lower,
++ print | alnum | alpha | lower,
++ print | alnum | alpha | lower,
++ print | alnum | alpha | lower,
++ print | alnum | alpha | lower,
++ print | alnum | alpha | lower,
++ print | alnum | alpha | lower,
++ print | alnum | alpha | lower,
++ print | alnum | alpha | lower,
++ print | alnum | alpha | lower,
++ print | alnum | alpha | lower,
++ print | alnum | alpha | lower,
++ print | alnum | alpha | lower,
++ print | alnum | alpha | lower,
++ print | alnum | alpha | lower,
++ print | alnum | alpha | lower,
++ print | alnum | alpha | lower,
++ print | alnum | alpha | lower,
++ print | alnum | alpha | lower,
++ print | punct, print | punct, print | punct, print | punct,
++ cntrl,
++ 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0,
++ 0, 0, 0, 0, 0, 0, 0, 0
+ };
+ return mask;
+ }
diff --git a/system/gcc/lra-pentium.patch b/system/gcc/lra-pentium.patch
new file mode 100644
index 000000000..e876bcc39
--- /dev/null
+++ b/system/gcc/lra-pentium.patch
@@ -0,0 +1,48 @@
+--- trunk/gcc/lra-assigns.c 2017/03/10 20:53:18 246058
++++ trunk/gcc/lra-assigns.c 2017/03/10 21:17:13 246059
+@@ -889,6 +889,30 @@
+ live_pseudos_reg_renumber[regno] = hard_regno;
+ }
+
++/* Return true iff there is a reason why pseudo SPILL_REGNO should not
++ be spilled. */
++static bool
++must_not_spill_p (unsigned spill_regno)
++{
++ if ((pic_offset_table_rtx != NULL
++ && spill_regno == REGNO (pic_offset_table_rtx))
++ || ((int) spill_regno >= lra_constraint_new_regno_start
++ && ! bitmap_bit_p (&lra_inheritance_pseudos, spill_regno)
++ && ! bitmap_bit_p (&lra_split_regs, spill_regno)
++ && ! bitmap_bit_p (&lra_subreg_reload_pseudos, spill_regno)
++ && ! bitmap_bit_p (&lra_optional_reload_pseudos, spill_regno)))
++ return true;
++ /* A reload pseudo that requires a singleton register class should
++ not be spilled.
++ FIXME: this mitigates the issue on certain i386 patterns, but
++ does not solve the general case where existing reloads fully
++ cover a limited register class. */
++ if (!bitmap_bit_p (&non_reload_pseudos, spill_regno)
++ && reg_class_size [reg_preferred_class (spill_regno)] == 1)
++ return true;
++ return false;
++}
++
+ /* Array used for sorting reload pseudos for subsequent allocation
+ after spilling some pseudo. */
+ static int *sorted_reload_pseudos;
+@@ -960,13 +984,7 @@
+ /* Spill pseudos. */
+ static_p = false;
+ EXECUTE_IF_SET_IN_BITMAP (&spill_pseudos_bitmap, 0, spill_regno, bi)
+- if ((pic_offset_table_rtx != NULL
+- && spill_regno == REGNO (pic_offset_table_rtx))
+- || ((int) spill_regno >= lra_constraint_new_regno_start
+- && ! bitmap_bit_p (&lra_inheritance_pseudos, spill_regno)
+- && ! bitmap_bit_p (&lra_split_regs, spill_regno)
+- && ! bitmap_bit_p (&lra_subreg_reload_pseudos, spill_regno)
+- && ! bitmap_bit_p (&lra_optional_reload_pseudos, spill_regno)))
++ if (must_not_spill_p (spill_regno))
+ goto fail;
+ else if (non_spilled_static_chain_regno_p (spill_regno))
+ static_p = true;