commit: c285e5b1406daa444fdb52371f53c4fb2714ba06
Author: Aric Belsito <lluixhi <AT> gmail <DOT> com>
AuthorDate: Mon Aug 7 18:03:48 2017 +0000
Commit: Aric Belsito <lluixhi <AT> gmail <DOT> com>
CommitDate: Mon Aug 7 18:03:48 2017 +0000
URL: https://gitweb.gentoo.org/proj/musl.git/commit/?id=c285e5b1
sys-devel/gcc: Add patch for PR80706 to GCC 7.1.0
Should fix build of FireFox.
sys-devel/gcc/Manifest | 3 +-
sys-devel/gcc/files/gcc-7.1.0-pr80706.patch | 119 ++++++++++++++++++++++++++++
sys-devel/gcc/gcc-7.1.0-r1.ebuild | 3 +
3 files changed, 124 insertions(+), 1 deletion(-)
diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest
index a5a5a51..8f23059 100644
--- a/sys-devel/gcc/Manifest
+++ b/sys-devel/gcc/Manifest
@@ -22,6 +22,7 @@ AUX gcc-4.9.3-secure-plt.patch 1478 SHA256
b9435e19c3193e872bfdce8f635755655cf6e
AUX gcc-4.9.3-tree-vect-data-refs-correctness.patch 315 SHA256
904ae5ce2ecd5a2f7786c54d148a7562d0bb6f51fe60761038c2f57b8cf70356 SHA512
88d93c061ef72035522270ab60c8c2ec04e2fa2d69763f45b9eab0c37b19c23920484358d7556ad885775071ac04cf94684a2cd8ed93418d5f0c54ac3a045c9d
WHIRLPOOL
2b9c281401abc111d53467c51b6238c6f4c430a73d8833f161766f973138ffe3b4fa1ffe5cc5813b5e2f8a81dee2cdcaaff2b9a8f8e13089f993f3ab3d69ccbd
AUX gcc-5.4.0-pr68470.patch 2012 SHA256
f8949e1d35bf7bba80aec50bdcd5d6b008f731679b06f3d89e6d8a4eb98e492e SHA512
dea9ab12a37b88308424af2882b4755366745c204cd74e6892374d4aeb0981487f9fa1d44ab4d4e6184c83547c3ea30ed731719fa074bea62bdf8bfcf1dfbca0
WHIRLPOOL
2f66cd0d2dcaf237fd730eefe6f477970db14c237a8309925f799984a010f5470f6fc0f6a735316c7eab4de9dc958d773a4ffa14eea7093158690e9ff8f1847e
AUX gcc-5.4.0-pr70473.patch 1665 SHA256
d674821a34356e78c4aa8405fc27f30effd5a7ab4f5929892e23a4c53023e137 SHA512
6fc8f70a1e34ae475d15fb20e198b63f00a11eff3bd09f1518b76d9622d32c9500beb49065bb1a32dc40119146f009bbda21fd0e74bc200771384b547f282680
WHIRLPOOL
d22f1daec32b91bd29d6b87481681c86f405b4f5567468339b9f25e0e5ad6818d171db1692be588a0174767f9fcdf21a28d895932a8ef7a2ecc910a1984075db
+AUX gcc-7.1.0-pr80706.patch 3306 SHA256
5fe4ae00ef68686a37e4bacd4424c9950a91e12a19d2b6a857524b558d49acf2 SHA512
4c5a72c221d21a6ad03586d4f570caffb16be041d7a232c6da2622fd8603341c4a4e97cc48b61509fb9be04ba59d06c339a2718cf72803cff67bc31813c5161c
WHIRLPOOL
f3876e3d682af9ca3584a6c877c5b452e529a93adbbc69fde5a9dc0d8b973a5c4f13c5322bd70e0cd1971970a09c9891313ea51648eda8457ca8e20326dc1e8e
AUX gcc-configure-LANG.patch 2052 SHA256
63de6d2dcfe14f21d147abeb1390405b9220c03f8e968f482d4b4c1cf279c88b SHA512
a694c7ac2f45cc657097ff5b0cf1356ac88a9c06035c9ba15167e9d444844d0d8a478eb1b9b62195dd063774f79697b9148b9cdb6c261640b472c291061b2129
WHIRLPOOL
3cc1ec912fb192ff1058de5b93e49a994ba30d1501a932290dd5b3df1cd783875621cda56edeb41894cd5fa10c04917e693a40a60be8d742ddd7992bf5d8afeb
AUX gcc-configure-texinfo.patch 337 SHA256
74b73a7ecec2d88889876b4db480cd173632f49d5396bb8e5b3c93673f9b5b98 SHA512
a15fba8bf2ff02bdeca54d6f186bfa08c1079c6a8ba0a3beef154483ce5c1b8c497e7ffeec32371968f0037e0ff8384609eb0c367d0155a4e5a7eef8aad084d5
WHIRLPOOL
39d008aad06f7621e4e5db15f5e85a59e583b43f8d247029bd4944466bb60a9795bda157d185c45c329294078e282703a243aad5c468d90c77665dd6336870d4
AUX gcc-spec-env-r1.patch 3148 SHA256
da0a6442eb42bce58cbdc7858b110a2e65fc5bd5b4b780b9b491033de6e302fa SHA512
ecae71577543772cfe1711f1b4a8815c0b5d706ebd01edacd1f07586637d4805e25771f970a6e6d1bb696d4b1b5ef3e0036088a96a9f6beff7ddaee704175d16
WHIRLPOOL
3535605998eabccdee71ba396ed5cefbb8b0a8cb073101f6444c7d01233f3b3904c1b29f4daf0a3417c68de8dbd62a0b7dc367cacfcbfa0c4ee1b69b7df8c6fb
@@ -66,5 +67,5 @@ EBUILD gcc-5.4.0-r3.ebuild 1934 SHA256
3d643e82c9ff1017c6ad6eb8a24994ffbbd48d70e
EBUILD gcc-5.4.0-r4.ebuild 1936 SHA256
2bb3cda67f82af445fca53eb0c198de14f24fa1764fe0bab5eabadd090cfd3c9 SHA512
e949174290ff75386a69c5c89b980e9af04a8c1002458de4dad1b213bca6389ca99e566180027b62d3f0a196080bf49dd185e1bd1aa9603c7a311994f1344804
WHIRLPOOL
f5c6df6698d1e868fea6a4b459813004898a0e88811f76c832c122ee3508bf188732a51ded3d678b90c984c80f91f6997b2ab0c3e6ead9df14b321e8364f353a
EBUILD gcc-6.3.0.ebuild 902 SHA256
f75f2d455bd332ab08dcb12ef5101319b9117ea48d773e782d7ec9e9bd017738 SHA512
2cb339bd2003d2e6c0e649377c693a5c6874583ac27d1b60ffa3bc9723f83c26554dd385154133e8384a92e85c0c134bbb787c7ba34e1ca174f05e23758d1bb2
WHIRLPOOL
88a7ef0e56136cb610f16aa92be0967f40d59d7ee1877bddc213035fd8007745beb2743b5016acfa6bf6a3f334e002e311c0e457aea2b68d4f7a9e311f6f1d4b
EBUILD gcc-6.4.0.ebuild 902 SHA256
e54104dd9fd73c8017661a03c3614e71c40bf9be73ddbe87fe11e3c7d0efb004 SHA512
1fb4edafa2d62cd6e34fb42e5b07adaeb036fae0c4819416f8f24d612c49c51fac1ad1c356d8b82822ac772919016a7125294d8609fd5209fb3a63155af56541
WHIRLPOOL
9073081c7e4453d83e8d86e664712f96422b0bc1383a416ce22b3a475a9df496e10788e93fa0462e52ff31f07b911015f5f29587cfe0ec094757a727012e83a5
-EBUILD gcc-7.1.0-r1.ebuild 603 SHA256
9cbff0ffd838af811cde3103906c146eaf17517caf48c8ad62a9216bbc435c8b SHA512
6dd72ba363429342fd12de1fcb677556b17d97cc98af1ac9c1feac76fd219d9e4fdc37b8838d28025d16a0179e85b21b159e24471d6ec1643d2c32fe09689543
WHIRLPOOL
a8718baf8b73fff11bc7f8bdcad69df6060e96838ca7e6b64651990084777dba9d9d59c6391518622981161495bbbcadc395138472b9551d69fed47d2897f65f
+EBUILD gcc-7.1.0-r1.ebuild 670 SHA256
09e9bafeeaad9b0b897d2b4da1b8c3ee56daf3401eea3f7a63ee62fd6fe696f5 SHA512
90875ac0b5bffe3488c681d375f671d54b03806613d3b4618f650f2fd44727cf687d923afe10ba1f9b0ceba2575814867ed1b28b2ed7601cdb7d97ee53a62a80
WHIRLPOOL
621007ffa8a4ce055ce5125fd51b7934f584e64577afcea24f3e2aa7e77e4d87373de7b4a9f40717afd69686838784583a2228bebe0c72feaba631baae54943b
MISC metadata.xml 2282 SHA256
afee9279279d988491f12e47d474f13431cd28c871c5d78df367b6d3cac7e58c SHA512
a6b3c24ddf715f9c2db299a6d0f9caeabf2f3223b3d7ea61773cb53b4f2db2c470dbd18860532cad719409f91b9f438847f52cdb3b0d396e38e024f504a16940
WHIRLPOOL
f6d3f8a22a6e52290ffd7bc46b7e4a66519aa4dcc83d787024b636e9f5832dfd7eef891f2904c64fccdb10f33c87b8b18430e656a32a291ba2f928221c6e67cc
diff --git a/sys-devel/gcc/files/gcc-7.1.0-pr80706.patch
b/sys-devel/gcc/files/gcc-7.1.0-pr80706.patch
new file mode 100644
index 0000000..73572b2
--- /dev/null
+++ b/sys-devel/gcc/files/gcc-7.1.0-pr80706.patch
@@ -0,0 +1,119 @@
+--- branches/gcc-7-branch/gcc/config/i386/sync.md 2017/04/20 09:50:13
247016
++++ branches/gcc-7-branch/gcc/config/i386/sync.md 2017/05/14 12:49:55
248032
+@@ -25,6 +25,9 @@
+ UNSPEC_FILD_ATOMIC
+ UNSPEC_FIST_ATOMIC
+
++ UNSPEC_LDX_ATOMIC
++ UNSPEC_STX_ATOMIC
++
+ ;; __atomic support
+ UNSPEC_LDA
+ UNSPEC_STA
+@@ -199,9 +202,8 @@
+ }
+ else
+ {
+- adjust_reg_mode (tmp, DImode);
+- emit_move_insn (tmp, src);
+- emit_move_insn (mem, tmp);
++ emit_insn (gen_loaddi_via_sse (tmp, src));
++ emit_insn (gen_storedi_via_sse (mem, tmp));
+ }
+
+ if (mem != dst)
+@@ -226,10 +228,12 @@
+ "operands[5] = gen_lowpart (DFmode, operands[1]);")
+
+ (define_peephole2
+- [(set (match_operand:DI 0 "sse_reg_operand")
+- (match_operand:DI 1 "memory_operand"))
++ [(set (match_operand:DF 0 "sse_reg_operand")
++ (unspec:DF [(match_operand:DI 1 "memory_operand")]
++ UNSPEC_LDX_ATOMIC))
+ (set (match_operand:DI 2 "memory_operand")
+- (match_dup 0))
++ (unspec:DI [(match_dup 0)]
++ UNSPEC_STX_ATOMIC))
+ (set (match_operand:DF 3 "fp_register_operand")
+ (match_operand:DF 4 "memory_operand"))]
+ "!TARGET_64BIT
+@@ -301,7 +305,9 @@
+ rtx dst = operands[0], src = operands[1];
+ rtx mem = operands[2], tmp = operands[3];
+
+- if (!SSE_REG_P (src))
++ if (SSE_REG_P (src))
++ emit_move_insn (dst, src);
++ else
+ {
+ if (REG_P (src))
+ {
+@@ -313,16 +319,13 @@
+ {
+ emit_insn (gen_loaddi_via_fpu (tmp, src));
+ emit_insn (gen_storedi_via_fpu (dst, tmp));
+- DONE;
+ }
+ else
+ {
+- adjust_reg_mode (tmp, DImode);
+- emit_move_insn (tmp, src);
+- src = tmp;
++ emit_insn (gen_loaddi_via_sse (tmp, src));
++ emit_insn (gen_storedi_via_sse (dst, tmp));
+ }
+ }
+- emit_move_insn (dst, src);
+ DONE;
+ })
+
+@@ -344,10 +347,12 @@
+ (define_peephole2
+ [(set (match_operand:DF 0 "memory_operand")
+ (match_operand:DF 1 "fp_register_operand"))
+- (set (match_operand:DI 2 "sse_reg_operand")
+- (match_operand:DI 3 "memory_operand"))
++ (set (match_operand:DF 2 "sse_reg_operand")
++ (unspec:DF [(match_operand:DI 3 "memory_operand")]
++ UNSPEC_LDX_ATOMIC))
+ (set (match_operand:DI 4 "memory_operand")
+- (match_dup 2))]
++ (unspec:DI [(match_dup 2)]
++ UNSPEC_STX_ATOMIC))]
+ "!TARGET_64BIT
+ && peep2_reg_dead_p (3, operands[2])
+ && rtx_equal_p (operands[0], adjust_address_nv (operands[3], DFmode, 0))"
+@@ -382,6 +387,32 @@
+ [(set_attr "type" "fmov")
+ (set_attr "mode" "DI")])
+
++(define_insn "loaddi_via_sse"
++ [(set (match_operand:DF 0 "register_operand" "=x")
++ (unspec:DF [(match_operand:DI 1 "memory_operand" "m")]
++ UNSPEC_LDX_ATOMIC))]
++ "TARGET_SSE"
++{
++ if (TARGET_SSE2)
++ return "%vmovq\t{%1, %0|%0, %1}";
++ return "movlps\t{%1, %0|%0, %1}";
++}
++ [(set_attr "type" "ssemov")
++ (set_attr "mode" "DI")])
++
++(define_insn "storedi_via_sse"
++ [(set (match_operand:DI 0 "memory_operand" "=m")
++ (unspec:DI [(match_operand:DF 1 "register_operand" "x")]
++ UNSPEC_STX_ATOMIC))]
++ "TARGET_SSE"
++{
++ if (TARGET_SSE2)
++ return "%vmovq\t{%1, %0|%0, %1}";
++ return "movlps\t{%1, %0|%0, %1}";
++}
++ [(set_attr "type" "ssemov")
++ (set_attr "mode" "DI")])
++
+ (define_expand "atomic_compare_and_swap<mode>"
+ [(match_operand:QI 0 "register_operand") ;; bool success output
+ (match_operand:SWI124 1 "register_operand") ;; oldval output
diff --git a/sys-devel/gcc/gcc-7.1.0-r1.ebuild
b/sys-devel/gcc/gcc-7.1.0-r1.ebuild
index 3052a73..c5194d1 100644
--- a/sys-devel/gcc/gcc-7.1.0-r1.ebuild
+++ b/sys-devel/gcc/gcc-7.1.0-r1.ebuild
@@ -22,6 +22,9 @@ fi
src_prepare() {
toolchain_src_prepare
+ # Upstream Patch
+ epatch "${FILESDIR}"/${PN}-7.1.0-pr80706.patch
+
if use elibc_musl || [[ ${CATEGORY} = cross-*-musl ]]; then
epatch "${FILESDIR}"/6.3.0/cpu_indicator.patch
epatch "${FILESDIR}"/7.1.0/posix_memalign.patch