1 |
commit: 63cf5574539585efa0eb030239547774771cdf44 |
2 |
Author: Aric Belsito <lluixhi <AT> gmail <DOT> com> |
3 |
AuthorDate: Mon Dec 26 00:12:37 2016 +0000 |
4 |
Commit: Aric Belsito <lluixhi <AT> gmail <DOT> com> |
5 |
CommitDate: Mon Dec 26 00:12:37 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/musl.git/commit/?id=63cf5574 |
7 |
|
8 |
sys-devel/gcc: Add 5.4.0 and 6.3.0 |
9 |
|
10 |
Remove 6.1.0 (Upstream no longer supports it) |
11 |
|
12 |
Use a backported 6.1.0 patchset in 5.4.0 |
13 |
|
14 |
Sync with upstream. |
15 |
|
16 |
sys-devel/gcc/Manifest | 26 +- |
17 |
sys-devel/gcc/files/4.9.4/boehm_gc.patch | 104 +++++ |
18 |
sys-devel/gcc/files/4.9.4/gthread.patch | 37 ++ |
19 |
sys-devel/gcc/files/4.9.4/posix_memalign.patch | 29 ++ |
20 |
sys-devel/gcc/files/5.4.0/cilkrts.patch | 46 +++ |
21 |
sys-devel/gcc/files/5.4.0/linker_path.patch | 213 +++++++++++ |
22 |
sys-devel/gcc/files/5.4.0/musl.patch | 502 +++++++++++++++++++++++++ |
23 |
sys-devel/gcc/files/5.4.0/ppc-secure_plt.patch | 59 +++ |
24 |
sys-devel/gcc/files/6.3.0/musl.patch | 63 ++++ |
25 |
sys-devel/gcc/files/fix_libtool_files.sh | 9 +- |
26 |
sys-devel/gcc/files/gcc-5.4.0-pr68470.patch | 57 +++ |
27 |
sys-devel/gcc/files/gcc-6.1.0-musl-cpu.patch | 32 -- |
28 |
sys-devel/gcc/files/mkinfodir | 233 ------------ |
29 |
sys-devel/gcc/gcc-5.4.0.ebuild | 61 +++ |
30 |
sys-devel/gcc/gcc-6.1.0.ebuild | 44 --- |
31 |
sys-devel/gcc/gcc-6.3.0.ebuild | 32 ++ |
32 |
sys-devel/gcc/metadata.xml | 11 +- |
33 |
17 files changed, 1233 insertions(+), 325 deletions(-) |
34 |
|
35 |
diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest |
36 |
index 8ab3bd7..ef57c6d 100644 |
37 |
--- a/sys-devel/gcc/Manifest |
38 |
+++ b/sys-devel/gcc/Manifest |
39 |
@@ -1,8 +1,16 @@ |
40 |
+AUX 4.9.4/boehm_gc.patch 4398 SHA256 9aaeb05dacefbca5fedd0a16850c00ad9fbf22ae4d0bd6e74fc8b81de27efe2f SHA512 8f201e6075e20b432c56ff5b610a79024b67335643a9c36426479f5b876d19d5f0e914ad38f3e68ff80243f560001c5245b2b6716285142d27cc7d8d719834ca WHIRLPOOL 5165c273e075ee74248250337b4d69b903d112370fa3c0c243cc8cfcb3103ea0e7c50e3495170454271fdf06b54d57e54a872abbc10e2e2f604b6307cc7b647d |
41 |
+AUX 4.9.4/gthread.patch 1751 SHA256 9616018c2c4eb4a9b4d813ad7640c0017a82071e604ec4c095e84aa073aa58ee SHA512 cd04309f74b115aaf15c1a1ea53e5ed9549454fca3b4f68bf2f5077fc028c5a6fda90db21037fd7a9a9cedb8d636781d7ca23dc12afb536fcde9df060952ac16 WHIRLPOOL 161bff5293a58d376ee66c791626d84e461a1a7df28f08629178a4535cd5506ffd752bbca76d0283c31dc7cc864f245da630a262a6f9ebd6f62a72b797816907 |
42 |
+AUX 4.9.4/posix_memalign.patch 1155 SHA256 a8a340f44d3ae67832925b854c79d8d57ca3e63d860f84f2e45981fc6861c32e SHA512 7dec7a092320fcf770e137cfd501237cc76e72606d56d947081ed9c269e0e60756e6fc0b08a0af100987d4c5c021827ff0c157f4fddf1d46fc44fc8604e639a1 WHIRLPOOL c19901b9a5618774c5ba2578f3c3b2b8a214858e73cd474816c21f364a650f14e498b299a4d618ac45877363770771e021f9cb857aef3e83d1a8a7f4e264997e |
43 |
+AUX 5.4.0/cilkrts.patch 1798 SHA256 a8d859d2be3b86f1fa14bd85ee10b3ef250ab24acc782b7a572c72204c04ccbe SHA512 1779793b90e8e8fb4532fc17d488e211a8c7c193d13c5ee99f5295ffa1e3516b07f4341fd6821e502602db470ae3ffd12eb2e9c07f4cbce796879616e39a2c1e WHIRLPOOL a5ef7b28c71150e8a8c817917aeb5710096c8c3b8b28dccc77a7a13585e6b73cf41d599938ac8c851d1ea179d00580ca828adaa02029eb122935e35b386a28b2 |
44 |
+AUX 5.4.0/linker_path.patch 9241 SHA256 e1c9479807a186ba1fd5cf4de2fa025fb72ae038b66721e2aa8eee45e9c741c6 SHA512 f5997d46772517f9538cabbfd01f78225301f6747a8106198c9fe0a591e53ed1c490bf89310848ae89135079928c8325880294c766d4983394b0eec0fcfd8046 WHIRLPOOL 4010e23e4cf306e29ba774788192261c74d1fee98dcdc1cc82d9267dd128345773c46db65224b42bcb161d32691e83467a0c8f7453d02123116486ad5f5f5ce6 |
45 |
+AUX 5.4.0/musl.patch 19066 SHA256 537dd351a7695fb6335cf943e5845578f325fb6fc8fbdf02a312ee7ef79c2a0d SHA512 56020b6759929053e0256150dbf5ba824fc0c1d4f574e1f4af066d6cdcb8199d8b8986008aaf46727454054091f7e9c4bd33bd2dd4e27c21a60fcbc4312103bc WHIRLPOOL 7ae62962e269e0032d3ed1446e876387d711bec310c2fbbfbec04e62e2f416ebe0486016d2520dd05157dd527af4eda05e886e63cd9b77817f4ed10639b33fa7 |
46 |
+AUX 5.4.0/ppc-secure_plt.patch 2161 SHA256 40649792d02e98717fb9a361004f332a98bebf77b5ad83b05678f13760337dd3 SHA512 4ba9780f4cbbe30afe9e40831f2ee57d9979ada093dc15511bef6ec69f97198034a8d07a8efa0884b66d904c7ad5b86a69b52a0ba41c3110680bf01d7b051388 WHIRLPOOL dedc5db47ef2b405a268b417a0323cf3c2f7b5956c1fdb5722f14628f32657f92b381a70c6412b940b0ed740037ee20cbedf8032ef093a62deba847249288975 |
47 |
+AUX 6.3.0/musl.patch 2559 SHA256 0d53a7b29f8ea6e337444e412cd07e80a620446eca0763edf1674e1544311acc SHA512 764437a1c86bf97598a93aaa1a41cf9252350bcb6bfa5d70140e56387b230287875c5e4cb361ff8eb8f8e2f7ae6af8f5667c3e090ee7d6331bc4fb5daac9f023 WHIRLPOOL 35ecf4c3fd7c81c24775663a578f1befb6866545372313a1d0e961605ff065538b1e5c267d3db9a7853a75ddec880750bd4ede76eb13f078e4a8f29001bf2cf2 |
48 |
AUX awk/fixlafiles.awk 7700 SHA256 5289279eb5df3dce696c56ce253980b9a9ae0968703f200970bbc24396a1ae62 SHA512 5ed208e116769741dda7274f15c5b3bdfd482cd926261038bc696644b73aa0d0e950d7fbfc0eb1a90529dd134fa548c46499a18c77470a05d87ae76bc1b3acd2 WHIRLPOOL 06826b65ffdbcc1c624ffed16104301bebc47f4b44358197fd7f0f78d0805a5228e346a8eaf5ee79355e1921878f94d3dd527d39e2975ea3b919140139d884e0 |
49 |
AUX awk/fixlafiles.awk-no_gcc_la 8480 SHA256 9697196d45cc47d3846021c0dfd0a24208a75b10d32c74cef53aa253031f2efb SHA512 7487115a3c4d6cf0edaf4b0ffeb87225d8fbcb7e595e2e99974582e0cce5868d7e292044db2631380c185553866554763eac4c3024347dbdb2cbf68679923294 WHIRLPOOL 24ac7f49bff29cc0abc5c4e502112e3dc2f42517244b8c9a4b8fdf73c9a31fcecdcc42989bbda8faa5feb54dde37c1d7374e1360a0c4de8c136b0523107c6ad4 |
50 |
AUX c89 412 SHA256 29ad5dd697135c2892067e780447894dc1cd071708157e46d21773ab99c5022c SHA512 71d33a147339d8d70a62aa22a95d3e70e445d8435d6ac05893f7da19ae851b89bea851f6ce213fbd22470f13572ae13b83cf02f0621333f07d7b0c68a79b7924 WHIRLPOOL d9707a2be8da7a709b54fcb1154cfa05e479f8c3bdd6173822ee1f1bc265b2a0d04741c0685bfb0db68e1e4297fb032d2f8ff94da88014575d947054474d8295 |
51 |
AUX c99 446 SHA256 057b348cf5be9b4fb9db99a4549f6433c89d21e5f91dc5e46b0b4dc6b70432f5 SHA512 bf3b0eb1125d5e89b433954fcbf805cd86dec5a6eeb23df685ebf3ff83a610573f2ffcec65d893244c845936a73918387cba026710c65c854b2c94a78b007989 WHIRLPOOL b888038b96615c7a0363555b407a3de2c1f17e34428fa16dfbf56fcf68875d6bcdecbc61b545d7f71842ff1909a3ffeff17165fa7f56b48f95adae22f5f8bff1 |
52 |
-AUX fix_libtool_files.sh 1570 SHA256 e6980432f080b596409ded003190aedf3242eb2582800291d0930473fb69825b SHA512 c661ba178272a080d62e565a92a3ffab4d832fba484435e0acb30a1be82c1db14bcb548f32b5143a6d72b021a70344c12a62d7246c59cd0d2db5de79dbcac82f WHIRLPOOL 90347250c55ea9a387b9f5d1cec28dd657d60cbeeca6fea1b8763e61ab6cabde512f206e087f9b41d5c2531ae5cf420e336b1babdc086ed001de3b41609a72cf |
53 |
+AUX fix_libtool_files.sh 1528 SHA256 ed1fd90b31c2865fa78e24166f5523dfd8a79baa932ba9b2e1b34031dd17ac82 SHA512 c0698e7af969a701d7a2fa68cabb728d6271aeb7cca4d53bbb306906dc1b6a30a756ec01df2eae03712fd21865ff2779a0cd92e44c15774a812f935e7fb308ae WHIRLPOOL 5ffa5cbb84edc4e7ecac0bcb6a1d375a9a5ce0369a609f32d7136dccb08f2a82c9baaef8e360c3ccd5e2d3ae7e2bf62ad24ad258c3d16091aaa7cd0ad29f0fea |
54 |
AUX gcc-4.7.3-musl-linker-path.patch 3097 SHA256 dbc140267f3ccaf7dce4dbb153920d90018c453ffbc531864cc73a2dc5f002a2 SHA512 2c33899aa8bb8a8b1ad974c3da9039984aa52fe2d2f52d0f6ddf3aa6386419ee32907f40f60db552abcd0e1dee04cae91a029e37fe531938614f9c66e9518cd7 WHIRLPOOL d4f8a1a6abb083566d4ceb5deed31c2c35bd06f4b786ecd365d19606413c5e7f8579fac05a990a12157a139c243286ebcb7c61108ed69ae6477ef20f579cec86 |
55 |
AUX gcc-4.7.3-powerpc-libc-stack-end.patch 5374 SHA256 880028136d6a3352e74664d0fccda293fe078a5adb58ddb84cbf4d301aee01c7 SHA512 c66b561cb8db68f86b9c001625fb5599db268e576ac163eb47226976e81dc97b3d4ad3cd9f9b0ef44cac0ca9d353be3ae4709e75ed319ff08175ff4e1b1aa174 WHIRLPOOL c7ae1a535410ca5c7d5a8e3b2f8f2bcaeaceaf1cc9c20b3426efd09422b3a957cca7527842f720655a94b5bc8c82642eef0d693003071bd7f80a381d58be848b |
56 |
AUX gcc-4.7.4-secure-plt.patch 1915 SHA256 668c57298064abf6d58857126cdbcefab6d3117726198185ca4f24855c3f7180 SHA512 0e23385b9e654acc296e5b3f333b5859174dea852f38bc5acb182ce15d6ac568dc588c69407b066dc0b91ffb48a1f1c0d8d25720d3ab268da8a56d1c6c40492a WHIRLPOOL 9e061026ea0f87416ea0cd39dc64c074d79001f26d513ec2a6777b42caf47b6bf250bedebcace52c351cf95710318012039da58fdc7d2ef59e51fffc445e3edf |
57 |
@@ -16,12 +24,11 @@ AUX gcc-4.9.3-musl-res_state.patch 699 SHA256 822990f5075b65dc2d1c03722daa5a2153 |
58 |
AUX gcc-4.9.3-pr68470.patch 2053 SHA256 9ca76f063735fb87ee01aa9321f714a04db2dd394381c5a659f7081eec9b45e3 SHA512 5950b4782034add9ded16ab4b6d7b2d5e2bbda1a3ae7f465d50c6a95469359d287126c1a57ac9d8c6ea2c61d7b18ff880b2ac2b25eec48f038452f87f0e24393 WHIRLPOOL f216b046bfe55003af384b573ca0be977d310064f31fb9d8cc15badd6e4b4922b761004c02b44fe04460ece1f82d55eb5c35f09c006015b97cb7968347877dcf |
59 |
AUX gcc-4.9.3-secure-plt.patch 1478 SHA256 b9435e19c3193e872bfdce8f635755655cf6e88889c57d21c7afa118d7068e95 SHA512 95f04716bad41fe3f290d44d21d1dad35548b801b56de331acac8bdf56019583a04681418a805a0b4dbfe19e9b51cecceff984cea257be58d3e7780c6cfc58a5 WHIRLPOOL 8af1f0cfaf0e8197754d841d1cd2b25615968cc503344574cd9ec6b644804e029687a4ded18f6e1efd584c8c99277eceb6f1012c6519a2747bddc400d8909c1e |
60 |
AUX gcc-4.9.3-tree-vect-data-refs-correctness.patch 315 SHA256 904ae5ce2ecd5a2f7786c54d148a7562d0bb6f51fe60761038c2f57b8cf70356 SHA512 88d93c061ef72035522270ab60c8c2ec04e2fa2d69763f45b9eab0c37b19c23920484358d7556ad885775071ac04cf94684a2cd8ed93418d5f0c54ac3a045c9d WHIRLPOOL 2b9c281401abc111d53467c51b6238c6f4c430a73d8833f161766f973138ffe3b4fa1ffe5cc5813b5e2f8a81dee2cdcaaff2b9a8f8e13089f993f3ab3d69ccbd |
61 |
-AUX gcc-6.1.0-musl-cpu.patch 1277 SHA256 6c7a28ccc5edc226fc6f3f6b9b0562fb873a9c88dfb25b608b5acd827f239c08 SHA512 b11c5933c02dda63b40273f6cee394d52c68265931817cfeea3645e971b9c822cc841242a7c74fcd07729171bc0723c2af0db21743bf92dd3dba3430ee6627a1 WHIRLPOOL e0f6068a8028052f88cef840026baa459ae77a43d9144258fe7739a80b5dade852a2aa640feb5bce51dd54d6d35e0c8df99a8c9bdc140f9ae473f16ffb2e9af7 |
62 |
+AUX gcc-5.4.0-pr68470.patch 2012 SHA256 f8949e1d35bf7bba80aec50bdcd5d6b008f731679b06f3d89e6d8a4eb98e492e SHA512 dea9ab12a37b88308424af2882b4755366745c204cd74e6892374d4aeb0981487f9fa1d44ab4d4e6184c83547c3ea30ed731719fa074bea62bdf8bfcf1dfbca0 WHIRLPOOL 2f66cd0d2dcaf237fd730eefe6f477970db14c237a8309925f799984a010f5470f6fc0f6a735316c7eab4de9dc958d773a4ffa14eea7093158690e9ff8f1847e |
63 |
AUX gcc-configure-LANG.patch 2052 SHA256 63de6d2dcfe14f21d147abeb1390405b9220c03f8e968f482d4b4c1cf279c88b SHA512 a694c7ac2f45cc657097ff5b0cf1356ac88a9c06035c9ba15167e9d444844d0d8a478eb1b9b62195dd063774f79697b9148b9cdb6c261640b472c291061b2129 WHIRLPOOL 3cc1ec912fb192ff1058de5b93e49a994ba30d1501a932290dd5b3df1cd783875621cda56edeb41894cd5fa10c04917e693a40a60be8d742ddd7992bf5d8afeb |
64 |
AUX gcc-configure-texinfo.patch 337 SHA256 74b73a7ecec2d88889876b4db480cd173632f49d5396bb8e5b3c93673f9b5b98 SHA512 a15fba8bf2ff02bdeca54d6f186bfa08c1079c6a8ba0a3beef154483ce5c1b8c497e7ffeec32371968f0037e0ff8384609eb0c367d0155a4e5a7eef8aad084d5 WHIRLPOOL 39d008aad06f7621e4e5db15f5e85a59e583b43f8d247029bd4944466bb60a9795bda157d185c45c329294078e282703a243aad5c468d90c77665dd6336870d4 |
65 |
AUX gcc-spec-env-r1.patch 3148 SHA256 da0a6442eb42bce58cbdc7858b110a2e65fc5bd5b4b780b9b491033de6e302fa SHA512 ecae71577543772cfe1711f1b4a8815c0b5d706ebd01edacd1f07586637d4805e25771f970a6e6d1bb696d4b1b5ef3e0036088a96a9f6beff7ddaee704175d16 WHIRLPOOL 3535605998eabccdee71ba396ed5cefbb8b0a8cb073101f6444c7d01233f3b3904c1b29f4daf0a3417c68de8dbd62a0b7dc367cacfcbfa0c4ee1b69b7df8c6fb |
66 |
AUX gcc-spec-env.patch 1544 SHA256 64b01f29fb853fee5ecda998b66eeaa7ec86ff1fc3b21432bfd69eb543c93e6a SHA512 ce9c1f923e2c6d17347ec2d3d8482351a9644194b2753627389294d43bb4f11b9c2ef41eda1b46ad83d09901a0bedebd5b6b8a57a198646030ab61e8d2d8cb48 WHIRLPOOL b88c9c18e20868b3ff535c3390408ebe8f1304bcec6e70b6472781f684671265860dff4335f2301d3b4d3b73395283b29673f0f5da62414e1094cfcb8130e8d8 |
67 |
-AUX mkinfodir 7324 SHA256 0565353e767e253207adb8b5c9be9ba215a628447e075a4dc7bb3183ed099d2a SHA512 a05f9130d98e4cb4d3254b757de06d772d0a965ac4b5a9a15082b1cb694a2fd32c9c8f550745a9423ba3cfdd1c5e87b6d568a809301772a24cc6e1a414d5f98b WHIRLPOOL 4001ae3f7fb666a84e12432a1a41eacf62ebf922181c279e4d06dad32e44d0b499d13e098e794fdd19a9cff5c438a28e5e9e125fb78e72bb913fa5ddd8e44bae |
68 |
AUX musl-gcc-patches-4.9.3/aarch64.diff 447 SHA256 73acdb1aaec6874236ae23a3283c55ed7675f32d5561f583bab9315b3c85dab7 SHA512 748de2e03e7974b89e0201f1908b3825192ac8d7a2fbe7f5390cb663cee22aa3776162e30e6abd8d7203ad772d2186ff67adf20e9618a1bdda2f25a671cfe4af WHIRLPOOL 50f548b344c33bfbc186fbbd1b385cbbd2651cad07bc531f387b109db736a9f2a293614697aaee6e98a3c21f0a709c9d93b1e4f50c56cca138775514892f354f |
69 |
AUX musl-gcc-patches-4.9.3/arm.diff 1682 SHA256 872312775232ae0e35a94631f67a3163db4e0767206a103ad42edf6b4ca1ed84 SHA512 743f5118c2bc083214cea40f24e641ec31354cafe792c5244a2a8305eafabb88efe03a55c275d69c93073a4dd9cfff82d81ab68bea6faa2da326dbba0644063c WHIRLPOOL a94b6249d24a3e15f7bb450f9405ca6e8f2ae9f2135f2df494454168b8cb6d4a3ba644f9d1014aecc0c8c1db418671ef5e48eb2c942307911a975f376167b05c |
70 |
AUX musl-gcc-patches-4.9.3/gcc-autoconf-musl.diff 2361 SHA256 0b49f18b67a91d809d26b2dab187ae196000549d3837382cf6f70ef605360fcd SHA512 0b7351361a947448e4aa3d022e317523c8cce3f69691e78fae5fb6941d410622d44fb3ade9d8a0ee06fa2212e9fc0abf2b86470592e92dca41d312bf320c07c6 WHIRLPOOL 45dcf5bf5c8a40b7fb1e83d54b4731d834c6fde59a7d6613b7af26e6a8c6ff15b302f9f2f786a0de42a30b34f2271c5c99634a0fecc55118e5513bd199d50559 |
71 |
@@ -57,8 +64,12 @@ DIST gcc-4.9.4-patches-1.0.tar.bz2 22266 SHA256 1a394abb77c75e2212896ad3a62ae1f6 |
72 |
DIST gcc-4.9.4-piepatches-v0.6.4.tar.bz2 14414 SHA256 c67b56f04c653e6a19e36abed8391f8b6bed426bfcfc907237cc37f02dbb5015 SHA512 243fa272ea0e49f700a76508bab3e03bbb353bcb930581b2f87f9a47df5cd3880e29f20b71612b21190adc463849e1e6ac2a38a49c0002b562d93d436f538285 WHIRLPOOL 1e5959441210af6f690398efab96444ab11d136238a9428912e8441eaf0509fe6db359a8aca92a446fce0c75777385475af73b20165a8593f9969e3a25fd0b0f |
73 |
DIST gcc-4.9.4-uclibc-patches-1.0.tar.bz2 2618 SHA256 95f290d0b68114d835515afc424d6096476a45665671784aa71a7a506296e465 SHA512 5a1f44caa9261f4947101379628143869b31dec67fa28605e8e1f3894d4b7120c3f68ba6deb59da7a74fa906e27ab32cd3767761837dc3dfebc37865d349d6db WHIRLPOOL e46b08737cfdc235bfb80117e0389f3969167adf59bcba2a0a1094a20eab2b62f0c952dac44781e43957cb1507cd4e80f37bd8aecbc55dbda6382d93b3a4cf94 |
74 |
DIST gcc-4.9.4.tar.bz2 90097606 SHA256 6c11d292cd01b294f9f84c9a59c230d80e9e4a47e5c6355f046bb36d4f358092 SHA512 93abb78e16277454f41a8e9810f41f66c0fdffdc539a762ff6b67d3037f78db971378683fd2ebf707d1d51c059fad2161fe42d110c330027f40214b7db0f3efe WHIRLPOOL e20045126c21a3edea1fa4a2185ec2bc5feec77ddf967ab9d1e8c33322ad4eafe013bfcaab1ed4e35971d3b70ef373ea3585ebb089c9bbf91bbfca1f1da71236 |
75 |
-DIST gcc-6.1.0-patches-1.0.tar.bz2 4193 SHA256 48882d00b3327fe6578e421d4d90d5f03c22fe30ee80542fc828432ba505dc77 SHA512 ff3fc21bdbc5391058759d7e61e9636665d0cbeb3f3fdb724e1bd09e4d6ae778f7c836e59e8b21540458bde99b503428b190736d3ee7a3764f56ddc1da754d39 WHIRLPOOL 4b648a92aadbdb4bf72652ba83cdd8352ef992449b089311c8e20760317dc0fd008dcc2f797880c869dd1b79cf1162943a323681954dea490f09e7682f28b3cb |
76 |
-DIST gcc-6.1.0.tar.bz2 99267556 SHA256 09c4c85cabebb971b1de732a0219609f93fc0af5f86f6e437fd8d7f832f1a351 SHA512 eeed3e2018b8c012aabce419e8d718fde701e5c3c179b4486c61ba46e5736eecc8fccdd18b01fcd973a42c6ad3116dbbe2ee247fe3757d622d373f93ebaf8d2e WHIRLPOOL fa11fca6c85a31f7c896f0ded40a9208a8588c2b3fddd2cca51f440c712ff83374528b7d1571f8d98dad96e24cb5b14b6af624ef42aff2a85ae99e8621c9b479 |
77 |
+DIST gcc-5.4.0-patches-1.0.tar.bz2 28227 SHA256 ff600369f150129754108322338c3f4f0064d222843a2d82778537f94a22ecbb SHA512 70cd83b142abaa3c22d67d5d58185da2cfa178737ec963e230cc03ea8dc6dc757665c711fae91af4cd91062d3136c6f31a5ee3c4c7440ed9485c6f3632731940 WHIRLPOOL 84a69d2dde582fd486f6c60f78ce9f8c7cc5b480c2989cc1804617eb6526a4a17d20d2ed010bd9fc78019d69caa665428970234090b21f9d4b97217011d4fcd6 |
78 |
+DIST gcc-5.4.0-piepatches-v0.6.5.tar.bz2 14551 SHA256 495eb9110244dac17408cd0eb6977a593577eeb0437e72b60339b8ec394f2fb0 SHA512 4890f0713d261982ab81a20f93c5f65193aa1dfa171e3f9e5867f0b80ec7c1e76c5a997b1a4e6f47f8ce36af54ac91125c5bff8bf6d971b7d77c65a57a40a3c0 WHIRLPOOL 13b74b1ca75cc94f9624fe1b52221a953962c918c2cb932302a3078b6deba4f3e501647ad8a2915edef6301e64c820ed612a6fbb9e1178cf1711fe0045686969 |
79 |
+DIST gcc-5.4.0-uclibc-patches-1.0.tar.bz2 3731 SHA256 a3145faa6c81c0753ba754b735834c38987c356dadaa7c4a625c738e374604b5 SHA512 009f34197e79c5e8c6497a0db01ac45cc657e92e56a663b4f3281661d108b2a129cd977fab5f0064f225d6812ae91e82bab22a2b10ae02c486881eeed85ec7a3 WHIRLPOOL a3598ce0aad7e9110db156005190739abc5b4ceea3c327cb9c747c4cf1b99589c1a9fac170aea346eae030b09ee563f9f990e031ad7dfa1aa19b895898bf2608 |
80 |
+DIST gcc-5.4.0.tar.bz2 95661481 SHA256 608df76dec2d34de6558249d8af4cbee21eceddbcb580d666f7a5a583ca3303a SHA512 2941cc950c8f2409a314df497631f9b0266211aa74746c1839c46e04f1c7c299afe2528d1ef16ea39def408a644ba48f97519ec7a7dd37d260c3e9423514265b WHIRLPOOL ec81c8143e48bc8d9d0bbdc0fa3ca553c805193f53ac46c86127b54565894780dd97281485e396a130567464c753f043458c8e450018c957813f50ff90a40708 |
81 |
+DIST gcc-6.3.0-patches-1.0.tar.bz2 7596 SHA256 6c880468ffa4ad2b324fd18c762dbdf10646089c8ab865c228e166f99a0e049c SHA512 8fc96086bd3da3726687ee9d180d3b5d0a7d5814141d44eac8eb01566a783ec780c8fb8f55f75d6e9c9006b2e407e20cdb5835d541b0b66a47dd60642861734c WHIRLPOOL b1bce94d6134db6c9aff4298c6c7af003e39d0411aa40cd027d2c7d6a256971c81fb557e85b25f1107e9a474cb7d772c3bc62a7a4ab7ff7fca5eeae5b2ca0c94 |
82 |
+DIST gcc-6.3.0.tar.bz2 99903185 SHA256 f06ae7f3f790fbf0f018f6d40e844451e6bc3b7bc96e128e63b09825c1f8b29f SHA512 234dd9b1bdc9a9c6e352216a7ef4ccadc6c07f156006a59759c5e0e6a69f0abcdc14630eff11e3826dd6ba5933a8faa43043f3d1d62df6bd5ab1e82862f9bf78 WHIRLPOOL e79a2d6ad199396b6efd835c1129d049a367174ea33dd3b6247d72461f117c2dd81e5a66f3dd6427ce500e768d3a4453efd0debcb56966d00c7df79d05d54b7d |
83 |
EBUILD gcc-4.7.4-r99.ebuild 2071 SHA256 67b45e6941cd3d7b4b075884295da5ed7cae18f4a0ab4630ac8e64cda70c3aab SHA512 383a1986e74a1ef333a666f298200d7ab9423f30c25da9cf460986fe5bf95f6c43ecf829f90313076108508b2f64f06e188dda8fec9f014f861adca27d876e9b WHIRLPOOL 9dbe06a64f35a0d5f12a968274152e95cf332b87c9e8b689d70a99db6a93a097960604c363dc608932c96250cd634ce65dc544368b4e361ed5bfef535243f3c7 |
84 |
EBUILD gcc-4.8.5-r99.ebuild 2139 SHA256 0b762e2fb8c2bf92488b598c01977b07a3786afe77ce3fe81d4fa7310699567c SHA512 7a5efbefe0a518677d5b7c6552621377cb332a1e91ee57ded0c5095c06a7a5dc1c63c29f726c3cab29aaa12d908e90e6bb30b3e03b70c259b76ec0ed1534de1d WHIRLPOOL d8c2baec3deb6ba4875c9acb3b15ba1ee757744fce41847b7120b76671699ed92204910c7bbb9063f6d6d049b89d54b7e9d34e4e6d210f075994cc00e3c73850 |
85 |
EBUILD gcc-4.8.5-r999.ebuild 2185 SHA256 7b8b261c0d3ea2e34a2f099b4f0a23a5bfd61e814dead44aeb4e45071be2c3f1 SHA512 e8f6e8bba4fd7818c30a555adcf25acbe818919c98204f91e27be04566aa267b9394547045e05e5486437853ceb1b75229d86089f69409a626a9e81e363c12db WHIRLPOOL 872e4f0e40e2b9a0a51002c64e682eca1990c2b968c8917b9a1a7c309075a048ceffd7925bf7f67cb3f304badbf29ee5e94772f5a86503e1e5e42fa7682fb87e |
86 |
@@ -66,5 +77,6 @@ EBUILD gcc-4.9.3-r99.ebuild 2195 SHA256 3f5be66ffc6fb064e14a24cb9005d1835685573f |
87 |
EBUILD gcc-4.9.3-r999.ebuild 1794 SHA256 514b9f6cddb5e6a43c53f866aa501812319bfccf7fb7713316563d55cb139aff SHA512 c7f4aad21658d6acb99f14b3b51707a74387206b9fc3629d962c755a7eb8a963b3df844ba60172305fc2e753fc7178d4723f02a487aeae643c85ff00062b4bd3 WHIRLPOOL c6372f1014c5b8d22023f04b7223db4ae5d898f450f3d5cf286ccd82553f916978fba8d0910dc72fd5cdd1d92ecce9749597b09e252a58ff898d3616221af685 |
88 |
EBUILD gcc-4.9.4-r100.ebuild 2320 SHA256 62a7b580317230c294b8103b2acbfb5ca49afdaf1fd6f2fedbb778a02be65d13 SHA512 fcbc99e45c09a77a4869328df5136c9530297ea810baad10d28faaaab5ec15dcde2b105fe3b30a5190b86740b7bd962a302d9b4c8e65551f226fb2fd00eb4c2e WHIRLPOOL 6b73fa54aa7edc1e44a2b1bbb76f13e8135a21301a7203343e226b2112437749e12f5503a71f3cacc221ebda2d99c8db45b882d1cd014b8731acf3433f5c7c7b |
89 |
EBUILD gcc-4.9.4-r99.ebuild 2268 SHA256 fdb60343669f5a03820920f9ee06d54e42def02475613f3c0221e4234f7cfcc6 SHA512 3b8df38d0600b5e006293e69265f3e9603dab01e40ba5391fc8e517d185388c3fcbcff571a7babb729e19a86ea37fca5b45f800fbf856c4d2c01d3506c5c32b5 WHIRLPOOL 2ae8860e5106d4e4b3680a7a885bdb80e5c5381e9cd608a6f55f6fcb69c9407b675ea2d18a2e8960be4408dea35228c5bc80f14d27a68e1d53f2e4fbfefed0fd |
90 |
-EBUILD gcc-6.1.0.ebuild 1076 SHA256 6d5acd2030e949af48922a3da83541c0720037212c71c1867e5de8373e8bc0b0 SHA512 7f4c657c930a7cb0cfdd34ff8fa811eb2e62834ed0ec094db6bbc5123ea8c86b72df1cf32d6660c0ef2dc3863276081665b95af0a1c47a1ba14802a5559e776d WHIRLPOOL 73f9a4277585013050291df58b6d0c7db7fa65baed51c0a1b9462c212281de9d98d50c63be9d703fd45efb61e596fb74861aa41e17f4ac1917adb4f44961c18a |
91 |
-MISC metadata.xml 2039 SHA256 b200834baf1ac8adf966540ee7e50dbf1397248f08eeff35a8bde6bb16dbcc50 SHA512 b8fe281c88017b4d5d2ac05ea4e074d740b3943bc0d4cd361ec4f161f2549fb6401a2fa7881c06a4eae33ffd9755b6ebc4fa608654ec04838bff49ff22ee74a8 WHIRLPOOL e063f7657a00a1e675a57000fed2fac1c05e986488f3a705c95909ac7a2e74ca8f97c6fb8bfffdb81388a967228a78adbcfa93b166d4095aade5875aaf350fa0 |
92 |
+EBUILD gcc-5.4.0.ebuild 1902 SHA256 bf257d5a8b62951d0aec2b99e23cd6c06ac592ac051f9ee919ddf0b2a5974d90 SHA512 3e8fda17cba283674080d20d2310680a0a9732961eff4bd16bcd17432791c843cd237a08945f93ff3c1d0fea23acb92413eab0f278de97520493f8c8342e34f5 WHIRLPOOL 328a3e6043fc8ff972a4a15e51161d7c95b2308de1e709720d40ed115f848c6087a298bfa0be73df7465633f0cbbbd0f958548180b8baaaa6024fb03f10c2993 |
93 |
+EBUILD gcc-6.3.0.ebuild 793 SHA256 9136dfbecb7e14e89c0ff081f567dfadab5a5ffc414720d1757fe31c6f2b829e SHA512 64be9f178c98322baaf829b93e5721c6392d5350c10137f00fbee243c653e71ae859f24f773ce24fe9daafe0e975aa22c608b352dbe41853b172c5810f8d0dec WHIRLPOOL 65fece4b2e805e0016f7f5acab64cd223e14f11b04eee996b1181d00bb7493d370e44a465a0021224399cf848f922fd05c3e66190f4e124728db7c650f2026a0 |
94 |
+MISC metadata.xml 2442 SHA256 6937e475cde4e13feee8cbe7ff2913a6a5f865bf0bdb5b01fae7e962b3a0af54 SHA512 0215827852bdb43aa26d8bf0e9d9adc6453b98da48c7db78fc48bb96e707e207356db9f4c221104964e5ae3100767dc99db324f45f08f0dba020ea9e38b84d4f WHIRLPOOL 4f9efa23af2765ce3a9965f1d2280d06688959aca037c90ccab06913199612d8854fea2f160547f79a793c990699da9c586e13bbc364a2f1084a9c2a7744af79 |
95 |
|
96 |
diff --git a/sys-devel/gcc/files/4.9.4/boehm_gc.patch b/sys-devel/gcc/files/4.9.4/boehm_gc.patch |
97 |
new file mode 100644 |
98 |
index 0000000..75b921a |
99 |
--- /dev/null |
100 |
+++ b/sys-devel/gcc/files/4.9.4/boehm_gc.patch |
101 |
@@ -0,0 +1,104 @@ |
102 |
+diff -Naur gcc-4.9.4.orig/boehm-gc/dyn_load.c gcc-4.9.4/boehm-gc/dyn_load.c |
103 |
+--- gcc-4.9.4.orig/boehm-gc/dyn_load.c 2012-11-04 14:56:02.000000000 -0800 |
104 |
++++ gcc-4.9.4/boehm-gc/dyn_load.c 2016-12-25 13:22:28.000677992 -0800 |
105 |
+@@ -459,10 +459,7 @@ |
106 |
+ /* For glibc 2.2.4+. Unfortunately, it doesn't work for older */ |
107 |
+ /* versions. Thanks to Jakub Jelinek for most of the code. */ |
108 |
+ |
109 |
+-# if (defined(LINUX) || defined (__GLIBC__)) /* Are others OK here, too? */ \ |
110 |
+- && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2) \ |
111 |
+- || (__GLIBC__ == 2 && __GLIBC_MINOR__ == 2 && defined(DT_CONFIG))) |
112 |
+- |
113 |
++#if defined(LINUX) |
114 |
+ /* We have the header files for a glibc that includes dl_iterate_phdr. */ |
115 |
+ /* It may still not be available in the library on the target system. */ |
116 |
+ /* Thus we also treat it as a weak symbol. */ |
117 |
+diff -Naur gcc-4.9.4.orig/boehm-gc/include/private/gcconfig.h gcc-4.9.4/boehm-gc/include/private/gcconfig.h |
118 |
+--- gcc-4.9.4.orig/boehm-gc/include/private/gcconfig.h 2013-12-21 12:42:39.000000000 -0800 |
119 |
++++ gcc-4.9.4/boehm-gc/include/private/gcconfig.h 2016-12-25 13:22:28.001678000 -0800 |
120 |
+@@ -696,9 +696,7 @@ |
121 |
+ # ifdef __ELF__ |
122 |
+ # define DYNAMIC_LOADING |
123 |
+ # include <features.h> |
124 |
+-# if defined(__GLIBC__)&& __GLIBC__>=2 |
125 |
+-# define SEARCH_FOR_DATA_START |
126 |
+-# else /* !GLIBC2 */ |
127 |
++# if defined(__GLIBC__) && __GLIBC__ < 2 |
128 |
+ extern char **__environ; |
129 |
+ # define DATASTART ((ptr_t)(&__environ)) |
130 |
+ /* hideous kludge: __environ is the first */ |
131 |
+@@ -709,6 +707,8 @@ |
132 |
+ /* would include .rodata, which may */ |
133 |
+ /* contain large read-only data tables */ |
134 |
+ /* that we'd rather not scan. */ |
135 |
++# else |
136 |
++# define SEARCH_FOR_DATA_START |
137 |
+ # endif /* !GLIBC2 */ |
138 |
+ extern int _end[]; |
139 |
+ # define DATAEND (_end) |
140 |
+@@ -1167,9 +1167,7 @@ |
141 |
+ # define DATASTART ((ptr_t)((((word) (_etext)) + 0xfff) & ~0xfff)) |
142 |
+ # endif |
143 |
+ # include <features.h> |
144 |
+-# if defined(__GLIBC__) && __GLIBC__ >= 2 |
145 |
+-# define SEARCH_FOR_DATA_START |
146 |
+-# else |
147 |
++# if defined(__GLIBC__) && __GLIBC__ < 2 |
148 |
+ extern char **__environ; |
149 |
+ # define DATASTART ((ptr_t)(&__environ)) |
150 |
+ /* hideous kludge: __environ is the first */ |
151 |
+@@ -1180,6 +1178,8 @@ |
152 |
+ /* would include .rodata, which may */ |
153 |
+ /* contain large read-only data tables */ |
154 |
+ /* that we'd rather not scan. */ |
155 |
++# else |
156 |
++# define SEARCH_FOR_DATA_START |
157 |
+ # endif |
158 |
+ extern int _end[]; |
159 |
+ # define DATAEND (_end) |
160 |
+@@ -1387,10 +1387,10 @@ |
161 |
+ # define HBLKSIZE 4096 |
162 |
+ # endif |
163 |
+ # define USE_GENERIC_PUSH_REGS |
164 |
+-# if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 2 || __GLIBC__ > 2 |
165 |
+-# define LINUX_STACKBOTTOM |
166 |
+-# else |
167 |
++# if __GLIBC__ == 2 && __GLIBC_MINOR__ < 2 || __GLIBC__ < 2 |
168 |
+ # define STACKBOTTOM 0x80000000 |
169 |
++# else |
170 |
++# define LINUX_STACKBOTTOM |
171 |
+ # endif |
172 |
+ # endif /* Linux */ |
173 |
+ # ifdef EWS4800 |
174 |
+@@ -1904,9 +1904,7 @@ |
175 |
+ # ifdef __ELF__ |
176 |
+ # define DYNAMIC_LOADING |
177 |
+ # include <features.h> |
178 |
+-# if defined(__GLIBC__) && __GLIBC__ >= 2 |
179 |
+-# define SEARCH_FOR_DATA_START |
180 |
+-# else |
181 |
++# if defined(__GLIBC__) && __GLIBC__ < 2 |
182 |
+ extern char **__environ; |
183 |
+ # define DATASTART ((ptr_t)(&__environ)) |
184 |
+ /* hideous kludge: __environ is the first */ |
185 |
+@@ -1917,6 +1915,8 @@ |
186 |
+ /* would include .rodata, which may */ |
187 |
+ /* contain large read-only data tables */ |
188 |
+ /* that we'd rather not scan. */ |
189 |
++# else |
190 |
++# define SEARCH_FOR_DATA_START |
191 |
+ # endif |
192 |
+ extern int _end[]; |
193 |
+ # define DATAEND (_end) |
194 |
+diff -Naur gcc-4.9.4.orig/boehm-gc/os_dep.c gcc-4.9.4/boehm-gc/os_dep.c |
195 |
+--- gcc-4.9.4.orig/boehm-gc/os_dep.c 2013-03-06 07:08:58.000000000 -0800 |
196 |
++++ gcc-4.9.4/boehm-gc/os_dep.c 2016-12-25 13:22:28.002678009 -0800 |
197 |
+@@ -26,7 +26,7 @@ |
198 |
+ # define __KERNEL__ |
199 |
+ # include <asm/signal.h> |
200 |
+ # undef __KERNEL__ |
201 |
+-# else |
202 |
++# elif defined(__GLIBC__) |
203 |
+ /* Kernels prior to 2.1.1 defined struct sigcontext_struct instead of */ |
204 |
+ /* struct sigcontext. libc6 (glibc2) uses "struct sigcontext" in */ |
205 |
+ /* prototypes, so we have to include the top-level sigcontext.h to */ |
206 |
|
207 |
diff --git a/sys-devel/gcc/files/4.9.4/gthread.patch b/sys-devel/gcc/files/4.9.4/gthread.patch |
208 |
new file mode 100644 |
209 |
index 0000000..48aeff1 |
210 |
--- /dev/null |
211 |
+++ b/sys-devel/gcc/files/4.9.4/gthread.patch |
212 |
@@ -0,0 +1,37 @@ |
213 |
+diff -Naur gcc-4.9.4.orig/libgfortran/acinclude.m4 gcc-4.9.4/libgfortran/acinclude.m4 |
214 |
+--- gcc-4.9.4.orig/libgfortran/acinclude.m4 2016-12-24 16:16:53.481696091 -0800 |
215 |
++++ gcc-4.9.4/libgfortran/acinclude.m4 2016-12-24 16:42:52.045622116 -0800 |
216 |
+@@ -100,7 +100,7 @@ |
217 |
+ [Define to 1 if the target supports #pragma weak]) |
218 |
+ fi |
219 |
+ case "$host" in |
220 |
+- *-*-darwin* | *-*-hpux* | *-*-cygwin* | *-*-mingw* ) |
221 |
++ *-*-darwin* | *-*-hpux* | *-*-cygwin* | *-*-mingw* | *-*-musl* ) |
222 |
+ AC_DEFINE(GTHREAD_USE_WEAK, 0, |
223 |
+ [Define to 0 if the target shouldn't use #pragma weak]) |
224 |
+ ;; |
225 |
+diff -Naur gcc-4.9.4.orig/libgfortran/configure gcc-4.9.4/libgfortran/configure |
226 |
+--- gcc-4.9.4.orig/libgfortran/configure 2016-12-24 16:16:53.557696818 -0800 |
227 |
++++ gcc-4.9.4/libgfortran/configure 2016-12-24 16:43:06.557762874 -0800 |
228 |
+@@ -26355,7 +26355,7 @@ |
229 |
+ |
230 |
+ fi |
231 |
+ case "$host" in |
232 |
+- *-*-darwin* | *-*-hpux* | *-*-cygwin* | *-*-mingw* ) |
233 |
++ *-*-darwin* | *-*-hpux* | *-*-cygwin* | *-*-mingw* | *-*-musl* ) |
234 |
+ |
235 |
+ $as_echo "#define GTHREAD_USE_WEAK 0" >>confdefs.h |
236 |
+ |
237 |
+diff -Naur gcc-4.9.4.orig/libstdc++-v3/config/os/generic/os_defines.h gcc-4.9.4/libstdc++-v3/config/os/generic/os_defines.h |
238 |
+--- gcc-4.9.4.orig/libstdc++-v3/config/os/generic/os_defines.h 2016-12-24 16:16:55.523715643 -0800 |
239 |
++++ gcc-4.9.4/libstdc++-v3/config/os/generic/os_defines.h 2016-12-24 16:44:10.273380874 -0800 |
240 |
+@@ -33,4 +33,9 @@ |
241 |
+ // System-specific #define, typedefs, corrections, etc, go here. This |
242 |
+ // file will come before all others. |
243 |
+ |
244 |
++// Disable the weak reference logic in gthr.h for os/generic because it |
245 |
++// is broken on every platform unless there is implementation specific |
246 |
++// workaround in gthr-posix.h and at link-time for static linking. |
247 |
++#define _GLIBCXX_GTHREAD_USE_WEAK 0 |
248 |
++ |
249 |
+ #endif |
250 |
|
251 |
diff --git a/sys-devel/gcc/files/4.9.4/posix_memalign.patch b/sys-devel/gcc/files/4.9.4/posix_memalign.patch |
252 |
new file mode 100644 |
253 |
index 0000000..716aad4 |
254 |
--- /dev/null |
255 |
+++ b/sys-devel/gcc/files/4.9.4/posix_memalign.patch |
256 |
@@ -0,0 +1,29 @@ |
257 |
+diff -Naur gcc-4.9.4.orig/gcc/config/i386/pmm_malloc.h gcc-4.9.4/gcc/config/i386/pmm_malloc.h |
258 |
+--- gcc-4.9.4.orig/gcc/config/i386/pmm_malloc.h 2016-12-24 16:17:07.001825547 -0800 |
259 |
++++ gcc-4.9.4/gcc/config/i386/pmm_malloc.h 2016-12-24 16:20:25.242723710 -0800 |
260 |
+@@ -27,12 +27,13 @@ |
261 |
+ #include <stdlib.h> |
262 |
+ |
263 |
+ /* We can't depend on <stdlib.h> since the prototype of posix_memalign |
264 |
+- may not be visible. */ |
265 |
++ may not be visible and we can't pollute the namespace either. */ |
266 |
+ #ifndef __cplusplus |
267 |
+-extern int posix_memalign (void **, size_t, size_t); |
268 |
++extern int __gcc_posix_memalign (void **, size_t, size_t) |
269 |
+ #else |
270 |
+-extern "C" int posix_memalign (void **, size_t, size_t) throw (); |
271 |
++extern "C" int __gcc_posix_memalign (void **, size_t, size_t) throw () |
272 |
+ #endif |
273 |
++__asm__("posix_memalign"); |
274 |
+ |
275 |
+ static __inline void * |
276 |
+ _mm_malloc (size_t size, size_t alignment) |
277 |
+@@ -42,7 +43,7 @@ |
278 |
+ return malloc (size); |
279 |
+ if (alignment == 2 || (sizeof (void *) == 8 && alignment == 4)) |
280 |
+ alignment = sizeof (void *); |
281 |
+- if (posix_memalign (&ptr, alignment, size) == 0) |
282 |
++ if (__gcc_posix_memalign (&ptr, alignment, size) == 0) |
283 |
+ return ptr; |
284 |
+ else |
285 |
+ return NULL; |
286 |
|
287 |
diff --git a/sys-devel/gcc/files/5.4.0/cilkrts.patch b/sys-devel/gcc/files/5.4.0/cilkrts.patch |
288 |
new file mode 100644 |
289 |
index 0000000..8fed5c2 |
290 |
--- /dev/null |
291 |
+++ b/sys-devel/gcc/files/5.4.0/cilkrts.patch |
292 |
@@ -0,0 +1,46 @@ |
293 |
+diff -Naur gcc-5.4.0.orig/libcilkrts/runtime/os-unix.c gcc-5.4.0/libcilkrts/runtime/os-unix.c |
294 |
+--- gcc-5.4.0.orig/libcilkrts/runtime/os-unix.c 2014-05-21 04:08:58.000000000 -0700 |
295 |
++++ gcc-5.4.0/libcilkrts/runtime/os-unix.c 2016-12-24 15:35:14.225647627 -0800 |
296 |
+@@ -51,6 +51,7 @@ |
297 |
+ #if defined __linux__ |
298 |
+ # include <sys/sysinfo.h> |
299 |
+ # include <sys/syscall.h> |
300 |
++# include <sched.h> |
301 |
+ #elif defined __APPLE__ |
302 |
+ # include <sys/sysctl.h> |
303 |
+ // Uses sysconf(_SC_NPROCESSORS_ONLN) in verbose output |
304 |
+@@ -400,28 +401,19 @@ |
305 |
+ |
306 |
+ COMMON_SYSDEP void __cilkrts_yield(void) |
307 |
+ { |
308 |
+-#if __APPLE__ || __FreeBSD__ || __VXWORKS__ |
309 |
+- // On MacOS, call sched_yield to yield quantum. I'm not sure why we |
310 |
+- // don't do this on Linux also. |
311 |
+- sched_yield(); |
312 |
+-#elif defined(__DragonFly__) |
313 |
+- // On DragonFly BSD, call sched_yield to yield quantum. |
314 |
+- sched_yield(); |
315 |
+-#elif defined(__MIC__) |
316 |
++#if defined(__MIC__) |
317 |
+ // On MIC, pthread_yield() really trashes things. Arch's measurements |
318 |
+ // showed that calling _mm_delay_32() (or doing nothing) was a better |
319 |
+ // option. Delaying 1024 clock cycles is a reasonable compromise between |
320 |
+ // giving up the processor and latency starting up when work becomes |
321 |
+ // available |
322 |
+ _mm_delay_32(1024); |
323 |
+-#elif defined(__ANDROID__) || (defined(__sun__) && defined(__svr4__)) |
324 |
+- // On Android and Solaris, call sched_yield to yield quantum. I'm not |
325 |
+- // sure why we don't do this on Linux also. |
326 |
+- sched_yield(); |
327 |
+-#else |
328 |
+- // On Linux, call pthread_yield (which in turn will call sched_yield) |
329 |
+- // to yield quantum. |
330 |
++#elif defined(__sun__) && !defined(__svr4__) |
331 |
++ // On old SunOS call pthread_yield to yield a quantum. |
332 |
+ pthread_yield(); |
333 |
++#else |
334 |
++ // On other platforms call sched_yield to yield a quantum. |
335 |
++ sched_yield(); |
336 |
+ #endif |
337 |
+ } |
338 |
+ |
339 |
|
340 |
diff --git a/sys-devel/gcc/files/5.4.0/linker_path.patch b/sys-devel/gcc/files/5.4.0/linker_path.patch |
341 |
new file mode 100644 |
342 |
index 0000000..a2584d4 |
343 |
--- /dev/null |
344 |
+++ b/sys-devel/gcc/files/5.4.0/linker_path.patch |
345 |
@@ -0,0 +1,213 @@ |
346 |
+diff -Naur gcc-5.4.0.orig/gcc/config/aarch64/aarch64-linux.h gcc-5.4.0/gcc/config/aarch64/aarch64-linux.h |
347 |
+--- gcc-5.4.0.orig/gcc/config/aarch64/aarch64-linux.h 2015-07-24 09:00:26.000000000 -0700 |
348 |
++++ gcc-5.4.0/gcc/config/aarch64/aarch64-linux.h 2016-12-24 14:48:44.236623207 -0800 |
349 |
+@@ -23,6 +23,9 @@ |
350 |
+ |
351 |
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" |
352 |
+ |
353 |
++#undef MUSL_DYNAMIC_LINKER |
354 |
++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" |
355 |
++ |
356 |
+ #undef ASAN_CC1_SPEC |
357 |
+ #define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}" |
358 |
+ |
359 |
+diff -Naur gcc-5.4.0.orig/gcc/config/arm/linux-eabi.h gcc-5.4.0/gcc/config/arm/linux-eabi.h |
360 |
+--- gcc-5.4.0.orig/gcc/config/arm/linux-eabi.h 2016-12-24 15:27:49.152307307 -0800 |
361 |
++++ gcc-5.4.0/gcc/config/arm/linux-eabi.h 2016-12-24 14:50:04.522429254 -0800 |
362 |
+@@ -77,6 +77,23 @@ |
363 |
+ %{mfloat-abi=soft*:" GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "} \ |
364 |
+ %{!mfloat-abi=*:" GLIBC_DYNAMIC_LINKER_DEFAULT "}" |
365 |
+ |
366 |
++/* For ARM musl currently supports four dynamic linkers: |
367 |
++ - ld-musl-arm.so.1 - for the EABI-derived soft-float ABI |
368 |
++ - ld-musl-armhf.so.1 - for the EABI-derived hard-float ABI |
369 |
++ - ld-musl-armeb.so.1 - for the EABI-derived soft-float ABI, EB |
370 |
++ - ld-musl-armebhf.so.1 - for the EABI-derived hard-float ABI, EB |
371 |
++ musl does not support the legacy OABI mode. |
372 |
++ All the dynamic linkers live in /lib. |
373 |
++ We default to soft-float, EL. */ |
374 |
++#undef MUSL_DYNAMIC_LINKER |
375 |
++#if TARGET_BIG_ENDIAN_DEFAULT |
376 |
++#define MUSL_DYNAMIC_LINKER_E "%{mlittle-endian:;:eb}" |
377 |
++#else |
378 |
++#define MUSL_DYNAMIC_LINKER_E "%{mbig-endian:eb}" |
379 |
++#endif |
380 |
++#define MUSL_DYNAMIC_LINKER \ |
381 |
++ "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}.so.1" |
382 |
++ |
383 |
+ /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to |
384 |
+ use the GNU/Linux version, not the generic BPABI version. */ |
385 |
+ #undef LINK_SPEC |
386 |
+diff -Naur gcc-5.4.0.orig/gcc/config/i386/linux.h gcc-5.4.0/gcc/config/i386/linux.h |
387 |
+--- gcc-5.4.0.orig/gcc/config/i386/linux.h 2015-01-05 04:33:28.000000000 -0800 |
388 |
++++ gcc-5.4.0/gcc/config/i386/linux.h 2016-12-24 14:50:54.802934056 -0800 |
389 |
+@@ -21,3 +21,6 @@ |
390 |
+ |
391 |
+ #define GNU_USER_LINK_EMULATION "elf_i386" |
392 |
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" |
393 |
++ |
394 |
++#undef MUSL_DYNAMIC_LINKER |
395 |
++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1" |
396 |
+diff -Naur gcc-5.4.0.orig/gcc/config/i386/linux64.h gcc-5.4.0/gcc/config/i386/linux64.h |
397 |
+--- gcc-5.4.0.orig/gcc/config/i386/linux64.h 2015-01-05 04:33:28.000000000 -0800 |
398 |
++++ gcc-5.4.0/gcc/config/i386/linux64.h 2016-12-24 14:51:15.579142643 -0800 |
399 |
+@@ -30,3 +30,10 @@ |
400 |
+ #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" |
401 |
+ #define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2" |
402 |
+ #define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2" |
403 |
++ |
404 |
++#undef MUSL_DYNAMIC_LINKER32 |
405 |
++#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-i386.so.1" |
406 |
++#undef MUSL_DYNAMIC_LINKER64 |
407 |
++#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-x86_64.so.1" |
408 |
++#undef MUSL_DYNAMIC_LINKERX32 |
409 |
++#define MUSL_DYNAMIC_LINKERX32 "/lib/ld-musl-x32.so.1" |
410 |
+diff -Naur gcc-5.4.0.orig/gcc/config/microblaze/linux.h gcc-5.4.0/gcc/config/microblaze/linux.h |
411 |
+--- gcc-5.4.0.orig/gcc/config/microblaze/linux.h 2015-05-28 07:08:19.000000000 -0700 |
412 |
++++ gcc-5.4.0/gcc/config/microblaze/linux.h 2016-12-24 14:58:26.290647241 -0800 |
413 |
+@@ -28,10 +28,20 @@ |
414 |
+ #undef TLS_NEEDS_GOT |
415 |
+ #define TLS_NEEDS_GOT 1 |
416 |
+ |
417 |
+-#define DYNAMIC_LINKER "/lib/ld.so.1" |
418 |
++#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1" |
419 |
++ |
420 |
++#if TARGET_BIG_ENDIAN_DEFAULT == 0 /* LE */ |
421 |
++#define MUSL_DYNAMIC_LINKER_E "%{mbig-endian:;:el}" |
422 |
++#else |
423 |
++#define MUSL_DYNAMIC_LINKER_E "%{mlittle-endian:el}" |
424 |
++#endif |
425 |
++ |
426 |
++#undef MUSL_DYNAMIC_LINKER |
427 |
++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-microblaze" MUSL_DYNAMIC_LINKER_E ".so.1" |
428 |
++ |
429 |
+ #undef SUBTARGET_EXTRA_SPECS |
430 |
+ #define SUBTARGET_EXTRA_SPECS \ |
431 |
+- { "dynamic_linker", DYNAMIC_LINKER } |
432 |
++ { "dynamic_linker", GNU_USER_DYNAMIC_LINKER } |
433 |
+ |
434 |
+ #undef LINK_SPEC |
435 |
+ #define LINK_SPEC "%{shared:-shared} \ |
436 |
+diff -Naur gcc-5.4.0.orig/gcc/config/mips/linux.h gcc-5.4.0/gcc/config/mips/linux.h |
437 |
+--- gcc-5.4.0.orig/gcc/config/mips/linux.h 2015-01-05 04:33:28.000000000 -0800 |
438 |
++++ gcc-5.4.0/gcc/config/mips/linux.h 2016-12-24 15:01:34.093670361 -0800 |
439 |
+@@ -37,7 +37,13 @@ |
440 |
+ #define UCLIBC_DYNAMIC_LINKERN32 \ |
441 |
+ "%{mnan=2008:/lib32/ld-uClibc-mipsn8.so.0;:/lib32/ld-uClibc.so.0}" |
442 |
+ |
443 |
++#undef MUSL_DYNAMIC_LINKER32 |
444 |
++#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-mips%{EL:el}%{msoft-float:-sf}.so.1" |
445 |
++#undef MUSL_DYNAMIC_LINKER64 |
446 |
++#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-mips64%{EL:el}%{msoft-float:-sf}.so.1" |
447 |
++#define MUSL_DYNAMIC_LINKERN32 "/lib/ld-musl-mipsn32%{EL:el}%{msoft-float:-sf}.so.1" |
448 |
++ |
449 |
+ #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32" |
450 |
+ #define GNU_USER_DYNAMIC_LINKERN32 \ |
451 |
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32, \ |
452 |
+- BIONIC_DYNAMIC_LINKERN32) |
453 |
++ BIONIC_DYNAMIC_LINKERN32, MUSL_DYNAMIC_LINKERN32) |
454 |
+diff -Naur gcc-5.4.0.orig/gcc/config/rs6000/linux64.h gcc-5.4.0/gcc/config/rs6000/linux64.h |
455 |
+--- gcc-5.4.0.orig/gcc/config/rs6000/linux64.h 2015-03-09 16:18:57.000000000 -0700 |
456 |
++++ gcc-5.4.0/gcc/config/rs6000/linux64.h 2016-12-24 15:03:44.985080397 -0800 |
457 |
+@@ -363,19 +367,32 @@ |
458 |
+ #else |
459 |
+ #define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv2:/lib64/ld64.so.2;:/lib64/ld64.so.1}" |
460 |
+ #endif |
461 |
++ |
462 |
++#define MUSL_DYNAMIC_LINKER32 \ |
463 |
++ "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" |
464 |
++#define MUSL_DYNAMIC_LINKER64 \ |
465 |
++ "/lib/ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" |
466 |
++ |
467 |
+ #define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0" |
468 |
+ #define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0" |
469 |
+ #if DEFAULT_LIBC == LIBC_UCLIBC |
470 |
+-#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}" |
471 |
++#define CHOOSE_DYNAMIC_LINKER(G, U, M) \ |
472 |
++ "%{mglibc:" G ";:%{mmusl:" M ";:" U "}}" |
473 |
+ #elif DEFAULT_LIBC == LIBC_GLIBC |
474 |
+-#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:" U ";:" G "}" |
475 |
++#define CHOOSE_DYNAMIC_LINKER(G, U, M) \ |
476 |
++ "%{muclibc:" U ";:%{mmusl:" M ";:" G "}}" |
477 |
++#elif DEFAULT_LIBC == LIBC_MUSL |
478 |
++#define CHOOSE_DYNAMIC_LINKER(G, U, M) \ |
479 |
++ "%{mglibc:" G ";:%{muclibc:" U ";:" M "}}" |
480 |
+ #else |
481 |
+ #error "Unsupported DEFAULT_LIBC" |
482 |
+ #endif |
483 |
+ #define GNU_USER_DYNAMIC_LINKER32 \ |
484 |
+- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32) |
485 |
++ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32, \ |
486 |
++ MUSL_DYNAMIC_LINKER32) |
487 |
+ #define GNU_USER_DYNAMIC_LINKER64 \ |
488 |
+- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64) |
489 |
++ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64, \ |
490 |
++ MUSL_DYNAMIC_LINKER64) |
491 |
+ |
492 |
+ #undef DEFAULT_ASM_ENDIAN |
493 |
+ #if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN) |
494 |
+diff -Naur gcc-5.4.0.orig/gcc/config/rs6000/sysv4.h gcc-5.4.0/gcc/config/rs6000/sysv4.h |
495 |
+--- gcc-5.4.0.orig/gcc/config/rs6000/sysv4.h 2015-09-24 06:46:45.000000000 -0700 |
496 |
++++ gcc-5.4.0/gcc/config/rs6000/sysv4.h 2016-12-24 15:08:38.507113094 -0800 |
497 |
+@@ -757,17 +762,27 @@ |
498 |
+ |
499 |
+ #define LINK_START_LINUX_SPEC "" |
500 |
+ |
501 |
++#define MUSL_DYNAMIC_LINKER_E ENDIAN_SELECT("","le","") |
502 |
++ |
503 |
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1" |
504 |
+ #define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" |
505 |
++#define MUSL_DYNAMIC_LINKER \ |
506 |
++ "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" |
507 |
+ #if DEFAULT_LIBC == LIBC_UCLIBC |
508 |
+-#define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}" |
509 |
++#define CHOOSE_DYNAMIC_LINKER(G, U, M) \ |
510 |
++ "%{mglibc:" G ";:%{mmusl:" M ";:" U "}}" |
511 |
++#elif DEFAULT_LIBC == LIBC_MUSL |
512 |
++#define CHOOSE_DYNAMIC_LINKER(G, U, M) \ |
513 |
++ "%{mglibc:" G ";:%{muclibc:" U ";:" M "}}" |
514 |
+ #elif !defined (DEFAULT_LIBC) || DEFAULT_LIBC == LIBC_GLIBC |
515 |
+-#define CHOOSE_DYNAMIC_LINKER(G, U) "%{muclibc:" U ";:" G "}" |
516 |
++#define CHOOSE_DYNAMIC_LINKER(G, U, M) \ |
517 |
++ "%{muclibc:" U ";:%{mmusl:" M ";:" G "}}" |
518 |
+ #else |
519 |
+ #error "Unsupported DEFAULT_LIBC" |
520 |
+ #endif |
521 |
+ #define GNU_USER_DYNAMIC_LINKER \ |
522 |
+- CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER) |
523 |
++ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \ |
524 |
++ MUSL_DYNAMIC_LINKER) |
525 |
+ |
526 |
+ #define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \ |
527 |
+ %{rdynamic:-export-dynamic} \ |
528 |
+diff -Naur gcc-5.4.0.orig/gcc/config/sh/linux.h gcc-5.4.0/gcc/config/sh/linux.h |
529 |
+--- gcc-5.4.0.orig/gcc/config/sh/linux.h 2015-01-05 04:33:28.000000000 -0800 |
530 |
++++ gcc-5.4.0/gcc/config/sh/linux.h 2016-12-24 15:09:54.568853072 -0800 |
531 |
+@@ -43,6 +43,27 @@ |
532 |
+ |
533 |
+ #define TARGET_ASM_FILE_END file_end_indicate_exec_stack |
534 |
+ |
535 |
++#if TARGET_ENDIAN_DEFAULT == MASK_LITTLE_ENDIAN |
536 |
++#define MUSL_DYNAMIC_LINKER_E "%{mb:eb}" |
537 |
++#else |
538 |
++#define MUSL_DYNAMIC_LINKER_E "%{!ml:eb}" |
539 |
++#endif |
540 |
++ |
541 |
++#if TARGET_CPU_DEFAULT & (MASK_HARD_SH2A_DOUBLE | MASK_SH4) |
542 |
++/* "-nofpu" if any nofpu option is specified. */ |
543 |
++#define MUSL_DYNAMIC_LINKER_FP \ |
544 |
++ "%{m1|m2|m2a-nofpu|m3|m4-nofpu|m4-100-nofpu|m4-200-nofpu|m4-300-nofpu|" \ |
545 |
++ "m4-340|m4-400|m4-500|m4al:-nofpu}" |
546 |
++#else |
547 |
++/* "-nofpu" if none of the hard fpu options are specified. */ |
548 |
++#define MUSL_DYNAMIC_LINKER_FP "%{m2a|m4|m4-100|m4-200|m4-300|m4a:;:-nofpu}" |
549 |
++#endif |
550 |
++ |
551 |
++#undef MUSL_DYNAMIC_LINKER |
552 |
++#define MUSL_DYNAMIC_LINKER \ |
553 |
++ "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E MUSL_DYNAMIC_LINKER_FP \ |
554 |
++ "%{mfdpic:-fdpic}.so.1" |
555 |
++ |
556 |
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" |
557 |
+ |
558 |
+ #undef SUBTARGET_LINK_EMUL_SUFFIX |
559 |
|
560 |
diff --git a/sys-devel/gcc/files/5.4.0/musl.patch b/sys-devel/gcc/files/5.4.0/musl.patch |
561 |
new file mode 100644 |
562 |
index 0000000..c1541b2 |
563 |
--- /dev/null |
564 |
+++ b/sys-devel/gcc/files/5.4.0/musl.patch |
565 |
@@ -0,0 +1,502 @@ |
566 |
+diff -Naur gcc-5.4.0.orig/fixincludes/mkfixinc.sh gcc-5.4.0/fixincludes/mkfixinc.sh |
567 |
+--- gcc-5.4.0.orig/fixincludes/mkfixinc.sh 2012-10-28 14:42:48.000000000 -0700 |
568 |
++++ gcc-5.4.0/fixincludes/mkfixinc.sh 2016-12-24 14:47:04.324620119 -0800 |
569 |
+@@ -19,7 +19,8 @@ |
570 |
+ powerpc-*-eabi* | \ |
571 |
+ powerpc-*-rtems* | \ |
572 |
+ powerpcle-*-eabisim* | \ |
573 |
+- powerpcle-*-eabi* ) |
574 |
++ powerpcle-*-eabi* | \ |
575 |
++ *-musl* ) |
576 |
+ # IF there is no include fixing, |
577 |
+ # THEN create a no-op fixer and exit |
578 |
+ (echo "#! /bin/sh" ; echo "exit 0" ) > ${target} |
579 |
+diff -Naur gcc-5.4.0.orig/gcc/config/glibc-stdint.h gcc-5.4.0/gcc/config/glibc-stdint.h |
580 |
+--- gcc-5.4.0.orig/gcc/config/glibc-stdint.h 2015-01-05 04:33:28.000000000 -0800 |
581 |
++++ gcc-5.4.0/gcc/config/glibc-stdint.h 2016-12-24 15:24:46.234527766 -0800 |
582 |
+@@ -22,6 +22,12 @@ |
583 |
+ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
584 |
+ <http://www.gnu.org/licenses/>. */ |
585 |
+ |
586 |
++/* Systems using musl libc should use this header and make sure |
587 |
++ OPTION_MUSL is defined correctly before using the TYPE macros. */ |
588 |
++#ifndef OPTION_MUSL |
589 |
++#define OPTION_MUSL 0 |
590 |
++#endif |
591 |
++ |
592 |
+ #define SIG_ATOMIC_TYPE "int" |
593 |
+ |
594 |
+ #define INT8_TYPE "signed char" |
595 |
+@@ -43,12 +49,12 @@ |
596 |
+ #define UINT_LEAST64_TYPE (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "long long unsigned int") |
597 |
+ |
598 |
+ #define INT_FAST8_TYPE "signed char" |
599 |
+-#define INT_FAST16_TYPE (LONG_TYPE_SIZE == 64 ? "long int" : "int") |
600 |
+-#define INT_FAST32_TYPE (LONG_TYPE_SIZE == 64 ? "long int" : "int") |
601 |
++#define INT_FAST16_TYPE (LONG_TYPE_SIZE == 64 && !OPTION_MUSL ? "long int" : "int") |
602 |
++#define INT_FAST32_TYPE (LONG_TYPE_SIZE == 64 && !OPTION_MUSL ? "long int" : "int") |
603 |
+ #define INT_FAST64_TYPE (LONG_TYPE_SIZE == 64 ? "long int" : "long long int") |
604 |
+ #define UINT_FAST8_TYPE "unsigned char" |
605 |
+-#define UINT_FAST16_TYPE (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "unsigned int") |
606 |
+-#define UINT_FAST32_TYPE (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "unsigned int") |
607 |
++#define UINT_FAST16_TYPE (LONG_TYPE_SIZE == 64 && !OPTION_MUSL ? "long unsigned int" : "unsigned int") |
608 |
++#define UINT_FAST32_TYPE (LONG_TYPE_SIZE == 64 && !OPTION_MUSL ? "long unsigned int" : "unsigned int") |
609 |
+ #define UINT_FAST64_TYPE (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "long long unsigned int") |
610 |
+ |
611 |
+ #define INTPTR_TYPE (LONG_TYPE_SIZE == 64 ? "long int" : "int") |
612 |
+diff -Naur gcc-5.4.0.orig/gcc/config/linux.c gcc-5.4.0/gcc/config/linux.c |
613 |
+--- gcc-5.4.0.orig/gcc/config/linux.c 2015-01-05 04:33:28.000000000 -0800 |
614 |
++++ gcc-5.4.0/gcc/config/linux.c 2016-12-24 15:35:58.913083568 -0800 |
615 |
+@@ -26,7 +26,7 @@ |
616 |
+ bool |
617 |
+ linux_libc_has_function (enum function_class fn_class) |
618 |
+ { |
619 |
+- if (OPTION_GLIBC) |
620 |
++ if (OPTION_GLIBC || OPTION_MUSL) |
621 |
+ return true; |
622 |
+ if (OPTION_BIONIC) |
623 |
+ if (fn_class == function_c94 |
624 |
+diff -Naur gcc-5.4.0.orig/gcc/config/linux.h gcc-5.4.0/gcc/config/linux.h |
625 |
+--- gcc-5.4.0.orig/gcc/config/linux.h 2015-01-05 04:33:28.000000000 -0800 |
626 |
++++ gcc-5.4.0/gcc/config/linux.h 2016-12-24 14:55:26.718712791 -0800 |
627 |
+@@ -32,10 +32,14 @@ |
628 |
+ #define OPTION_GLIBC (DEFAULT_LIBC == LIBC_GLIBC) |
629 |
+ #define OPTION_UCLIBC (DEFAULT_LIBC == LIBC_UCLIBC) |
630 |
+ #define OPTION_BIONIC (DEFAULT_LIBC == LIBC_BIONIC) |
631 |
++#undef OPTION_MUSL |
632 |
++#define OPTION_MUSL (DEFAULT_LIBC == LIBC_MUSL) |
633 |
+ #else |
634 |
+ #define OPTION_GLIBC (linux_libc == LIBC_GLIBC) |
635 |
+ #define OPTION_UCLIBC (linux_libc == LIBC_UCLIBC) |
636 |
+ #define OPTION_BIONIC (linux_libc == LIBC_BIONIC) |
637 |
++#undef OPTION_MUSL |
638 |
++#define OPTION_MUSL (linux_libc == LIBC_MUSL) |
639 |
+ #endif |
640 |
+ |
641 |
+ #define GNU_USER_TARGET_OS_CPP_BUILTINS() \ |
642 |
+@@ -50,21 +54,25 @@ |
643 |
+ } while (0) |
644 |
+ |
645 |
+ /* Determine which dynamic linker to use depending on whether GLIBC or |
646 |
+- uClibc or Bionic is the default C library and whether |
647 |
+- -muclibc or -mglibc or -mbionic has been passed to change the default. */ |
648 |
++ uClibc or Bionic or musl is the default C library and whether |
649 |
++ -muclibc or -mglibc or -mbionic or -mmusl has been passed to change |
650 |
++ the default. */ |
651 |
+ |
652 |
+-#define CHOOSE_DYNAMIC_LINKER1(LIBC1, LIBC2, LIBC3, LD1, LD2, LD3) \ |
653 |
+- "%{" LIBC2 ":" LD2 ";:%{" LIBC3 ":" LD3 ";:" LD1 "}}" |
654 |
++#define CHOOSE_DYNAMIC_LINKER1(LIBC1, LIBC2, LIBC3, LIBC4, LD1, LD2, LD3, LD4) \ |
655 |
++ "%{" LIBC2 ":" LD2 ";:%{" LIBC3 ":" LD3 ";:%{" LIBC4 ":" LD4 ";:" LD1 "}}}" |
656 |
+ |
657 |
+ #if DEFAULT_LIBC == LIBC_GLIBC |
658 |
+-#define CHOOSE_DYNAMIC_LINKER(G, U, B) \ |
659 |
+- CHOOSE_DYNAMIC_LINKER1 ("mglibc", "muclibc", "mbionic", G, U, B) |
660 |
++#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \ |
661 |
++ CHOOSE_DYNAMIC_LINKER1 ("mglibc", "muclibc", "mbionic", "mmusl", G, U, B, M) |
662 |
+ #elif DEFAULT_LIBC == LIBC_UCLIBC |
663 |
+-#define CHOOSE_DYNAMIC_LINKER(G, U, B) \ |
664 |
+- CHOOSE_DYNAMIC_LINKER1 ("muclibc", "mglibc", "mbionic", U, G, B) |
665 |
++#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \ |
666 |
++ CHOOSE_DYNAMIC_LINKER1 ("muclibc", "mglibc", "mbionic", "mmusl", U, G, B, M) |
667 |
+ #elif DEFAULT_LIBC == LIBC_BIONIC |
668 |
+-#define CHOOSE_DYNAMIC_LINKER(G, U, B) \ |
669 |
+- CHOOSE_DYNAMIC_LINKER1 ("mbionic", "mglibc", "muclibc", B, G, U) |
670 |
++#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \ |
671 |
++ CHOOSE_DYNAMIC_LINKER1 ("mbionic", "mglibc", "muclibc", "mmusl", B, G, U, M) |
672 |
++#elif DEFAULT_LIBC == LIBC_MUSL |
673 |
++#define CHOOSE_DYNAMIC_LINKER(G, U, B, M) \ |
674 |
++ CHOOSE_DYNAMIC_LINKER1 ("mmusl", "mglibc", "muclibc", "mbionic", M, G, U, B) |
675 |
+ #else |
676 |
+ #error "Unsupported DEFAULT_LIBC" |
677 |
+ #endif /* DEFAULT_LIBC */ |
678 |
+@@ -81,24 +89,101 @@ |
679 |
+ #define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker" |
680 |
+ #define BIONIC_DYNAMIC_LINKER64 "/system/bin/linker64" |
681 |
+ #define BIONIC_DYNAMIC_LINKERX32 "/system/bin/linkerx32" |
682 |
++/* Should be redefined for each target that supports musl. */ |
683 |
++#define MUSL_DYNAMIC_LINKER "/dev/null" |
684 |
++#define MUSL_DYNAMIC_LINKER32 "/dev/null" |
685 |
++#define MUSL_DYNAMIC_LINKER64 "/dev/null" |
686 |
++#define MUSL_DYNAMIC_LINKERX32 "/dev/null" |
687 |
+ |
688 |
+ #define GNU_USER_DYNAMIC_LINKER \ |
689 |
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \ |
690 |
+- BIONIC_DYNAMIC_LINKER) |
691 |
++ BIONIC_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER) |
692 |
+ #define GNU_USER_DYNAMIC_LINKER32 \ |
693 |
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER32, \ |
694 |
+- BIONIC_DYNAMIC_LINKER32) |
695 |
++ BIONIC_DYNAMIC_LINKER32, MUSL_DYNAMIC_LINKER32) |
696 |
+ #define GNU_USER_DYNAMIC_LINKER64 \ |
697 |
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64, \ |
698 |
+- BIONIC_DYNAMIC_LINKER64) |
699 |
++ BIONIC_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKER64) |
700 |
+ #define GNU_USER_DYNAMIC_LINKERX32 \ |
701 |
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERX32, UCLIBC_DYNAMIC_LINKERX32, \ |
702 |
+- BIONIC_DYNAMIC_LINKERX32) |
703 |
++ BIONIC_DYNAMIC_LINKERX32, MUSL_DYNAMIC_LINKERX32) |
704 |
+ |
705 |
+ /* Whether we have Bionic libc runtime */ |
706 |
+ #undef TARGET_HAS_BIONIC |
707 |
+ #define TARGET_HAS_BIONIC (OPTION_BIONIC) |
708 |
+ |
709 |
++/* musl avoids problematic includes by rearranging the include directories. |
710 |
++ * Unfortunately, this is mostly duplicated from cppdefault.c */ |
711 |
++#if DEFAULT_LIBC == LIBC_MUSL |
712 |
++#define INCLUDE_DEFAULTS_MUSL_GPP \ |
713 |
++ { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, \ |
714 |
++ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, \ |
715 |
++ { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, \ |
716 |
++ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 }, \ |
717 |
++ { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, \ |
718 |
++ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, |
719 |
++ |
720 |
++#ifdef LOCAL_INCLUDE_DIR |
721 |
++#define INCLUDE_DEFAULTS_MUSL_LOCAL \ |
722 |
++ { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, \ |
723 |
++ { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 }, |
724 |
++#else |
725 |
++#define INCLUDE_DEFAULTS_MUSL_LOCAL |
726 |
++#endif |
727 |
++ |
728 |
++#ifdef PREFIX_INCLUDE_DIR |
729 |
++#define INCLUDE_DEFAULTS_MUSL_PREFIX \ |
730 |
++ { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0}, |
731 |
++#else |
732 |
++#define INCLUDE_DEFAULTS_MUSL_PREFIX |
733 |
++#endif |
734 |
++ |
735 |
++#ifdef CROSS_INCLUDE_DIR |
736 |
++#define INCLUDE_DEFAULTS_MUSL_CROSS \ |
737 |
++ { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0}, |
738 |
++#else |
739 |
++#define INCLUDE_DEFAULTS_MUSL_CROSS |
740 |
++#endif |
741 |
++ |
742 |
++#ifdef TOOL_INCLUDE_DIR |
743 |
++#define INCLUDE_DEFAULTS_MUSL_TOOL \ |
744 |
++ { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0}, |
745 |
++#else |
746 |
++#define INCLUDE_DEFAULTS_MUSL_TOOL |
747 |
++#endif |
748 |
++ |
749 |
++#ifdef NATIVE_SYSTEM_HEADER_DIR |
750 |
++#define INCLUDE_DEFAULTS_MUSL_NATIVE \ |
751 |
++ { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 }, \ |
752 |
++ { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 0 }, |
753 |
++#else |
754 |
++#define INCLUDE_DEFAULTS_MUSL_NATIVE |
755 |
++#endif |
756 |
++ |
757 |
++#if defined (CROSS_DIRECTORY_STRUCTURE) && !defined (TARGET_SYSTEM_ROOT) |
758 |
++# undef INCLUDE_DEFAULTS_MUSL_LOCAL |
759 |
++# define INCLUDE_DEFAULTS_MUSL_LOCAL |
760 |
++# undef INCLUDE_DEFAULTS_MUSL_NATIVE |
761 |
++# define INCLUDE_DEFAULTS_MUSL_NATIVE |
762 |
++#else |
763 |
++# undef INCLUDE_DEFAULTS_MUSL_CROSS |
764 |
++# define INCLUDE_DEFAULTS_MUSL_CROSS |
765 |
++#endif |
766 |
++ |
767 |
++#undef INCLUDE_DEFAULTS |
768 |
++#define INCLUDE_DEFAULTS \ |
769 |
++ { \ |
770 |
++ INCLUDE_DEFAULTS_MUSL_GPP \ |
771 |
++ INCLUDE_DEFAULTS_MUSL_LOCAL \ |
772 |
++ INCLUDE_DEFAULTS_MUSL_PREFIX \ |
773 |
++ INCLUDE_DEFAULTS_MUSL_CROSS \ |
774 |
++ INCLUDE_DEFAULTS_MUSL_TOOL \ |
775 |
++ INCLUDE_DEFAULTS_MUSL_NATIVE \ |
776 |
++ { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 }, \ |
777 |
++ { 0, 0, 0, 0, 0, 0 } \ |
778 |
++ } |
779 |
++#endif |
780 |
++ |
781 |
+ #if (DEFAULT_LIBC == LIBC_UCLIBC) && defined (SINGLE_LIBC) /* uClinux */ |
782 |
+ /* This is a *uclinux* target. We don't define below macros to normal linux |
783 |
+ versions, because doing so would require *uclinux* targets to include |
784 |
+diff -Naur gcc-5.4.0.orig/gcc/config/linux.opt gcc-5.4.0/gcc/config/linux.opt |
785 |
+--- gcc-5.4.0.orig/gcc/config/linux.opt 2015-01-05 04:33:28.000000000 -0800 |
786 |
++++ gcc-5.4.0/gcc/config/linux.opt 2016-12-24 14:56:23.784327534 -0800 |
787 |
+@@ -28,5 +28,9 @@ |
788 |
+ Use GNU C library |
789 |
+ |
790 |
+ muclibc |
791 |
+-Target Report RejectNegative Var(linux_libc,LIBC_UCLIBC) Negative(mbionic) |
792 |
++Target Report RejectNegative Var(linux_libc,LIBC_UCLIBC) Negative(mmusl) |
793 |
+ Use uClibc C library |
794 |
++ |
795 |
++mmusl |
796 |
++Target Report RejectNegative Var(linux_libc,LIBC_MUSL) Negative(mbionic) |
797 |
++Use musl C library. |
798 |
+diff -Naur gcc-5.4.0.orig/gcc/config/rs6000/linux64.h gcc-5.4.0/gcc/config/rs6000/linux64.h |
799 |
+--- gcc-5.4.0.orig/gcc/config/rs6000/linux64.h 2015-03-09 16:18:57.000000000 -0700 |
800 |
++++ gcc-5.4.0/gcc/config/rs6000/linux64.h 2016-12-24 15:03:44.985080397 -0800 |
801 |
+@@ -299,10 +299,14 @@ |
802 |
+ #define OPTION_GLIBC (DEFAULT_LIBC == LIBC_GLIBC) |
803 |
+ #define OPTION_UCLIBC (DEFAULT_LIBC == LIBC_UCLIBC) |
804 |
+ #define OPTION_BIONIC (DEFAULT_LIBC == LIBC_BIONIC) |
805 |
++#undef OPTION_MUSL |
806 |
++#define OPTION_MUSL (DEFAULT_LIBC == LIBC_MUSL) |
807 |
+ #else |
808 |
+ #define OPTION_GLIBC (linux_libc == LIBC_GLIBC) |
809 |
+ #define OPTION_UCLIBC (linux_libc == LIBC_UCLIBC) |
810 |
+ #define OPTION_BIONIC (linux_libc == LIBC_BIONIC) |
811 |
++#undef OPTION_MUSL |
812 |
++#define OPTION_MUSL (linux_libc == LIBC_MUSL) |
813 |
+ #endif |
814 |
+ |
815 |
+ /* Determine what functions are present at the runtime; |
816 |
+diff -Naur gcc-5.4.0.orig/gcc/config/rs6000/sysv4.h gcc-5.4.0/gcc/config/rs6000/sysv4.h |
817 |
+--- gcc-5.4.0.orig/gcc/config/rs6000/sysv4.h 2015-09-24 06:46:45.000000000 -0700 |
818 |
++++ gcc-5.4.0/gcc/config/rs6000/sysv4.h 2016-12-24 15:08:38.507113094 -0800 |
819 |
+@@ -943,3 +959,73 @@ |
820 |
+ /* This target uses the sysv4.opt file. */ |
821 |
+ #define TARGET_USES_SYSV4_OPT 1 |
822 |
+ |
823 |
++/* Include order changes for musl, same as in generic linux.h. */ |
824 |
++#if DEFAULT_LIBC == LIBC_MUSL |
825 |
++#define INCLUDE_DEFAULTS_MUSL_GPP \ |
826 |
++ { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, \ |
827 |
++ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, \ |
828 |
++ { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, \ |
829 |
++ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 }, \ |
830 |
++ { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, \ |
831 |
++ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, |
832 |
++ |
833 |
++#ifdef LOCAL_INCLUDE_DIR |
834 |
++#define INCLUDE_DEFAULTS_MUSL_LOCAL \ |
835 |
++ { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, \ |
836 |
++ { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 }, |
837 |
++#else |
838 |
++#define INCLUDE_DEFAULTS_MUSL_LOCAL |
839 |
++#endif |
840 |
++ |
841 |
++#ifdef PREFIX_INCLUDE_DIR |
842 |
++#define INCLUDE_DEFAULTS_MUSL_PREFIX \ |
843 |
++ { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0}, |
844 |
++#else |
845 |
++#define INCLUDE_DEFAULTS_MUSL_PREFIX |
846 |
++#endif |
847 |
++ |
848 |
++#ifdef CROSS_INCLUDE_DIR |
849 |
++#define INCLUDE_DEFAULTS_MUSL_CROSS \ |
850 |
++ { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0}, |
851 |
++#else |
852 |
++#define INCLUDE_DEFAULTS_MUSL_CROSS |
853 |
++#endif |
854 |
++ |
855 |
++#ifdef TOOL_INCLUDE_DIR |
856 |
++#define INCLUDE_DEFAULTS_MUSL_TOOL \ |
857 |
++ { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0}, |
858 |
++#else |
859 |
++#define INCLUDE_DEFAULTS_MUSL_TOOL |
860 |
++#endif |
861 |
++ |
862 |
++#ifdef NATIVE_SYSTEM_HEADER_DIR |
863 |
++#define INCLUDE_DEFAULTS_MUSL_NATIVE \ |
864 |
++ { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 }, \ |
865 |
++ { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 0 }, |
866 |
++#else |
867 |
++#define INCLUDE_DEFAULTS_MUSL_NATIVE |
868 |
++#endif |
869 |
++ |
870 |
++#if defined (CROSS_DIRECTORY_STRUCTURE) && !defined (TARGET_SYSTEM_ROOT) |
871 |
++# undef INCLUDE_DEFAULTS_MUSL_LOCAL |
872 |
++# define INCLUDE_DEFAULTS_MUSL_LOCAL |
873 |
++# undef INCLUDE_DEFAULTS_MUSL_NATIVE |
874 |
++# define INCLUDE_DEFAULTS_MUSL_NATIVE |
875 |
++#else |
876 |
++# undef INCLUDE_DEFAULTS_MUSL_CROSS |
877 |
++# define INCLUDE_DEFAULTS_MUSL_CROSS |
878 |
++#endif |
879 |
++ |
880 |
++#undef INCLUDE_DEFAULTS |
881 |
++#define INCLUDE_DEFAULTS \ |
882 |
++ { \ |
883 |
++ INCLUDE_DEFAULTS_MUSL_GPP \ |
884 |
++ INCLUDE_DEFAULTS_MUSL_LOCAL \ |
885 |
++ INCLUDE_DEFAULTS_MUSL_PREFIX \ |
886 |
++ INCLUDE_DEFAULTS_MUSL_CROSS \ |
887 |
++ INCLUDE_DEFAULTS_MUSL_TOOL \ |
888 |
++ INCLUDE_DEFAULTS_MUSL_NATIVE \ |
889 |
++ { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 }, \ |
890 |
++ { 0, 0, 0, 0, 0, 0 } \ |
891 |
++ } |
892 |
++#endif |
893 |
+diff -Naur gcc-5.4.0.orig/gcc/config.gcc gcc-5.4.0/gcc/config.gcc |
894 |
+--- gcc-5.4.0.orig/gcc/config.gcc 2016-12-24 15:28:09.922509373 -0800 |
895 |
++++ gcc-5.4.0/gcc/config.gcc 2016-12-24 15:39:19.482040184 -0800 |
896 |
+@@ -575,7 +575,7 @@ |
897 |
+ esac |
898 |
+ |
899 |
+ # Common C libraries. |
900 |
+-tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3" |
901 |
++tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4" |
902 |
+ |
903 |
+ # 32-bit x86 processors supported by --with-arch=. Each processor |
904 |
+ # MUST be separated by exactly one space. |
905 |
+@@ -720,6 +720,9 @@ |
906 |
+ *-*-*uclibc*) |
907 |
+ tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC" |
908 |
+ ;; |
909 |
++ *-*-*musl*) |
910 |
++ tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL" |
911 |
++ ;; |
912 |
+ *) |
913 |
+ tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC" |
914 |
+ ;; |
915 |
+@@ -1438,7 +1441,7 @@ |
916 |
+ extra_options="${extra_options} linux-android.opt" |
917 |
+ # Assume modern glibc if not targeting Android nor uclibc. |
918 |
+ case ${target} in |
919 |
+- *-*-*android*|*-*-*uclibc*) |
920 |
++ *-*-*android*|*-*-*uclibc*|*-*-*musl*) |
921 |
+ ;; |
922 |
+ *) |
923 |
+ default_gnu_indirect_function=yes |
924 |
+@@ -1507,7 +1510,7 @@ |
925 |
+ extra_options="${extra_options} linux-android.opt" |
926 |
+ # Assume modern glibc if not targeting Android nor uclibc. |
927 |
+ case ${target} in |
928 |
+- *-*-*android*|*-*-*uclibc*) |
929 |
++ *-*-*android*|*-*-*uclibc*|*-*-*musl*) |
930 |
+ ;; |
931 |
+ *) |
932 |
+ default_gnu_indirect_function=yes |
933 |
+diff -Naur gcc-5.4.0.orig/gcc/configure gcc-5.4.0/gcc/configure |
934 |
+--- gcc-5.4.0.orig/gcc/configure 2016-12-24 15:28:54.117939552 -0800 |
935 |
++++ gcc-5.4.0/gcc/configure 2016-12-24 15:13:46.057105137 -0800 |
936 |
+@@ -27837,6 +27837,9 @@ |
937 |
+ else |
938 |
+ gcc_cv_libc_provides_ssp=no |
939 |
+ case "$target" in |
940 |
++ *-*-musl*) |
941 |
++ # All versions of musl provide stack protector |
942 |
++ gcc_cv_libc_provides_ssp=yes;; |
943 |
+ *-*-linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu) |
944 |
+ # glibc 2.4 and later provides __stack_chk_fail and |
945 |
+ # either __stack_chk_guard, or TLS access to stack guard canary. |
946 |
+@@ -27869,6 +27872,7 @@ |
947 |
+ # <http://gcc.gnu.org/ml/gcc/2008-10/msg00130.html>) and for now |
948 |
+ # simply assert that glibc does provide this, which is true for all |
949 |
+ # realistically usable GNU/Hurd configurations. |
950 |
++ # All supported versions of musl provide it as well |
951 |
+ gcc_cv_libc_provides_ssp=yes;; |
952 |
+ *-*-darwin* | *-*-freebsd*) |
953 |
+ ac_fn_c_check_func "$LINENO" "__stack_chk_fail" "ac_cv_func___stack_chk_fail" |
954 |
+@@ -27965,6 +27969,9 @@ |
955 |
+ gcc_cv_target_dl_iterate_phdr=no |
956 |
+ fi |
957 |
+ ;; |
958 |
++ *-linux-musl*) |
959 |
++ gcc_cv_target_dl_iterate_phdr=yes |
960 |
++ ;; |
961 |
+ esac |
962 |
+ |
963 |
+ if test x$gcc_cv_target_dl_iterate_phdr = xyes; then |
964 |
+diff -Naur gcc-5.4.0.orig/gcc/configure.ac gcc-5.4.0/gcc/configure.ac |
965 |
+--- gcc-5.4.0.orig/gcc/configure.ac 2016-12-24 15:28:32.129725419 -0800 |
966 |
++++ gcc-5.4.0/gcc/configure.ac 2016-12-24 15:14:52.372750299 -0800 |
967 |
+@@ -5287,6 +5287,9 @@ |
968 |
+ gcc_cv_libc_provides_ssp, |
969 |
+ [gcc_cv_libc_provides_ssp=no |
970 |
+ case "$target" in |
971 |
++ *-*-musl*) |
972 |
++ # All versions of musl provide stack protector |
973 |
++ gcc_cv_libc_provides_ssp=yes;; |
974 |
+ *-*-linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu) |
975 |
+ # glibc 2.4 and later provides __stack_chk_fail and |
976 |
+ # either __stack_chk_guard, or TLS access to stack guard canary. |
977 |
+@@ -5313,6 +5316,7 @@ |
978 |
+ # <http://gcc.gnu.org/ml/gcc/2008-10/msg00130.html>) and for now |
979 |
+ # simply assert that glibc does provide this, which is true for all |
980 |
+ # realistically usable GNU/Hurd configurations. |
981 |
++ # All supported versions of musl provide it as well |
982 |
+ gcc_cv_libc_provides_ssp=yes;; |
983 |
+ *-*-darwin* | *-*-freebsd*) |
984 |
+ AC_CHECK_FUNC(__stack_chk_fail,[gcc_cv_libc_provides_ssp=yes], |
985 |
+@@ -5386,6 +5390,9 @@ |
986 |
+ gcc_cv_target_dl_iterate_phdr=no |
987 |
+ fi |
988 |
+ ;; |
989 |
++ *-linux-musl*) |
990 |
++ gcc_cv_target_dl_iterate_phdr=yes |
991 |
++ ;; |
992 |
+ esac |
993 |
+ GCC_TARGET_TEMPLATE([TARGET_DL_ITERATE_PHDR]) |
994 |
+ if test x$gcc_cv_target_dl_iterate_phdr = xyes; then |
995 |
+diff -Naur gcc-5.4.0.orig/libgcc/unwind-dw2-fde-dip.c gcc-5.4.0/libgcc/unwind-dw2-fde-dip.c |
996 |
+--- gcc-5.4.0.orig/libgcc/unwind-dw2-fde-dip.c 2015-01-27 02:02:26.000000000 -0800 |
997 |
++++ gcc-5.4.0/libgcc/unwind-dw2-fde-dip.c 2016-12-24 15:16:56.850961302 -0800 |
998 |
+@@ -59,6 +59,12 @@ |
999 |
+ |
1000 |
+ #if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ |
1001 |
+ && defined(TARGET_DL_ITERATE_PHDR) \ |
1002 |
++ && defined(__linux__) |
1003 |
++# define USE_PT_GNU_EH_FRAME |
1004 |
++#endif |
1005 |
++ |
1006 |
++#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ |
1007 |
++ && defined(TARGET_DL_ITERATE_PHDR) \ |
1008 |
+ && (defined(__DragonFly__) || defined(__FreeBSD__)) |
1009 |
+ # define ElfW __ElfN |
1010 |
+ # define USE_PT_GNU_EH_FRAME |
1011 |
+diff -Naur gcc-5.4.0.orig/libitm/config/arm/hwcap.cc gcc-5.4.0/libitm/config/arm/hwcap.cc |
1012 |
+--- gcc-5.4.0.orig/libitm/config/arm/hwcap.cc 2015-01-05 04:33:28.000000000 -0800 |
1013 |
++++ gcc-5.4.0/libitm/config/arm/hwcap.cc 2016-12-24 15:19:01.076169845 -0800 |
1014 |
+@@ -40,7 +40,7 @@ |
1015 |
+ |
1016 |
+ #ifdef __linux__ |
1017 |
+ #include <unistd.h> |
1018 |
+-#include <sys/fcntl.h> |
1019 |
++#include <fcntl.h> |
1020 |
+ #include <elf.h> |
1021 |
+ |
1022 |
+ static void __attribute__((constructor)) |
1023 |
+diff -Naur gcc-5.4.0.orig/libitm/config/linux/x86/tls.h gcc-5.4.0/libitm/config/linux/x86/tls.h |
1024 |
+--- gcc-5.4.0.orig/libitm/config/linux/x86/tls.h 2015-01-05 04:33:28.000000000 -0800 |
1025 |
++++ gcc-5.4.0/libitm/config/linux/x86/tls.h 2016-12-24 15:20:21.897956131 -0800 |
1026 |
+@@ -25,16 +25,19 @@ |
1027 |
+ #ifndef LIBITM_X86_TLS_H |
1028 |
+ #define LIBITM_X86_TLS_H 1 |
1029 |
+ |
1030 |
+-#if defined(__GLIBC_PREREQ) && __GLIBC_PREREQ(2, 10) |
1031 |
++#if defined(__GLIBC_PREREQ) |
1032 |
++#if __GLIBC_PREREQ(2, 10) |
1033 |
+ /* Use slots in the TCB head rather than __thread lookups. |
1034 |
+ GLIBC has reserved words 10 through 13 for TM. */ |
1035 |
+ #define HAVE_ARCH_GTM_THREAD 1 |
1036 |
+ #define HAVE_ARCH_GTM_THREAD_DISP 1 |
1037 |
+ #endif |
1038 |
++#endif |
1039 |
+ |
1040 |
+ #include "config/generic/tls.h" |
1041 |
+ |
1042 |
+-#if defined(__GLIBC_PREREQ) && __GLIBC_PREREQ(2, 10) |
1043 |
++#if defined(__GLIBC_PREREQ) |
1044 |
++#if __GLIBC_PREREQ(2, 10) |
1045 |
+ namespace GTM HIDDEN { |
1046 |
+ |
1047 |
+ #ifdef __x86_64__ |
1048 |
+@@ -101,5 +104,6 @@ |
1049 |
+ |
1050 |
+ } // namespace GTM |
1051 |
+ #endif /* >= GLIBC 2.10 */ |
1052 |
++#endif |
1053 |
+ |
1054 |
+ #endif // LIBITM_X86_TLS_H |
1055 |
+diff -Naur gcc-5.4.0.orig/libstdc++-v3/configure.host gcc-5.4.0/libstdc++-v3/configure.host |
1056 |
+--- gcc-5.4.0.orig/libstdc++-v3/configure.host 2015-06-24 02:59:28.000000000 -0700 |
1057 |
++++ gcc-5.4.0/libstdc++-v3/configure.host 2016-12-24 15:21:16.012482591 -0800 |
1058 |
+@@ -273,6 +273,9 @@ |
1059 |
+ freebsd*) |
1060 |
+ os_include_dir="os/bsd/freebsd" |
1061 |
+ ;; |
1062 |
++ linux-musl*) |
1063 |
++ os_include_dir="os/generic" |
1064 |
++ ;; |
1065 |
+ gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu) |
1066 |
+ if [ "$uclibc" = "yes" ]; then |
1067 |
+ os_include_dir="os/uclibc" |
1068 |
|
1069 |
diff --git a/sys-devel/gcc/files/5.4.0/ppc-secure_plt.patch b/sys-devel/gcc/files/5.4.0/ppc-secure_plt.patch |
1070 |
new file mode 100644 |
1071 |
index 0000000..4e7f9d4 |
1072 |
--- /dev/null |
1073 |
+++ b/sys-devel/gcc/files/5.4.0/ppc-secure_plt.patch |
1074 |
@@ -0,0 +1,59 @@ |
1075 |
+diff -Naur gcc-5.4.0.orig/gcc/config/rs6000/secureplt.h gcc-5.4.0/gcc/config/rs6000/secureplt.h |
1076 |
+--- gcc-5.4.0.orig/gcc/config/rs6000/secureplt.h 2015-01-05 04:33:28.000000000 -0800 |
1077 |
++++ gcc-5.4.0/gcc/config/rs6000/secureplt.h 2016-12-24 15:04:26.850531396 -0800 |
1078 |
+@@ -18,3 +18,4 @@ |
1079 |
+ <http://www.gnu.org/licenses/>. */ |
1080 |
+ |
1081 |
+ #define CC1_SECURE_PLT_DEFAULT_SPEC "-msecure-plt" |
1082 |
++#define LINK_SECURE_PLT_DEFAULT_SPEC "--secure-plt" |
1083 |
+diff -Naur gcc-5.4.0.orig/gcc/config/rs6000/sysv4.h gcc-5.4.0/gcc/config/rs6000/sysv4.h |
1084 |
+--- gcc-5.4.0.orig/gcc/config/rs6000/sysv4.h 2015-09-24 06:46:45.000000000 -0700 |
1085 |
++++ gcc-5.4.0/gcc/config/rs6000/sysv4.h 2016-12-24 15:08:38.507113094 -0800 |
1086 |
+@@ -537,6 +537,9 @@ |
1087 |
+ #ifndef CC1_SECURE_PLT_DEFAULT_SPEC |
1088 |
+ #define CC1_SECURE_PLT_DEFAULT_SPEC "" |
1089 |
+ #endif |
1090 |
++#ifndef LINK_SECURE_PLT_DEFAULT_SPEC |
1091 |
++#define LINK_SECURE_PLT_DEFAULT_SPEC "" |
1092 |
++#endif |
1093 |
+ |
1094 |
+ /* Pass -G xxx to the compiler. */ |
1095 |
+ #undef CC1_SPEC |
1096 |
+@@ -567,6 +570,7 @@ |
1097 |
+ : %(link_start_default) }" |
1098 |
+ |
1099 |
+ #define LINK_START_DEFAULT_SPEC "" |
1100 |
++#define LINK_SECURE_PLT_SPEC LINK_SECURE_PLT_DEFAULT_SPEC |
1101 |
+ |
1102 |
+ #undef LINK_SPEC |
1103 |
+ #define LINK_SPEC "\ |
1104 |
+@@ -574,6 +578,7 @@ |
1105 |
+ %{R*} \ |
1106 |
+ %(link_shlib) \ |
1107 |
+ %{!T*: %(link_start) } \ |
1108 |
++%{!static: %{!mbss-plt: %(link_secure_plt)}} \ |
1109 |
+ %(link_os)" |
1110 |
+ |
1111 |
+ /* Shared libraries are not default. */ |
1112 |
+@@ -889,6 +904,7 @@ |
1113 |
+ { "link_os_openbsd", LINK_OS_OPENBSD_SPEC }, \ |
1114 |
+ { "link_os_default", LINK_OS_DEFAULT_SPEC }, \ |
1115 |
+ { "cc1_secure_plt_default", CC1_SECURE_PLT_DEFAULT_SPEC }, \ |
1116 |
++ { "link_secure_plt", LINK_SECURE_PLT_SPEC }, \ |
1117 |
+ { "cpp_os_ads", CPP_OS_ADS_SPEC }, \ |
1118 |
+ { "cpp_os_yellowknife", CPP_OS_YELLOWKNIFE_SPEC }, \ |
1119 |
+ { "cpp_os_mvme", CPP_OS_MVME_SPEC }, \ |
1120 |
+diff -Naur gcc-5.4.0.orig/gcc/config.gcc gcc-5.4.0/gcc/config.gcc |
1121 |
+--- gcc-5.4.0.orig/gcc/config.gcc 2016-12-24 15:28:09.922509373 -0800 |
1122 |
++++ gcc-5.4.0/gcc/config.gcc 2016-12-24 15:39:19.482040184 -0800 |
1123 |
+@@ -2413,6 +2416,10 @@ |
1124 |
+ powerpc*-*-linux*paired*) |
1125 |
+ tm_file="${tm_file} rs6000/750cl.h" ;; |
1126 |
+ esac |
1127 |
++ case ${target} in |
1128 |
++ *-linux*-musl*) |
1129 |
++ enable_secureplt=yes ;; |
1130 |
++ esac |
1131 |
+ if test x${enable_secureplt} = xyes; then |
1132 |
+ tm_file="rs6000/secureplt.h ${tm_file}" |
1133 |
+ fi |
1134 |
|
1135 |
diff --git a/sys-devel/gcc/files/6.3.0/musl.patch b/sys-devel/gcc/files/6.3.0/musl.patch |
1136 |
new file mode 100644 |
1137 |
index 0000000..03a5dc2 |
1138 |
--- /dev/null |
1139 |
+++ b/sys-devel/gcc/files/6.3.0/musl.patch |
1140 |
@@ -0,0 +1,63 @@ |
1141 |
+diff -Naur gcc-6.2.0.orig/gcc/config/i386/i386.c gcc-6.2.0/gcc/config/i386/i386.c |
1142 |
+--- gcc-6.2.0.orig/gcc/config/i386/i386.c 2016-12-24 15:55:23.355343088 -0800 |
1143 |
++++ gcc-6.2.0/gcc/config/i386/i386.c 2016-12-24 15:55:58.718681693 -0800 |
1144 |
+@@ -40325,10 +40325,10 @@ |
1145 |
+ { |
1146 |
+ case IX86_BUILTIN_CPU_INIT: |
1147 |
+ { |
1148 |
+- /* Make it call __cpu_indicator_init in libgcc. */ |
1149 |
++ /* Make it call __cpu_indicator_init_local in libgcc. */ |
1150 |
+ tree call_expr, fndecl, type; |
1151 |
+ type = build_function_type_list (integer_type_node, NULL_TREE); |
1152 |
+- fndecl = build_fn_decl ("__cpu_indicator_init", type); |
1153 |
++ fndecl = build_fn_decl ("__cpu_indicator_init_local", type); |
1154 |
+ call_expr = build_call_expr (fndecl, 0); |
1155 |
+ return expand_expr (call_expr, target, mode, EXPAND_NORMAL); |
1156 |
+ } |
1157 |
+diff -Naur gcc-6.2.0.orig/gcc/config/linux.c gcc-6.2.0/gcc/config/linux.c |
1158 |
+--- gcc-6.2.0.orig/gcc/config/linux.c 2016-12-24 15:55:23.308342638 -0800 |
1159 |
++++ gcc-6.2.0/gcc/config/linux.c 2016-12-24 16:00:51.852488459 -0800 |
1160 |
+@@ -26,7 +26,7 @@ |
1161 |
+ bool |
1162 |
+ linux_libc_has_function (enum function_class fn_class) |
1163 |
+ { |
1164 |
+- if (OPTION_GLIBC) |
1165 |
++ if (OPTION_GLIBC || OPTION_MUSL) |
1166 |
+ return true; |
1167 |
+ if (OPTION_BIONIC) |
1168 |
+ if (fn_class == function_c94 |
1169 |
+diff -Naur gcc-6.2.0.orig/gcc/config.gcc gcc-6.2.0/gcc/config.gcc |
1170 |
+--- gcc-6.2.0.orig/gcc/config.gcc 2016-12-24 15:55:15.957272251 -0800 |
1171 |
++++ gcc-6.2.0/gcc/config.gcc 2016-12-24 16:02:12.297258721 -0800 |
1172 |
+@@ -1484,7 +1484,7 @@ |
1173 |
+ extra_options="${extra_options} linux-android.opt" |
1174 |
+ # Assume modern glibc if not targeting Android nor uclibc. |
1175 |
+ case ${target} in |
1176 |
+- *-*-*android*|*-*-*uclibc*) |
1177 |
++ *-*-*android*|*-*-*uclibc*|*-*-*musl*) |
1178 |
+ ;; |
1179 |
+ *) |
1180 |
+ default_gnu_indirect_function=yes |
1181 |
+@@ -1553,7 +1553,7 @@ |
1182 |
+ extra_options="${extra_options} linux-android.opt" |
1183 |
+ # Assume modern glibc if not targeting Android nor uclibc. |
1184 |
+ case ${target} in |
1185 |
+- *-*-*android*|*-*-*uclibc*) |
1186 |
++ *-*-*android*|*-*-*uclibc*|*-*-*musl*) |
1187 |
+ ;; |
1188 |
+ *) |
1189 |
+ default_gnu_indirect_function=yes |
1190 |
+diff -Naur gcc-6.2.0.orig/libgcc/config/i386/cpuinfo.c gcc-6.2.0/libgcc/config/i386/cpuinfo.c |
1191 |
+--- gcc-6.2.0.orig/libgcc/config/i386/cpuinfo.c 2016-12-24 15:55:15.817270911 -0800 |
1192 |
++++ gcc-6.2.0/libgcc/config/i386/cpuinfo.c 2016-12-24 15:57:05.399320163 -0800 |
1193 |
+@@ -485,7 +485,7 @@ |
1194 |
+ return 0; |
1195 |
+ } |
1196 |
+ |
1197 |
+-#if defined SHARED && defined USE_ELF_SYMVER |
1198 |
+-__asm__ (".symver __cpu_indicator_init, __cpu_indicator_init@GCC_4.8.0"); |
1199 |
+-__asm__ (".symver __cpu_model, __cpu_model@GCC_4.8.0"); |
1200 |
++#ifndef SHARED |
1201 |
++int __cpu_indicator_init_local (void) |
1202 |
++ __attribute__ ((weak, alias ("__cpu_indicator_init"))); |
1203 |
+ #endif |
1204 |
|
1205 |
diff --git a/sys-devel/gcc/files/fix_libtool_files.sh b/sys-devel/gcc/files/fix_libtool_files.sh |
1206 |
index 97fb91c..eb96df2 100644 |
1207 |
--- a/sys-devel/gcc/files/fix_libtool_files.sh |
1208 |
+++ b/sys-devel/gcc/files/fix_libtool_files.sh |
1209 |
@@ -1,5 +1,5 @@ |
1210 |
#!/bin/sh |
1211 |
-# Copyright 1999-2012 Gentoo Foundation |
1212 |
+# Copyright 1999-2014 Gentoo Foundation |
1213 |
# Distributed under the terms of the GNU General Public License v2 |
1214 |
# $Id$ |
1215 |
|
1216 |
@@ -38,10 +38,9 @@ ARGV2=$2 |
1217 |
ARGV3=$3 |
1218 |
|
1219 |
. /etc/profile || exit 1 |
1220 |
-. /etc/init.d/functions.sh || exit 1 |
1221 |
|
1222 |
if [ ${EUID:-0} -ne 0 ] ; then |
1223 |
- eerror "${0##*/}: Must be root." |
1224 |
+ echo "${0##*/}: Must be root." |
1225 |
exit 1 |
1226 |
fi |
1227 |
|
1228 |
@@ -54,7 +53,7 @@ OLDCHOST= |
1229 |
AWKDIR="/usr/share/gcc-data" |
1230 |
|
1231 |
if [ ! -r "${AWKDIR}/fixlafiles.awk" ] ; then |
1232 |
- eerror "${0##*/}: ${AWKDIR}/fixlafiles.awk does not exist!" |
1233 |
+ echo "${0##*/}: ${AWKDIR}/fixlafiles.awk does not exist!" |
1234 |
exit 1 |
1235 |
fi |
1236 |
|
1237 |
@@ -62,7 +61,7 @@ OLDVER=${ARGV1} |
1238 |
|
1239 |
export OLDVER OLDCHOST |
1240 |
|
1241 |
-einfo "Scanning libtool files for hardcoded gcc library paths..." |
1242 |
+echo "Scanning libtool files for hardcoded gcc library paths..." |
1243 |
exec gawk -f "${AWKDIR}/fixlafiles.awk" |
1244 |
|
1245 |
# vim:ts=4 |
1246 |
|
1247 |
diff --git a/sys-devel/gcc/files/gcc-5.4.0-pr68470.patch b/sys-devel/gcc/files/gcc-5.4.0-pr68470.patch |
1248 |
new file mode 100644 |
1249 |
index 0000000..7f314cf |
1250 |
--- /dev/null |
1251 |
+++ b/sys-devel/gcc/files/gcc-5.4.0-pr68470.patch |
1252 |
@@ -0,0 +1,57 @@ |
1253 |
+diff -Naur gcc-5.4.0.orig/gcc/ipa-split.c gcc-5.4.0/gcc/ipa-split.c |
1254 |
+--- gcc-5.4.0.orig/gcc/ipa-split.c 2016-03-30 05:27:12.000000000 -0700 |
1255 |
++++ gcc-5.4.0/gcc/ipa-split.c 2016-12-24 17:10:50.205152721 -0800 |
1256 |
+@@ -1246,7 +1246,6 @@ |
1257 |
+ edge e; |
1258 |
+ edge_iterator ei; |
1259 |
+ tree retval = NULL, real_retval = NULL, retbnd = NULL; |
1260 |
+- bool split_part_return_p = false; |
1261 |
+ bool with_bounds = chkp_function_instrumented_p (current_function_decl); |
1262 |
+ gimple last_stmt = NULL; |
1263 |
+ unsigned int i; |
1264 |
+@@ -1287,12 +1286,28 @@ |
1265 |
+ args_to_pass.safe_push (arg); |
1266 |
+ } |
1267 |
+ |
1268 |
+- /* See if the split function will return. */ |
1269 |
++ /* See if the split function or the main part will return. */ |
1270 |
++ bool main_part_return_p = false; |
1271 |
++ bool split_part_return_p = false; |
1272 |
+ FOR_EACH_EDGE (e, ei, return_bb->preds) |
1273 |
+- if (bitmap_bit_p (split_point->split_bbs, e->src->index)) |
1274 |
+- break; |
1275 |
+- if (e) |
1276 |
+- split_part_return_p = true; |
1277 |
++ { |
1278 |
++ if (bitmap_bit_p (split_point->split_bbs, e->src->index)) |
1279 |
++ split_part_return_p = true; |
1280 |
++ else |
1281 |
++ main_part_return_p = true; |
1282 |
++ } |
1283 |
++ /* The main part also returns if we we split on a fallthru edge |
1284 |
++ and the split part returns. */ |
1285 |
++ if (split_part_return_p) |
1286 |
++ FOR_EACH_EDGE (e, ei, split_point->entry_bb->preds) |
1287 |
++ { |
1288 |
++ if (! bitmap_bit_p (split_point->split_bbs, e->src->index) |
1289 |
++ && single_succ_p (e->src)) |
1290 |
++ { |
1291 |
++ main_part_return_p = true; |
1292 |
++ break; |
1293 |
++ } |
1294 |
++ } |
1295 |
+ |
1296 |
+ /* Add return block to what will become the split function. |
1297 |
+ We do not return; no return block is needed. */ |
1298 |
+@@ -1336,6 +1351,11 @@ |
1299 |
+ else |
1300 |
+ bitmap_set_bit (split_point->split_bbs, return_bb->index); |
1301 |
+ |
1302 |
++ /* If the main part doesn't return pretend the return block wasn't |
1303 |
++ found for all of the following. */ |
1304 |
++ if (! main_part_return_p) |
1305 |
++ return_bb = EXIT_BLOCK_PTR_FOR_FN (cfun); |
1306 |
++ |
1307 |
+ /* If RETURN_BB has virtual operand PHIs, they must be removed and the |
1308 |
+ virtual operand marked for renaming as we change the CFG in a way that |
1309 |
+ tree-inline is not able to compensate for. |
1310 |
|
1311 |
diff --git a/sys-devel/gcc/files/gcc-6.1.0-musl-cpu.patch b/sys-devel/gcc/files/gcc-6.1.0-musl-cpu.patch |
1312 |
deleted file mode 100644 |
1313 |
index c11afb5..0000000 |
1314 |
--- a/sys-devel/gcc/files/gcc-6.1.0-musl-cpu.patch |
1315 |
+++ /dev/null |
1316 |
@@ -1,32 +0,0 @@ |
1317 |
-diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c |
1318 |
-index 3d044e8..82523e1 100644 |
1319 |
---- a/gcc/config/i386/i386.c |
1320 |
-+++ b/gcc/config/i386/i386.c |
1321 |
-@@ -40269,10 +40269,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget, |
1322 |
- { |
1323 |
- case IX86_BUILTIN_CPU_INIT: |
1324 |
- { |
1325 |
-- /* Make it call __cpu_indicator_init in libgcc. */ |
1326 |
-+ /* Make it call __cpu_indicator_init_local in libgcc.a. */ |
1327 |
- tree call_expr, fndecl, type; |
1328 |
- type = build_function_type_list (integer_type_node, NULL_TREE); |
1329 |
-- fndecl = build_fn_decl ("__cpu_indicator_init", type); |
1330 |
-+ fndecl = build_fn_decl ("__cpu_indicator_init_local", type); |
1331 |
- call_expr = build_call_expr (fndecl, 0); |
1332 |
- return expand_expr (call_expr, target, mode, EXPAND_NORMAL); |
1333 |
- } |
1334 |
-diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c |
1335 |
-index 8c2248d..6c82f15 100644 |
1336 |
---- a/libgcc/config/i386/cpuinfo.c |
1337 |
-+++ b/libgcc/config/i386/cpuinfo.c |
1338 |
-@@ -485,7 +485,7 @@ __cpu_indicator_init (void) |
1339 |
- return 0; |
1340 |
- } |
1341 |
- |
1342 |
--#if defined SHARED && defined USE_ELF_SYMVER |
1343 |
--__asm__ (".symver __cpu_indicator_init, __cpu_indicator_init@GCC_4.8.0"); |
1344 |
--__asm__ (".symver __cpu_model, __cpu_model@GCC_4.8.0"); |
1345 |
-+#ifndef SHARED |
1346 |
-+int __cpu_indicator_init_local (void) |
1347 |
-+ __attribute__ ((weak, alias ("__cpu_indicator_init"))); |
1348 |
- #endif |
1349 |
|
1350 |
diff --git a/sys-devel/gcc/files/mkinfodir b/sys-devel/gcc/files/mkinfodir |
1351 |
deleted file mode 100644 |
1352 |
index a62840e..0000000 |
1353 |
--- a/sys-devel/gcc/files/mkinfodir |
1354 |
+++ /dev/null |
1355 |
@@ -1,233 +0,0 @@ |
1356 |
-#!/bin/bash |
1357 |
-# $Id: mkinfodir,v 1.1 2001/09/01 07:56:19 drobbins Exp $ |
1358 |
-# Generate the top-level Info node, given a directory of Info files |
1359 |
-# and (optionally) a skeleton file. The output will be suitable for a |
1360 |
-# top-level dir file. The skeleton file contains info topic names in the |
1361 |
-# order they should appear in the output. There are three special |
1362 |
-# lines that alter the behavior: a line consisting of just "--" causes |
1363 |
-# the next line to be echoed verbatim to the output. A line |
1364 |
-# containing just "%%" causes all the remaining filenames (wildcards |
1365 |
-# allowed) in the rest of the file to be ignored. A line containing |
1366 |
-# just "!!" exits the script when reached (unless preceded by a line |
1367 |
-# containing just "--"). Once the script reaches the end of the |
1368 |
-# skeleton file, it goes through the remaining files in the directory |
1369 |
-# in order, putting their entries at the end. The script will use the |
1370 |
-# ENTRY information in each info file if it exists. Otherwise it will |
1371 |
-# make a minimal entry. |
1372 |
- |
1373 |
-# sent by Jeffrey Osier <jeffrey@××××××.com>, who thinks it came from |
1374 |
-# zoo@×××××××××.com (david d `zoo' zuhn) |
1375 |
- |
1376 |
-# modified 7 April 1995 by Joe Harrington <jh@××××××××××××××××.gov> to |
1377 |
-# take special flags |
1378 |
- |
1379 |
-INFODIR=$1 |
1380 |
-if [ $# = 2 ] ; then |
1381 |
- SKELETON=$2 |
1382 |
-else |
1383 |
- SKELETON=/dev/null |
1384 |
-fi |
1385 |
- |
1386 |
-skip= |
1387 |
- |
1388 |
-if [ $# -gt 2 ] ; then |
1389 |
- echo usage: $0 info-directory [ skeleton-file ] 1>&2 |
1390 |
- exit 1 |
1391 |
-elif [ -z "${INFODIR}" ] ; then |
1392 |
- INFODIR="%%DEFAULT_INFO_DIR%%" |
1393 |
-else |
1394 |
- true |
1395 |
-fi |
1396 |
- |
1397 |
-if [ ! -d ${INFODIR} ] ; then |
1398 |
- echo "$0: first argument must specify a directory" |
1399 |
- exit 1 |
1400 |
-fi |
1401 |
- |
1402 |
-### output the dir header |
1403 |
-echo "-*- Text -*-" |
1404 |
-echo "This file was generated automatically by $0." |
1405 |
-echo "This version was generated on `date`" |
1406 |
-echo "by `whoami`@`hostname` for `(cd ${INFODIR}; pwd)`" |
1407 |
- |
1408 |
-cat << moobler |
1409 |
-\$Id: mkinfodir,v 1.1 2001/09/01 07:56:19 drobbins Exp $ |
1410 |
-This is the file .../info/dir, which contains the topmost node of the |
1411 |
-Info hierarchy. The first time you invoke Info you start off |
1412 |
-looking at that node, which is (dir)Top. |
1413 |
- |
1414 |
-File: dir Node: Top This is the top of the INFO tree |
1415 |
- |
1416 |
- This (the Directory node) gives a menu of major topics. |
1417 |
- Typing "q" exits, "?" lists all Info commands, "d" returns here, |
1418 |
- "h" gives a primer for first-timers, |
1419 |
- "mEmacs<Return>" visits the Emacs topic, etc. |
1420 |
- |
1421 |
- In Emacs, you can click mouse button 2 on a menu item or cross reference |
1422 |
- to select it. |
1423 |
- |
1424 |
-* Menu: The list of major topics begins on the next line. |
1425 |
- |
1426 |
-moobler |
1427 |
- |
1428 |
-### go through the list of files in the skeleton. If an info file |
1429 |
-### exists, grab the ENTRY information from it. If an entry exists |
1430 |
-### use it, otherwise create a minimal dir entry. |
1431 |
-### |
1432 |
-### Then remove that file from the list of existing files. If any |
1433 |
-### additional files remain (ones that don't have a skeleton entry), |
1434 |
-### then generate entries for those in the same way, putting the info for |
1435 |
-### those at the end.... |
1436 |
- |
1437 |
-infofiles=`(cd ${INFODIR}; /bin/ls | grep -v '\-[0-9]*\.gz$' | grep -v '\-[0-9]*$' | egrep -v '^dir$|^dir\.info$|^dir\.orig$')` |
1438 |
- |
1439 |
-# echoing gets clobbered by backquotes; we do it the hard way... |
1440 |
-lines=`wc $SKELETON | awk '{print $1}'` |
1441 |
-line=1 |
1442 |
-while [ $lines -ge $line ] ; do |
1443 |
- # Read one line from the file. This is so that we can echo lines with |
1444 |
- # whitespace and quoted characters in them. |
1445 |
- fileline=`awk NR==$line $SKELETON` |
1446 |
- |
1447 |
- # flag fancy features |
1448 |
- if [ ! -z "$echoline" ] ; then # echo line |
1449 |
- echo "$fileline" |
1450 |
- fileline= |
1451 |
- echoline= |
1452 |
- elif [ "${fileline}" = "--" ] ; then # should we echo the next line? |
1453 |
- echoline=1 |
1454 |
- elif [ "${fileline}" = "%%" ] ; then # eliminate remaining files from dir? |
1455 |
- skip=1 |
1456 |
- elif [ "${fileline}" = "!!" ] ; then # quit now |
1457 |
- exit 0 |
1458 |
- fi |
1459 |
- |
1460 |
- # handle files if they exist |
1461 |
- for file in $fileline"" ; do # expand wildcards ("" handles blank lines) |
1462 |
- |
1463 |
- fname= |
1464 |
- |
1465 |
- if [ -z "$echoline" -a ! -z "$file" ] ; then |
1466 |
- |
1467 |
- # Find the file to operate upon. Check both possible names. |
1468 |
- infoname=`echo $file | sed 's/\.gz$//'` |
1469 |
- infoname=`echo $infoname | sed 's/\.info$//'` |
1470 |
- noext= |
1471 |
- ext= |
1472 |
- if [ -f ${INFODIR}/$infoname ] ; then |
1473 |
- noext=$infoname |
1474 |
- fi |
1475 |
- if [ -f ${INFODIR}/${infoname}.info ] ; then |
1476 |
- ext=${infoname}.info |
1477 |
- fi |
1478 |
- if [ -f ${INFODIR}/${infoname}.info.gz ] ; then |
1479 |
- ext=${infoname}.info.gz |
1480 |
- fi |
1481 |
- # If it exists with both names take what was said in the file. |
1482 |
- if [ ! -z "$ext" -a ! -z "$noext" ]; then |
1483 |
- fname=$file |
1484 |
- warn="### Warning: $ext and $noext both exist! Using ${file}. ###" |
1485 |
- elif [ ! \( -z "$ext" -a -z "$noext" \) ]; then |
1486 |
- # just take the name if it exists only once |
1487 |
- fname=${noext}${ext} |
1488 |
- fi |
1489 |
- |
1490 |
- # if we found something and aren't skipping, do the entry |
1491 |
- if [ ! -z "$fname" ] ; then |
1492 |
- if [ -z "$skip" ] ; then |
1493 |
- |
1494 |
- if [ ! -z "$warn" ] ; then # issue any warning |
1495 |
- echo $warn |
1496 |
- warn= |
1497 |
- fi |
1498 |
- if [ "${fname##*.}" = "gz" ] ; then |
1499 |
- entry=`zcat ${INFODIR}/${fname} | sed -e '1,/START-INFO-DIR-ENTRY/d' \ |
1500 |
- -e '/END-INFO-DIR-ENTRY/,$d' ` |
1501 |
- else |
1502 |
- entry=`sed -e '1,/START-INFO-DIR-ENTRY/d' \ |
1503 |
- -e '/END-INFO-DIR-ENTRY/,$d' ${INFODIR}/$fname` |
1504 |
- fi |
1505 |
- if [ ! -z "${entry}" ] ; then |
1506 |
- echo "${entry}" |
1507 |
- else |
1508 |
- echo "* ${infoname}: (${infoname})." |
1509 |
- fi |
1510 |
- fi |
1511 |
- |
1512 |
- # remove the name from the directory listing |
1513 |
- infofiles=`echo "" ${infofiles} "" | sed -e "s/ ${fname} / /" -e "s/ / /g"` |
1514 |
- |
1515 |
- fi |
1516 |
- |
1517 |
- fi |
1518 |
- |
1519 |
- done |
1520 |
- |
1521 |
- line=`expr $line + 1` |
1522 |
-done |
1523 |
- |
1524 |
-if [ -z "${infofiles}" ] ; then |
1525 |
- exit 0 |
1526 |
-elif [ $lines -gt 0 ]; then |
1527 |
- echo |
1528 |
-fi |
1529 |
- |
1530 |
-# Sort remaining files by INFO-DIR-SECTION. |
1531 |
-prevsect= |
1532 |
-filesectdata=`(cd ${INFODIR}; fgrep INFO-DIR-SECTION /dev/null ${infofiles} | \ |
1533 |
- fgrep -v 'INFO-DIR-SECTION Miscellaneous' | \ |
1534 |
- sort -t: -k2 -k1 | tr ' ' '_')` |
1535 |
-for sectdata in ${filesectdata}; do |
1536 |
- file=`echo ${sectdata} | cut -d: -f1` |
1537 |
- section=`sed -n -e 's/^INFO-DIR-SECTION //p' ${INFODIR}/${file}` |
1538 |
- infofiles=`echo "" ${infofiles} "" | sed -e "s/ ${file} / /" -e "s/ / /g"` |
1539 |
- |
1540 |
- if [ "${prevsect}" != "${section}" ] ; then |
1541 |
- if [ ! -z "${prevsect}" ] ; then |
1542 |
- echo "" |
1543 |
- fi |
1544 |
- echo "${section}" |
1545 |
- prevsect="${section}" |
1546 |
- fi |
1547 |
- infoname=`echo $file | sed 's/\.gz$//'` |
1548 |
- infoname=`echo $infoname | sed 's/\.info$//'` |
1549 |
- if [ "${file##*.}" = "gz" ] ; then |
1550 |
- entry=`zcat ${INFODIR}/$file | sed -e '1,/START-INFO-DIR-ENTRY/d' \ |
1551 |
- -e '/END-INFO-DIR-ENTRY/,$d' ` |
1552 |
- else |
1553 |
- entry=`sed -e '1,/START-INFO-DIR-ENTRY/d' \ |
1554 |
- -e '/END-INFO-DIR-ENTRY/,$d' ${INFODIR}/$file` |
1555 |
- fi |
1556 |
- if [ ! -z "${entry}" ] ; then |
1557 |
- echo "${entry}" |
1558 |
- elif [ ! -d "${INFODIR}/${file}" ] ; then |
1559 |
- echo "* ${infoname}: (${infoname})." |
1560 |
- fi |
1561 |
-done |
1562 |
- |
1563 |
-# Process miscellaneous files. |
1564 |
-for file in ${infofiles}; do |
1565 |
- if [ ! -z "${prevsect}" ] ; then |
1566 |
- echo "" |
1567 |
- echo "Miscellaneous" |
1568 |
- prevsect="" |
1569 |
- fi |
1570 |
- |
1571 |
- infoname=`echo $file | sed 's/\.gz$//'` |
1572 |
- infoname=`echo $infoname | sed 's/\.info$//'` |
1573 |
- if [ "${file##*.}" = "gz" ] ; then |
1574 |
- entry=`zcat ${INFODIR}/${file} | sed -e '1,/START-INFO-DIR-ENTRY/d' \ |
1575 |
- -e '/END-INFO-DIR-ENTRY/,$d'` |
1576 |
- else |
1577 |
- entry=`sed -e '1,/START-INFO-DIR-ENTRY/d' \ |
1578 |
- -e '/END-INFO-DIR-ENTRY/,$d' ${INFODIR}/$file` |
1579 |
- fi |
1580 |
- |
1581 |
- |
1582 |
- if [ ! -z "${entry}" ] ; then |
1583 |
- echo "${entry}" |
1584 |
- elif [ ! -d "${INFODIR}/${file}" ] ; then |
1585 |
- echo "* ${infoname}: (${infoname})." |
1586 |
- fi |
1587 |
-done |
1588 |
- |
1589 |
|
1590 |
diff --git a/sys-devel/gcc/gcc-5.4.0.ebuild b/sys-devel/gcc/gcc-5.4.0.ebuild |
1591 |
new file mode 100644 |
1592 |
index 0000000..8dc1a67 |
1593 |
--- /dev/null |
1594 |
+++ b/sys-devel/gcc/gcc-5.4.0.ebuild |
1595 |
@@ -0,0 +1,61 @@ |
1596 |
+# Copyright 1999-2016 Gentoo Foundation |
1597 |
+# Distributed under the terms of the GNU General Public License v2 |
1598 |
+# $Id$ |
1599 |
+ |
1600 |
+EAPI="4" |
1601 |
+ |
1602 |
+PATCH_VER="1.0" |
1603 |
+UCLIBC_VER="1.0" |
1604 |
+ |
1605 |
+# Hardened gcc 4 stuff |
1606 |
+PIE_VER="0.6.5" |
1607 |
+SPECS_VER="0.2.0" |
1608 |
+SPECS_GCC_VER="4.4.3" |
1609 |
+# arch/libc configurations known to be stable with {PIE,SSP}-by-default |
1610 |
+PIE_GLIBC_STABLE="x86 amd64 mips ppc ppc64 arm ia64" |
1611 |
+PIE_UCLIBC_STABLE="x86 arm amd64 mips ppc ppc64" |
1612 |
+SSP_STABLE="amd64 x86 mips ppc ppc64 arm" |
1613 |
+# uclibc need tls and nptl support for SSP support |
1614 |
+# uclibc need to be >= 0.9.33 |
1615 |
+SSP_UCLIBC_STABLE="x86 amd64 mips ppc ppc64 arm" |
1616 |
+PIE_MUSL_STABLE="amd64 arm ppc mips x86" |
1617 |
+SSP_MUSL_STABLE="amd64 arm ppc mips" |
1618 |
+#end Hardened stuff |
1619 |
+ |
1620 |
+inherit eutils toolchain |
1621 |
+ |
1622 |
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd" |
1623 |
+ |
1624 |
+RDEPEND="" |
1625 |
+DEPEND="${RDEPEND} |
1626 |
+ elibc_glibc? ( >=sys-libs/glibc-2.8 ) |
1627 |
+ >=${CATEGORY}/binutils-2.20" |
1628 |
+ |
1629 |
+if [[ ${CATEGORY} != cross-* ]] ; then |
1630 |
+ PDEPEND="${PDEPEND} elibc_glibc? ( >=sys-libs/glibc-2.8 )" |
1631 |
+fi |
1632 |
+ |
1633 |
+src_prepare() { |
1634 |
+ if has_version '<sys-libs/glibc-2.12' ; then |
1635 |
+ ewarn "Your host glibc is too old; disabling automatic fortify." |
1636 |
+ ewarn "Please rebuild gcc after upgrading to >=glibc-2.12 #362315" |
1637 |
+ EPATCH_EXCLUDE+=" 10_all_default-fortify-source.patch" |
1638 |
+ fi |
1639 |
+ is_crosscompile && EPATCH_EXCLUDE+=" 05_all_gcc-spec-env.patch" |
1640 |
+ |
1641 |
+ toolchain_src_prepare |
1642 |
+ |
1643 |
+ # Upstream Patch |
1644 |
+ epatch "${FILESDIR}"/${PN}-4.9.3-tree-vect-data-refs-correctness.patch |
1645 |
+ epatch "${FILESDIR}"/${PN}-5.4.0-pr68470.patch |
1646 |
+ |
1647 |
+ if use elibc_musl || [[ ${CATEGORY} = cross-*-musl ]]; then |
1648 |
+ epatch "${FILESDIR}"/4.9.4/gthread.patch |
1649 |
+ epatch "${FILESDIR}"/4.9.4/boehm_gc.patch |
1650 |
+ epatch "${FILESDIR}"/4.9.4/posix_memalign.patch |
1651 |
+ epatch "${FILESDIR}"/5.4.0/cilkrts.patch |
1652 |
+ epatch "${FILESDIR}"/5.4.0/linker_path.patch |
1653 |
+ epatch "${FILESDIR}"/5.4.0/musl.patch |
1654 |
+ epatch "${FILESDIR}"/5.4.0/ppc-secure_plt.patch |
1655 |
+ fi |
1656 |
+} |
1657 |
|
1658 |
diff --git a/sys-devel/gcc/gcc-6.1.0.ebuild b/sys-devel/gcc/gcc-6.1.0.ebuild |
1659 |
deleted file mode 100644 |
1660 |
index 837ef48..0000000 |
1661 |
--- a/sys-devel/gcc/gcc-6.1.0.ebuild |
1662 |
+++ /dev/null |
1663 |
@@ -1,44 +0,0 @@ |
1664 |
-# Copyright 1999-2016 Gentoo Foundation |
1665 |
-# Distributed under the terms of the GNU General Public License v2 |
1666 |
-# $Id$ |
1667 |
- |
1668 |
-EAPI="4" |
1669 |
- |
1670 |
-PATCH_VER="1.0" |
1671 |
-#UCLIBC_VER="1.0" |
1672 |
- |
1673 |
-# Hardened gcc 4 stuff |
1674 |
-#PIE_VER="0.6.5" |
1675 |
-#SPECS_VER="0.2.0" |
1676 |
-#SPECS_GCC_VER="4.4.3" |
1677 |
-# arch/libc configurations known to be stable with {PIE,SSP}-by-default |
1678 |
-#PIE_GLIBC_STABLE="x86 amd64 mips ppc ppc64 arm ia64" |
1679 |
-#PIE_UCLIBC_STABLE="x86 arm amd64 mips ppc ppc64" |
1680 |
-#SSP_STABLE="amd64 x86 mips ppc ppc64 arm" |
1681 |
-# uclibc need tls and nptl support for SSP support |
1682 |
-# uclibc need to be >= 0.9.33 |
1683 |
-#SSP_UCLIBC_STABLE="x86 amd64 mips ppc ppc64 arm" |
1684 |
-PIE_MUSL_STABLE="amd64 arm ppc mips x86" |
1685 |
-SSP_MUSL_STABLE="amd64 arm ppc mips" |
1686 |
-#end Hardened stuff |
1687 |
- |
1688 |
-inherit toolchain |
1689 |
- |
1690 |
-KEYWORDS="" |
1691 |
- |
1692 |
-RDEPEND="" |
1693 |
-DEPEND="${RDEPEND} |
1694 |
- elibc_glibc? ( >=sys-libs/glibc-2.8 ) |
1695 |
- >=${CATEGORY}/binutils-2.20" |
1696 |
- |
1697 |
-if [[ ${CATEGORY} != cross-* ]] ; then |
1698 |
- PDEPEND="${PDEPEND} elibc_glibc? ( >=sys-libs/glibc-2.8 )" |
1699 |
-fi |
1700 |
- |
1701 |
-src_prepare() { |
1702 |
- |
1703 |
- toolchain_src_prepare |
1704 |
- if use elibc_musl || [[ ${CATEGORY} = cross-*-musl ]]; then |
1705 |
- epatch "${FILESDIR}"/${P}-musl-cpu.patch |
1706 |
- fi |
1707 |
-} |
1708 |
|
1709 |
diff --git a/sys-devel/gcc/gcc-6.3.0.ebuild b/sys-devel/gcc/gcc-6.3.0.ebuild |
1710 |
new file mode 100644 |
1711 |
index 0000000..cffb62e |
1712 |
--- /dev/null |
1713 |
+++ b/sys-devel/gcc/gcc-6.3.0.ebuild |
1714 |
@@ -0,0 +1,32 @@ |
1715 |
+# Copyright 1999-2016 Gentoo Foundation |
1716 |
+# Distributed under the terms of the GNU General Public License v2 |
1717 |
+# $Id$ |
1718 |
+ |
1719 |
+EAPI="4" |
1720 |
+ |
1721 |
+PATCH_VER="1.0" |
1722 |
+#UCLIBC_VER="1.0" |
1723 |
+ |
1724 |
+inherit eutils toolchain |
1725 |
+ |
1726 |
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd" |
1727 |
+ |
1728 |
+RDEPEND="" |
1729 |
+DEPEND="${RDEPEND} |
1730 |
+ elibc_glibc? ( >=sys-libs/glibc-2.13 ) |
1731 |
+ >=${CATEGORY}/binutils-2.20" |
1732 |
+ |
1733 |
+if [[ ${CATEGORY} != cross-* ]] ; then |
1734 |
+ PDEPEND="${PDEPEND} elibc_glibc? ( >=sys-libs/glibc-2.13 )" |
1735 |
+fi |
1736 |
+ |
1737 |
+src_prepare() { |
1738 |
+ toolchain_src_prepare |
1739 |
+ |
1740 |
+ if use elibc_musl || [[ ${CATEGORY} = cross-*-musl ]]; then |
1741 |
+ epatch "${FILESDIR}"/4.9.4/boehm_gc.patch |
1742 |
+ epatch "${FILESDIR}"/4.9.4/posix_memalign.patch |
1743 |
+ epatch "${FILESDIR}"/5.4.0/cilkrts.patch |
1744 |
+ epatch "${FILESDIR}"/6.3.0/musl.patch |
1745 |
+ fi |
1746 |
+} |
1747 |
|
1748 |
diff --git a/sys-devel/gcc/metadata.xml b/sys-devel/gcc/metadata.xml |
1749 |
index e875d77..43abab0 100644 |
1750 |
--- a/sys-devel/gcc/metadata.xml |
1751 |
+++ b/sys-devel/gcc/metadata.xml |
1752 |
@@ -9,25 +9,28 @@ |
1753 |
<flag name="awt">Useful only when building GCJ, this enables Abstract Window Toolkit |
1754 |
(AWT) peer support on top of GTK+</flag> |
1755 |
<flag name="cilk">Support the Cilk Plus language (C/C++ based languages for parallel programming)</flag> |
1756 |
+ <flag name="d">Enable support for the D programming language</flag> |
1757 |
<flag name="fixed-point">Enable fixed-point arithmetic support for MIPS targets |
1758 |
in gcc (Warning: significantly increases compile time!)</flag> |
1759 |
<flag name="go">Build the GCC Go language frontend.</flag> |
1760 |
<flag name="graphite">Add support for the framework for loop |
1761 |
optimizations based on a polyhedral intermediate representation</flag> |
1762 |
+ <flag name="jit">Enable libgccjit so other applications can embed gcc for Just-In-Time compilation. |
1763 |
+ This will slow down the compiler a bit as it forces all of the toolchain to be shared libs.</flag> |
1764 |
<flag name="libssp">Build SSP support into a dedicated library rather than use the |
1765 |
code in the C library (DO NOT ENABLE THIS IF YOU DON'T KNOW WHAT IT DOES)</flag> |
1766 |
+ <flag name="mpx">Enable support for Intel Memory Protection Extensions (MPX)</flag> |
1767 |
<flag name="mudflap">Add support for mudflap, a pointer use checking library</flag> |
1768 |
- <flag name="multislot">Allow for SLOTs to include minor version (3.3.4 |
1769 |
- instead of just 3.3)</flag> |
1770 |
<flag name="nopie">Disable PIE support (NOT FOR GENERAL USE)</flag> |
1771 |
<flag name="nossp">Disable SSP support (NOT FOR GENERAL USE)</flag> |
1772 |
- <flag name="ssp">Enable SSP support</flag> |
1773 |
<flag name="objc">Build support for the Objective C code language</flag> |
1774 |
<flag name="objc++">Build support for the Objective C++ language</flag> |
1775 |
<flag name="objc-gc">Build support for the Objective C code language Garbage |
1776 |
Collector</flag> |
1777 |
<flag name="regression-test">Run the testsuite and install the results (requires FEATURES=test)</flag> |
1778 |
- <flag name="sanitize">Build support various sanitizer functions (ASAN/TSAN/etc...)</flag> |
1779 |
+ <flag name="sanitize">Build support for various sanitizer functions (ASAN/TSAN/etc...)</flag> |
1780 |
+ <flag name="ssp">Build packages with stack smashing protector on by default</flag> |
1781 |
+ <flag name="vtv">Build support for virtual table verification (a C++ hardening feature)</flag> |
1782 |
</use> |
1783 |
<upstream> |
1784 |
<remote-id type="cpe">cpe:/a:gnu:gcc</remote-id> |