summaryrefslogtreecommitdiff
path: root/sys-devel
diff options
context:
space:
mode:
Diffstat (limited to 'sys-devel')
-rw-r--r--sys-devel/base-gcc/Manifest57
-rw-r--r--sys-devel/base-gcc/base-gcc-4.6.4.ebuild (renamed from sys-devel/base-gcc/base-gcc-4.7.2.ebuild)29
-rw-r--r--sys-devel/base-gcc/base-gcc-4.7.3-r1.ebuild209
-rw-r--r--sys-devel/base-gcc/base-gcc-4.7.3.ebuild231
-rw-r--r--sys-devel/base-gcc/base-gcc-4.7.4.ebuild211
-rw-r--r--sys-devel/base-gcc/base-gcc-4.8.3.ebuild211
-rw-r--r--sys-devel/base-gcc/files/gcc-spec-env-r1.patch87
-rw-r--r--sys-devel/gcc/Manifest60
-rw-r--r--sys-devel/gcc/files/gcc-4.6.4-fix-ICE-on-arm.patch24
-rw-r--r--sys-devel/gcc/files/gcc-4.6.4-spec-env.patch43
-rw-r--r--sys-devel/gcc/files/gcc-spec-env-r1.patch87
-rw-r--r--sys-devel/gcc/files/gcc-spec-env.patch5
-rw-r--r--sys-devel/gcc/gcc-4.6.4.ebuild (renamed from sys-devel/gcc/gcc-4.7.2.ebuild)10
-rw-r--r--sys-devel/gcc/gcc-4.7.3-r1.ebuild131
-rw-r--r--sys-devel/gcc/gcc-4.7.3.ebuild164
-rw-r--r--sys-devel/gcc/gcc-4.7.4.ebuild132
-rw-r--r--sys-devel/gcc/gcc-4.8.3.ebuild129
17 files changed, 1751 insertions, 69 deletions
diff --git a/sys-devel/base-gcc/Manifest b/sys-devel/base-gcc/Manifest
index bb905ce5..7948bc12 100644
--- a/sys-devel/base-gcc/Manifest
+++ b/sys-devel/base-gcc/Manifest
@@ -1,26 +1,31 @@
-AUX awk/fixlafiles.awk 7807 RMD160 749402c9c0a0f1e8755067c0e001f69d73edb09f SHA1 5fc91ce11eb93e989ae64470dba602fe534ac409 SHA256 3cae4890a295adef50c6cf8a7e14d1be4e7a2356479c073e5c29433c3cdf9c5c
-AUX awk/fixlafiles.awk-no_gcc_la 8596 RMD160 d34279d732586514b220ec0d583c5e634b5d97ef SHA1 95f07ff4d6c3196e682371f02e6d2207d921a1b5 SHA256 91e36c29133b6ff854bc84acd6cd2e9d07be6eaa73ef9b23e4f7bc6371107fab
-AUX fix_libtool_files.sh 1735 RMD160 5035cd4a9995ea6207a8de95815921c3939395bd SHA1 57cd1babab4c6b142dd8cc58b36943442ff2af13 SHA256 b8d86b1db9453dff4c62b3467887bf1e04ecb483120185102122bda2581ed3f5
-AUX gcc-configure-LANG.patch 2052 RMD160 91f5b90600dfccb10c4e2308a5a1485275fdfeee SHA1 56ecd1d6f2e4bd0b35ac108be72a4f6f60212c38 SHA256 63de6d2dcfe14f21d147abeb1390405b9220c03f8e968f482d4b4c1cf279c88b
-AUX gcc-configure-texinfo.patch 337 RMD160 d0e872a9f0ccb5ab51d10f129acd7a19d76a7b75 SHA1 7e267fac540175ce848e563539db8c951cab557b SHA256 74b73a7ecec2d88889876b4db480cd173632f49d5396bb8e5b3c93673f9b5b98
-AUX gcc-spec-env.patch 1544 RMD160 1f7747546513a6d8e16bd82c2824969b9a739dfb SHA1 bdc2736377813da4046ceea77922620dd69d8658 SHA256 64b01f29fb853fee5ecda998b66eeaa7ec86ff1fc3b21432bfd69eb543c93e6a
-AUX mkinfodir 7324 RMD160 96bbe8860ae8c0a50db42fea01cc1c2216bd36c8 SHA1 3b8316da1a0fa94943e6b71be709827563af7058 SHA256 0565353e767e253207adb8b5c9be9ba215a628447e075a4dc7bb3183ed099d2a
-AUX pro-police-docs.patch 3287 RMD160 eef412d92bed145db05bffa3a3e54e2ba74ee50d SHA1 ca58eda97d80f3d51f4e383ad3053fcb13f7a91b SHA256 ec012aed77285545b9d993cba1bc5fdb402c8dc9a17040f48b8b354746ede627
-DIST ecj-4.5.jar 1470676 RMD160 d3f4da657f086b6423f74e93f001132f4855368a SHA1 58c1d79c64c8cd718550f32a932ccfde8d1e6449 SHA256 98fd128f1d374d9e42fd9d4836bdd249c6d511ebc6c0df17fbc1b9df96c3d781
-DIST gcc-4.4.3-specs-0.2.0.tar.bz2 2004 RMD160 0a013f95029a170eeea3cb6ccbfd65f64b66f465 SHA1 61bd3c13400772ec4d5d4fcee297e3d86adbd065 SHA256 f6c7cb99beead66dd4d06f7004c5731a9360330cbe878ce79792c618e008eed2
-DIST gcc-4.5.3-patches-1.1.tar.bz2 20627 RMD160 432101fa66d4be008b6a4c606aea98bd4ae217d3 SHA1 0272e461a5e511d9998085f2b6387d917a151a17 SHA256 171348adbdbf3eeb26f47be414a47591eb332271995a052ef57fccb5742361ec
-DIST gcc-4.5.3-piepatches-v0.4.7.tar.bz2 14638 RMD160 3976e2390acb6d0ada68b697150522fa4bc67682 SHA1 326d230873059c635daf8120afeaeeef1bd3cd52 SHA256 fe3414a85b6b0a1e4ff758c008bbefc7411148ccb9af70cb1a0af179eba55a32
-DIST gcc-4.5.3-uclibc-patches-1.0.tar.bz2 3015 RMD160 af8fad2ca0a948f25bff2b4f4f9868a99c7ceae7 SHA1 679698942814c9b3caaa5d220d672c87df50fa26 SHA256 7ddb8ac57b42c0de07a9afb3338c05d884da3c606f80cf21ee767f9c4682e3f6
-DIST gcc-4.5.3.tar.bz2 66374586 RMD160 d07aa90f2186b4e082dfd5ad5d5188c097fb6247 SHA1 73c45dfda5eef6b124be53e56828b5925198cc1b SHA256 0a8847af44a9b33813b199997a73139517c96adfd519eaf24c79d4d9d09f65de
-DIST gcc-4.6.2-patches-1.0.tar.bz2 12374 RMD160 84aa2e55a8762e2d38161943e1661fd7a89683a8 SHA1 582f0c4bf7b734bb5798b0b8b9deac898557789d SHA256 a6fd308469094095891ba003b9c3c2d4c8bf35713df987609b675f04a43e83df
-DIST gcc-4.6.2-piepatches-v0.4.5.tar.bz2 14156 RMD160 101546367ae798f9080d111e4f9ccc0914ec74c8 SHA1 2ad14aa580d65cbc7dd35b5d05977890e9fb1679 SHA256 a18bea1bc2cad2efde5481a5777a97cf539d206dcbca33758d56d7fbdb43a554
-DIST gcc-4.6.2-uclibc-patches-1.0.tar.bz2 3019 RMD160 7e991775c15d4126bd8d85aceb677c675559606f SHA1 0d316aaf94966cc52b1582282723a932ac065639 SHA256 25e902a6d2db7181394df5ad11fafaad064bf28a6ffebd889033f744613ac201
-DIST gcc-4.6.2.tar.bz2 71995338 RMD160 e7041933b39629f9524848dcf81a1a4c02a225c6 SHA1 691974613b1c1f15ed0182ec539fa54a12dd6f93 SHA256 60b05463dfe18d40d68fb8a71b25b408a01f86cc6ceaf5e6b22238b6b0f450c2
-DIST gcc-4.6.3-patches-1.3.tar.bz2 83071 RMD160 4e8c94ce83421ed1138439f946321763803b3157 SHA1 b05f96f1741828fb13ca23f0bd057223de1908ab SHA256 0acc8494932259dbadc118587626bb2505fc565e1a862bb792116e08961c141a
-DIST gcc-4.6.3-piepatches-v0.5.2.tar.bz2 15002 RMD160 75f25287ded26fd8ae88516b0b72d21fc0f17296 SHA1 8a1848819bc9c3e00513e68abded115410f25f78 SHA256 6606d47a8bbaa9cba0dd3b022cbf6ed14325b8560dd17f7601dbaa4697df3691
-DIST gcc-4.6.3-uclibc-patches-1.0.tar.bz2 3023 RMD160 6487e89d892687c51f4d764979c90133ae4c0a07 SHA1 26581caab046ba4a03041557db641f2899d518af SHA256 4219a3582c5f98bf8437bfc3feb8c264f8aabd8078caaddef46dd38be33f089f
-DIST gcc-4.6.3.tar.bz2 71999439 RMD160 9abb2f940d08fc84f2d91b6a6ce8d662ca889269 SHA1 ce317ca5c8185b58bc9300182b534608c578637f SHA256 e8f5853d4eec2f5ebaf8a72ae4d53c436aacf98153b2499f8635b48c4718a093
-EBUILD base-gcc-4.5.3-r2.ebuild 4481 RMD160 253e913d84ea216f1f6f4ce6ba22db93b0158eab SHA1 fae5c11e489e17b4a3c8eeb19dad7a253d8ac259 SHA256 c3a139f9d4f8a96f96b50921ffd5aff131e949807dcad60480d883721cfcffff
-EBUILD base-gcc-4.6.2.ebuild 4605 RMD160 b49258fd5e27cd84a2ea7b4ad0202daacd3f611a SHA1 fc5db91c140f26c995caf709239104f9460c92bc SHA256 ccd02cc3a9d6c8bac9ae9ee294c0744bc5173b92007d96b6bd9d0836225e7b1a
-EBUILD base-gcc-4.6.3.ebuild 5972 RMD160 77181ebd015794f73c04aac7dd6e0f97f8618bee SHA1 889e2eefe229c4e3c51762065e3375ad7e4943a5 SHA256 5550e6d45454b2396704b0dfae3dbb856c4ef8fefe79492d5111192f9b226ee7
-MISC metadata.xml 1780 RMD160 0fa658c47436e17235cd03b5a9a3cbd8448e474b SHA1 127adff4704c040ee42d43bd9ea8218b408203cf SHA256 57d7428c3d0ef34e72e780a3cfa7a059202b5c80f2d61cc12f90f0d1e8f5f12e
+DIST ecj-4.5.jar 1470676 SHA256 98fd128f1d374d9e42fd9d4836bdd249c6d511ebc6c0df17fbc1b9df96c3d781 SHA512 d4e1bf7538ace56e3d69fa91da5bbd16c272923b4de0a9d8dee23ea2b75f9f38c603de72fc4061df49285c450b63f3df211cee5270e9fffc5447445d1a9c9e4e WHIRLPOOL db54206cfd5eba935e707b8d36ebac40f3c4ed3c1f06ede794288cbdd9c7da9d90c0898e8c98b383af276ea4c1b40c861ebd9e1fc1dce712946184321339d3ad
+DIST gcc-4.4.3-specs-0.2.0.tar.bz2 2004 SHA256 f6c7cb99beead66dd4d06f7004c5731a9360330cbe878ce79792c618e008eed2 SHA512 779ecb0a064d2138b54569c8ae501975b8a6b72e5a3acbf8597619a8db77ee42ef9b0e62608d5192a15e4393e7dfc009bb50b994782236faa744b2c46b5fe517 WHIRLPOOL 8a1e45aad9d306cb19de93c63b5854a97e629d90852feb6861dcfca042b6257705304fc13ad65655a4cb227d36b83fc6063648c94f270821574ee0e85307094e
+DIST gcc-4.5.3-patches-1.1.tar.bz2 20627 SHA256 171348adbdbf3eeb26f47be414a47591eb332271995a052ef57fccb5742361ec SHA512 02e283e67e8c855e4e41a731c2a9f69a2d5160f3ef2cc928c945960b07e88f549b4920262c3476a400245d074726c5d87c256b5275a2c647fc4cf1cebbd197d9 WHIRLPOOL 7e93abb596e31077c7bd524bf5357ca3256959d1eb5edd71075b8aa99492b6bbfc631d8e27ba25227be1af7c4cb3c24142868c8ec93b0552f2c4ddeb6f3e483a
+DIST gcc-4.5.3-piepatches-v0.4.7.tar.bz2 14638 SHA256 fe3414a85b6b0a1e4ff758c008bbefc7411148ccb9af70cb1a0af179eba55a32 SHA512 e3cebb6caa67a949ec8e2a129ee2fb53e4f04549891d8522756c3f123495169d37328dc25c5f12ba79a530d79b422e95b2e8423301c1c521463da7ddabc1240e WHIRLPOOL 4b01a6c8099bc26ed197e8ba1236dbe1327777033a025c269976ac6a218a12a47b7e333356ace3727852b0b58d4e26e33b68538cbf591dca325376ccad45c410
+DIST gcc-4.5.3-uclibc-patches-1.0.tar.bz2 3015 SHA256 7ddb8ac57b42c0de07a9afb3338c05d884da3c606f80cf21ee767f9c4682e3f6 SHA512 dee229ab53968cd1b6eab3040dcb64d145d194bc55eb0599036192e27cfb6001db857f3a0baac9a31edd6df57941c59b6323f5a533bf834a5ca4288f84cc911c WHIRLPOOL c1579263965b6b05e075e6064afb716f3d60c39ff7e7cd10e05639312c789c7498a39d89fd05962788d2be14331d53d2f8a8c29745d263921021144cb39b86dc
+DIST gcc-4.5.3.tar.bz2 66374586 SHA256 0a8847af44a9b33813b199997a73139517c96adfd519eaf24c79d4d9d09f65de SHA512 42c03aa0d16a52e95d1857d859ddd0a4923c232b90481ee52b02bc9a3976bc6e5e502e94af3fc76ac054572a420303c47e409c72f816416aeffd74c4bcd443d3 WHIRLPOOL faad2337eaae059cde6a2f42227f29a6c2855e6cbf16894a178e446b7668b7f68e23a7968926473974ec9aff3680cebbebfc01af0a60474ff90cf1fad3e96a11
+DIST gcc-4.6.2-patches-1.0.tar.bz2 12374 SHA256 a6fd308469094095891ba003b9c3c2d4c8bf35713df987609b675f04a43e83df SHA512 e320dc000a1640cbca174a66a2ae3b88d2f64df35205a1e94d654cee01904e571b3297b4d6a5bd5eb4e697d557436366926ff574d85f9e1e69d14f77e11c0900 WHIRLPOOL a31a80cfb28f116d05f1615dd29f234d8aa67b51c8bce66a1536fc38e8c4b8dca424e86b944be7000c5219b321dd0e95149a1e6f3eb0a5c91d019168a5245bf2
+DIST gcc-4.6.2-piepatches-v0.4.5.tar.bz2 14156 SHA256 a18bea1bc2cad2efde5481a5777a97cf539d206dcbca33758d56d7fbdb43a554 SHA512 53212c6cfb4b8ce6a02af9c6542904d2840cd06346e108daf5e655ee4a7844ff8cb7ed7effda5e5848ea6022f4c0545429121485a4d7a4fad545b2dd2f971103 WHIRLPOOL e783b087283931d3ca36c099f7260e683f6a5348068901fa8b5a45e3c257193add972168700094d90815a6415b582f1fef9270971fe4c2e317333af074af55f8
+DIST gcc-4.6.2-uclibc-patches-1.0.tar.bz2 3019 SHA256 25e902a6d2db7181394df5ad11fafaad064bf28a6ffebd889033f744613ac201 SHA512 b02ce4bd972e80923182b86ff77d9a37b7733985501a9c6f1889d4c77cd0d240ba984d4bd902ba13502fe158b891d313360812f4076044ab58539f2e29930e0e WHIRLPOOL 950bab1bd47d4bf533a618637917449f50d6f9b9bef1b51a9a22248f7d11c1af411d226d57d856ce7736d6d6516345e82ce0fadca18eee68572e1a3af11e4c8b
+DIST gcc-4.6.2.tar.bz2 71995338 SHA256 60b05463dfe18d40d68fb8a71b25b408a01f86cc6ceaf5e6b22238b6b0f450c2 SHA512 51bd123b71b6e4ee4e4b9689a93d328332ea129692f6af2473efdcaedc897a130e4c1948820b3543846d89bb2dd5427b236d2a5d5a6cfa371ba086577f9c0e62 WHIRLPOOL eca8104dbaad1d9682425dd142cbebf3a62a730a1e3d99317f1bd082fb5c0c7fbd0522b3b14f75349618897173fcba79eb82d53718ec8e156bda56f78d1531dd
+DIST gcc-4.6.3-patches-1.3.tar.bz2 83071 SHA256 0acc8494932259dbadc118587626bb2505fc565e1a862bb792116e08961c141a SHA512 8b0a82b6f84d77064adb0f2905b266dada801e929decf6efb0b12dc153958c2c78d092437386576d023896ef44dd66b3259e23a4ade2f80e5972fcd3fc893c50 WHIRLPOOL a79dcf59032b8210a678b4383af02c188612573acb671b90cf411dc7a7e47bb0c8f7876bd2ee24c6b6272a71343e99bafd9f1685edc54f5ed384d27d3758e8e1
+DIST gcc-4.6.3-piepatches-v0.5.2.tar.bz2 15002 SHA256 6606d47a8bbaa9cba0dd3b022cbf6ed14325b8560dd17f7601dbaa4697df3691 SHA512 21ec5bcd43ec0075f8885ef6f567fd9ffd0a64f4c4f9340262900b91a8f22f73a22cd320d6c5a9211083a0a4d21f61ff42e4d9368b5768b395d6ec1b17fc47eb WHIRLPOOL f38666e7c47d9e10b96a22b85c90659800ecfa86d7cf9d5ff69385dc5584fc6ea4b90265ec62d8066adab63a647c1a4bd0f0d1cc69057fcc08c4aa6856cd5766
+DIST gcc-4.6.3-uclibc-patches-1.0.tar.bz2 3023 SHA256 4219a3582c5f98bf8437bfc3feb8c264f8aabd8078caaddef46dd38be33f089f SHA512 e0763dc7f3f94cb9ba6e34233d1a2fa6913918a5100dd029ae76b3b086529b8fafae3086dc22f3294f7d378e5548294264cb2faa80866e8a1ecc666bf60fe010 WHIRLPOOL 1744810d5928b1869929ebd608e1d817e4bcb4f666647bc873e9bdb41c65833a40745e58de5ef4beb98ef4ac539c8560733100a3bbee280c76525ee518ae88c8
+DIST gcc-4.6.3.tar.bz2 71999439 SHA256 e8f5853d4eec2f5ebaf8a72ae4d53c436aacf98153b2499f8635b48c4718a093 SHA512 efedecc1a6d1c36eb91cbecfae9a4414d01051e99965de8a284d1164df3cad13fa99a6dd5a4ceaa03ef63a66884eaf729b49d602ac82088f788bab045ce1eb26 WHIRLPOOL a50059cc5ec5bcf7c7d7108e38087c2168ff0c6817d06b709be901a87007f84cd231ebae0752cdc94fa99c93ecd30ba810d3213aba9f3639292b1e831818ec0c
+DIST gcc-4.6.4-patches-1.0.tar.bz2 18687 SHA256 f751e2e701c48bc30d3047b87b5d08fb15095de3bb5b83c9662c08f5e5449a92 SHA512 8dd580faa9bcffcdeb1843a8d3d3bd8db492891d855c17bba3cc019673d814a5d24a927055694307be6438cb2c041bc799646a483c019f3840e4e1ca33b7ccb5 WHIRLPOOL 695fd821f347062bed01305fa1aca8c0cf4085391ad63f31df4afa3f4eaeb57eba7cebae02caac788dc9b290a57d675e66667ee3e15522d7d2909cbcbf1e6982
+DIST gcc-4.6.4-piepatches-v0.5.2.tar.bz2 14888 SHA256 a6a853197fb0de66c07e6183e686dbdb1f4b55108efd4c8363662cb2b971f43c SHA512 2fd1993b0dc7fc2096e17198f70ff6328ac4d3b7c0db597e3bc119df10eb0b9744f8e6cc659ae1ddd8afdb14f94cb85fdd12033a5d76026c7f84aca44ce9c9b8 WHIRLPOOL 61babd71167114a3f8579e8fb4bba5ed0c217cff4f3760b89de8a67d69c05de43b49bd9f567e6417b69874a878ecdc0e98d807a0e25a9dc80ef5c67594e15a0d
+DIST gcc-4.6.4-uclibc-patches-1.0.tar.bz2 3010 SHA256 946334cc62c0afa2f50a435dffbed12fd32c170f0850bbdce47df188a1eb8918 SHA512 fd289089a30c768b0ec4e3459cf494bc5e9d4ecf87056dc183277c712f7d69ac4cf900950270d8eacfe686b4aa906e1ece87cae52f2cb00642e96c0b95dcf133 WHIRLPOOL 2ce7f308a21fb5072d08a640390eb3f453ad8d811df897b0f9d3e917eef4680fce6cce231159ffe96e371f3c299264eaa51cd110124a3a126f04fb6d8531639e
+DIST gcc-4.6.4.tar.bz2 72006076 SHA256 35af16afa0b67af9b8eb15cafb76d2bc5f568540552522f5dc2c88dd45d977e8 SHA512 b5a5395782e0b9e61cda052f6e00c8575d1aa0b7e8db9e34c06e4e45f12ff37b436018536b7fa69a04a4235b5b368895652e3ed8fab2fe11763f9782ed9161dc WHIRLPOOL ab1b035f43aec669640b36037e65ae0edceb3b13b1ce4f7900aeff5ee06686dc2d66c3dd81156f53c4e9a9a806e4becd4462f72a6c4ad7e646b632c10c23356c
+DIST gcc-4.7.3-patches-1.0.tar.bz2 39969 SHA256 c9a5d7c6da7d056f7fca15b33eb7f399bb7ed5a2d0a892b97e0c7609146a2a24 SHA512 d5c3151eca135bb08511955d81c7727adbf8fc33043b64a4431b0fe95d2cac1bf3c5410fa9616373d6b3d932604195ff29f6321e61a3de69a7704f1d1cb1759f WHIRLPOOL 315578ef5a7226ed66c4831b25c79647120453dc169dc8ecd291e099500ae52284ffa451164522d6d55d11c440a7aa353a283c07e28c103c522df0c2e2f43fff
+DIST gcc-4.7.3-patches-1.4.tar.bz2 43148 SHA256 bfafbd4c1cdd589858c18072f8e06c537370169cce1788aba869f35096174e57 SHA512 6dfc5b405e2eca70642f42974d7d3183ff8f0eed3e9f29fbf197e8959bc1795a1ba54df99e4f73df1017332f46bdf3d1c10d4b0f89fea71d604dd5ebda488c22 WHIRLPOOL 2fbd05323dd803a1b2b7c09a3b44cc8f23d4662f61a89b9365a5d505b4a605ac168fc940bae5992e2ad6b821f93d0f6651092d3301b15fdfd14ccf608fa241e6
+DIST gcc-4.7.3-piepatches-v0.5.5.tar.bz2 15378 SHA256 b6f6b6709e7b13f6c05090f3bf68f3a64db19d52593a870cc7717c5c128b05a2 SHA512 d0189d2e4049d471dedaddcba319fe2c2b29855f7b33e84b26051504ead2936c852ef7870a1d19d755bb343c9b121b0ce5295665ab4ff1e448436bd448c08e1f WHIRLPOOL ccceedb41d48da69f5a423b6b73436c9fbb7b1e382456abfcef954f25666e1b7caf926bc5eb977e934502359a356d623c439d80825e87d9fe46b5ae78a74bde3
+DIST gcc-4.7.3-uclibc-patches-1.0.tar.bz2 3013 SHA256 731c518f31db8debd08bea92db8e3bf1e9962552909407452dc2ac3c491cf11c SHA512 6119159300e76be87732f2a44b1a9388228235d7832370dbae531c2c96694ea42ed4c75acf7abca98ec0035fbc50a8bf84225574505358c2739e64b0f3fd6a95 WHIRLPOOL 4a874a5684937907720aa5a4a1dbc237aa7d985292befd1c591cf0789c71e0da22ced5b7f7e049731bc2d6496e959cbe3c9010047ceb1b05675e61865004c71a
+DIST gcc-4.7.3.tar.bz2 82904224 SHA256 2f7c37eb4fc14422ff2358a9ef59c974a75ab41204ef0e49fc34ab1d8981a9c3 SHA512 5671a2dd3b6ac0d23f305cb11a796aebd823c1462b873136b412e660966143f4e07439bd8926c1443b78442beb6ae370ef91d819ec615920294875b722b7b0bd WHIRLPOOL cb3408e3e251833f38ae7cf2388a1ddce864614fe1c68de9729a1a9a1f8f028ab92c0f2b863e7fa3ac16dbf443306ac864e74c9cce90690230c081ee2ac309d3
+DIST gcc-4.7.4-patches-1.2.tar.bz2 41732 SHA256 6885f63b7cd37a0f4fb9584a15e3144c5a08abd2b1fdcc485f43daba576f162c SHA512 ee42ca54ee8a3b03c20870493ac91ceb224c74c8f6c92e9bec43a2e4c46a0179a349faa14e3d6583367dec6e001cb2071a31d2eeadb4902ea97a7cf9a3958b6b WHIRLPOOL 04672dd9f9e481e591d0cb4a7bd2f65d7e78c3a44b91d982db3e78d1c9a3b29a544726a89d34ea4f4c9791595f21da2ad97ec87c719e5334b6eb7100df6e28b3
+DIST gcc-4.7.4-piepatches-v0.5.5.tar.bz2 15358 SHA256 6b568bd204e3ffb177df1830e5a888be3987491b4183bdb6ad75ad83c642a348 SHA512 f5e078bf4c17f7b5be102f1e3358d91c72e80363b5e055a92461f78399a1bf27bf6cb690d41900719bb260b6529f5d1aac999e613fda6ac5e4efa27f622510e6 WHIRLPOOL 42e348d5925cf4d43697a6dc06c911cc617f89037949ce1d8f7aa0fa93405f460e7416d6cd00e8fb2aac54c6f26fcae00691917f1517fcfb6891925efa3d3400
+DIST gcc-4.7.4-uclibc-patches-1.0.tar.bz2 3019 SHA256 cbdfe2947f653e11ac391dded461416e5cef1ff8900cf8fe92672de797b4018b SHA512 c2e6c96b74365f8233f6106fa03d94075b60f6f77c683aa2e27aceb007da723243f8e3ddea8b178e6a0f7939b8e35615165534dc74e5050f87680ab261a31c52 WHIRLPOOL 53c8bd64336eb55d8e3d62a33267d3d99c0239d5c818985a9830fd776d766aabf4b0bce630949c5b522580566e2eeba1b59bfc1b8388dee7ec6c990512d2c499
+DIST gcc-4.7.4.tar.bz2 82935453 SHA256 92e61c6dc3a0a449e62d72a38185fda550168a86702dea07125ebd3ec3996282 SHA512 dfcb737073191e628231031a3571ec77ee760a59377630f4a6e4fdfa66f9ddad39fde47e3f0f227eb43cdf90e0d34cde5abdc9ac892c1e111a911062a66c9189 WHIRLPOOL df8408e80634ce28f105f9abcdcf38fba5c130795cbe48428527a68819abebc3bc7152bb6ad714e40c71450a08986b48ddd630c887e1b2faf07c3babfe720969
+DIST gcc-4.8.3-patches-1.1.tar.bz2 19882 SHA256 019cbe76f20f4e294b900ccb99a6b52553ed04fa0d2993798b3a07b0e4a8f90a SHA512 8512ec54fb2d482e08ca54042e11c6334d653ec850cc7c920ed95654575222ac0303caa35cd46e80f1985d86cd229f35e26e0eaca1ae623fd8d336940148801c WHIRLPOOL d7b8d6278b6f79aa00fcd29ed6142cad3002def33edb0be44e638d50cb3b1fa8da72fa62a7276c81c94cd873c872dd0e7fd602022420d9601fde8f2b04872ece
+DIST gcc-4.8.3-piepatches-v0.5.9.tar.bz2 13310 SHA256 d08e3770453edb728216243ecaf639ff7bc8aa77560fffdd561b2a0859d0b869 SHA512 d9d7dc4b7d8f52cce48dff36ee32db5346baed50968a1cacafa9a426849c5df5387061b26c8a0d2363bf91e5f55cb459cb4a176c5652690f914916047c0437f8 WHIRLPOOL 1e5cb3556b695de7f42ab44636194e86128f80bdffbe049fc1d4ee17b772bc1ea2089b3fe88bec60c52aab4bf5301344be27fd11be3c6cc8ef798d6441285c8b
+DIST gcc-4.8.3-uclibc-patches-1.0.tar.bz2 3014 SHA256 75f089ed44e33be8923f82eaa1d231f71d2cded475fb10938eded386647c5e04 SHA512 7e74fefae6136d2e132ee37905adbdf7f528d31a7bb67ed97bc99b6208f177a6105ef0f0e0c77eb87368359f7da49de768ff98ec07a569e19bfdd00f67a445a8 WHIRLPOOL 6fd766ba280fc0b96f1823315b5098a36d361dc9c8d179b2e262d72156508b70c560ef5095f3556bb5c922e495cc7eefb4bd5d970b2e4dff9e9ce654703fddc5
+DIST gcc-4.8.3.tar.bz2 86126808 SHA256 6a8e4f11b185f4fe2ed9d7fc053e80f8c7e73f800c045f51f9d8bea33f080f1e SHA512 2b40d231e8445f9c1654137df509f09ce1187b475138ca7f648f710d922a1718f740b2d8a37c26e16b5e27900c60358be98229ae884a6f1f70e9df44ad24d02b WHIRLPOOL 6dd3bd4b51bb9b8c52fb743bba28cde8612ff7090b71e56bf02d3613b91cd4c3c4dd91dbcb672985f22400d776870ba55550e1fc44afae9737092ceca5f83ebd
diff --git a/sys-devel/base-gcc/base-gcc-4.7.2.ebuild b/sys-devel/base-gcc/base-gcc-4.6.4.ebuild
index 51b07d01..b9cd301c 100644
--- a/sys-devel/base-gcc/base-gcc-4.7.2.ebuild
+++ b/sys-devel/base-gcc/base-gcc-4.6.4.ebuild
@@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
# $Header: $
-PATCH_VER="1.3"
+PATCH_VER="1.0"
UCLIBC_VER="1.0"
# Hardened gcc 4 stuff
@@ -55,8 +55,6 @@ DEPEND="${RDEPEND}
>=sys-devel/bison-1.875
>=sys-devel/flex-2.5.4
>=${CATEGORY}/binutils-2.18"
-PDEPEND=">=sys-devel/gcc-config-1.4
- go? ( >=sys-devel/gcc-config-1.5 )"
## Check for valid gcc profile.
src_unpack() {
@@ -83,7 +81,7 @@ src_unpack() {
eerror "The active gcc-profile is for sys-devel/gcc slot ${SLOT}."
eerror "Sabayon's split sys-devel/gcc package MUST be built"
eerror "with another slotted version of sys-devel/gcc active."
- die "Invalid gcc profile selected!"
+ ebeep 10
fi
toolchain_src_unpack
@@ -93,7 +91,6 @@ src_unpack() {
[[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env.patch
}
-## Remove lto conditional
pkg_setup() {
toolchain_pkg_setup
@@ -194,9 +191,27 @@ pkg_preinst() {
:
}
-## Do nothing!
pkg_postinst() {
- :
+ # Sabayon specific bits to always force the latest gcc profile
+ local gcc_atom=$(best_version sys-devel/base-gcc)
+ local gcc_ver=
+ if [ -n "${gcc_atom}" ]; then
+ elog "Found latest base-gcc to be: ${gcc_atom}, forcing this profile"
+ gcc_ver=$(portageq metadata "${ROOT}" installed "${gcc_atom}" PV)
+ else
+ eerror "No sys-devel/base-gcc installed"
+ fi
+
+ if [ -n "${gcc_ver}" ]; then
+ local target="${CTARGET:${CHOST}}-${gcc_ver}"
+ local env_target="${ROOT}/etc/env.d/gcc/${target}"
+ [[ -e "${env_target}-vanilla" ]] && find_target="${target}-vanilla"
+
+ elog "Setting: ${target} GCC profile"
+ gcc-config "${target}"
+ else
+ eerror "No sys-devel/base-gcc version installed? Cannot set a proper GCC profile"
+ fi
}
## Do nothing!
diff --git a/sys-devel/base-gcc/base-gcc-4.7.3-r1.ebuild b/sys-devel/base-gcc/base-gcc-4.7.3-r1.ebuild
new file mode 100644
index 00000000..9f47e9d4
--- /dev/null
+++ b/sys-devel/base-gcc/base-gcc-4.7.3-r1.ebuild
@@ -0,0 +1,209 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+PATCH_VER="1.4"
+UCLIBC_VER="1.0"
+
+# Hardened gcc 4 stuff
+PIE_VER="0.5.5"
+SPECS_VER="0.2.0"
+SPECS_GCC_VER="4.4.3"
+# arch/libc configurations known to be stable with {PIE,SSP}-by-default
+PIE_GLIBC_STABLE="x86 amd64 ppc ppc64 arm ia64"
+PIE_UCLIBC_STABLE="x86 arm amd64 ppc ppc64"
+SSP_STABLE="amd64 x86 ppc ppc64 arm"
+# uclibc need tls and nptl support for SSP support
+# uclibc need to be >= 0.9.33
+SSP_UCLIBC_STABLE="x86 amd64 ppc ppc64 arm"
+#end Hardened stuff
+
+inherit eutils toolchain
+
+# This is here to redeclare is_gcc() in toolchain.eclass
+# We don't even want to build gcj, which is a real hog
+# on memory constrained hardware. base-gcc doesn't actually
+# ship with it atm.
+is_gcj() {
+ return 1
+}
+
+DESCRIPTION="The GNU Compiler Collection"
+
+LICENSE="GPL-3+ LGPL-3+ || ( GPL-3+ libgcc libstdc++ gcc-runtime-library-exception-3.1 ) FDL-1.3+"
+KEYWORDS="alpha amd64 arm hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 -amd64-fbsd -x86-fbsd"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ elibc_glibc? ( >=sys-libs/glibc-2.8 )
+ >=${CATEGORY}/binutils-2.18"
+
+src_unpack() {
+ # Since Sabayon's gcc ebuild are split into two parts, we have to
+ # build gcc with a different version of gcc, or terrible breakage
+ # will occur after sys-devel/base-gcc is installed, but the
+ # partner sys-devel/gcc still needs to be built.
+
+ # While it is possible to rebuild Sabayon's split gcc from
+ # the same version, we have to disallow this also since
+ # we have no way of discerning if a configuration change
+ # is significant enough to cause breakage.
+
+ GCC_PROFILE_VER=$(cat ${ROOT}/etc/env.d/gcc/config-$CHOST | awk -F- '{ print $NF }')
+ einfo "Checking for valid gcc profile to build ${P}"
+
+ # Construct the Slot of the gcc version in the active profile.
+ GCC_PROFILE_SLOT_MAJOR=$(echo ${GCC_PROFILE_VER} | awk -F. '{ print $1 }')
+ GCC_PROFILE_SLOT_MINOR=$(echo ${GCC_PROFILE_VER} | awk -F. '{ print $2 }')
+ GCC_PROFILE_SLOT="${GCC_PROFILE_SLOT_MAJOR}.${GCC_PROFILE_SLOT_MINOR}"
+ einfo "Current gcc profile version Slot is: ${GCC_PROFILE_SLOT}"
+ if [[ "${GCC_PROFILE_SLOT}" = "${SLOT}" ]] ; then
+ eerror "Error!"
+ eerror "The active gcc-profile is for sys-devel/gcc slot ${SLOT}."
+ eerror "Sabayon's split sys-devel/gcc package MUST be built"
+ eerror "with another slotted version of sys-devel/gcc active."
+ ebeep 10
+ fi
+
+ if has_version '<sys-libs/glibc-2.12' ; then
+ ewarn "Your host glibc is too old; disabling automatic fortify."
+ ewarn "Please rebuild gcc after upgrading to >=glibc-2.12 #362315"
+ EPATCH_EXCLUDE+=" 10_all_default-fortify-source.patch"
+ fi
+
+ # drop the x32 stuff once 4.7 goes stable
+ if [[ ${CTARGET} != x86_64* ]] || ! has x32 $(get_all_abis TARGET) ; then
+ EPATCH_EXCLUDE+=" 90_all_gcc-4.7-x32.patch"
+ fi
+
+ toolchain_src_unpack
+
+ use vanilla && return 0
+
+ [[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env.patch
+}
+
+## Just install libgcc stuff
+src_install() {
+ cd "${WORKDIR}/build"
+ S="${WORKDIR}"/build \
+ emake -j1 -C "${CTARGET}/libgcc" DESTDIR="${D}" install-shared || die
+ if use multilib; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/32/libgcc" DESTDIR="${D}" \
+ install-shared || die
+ fi
+
+ if use mudflap; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/libmudflap" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ if use multilib; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/32/libmudflap" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ fi
+ fi
+
+ if use openmp; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/libgomp" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ if use multilib; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/32/libgomp" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ fi
+ fi
+
+ S="${WORKDIR}"/build \
+ emake -j1 -C "${CTARGET}/libstdc++-v3/src" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ if use multilib; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/32/libstdc++-v3/src" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ fi
+
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/libstdc++-v3/po" DESTDIR="${D}" install || die
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/libgomp" DESTDIR="${D}" install-info || die
+
+ S="${WORKDIR}"/build emake -j1 DESTDIR="${D}" install-target-libquadmath || die
+ if use fortran; then
+ S="${WORKDIR}"/build emake -j1 DESTDIR="${D}" install-target-libgfortran || die
+ fi
+ # TODO: what to do with USE objc++ and objc-gc ?
+ if use objc; then
+ S="${WORKDIR}"/build emake -j1 DESTDIR="${D}" install-target-libobjc || die
+ fi
+
+ # from toolchain.eclass yay
+ gcc_movelibs
+
+ dodir /etc/env.d/gcc
+ create_gcc_env_entry
+
+ # Setup the gcc_env_entry for hardened gcc 4 with minispecs
+ if want_minispecs ; then
+ copy_minispecs_gcc_specs
+ fi
+
+ # drop any .la, .a
+ find "${D}" -name *.a -delete
+ find "${D}" -name *.la -delete
+
+ # drop any include
+ rm "${D}${LIBPATH}"/include -rf
+ # drop specs as well, provided by sys-devel/gcc-${PV}:${SLOT}
+ # unfortunately, the spec shit above does create the env.d/
+ # file content...
+ rm "${D}${LIBPATH}"/{32/,}*.spec{s,} -rf
+ rm "${D}${LIBPATH}"/specs -rf
+
+ # Now do the fun stripping stuff
+ env RESTRICT="" CHOST=${CTARGET} prepstrip "${D}${LIBPATH}"
+
+ cd "${S}"
+ if ! is_crosscompile; then
+ has noinfo ${FEATURES} \
+ && rm -r "${D}/${DATAPATH}"/info \
+ || prepinfo "${DATAPATH}"
+ fi
+
+ # use gid of 0 because some stupid ports don't have
+ # the group 'root' set to gid 0
+ chown -R root:0 "${D}"${LIBPATH}
+}
+
+## Do nothing!
+pkg_preinst() {
+ :
+}
+
+## Do (almost) nothing!
+pkg_postinst() {
+ # Sabayon specific bits to always force the latest gcc profile
+ local gcc_atom=$(best_version sys-devel/base-gcc)
+ local gcc_ver=
+ if [ -n "${gcc_atom}" ]; then
+ elog "Found latest base-gcc to be: ${gcc_atom}, forcing this profile"
+ gcc_ver=$(portageq metadata "${ROOT}" installed "${gcc_atom}" PV)
+ else
+ eerror "No sys-devel/base-gcc installed"
+ fi
+
+ if [ -n "${gcc_ver}" ]; then
+ local target="${CTARGET:${CHOST}}-${gcc_ver}"
+ local env_target="${ROOT}/etc/env.d/gcc/${target}"
+ [[ -e "${env_target}-vanilla" ]] && find_target="${target}-vanilla"
+
+ elog "Setting: ${target} GCC profile"
+ gcc-config "${target}"
+ else
+ eerror "No sys-devel/base-gcc version installed? Cannot set a proper GCC profile"
+ fi
+}
+
+## Do nothing!
+pkg_prerm() {
+ :
+}
+
+## Do nothing!
+pkg_postrm() {
+ :
+}
diff --git a/sys-devel/base-gcc/base-gcc-4.7.3.ebuild b/sys-devel/base-gcc/base-gcc-4.7.3.ebuild
new file mode 100644
index 00000000..72aff96f
--- /dev/null
+++ b/sys-devel/base-gcc/base-gcc-4.7.3.ebuild
@@ -0,0 +1,231 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+PATCH_VER="1.0"
+UCLIBC_VER="1.0"
+
+# Hardened gcc 4 stuff
+PIE_VER="0.5.5"
+SPECS_VER="0.2.0"
+SPECS_GCC_VER="4.4.3"
+# arch/libc configurations known to be stable with {PIE,SSP}-by-default
+PIE_GLIBC_STABLE="x86 amd64 ppc ppc64 arm ia64"
+PIE_UCLIBC_STABLE="x86 arm amd64 ppc ppc64"
+SSP_STABLE="amd64 x86 ppc ppc64 arm"
+# uclibc need tls and nptl support for SSP support
+# uclibc need to be >= 0.9.33
+SSP_UCLIBC_STABLE="x86 amd64 ppc ppc64 arm"
+#end Hardened stuff
+
+inherit eutils toolchain
+
+# This is here to redeclare is_gcc() in toolchain.eclass
+# We don't even want to build gcj, which is a real hog
+# on memory constrained hardware. base-gcc doesn't actually
+# ship with it atm.
+is_gcj() {
+ return 1
+}
+
+DESCRIPTION="The GNU Compiler Collection"
+
+LICENSE="GPL-3 LGPL-3 || ( GPL-3 libgcc libstdc++ gcc-runtime-library-exception-3.1 ) FDL-1.2"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
+
+RDEPEND=">=sys-libs/zlib-1.1.4
+ virtual/libiconv
+ >=dev-libs/gmp-4.3.2
+ >=dev-libs/mpfr-2.4.2
+ >=dev-libs/mpc-0.8.1
+ graphite? (
+ >=dev-libs/cloog-ppl-0.15.10
+ >=dev-libs/ppl-0.11
+ )
+ !build? (
+ nls? ( sys-devel/gettext )
+ )"
+
+DEPEND="${RDEPEND}
+ test? (
+ >=dev-util/dejagnu-1.4.4
+ >=sys-devel/autogen-5.5.4
+ )
+ >=sys-apps/texinfo-4.8
+ >=sys-devel/bison-1.875
+ >=sys-devel/flex-2.5.4
+ >=${CATEGORY}/binutils-2.18"
+
+## Check for valid gcc profile.
+src_unpack() {
+ # Since Sabayon's gcc ebuild are split into two parts, we have to
+ # build gcc with a different version of gcc, or terrible breakage
+ # will occur after sys-devel/base-gcc is installed, but the
+ # partner sys-devel/gcc still needs to be built.
+
+ # While it is possible to rebuild Sabayon's split gcc from
+ # the same version, we have to disallow this also since
+ # we have no way of discerning if a configuration change
+ # is significant enough to cause breakage.
+
+ GCC_PROFILE_VER=$(cat ${ROOT}/etc/env.d/gcc/config-$CHOST | awk -F- '{ print $NF }')
+ einfo "Checking for valid gcc profile to build ${P}"
+
+ # Construct the Slot of the gcc version in the active profile.
+ GCC_PROFILE_SLOT_MAJOR=$(echo ${GCC_PROFILE_VER} | awk -F. '{ print $1 }')
+ GCC_PROFILE_SLOT_MINOR=$(echo ${GCC_PROFILE_VER} | awk -F. '{ print $2 }')
+ GCC_PROFILE_SLOT="${GCC_PROFILE_SLOT_MAJOR}.${GCC_PROFILE_SLOT_MINOR}"
+ einfo "Current gcc profile version Slot is: ${GCC_PROFILE_SLOT}"
+ if [[ "${GCC_PROFILE_SLOT}" = "${SLOT}" ]] ; then
+ eerror "Error!"
+ eerror "The active gcc-profile is for sys-devel/gcc slot ${SLOT}."
+ eerror "Sabayon's split sys-devel/gcc package MUST be built"
+ eerror "with another slotted version of sys-devel/gcc active."
+ ebeep 10
+ fi
+
+ # drop the x32 stuff once 4.7 goes stable
+ if [[ ${CTARGET} != x86_64* ]] || ! has x32 $(get_all_abis TARGET) ; then
+ EPATCH_EXCLUDE+=" 90_all_gcc-4.7-x32.patch"
+ fi
+
+ toolchain_src_unpack
+
+ use vanilla && return 0
+
+ [[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env.patch
+}
+
+pkg_setup() {
+ toolchain_pkg_setup
+
+ ewarn
+ ewarn "LTO support is still experimental and unstable."
+ ewarn "Any bugs resulting from the use of LTO will not be fixed."
+ ewarn
+}
+
+## Just install libgcc stuff
+src_install() {
+ cd "${WORKDIR}/build"
+ S="${WORKDIR}"/build \
+ emake -j1 -C "${CTARGET}/libgcc" DESTDIR="${D}" install-shared || die
+ if use multilib; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/32/libgcc" DESTDIR="${D}" \
+ install-shared || die
+ fi
+
+ if use mudflap; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/libmudflap" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ if use multilib; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/32/libmudflap" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ fi
+ fi
+
+ if use openmp; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/libgomp" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ if use multilib; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/32/libgomp" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ fi
+ fi
+
+ S="${WORKDIR}"/build \
+ emake -j1 -C "${CTARGET}/libstdc++-v3/src" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ if use multilib; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/32/libstdc++-v3/src" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ fi
+
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/libstdc++-v3/po" DESTDIR="${D}" install || die
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/libgomp" DESTDIR="${D}" install-info || die
+
+ S="${WORKDIR}"/build emake -j1 DESTDIR="${D}" install-target-libquadmath || die
+ if use fortran; then
+ S="${WORKDIR}"/build emake -j1 DESTDIR="${D}" install-target-libgfortran || die
+ fi
+ # TODO: what to do with USE objc++ and objc-gc ?
+ if use objc; then
+ S="${WORKDIR}"/build emake -j1 DESTDIR="${D}" install-target-libobjc || die
+ fi
+
+ # from toolchain.eclass yay
+ gcc_movelibs
+
+ dodir /etc/env.d/gcc
+ create_gcc_env_entry
+
+ # Setup the gcc_env_entry for hardened gcc 4 with minispecs
+ if want_minispecs ; then
+ copy_minispecs_gcc_specs
+ fi
+
+ # drop any .la, .a
+ find "${D}" -name *.a -delete
+ find "${D}" -name *.la -delete
+
+ # drop any include
+ rm "${D}${LIBPATH}"/include -rf
+ # drop specs as well, provided by sys-devel/gcc-${PV}:${SLOT}
+ # unfortunately, the spec shit above does create the env.d/
+ # file content...
+ rm "${D}${LIBPATH}"/{32/,}*.spec{s,} -rf
+ rm "${D}${LIBPATH}"/specs -rf
+
+ # Now do the fun stripping stuff
+ env RESTRICT="" CHOST=${CTARGET} prepstrip "${D}${LIBPATH}"
+
+ cd "${S}"
+ if ! is_crosscompile; then
+ has noinfo ${FEATURES} \
+ && rm -r "${D}/${DATAPATH}"/info \
+ || prepinfo "${DATAPATH}"
+ fi
+
+ # use gid of 0 because some stupid ports don't have
+ # the group 'root' set to gid 0
+ chown -R root:0 "${D}"${LIBPATH}
+}
+
+## Do nothing!
+pkg_preinst() {
+ :
+}
+
+## Do nothing!
+pkg_postinst() {
+ # Sabayon specific bits to always force the latest gcc profile
+ local gcc_atom=$(best_version sys-devel/base-gcc)
+ local gcc_ver=
+ if [ -n "${gcc_atom}" ]; then
+ elog "Found latest base-gcc to be: ${gcc_atom}, forcing this profile"
+ gcc_ver=$(portageq metadata "${ROOT}" installed "${gcc_atom}" PV)
+ else
+ eerror "No sys-devel/base-gcc installed"
+ fi
+
+ if [ -n "${gcc_ver}" ]; then
+ local target="${CTARGET:${CHOST}}-${gcc_ver}"
+ local env_target="${ROOT}/etc/env.d/gcc/${target}"
+ [[ -e "${env_target}-vanilla" ]] && find_target="${target}-vanilla"
+
+ elog "Setting: ${target} GCC profile"
+ gcc-config "${target}"
+ else
+ eerror "No sys-devel/base-gcc version installed? Cannot set a proper GCC profile"
+ fi
+}
+
+## Do nothing!
+pkg_prerm() {
+ :
+}
+
+## Do nothing!
+pkg_postrm() {
+ :
+}
diff --git a/sys-devel/base-gcc/base-gcc-4.7.4.ebuild b/sys-devel/base-gcc/base-gcc-4.7.4.ebuild
new file mode 100644
index 00000000..cf2f3ead
--- /dev/null
+++ b/sys-devel/base-gcc/base-gcc-4.7.4.ebuild
@@ -0,0 +1,211 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="4"
+
+PATCH_VER="1.2"
+UCLIBC_VER="1.0"
+
+# Hardened gcc 4 stuff
+PIE_VER="0.5.5"
+SPECS_VER="0.2.0"
+SPECS_GCC_VER="4.4.3"
+# arch/libc configurations known to be stable with {PIE,SSP}-by-default
+PIE_GLIBC_STABLE="x86 amd64 ppc ppc64 arm ia64"
+PIE_UCLIBC_STABLE="x86 arm amd64 ppc ppc64"
+SSP_STABLE="amd64 x86 ppc ppc64 arm"
+# uclibc need tls and nptl support for SSP support
+# uclibc need to be >= 0.9.33
+SSP_UCLIBC_STABLE="x86 amd64 ppc ppc64 arm"
+#end Hardened stuff
+
+inherit eutils toolchain
+
+# This is here to redeclare is_gcc() in toolchain.eclass
+# We don't even want to build gcj, which is a real hog
+# on memory constrained hardware. base-gcc doesn't actually
+# ship with it atm.
+is_gcj() {
+ return 1
+}
+
+DESCRIPTION="The GNU Compiler Collection"
+
+LICENSE="GPL-3+ LGPL-3+ || ( GPL-3+ libgcc libstdc++ gcc-runtime-library-exception-3.1 ) FDL-1.3+"
+KEYWORDS="alpha amd64 arm hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 -amd64-fbsd -x86-fbsd"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ elibc_glibc? ( >=sys-libs/glibc-2.8 )
+ >=${CATEGORY}/binutils-2.18"
+
+src_prepare() {
+ # Since Sabayon's gcc ebuild are split into two parts, we have to
+ # build gcc with a different version of gcc, or terrible breakage
+ # will occur after sys-devel/base-gcc is installed, but the
+ # partner sys-devel/gcc still needs to be built.
+
+ # While it is possible to rebuild Sabayon's split gcc from
+ # the same version, we have to disallow this also since
+ # we have no way of discerning if a configuration change
+ # is significant enough to cause breakage.
+
+ GCC_PROFILE_VER=$(cat ${ROOT}/etc/env.d/gcc/config-$CHOST | awk -F- '{ print $NF }')
+ einfo "Checking for valid gcc profile to build ${P}"
+
+ # Construct the Slot of the gcc version in the active profile.
+ GCC_PROFILE_SLOT_MAJOR=$(echo ${GCC_PROFILE_VER} | awk -F. '{ print $1 }')
+ GCC_PROFILE_SLOT_MINOR=$(echo ${GCC_PROFILE_VER} | awk -F. '{ print $2 }')
+ GCC_PROFILE_SLOT="${GCC_PROFILE_SLOT_MAJOR}.${GCC_PROFILE_SLOT_MINOR}"
+ einfo "Current gcc profile version Slot is: ${GCC_PROFILE_SLOT}"
+ if [[ "${GCC_PROFILE_SLOT}" = "${SLOT}" ]] ; then
+ eerror "Error!"
+ eerror "The active gcc-profile is for sys-devel/gcc slot ${SLOT}."
+ eerror "Sabayon's split sys-devel/gcc package MUST be built"
+ eerror "with another slotted version of sys-devel/gcc active."
+ ebeep 10
+ fi
+
+ if has_version '<sys-libs/glibc-2.12' ; then
+ ewarn "Your host glibc is too old; disabling automatic fortify."
+ ewarn "Please rebuild gcc after upgrading to >=glibc-2.12 #362315"
+ EPATCH_EXCLUDE+=" 10_all_default-fortify-source.patch"
+ fi
+
+ # drop the x32 stuff once 4.7 goes stable
+ if [[ ${CTARGET} != x86_64* ]] || ! has x32 $(get_all_abis TARGET) ; then
+ EPATCH_EXCLUDE+=" 90_all_gcc-4.7-x32.patch"
+ fi
+
+ toolchain_src_prepare
+
+ use vanilla && return 0
+
+ [[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env.patch
+}
+
+## Just install libgcc stuff
+src_install() {
+ cd "${WORKDIR}/build"
+ S="${WORKDIR}"/build \
+ emake -j1 -C "${CTARGET}/libgcc" DESTDIR="${D}" install-shared || die
+ if use multilib; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/32/libgcc" DESTDIR="${D}" \
+ install-shared || die
+ fi
+
+ if use mudflap; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/libmudflap" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ if use multilib; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/32/libmudflap" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ fi
+ fi
+
+ if use openmp; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/libgomp" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ if use multilib; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/32/libgomp" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ fi
+ fi
+
+ S="${WORKDIR}"/build \
+ emake -j1 -C "${CTARGET}/libstdc++-v3/src" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ if use multilib; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/32/libstdc++-v3/src" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ fi
+
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/libstdc++-v3/po" DESTDIR="${D}" install || die
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/libgomp" DESTDIR="${D}" install-info || die
+
+ S="${WORKDIR}"/build emake -j1 DESTDIR="${D}" install-target-libquadmath || die
+ if use fortran; then
+ S="${WORKDIR}"/build emake -j1 DESTDIR="${D}" install-target-libgfortran || die
+ fi
+ # TODO: what to do with USE objc++ and objc-gc ?
+ if use objc; then
+ S="${WORKDIR}"/build emake -j1 DESTDIR="${D}" install-target-libobjc || die
+ fi
+
+ # from toolchain.eclass yay
+ gcc_movelibs
+
+ dodir /etc/env.d/gcc
+ create_gcc_env_entry
+
+ # Setup the gcc_env_entry for hardened gcc 4 with minispecs
+ if want_minispecs ; then
+ copy_minispecs_gcc_specs
+ fi
+
+ # drop any .la, .a
+ find "${D}" -name *.a -delete
+ find "${D}" -name *.la -delete
+
+ # drop any include
+ rm "${D}${LIBPATH}"/include -rf
+ # drop specs as well, provided by sys-devel/gcc-${PV}:${SLOT}
+ # unfortunately, the spec shit above does create the env.d/
+ # file content...
+ rm "${D}${LIBPATH}"/{32/,}*.spec{s,} -rf
+ rm "${D}${LIBPATH}"/specs -rf
+
+ # Now do the fun stripping stuff
+ env RESTRICT="" CHOST=${CTARGET} prepstrip "${D}${LIBPATH}"
+
+ cd "${S}"
+ if ! is_crosscompile; then
+ has noinfo ${FEATURES} \
+ && rm -r "${D}/${DATAPATH}"/info \
+ || prepinfo "${DATAPATH}"
+ fi
+
+ # use gid of 0 because some stupid ports don't have
+ # the group 'root' set to gid 0
+ chown -R root:0 "${D}"${LIBPATH}
+}
+
+## Do nothing!
+pkg_preinst() {
+ :
+}
+
+## Do (almost) nothing!
+pkg_postinst() {
+ # Sabayon specific bits to always force the latest gcc profile
+ local gcc_atom=$(best_version sys-devel/base-gcc)
+ local gcc_ver=
+ if [ -n "${gcc_atom}" ]; then
+ elog "Found latest base-gcc to be: ${gcc_atom}, forcing this profile"
+ gcc_ver=$(portageq metadata "${ROOT}" installed "${gcc_atom}" PV)
+ else
+ eerror "No sys-devel/base-gcc installed"
+ fi
+
+ if [ -n "${gcc_ver}" ]; then
+ local target="${CTARGET:${CHOST}}-${gcc_ver}"
+ local env_target="${ROOT}/etc/env.d/gcc/${target}"
+ [[ -e "${env_target}-vanilla" ]] && find_target="${target}-vanilla"
+
+ elog "Setting: ${target} GCC profile"
+ gcc-config "${target}"
+ else
+ eerror "No sys-devel/base-gcc version installed? Cannot set a proper GCC profile"
+ fi
+}
+
+## Do nothing!
+pkg_prerm() {
+ :
+}
+
+## Do nothing!
+pkg_postrm() {
+ :
+}
diff --git a/sys-devel/base-gcc/base-gcc-4.8.3.ebuild b/sys-devel/base-gcc/base-gcc-4.8.3.ebuild
new file mode 100644
index 00000000..2a4b1f80
--- /dev/null
+++ b/sys-devel/base-gcc/base-gcc-4.8.3.ebuild
@@ -0,0 +1,211 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="4"
+
+PATCH_VER="1.1"
+UCLIBC_VER="1.0"
+
+# Hardened gcc 4 stuff
+PIE_VER="0.5.9"
+SPECS_VER="0.2.0"
+SPECS_GCC_VER="4.4.3"
+# arch/libc configurations known to be stable with {PIE,SSP}-by-default
+PIE_GLIBC_STABLE="x86 amd64 ppc ppc64 arm ia64"
+PIE_UCLIBC_STABLE="x86 arm amd64 ppc ppc64"
+SSP_STABLE="amd64 x86 ppc ppc64 arm"
+# uclibc need tls and nptl support for SSP support
+# uclibc need to be >= 0.9.33
+SSP_UCLIBC_STABLE="x86 amd64 ppc ppc64 arm"
+#end Hardened stuff
+
+inherit eutils toolchain
+
+# This is here to redeclare is_gcc() in toolchain.eclass
+# We don't even want to build gcj, which is a real hog
+# on memory constrained hardware. base-gcc doesn't actually
+# ship with it atm.
+is_gcj() {
+ return 1
+}
+
+DESCRIPTION="The GNU Compiler Collection"
+
+KEYWORDS="~alpha amd64 arm ~arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ elibc_glibc? ( >=sys-libs/glibc-2.8 )
+ >=${CATEGORY}/binutils-2.20"
+
+src_prepare() {
+ # Since Sabayon's gcc ebuild are split into two parts, we have to
+ # build gcc with a different version of gcc, or terrible breakage
+ # will occur after sys-devel/base-gcc is installed, but the
+ # partner sys-devel/gcc still needs to be built.
+
+ # While it is possible to rebuild Sabayon's split gcc from
+ # the same version, we have to disallow this also since
+ # we have no way of discerning if a configuration change
+ # is significant enough to cause breakage.
+
+ GCC_PROFILE_VER=$(cat ${ROOT}/etc/env.d/gcc/config-$CHOST | awk -F- '{ print $NF }')
+ einfo "Checking for valid gcc profile to build ${P}"
+
+ # Construct the Slot of the gcc version in the active profile.
+ GCC_PROFILE_SLOT_MAJOR=$(echo ${GCC_PROFILE_VER} | awk -F. '{ print $1 }')
+ GCC_PROFILE_SLOT_MINOR=$(echo ${GCC_PROFILE_VER} | awk -F. '{ print $2 }')
+ GCC_PROFILE_SLOT="${GCC_PROFILE_SLOT_MAJOR}.${GCC_PROFILE_SLOT_MINOR}"
+ einfo "Current gcc profile version Slot is: ${GCC_PROFILE_SLOT}"
+ if [[ "${GCC_PROFILE_SLOT}" = "${SLOT}" ]] ; then
+ eerror "Error!"
+ eerror "The active gcc-profile is for sys-devel/gcc slot ${SLOT}."
+ eerror "Sabayon's split sys-devel/gcc package MUST be built"
+ eerror "with another slotted version of sys-devel/gcc active."
+ ebeep 10
+ fi
+
+ if has_version '<sys-libs/glibc-2.12' ; then
+ ewarn "Your host glibc is too old; disabling automatic fortify."
+ ewarn "Please rebuild gcc after upgrading to >=glibc-2.12 #362315"
+ EPATCH_EXCLUDE+=" 10_all_default-fortify-source.patch"
+ fi
+
+ # drop the x32 stuff once 4.7 goes stable
+ if [[ ${CTARGET} != x86_64* ]] || ! has x32 $(get_all_abis TARGET) ; then
+ EPATCH_EXCLUDE+=" 90_all_gcc-4.7-x32.patch"
+ fi
+
+ toolchain_src_prepare
+
+ use vanilla && return 0
+
+ #Use -r1 for newer piepatchet that use DRIVER_SELF_SPECS for the hardened specs.
+ [[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env-r1.patch
+}
+
+## Just install libgcc stuff
+src_install() {
+ cd "${WORKDIR}/build"
+ S="${WORKDIR}"/build \
+ emake -j1 -C "${CTARGET}/libgcc" DESTDIR="${D}" install-shared || die
+ if use multilib; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/32/libgcc" DESTDIR="${D}" \
+ install-shared || die
+ fi
+
+ if use mudflap; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/libmudflap" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ if use multilib; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/32/libmudflap" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ fi
+ fi
+
+ if use openmp; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/libgomp" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ if use multilib; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/32/libgomp" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ fi
+ fi
+
+ S="${WORKDIR}"/build \
+ emake -j1 -C "${CTARGET}/libstdc++-v3/src" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ if use multilib; then
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/32/libstdc++-v3/src" DESTDIR="${D}" \
+ install-toolexeclibLTLIBRARIES || die
+ fi
+
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/libstdc++-v3/po" DESTDIR="${D}" install || die
+ S="${WORKDIR}"/build emake -j1 -C "${CTARGET}/libgomp" DESTDIR="${D}" install-info || die
+
+ S="${WORKDIR}"/build emake -j1 DESTDIR="${D}" install-target-libquadmath || die
+ if use fortran; then
+ S="${WORKDIR}"/build emake -j1 DESTDIR="${D}" install-target-libgfortran || die
+ fi
+ # TODO: what to do with USE objc++ and objc-gc ?
+ if use objc; then
+ S="${WORKDIR}"/build emake -j1 DESTDIR="${D}" install-target-libobjc || die
+ fi
+
+ # from toolchain.eclass yay
+ gcc_movelibs
+
+ dodir /etc/env.d/gcc
+ create_gcc_env_entry
+
+ # Setup the gcc_env_entry for hardened gcc 4 with minispecs
+ if want_minispecs ; then
+ copy_minispecs_gcc_specs
+ fi
+
+ # drop any .la, .a
+ find "${D}" -name *.a -delete
+ find "${D}" -name *.la -delete
+
+ # drop any include
+ rm "${D}${LIBPATH}"/include -rf
+ # drop specs as well, provided by sys-devel/gcc-${PV}:${SLOT}
+ # unfortunately, the spec shit above does create the env.d/
+ # file content...
+ rm "${D}${LIBPATH}"/{32/,}*.spec{s,} -rf
+ rm "${D}${LIBPATH}"/specs -rf
+
+ # Now do the fun stripping stuff
+ env RESTRICT="" CHOST=${CTARGET} prepstrip "${D}${LIBPATH}"
+
+ cd "${S}"
+ if ! is_crosscompile; then
+ has noinfo ${FEATURES} \
+ && rm -r "${D}/${DATAPATH}"/info \
+ || prepinfo "${DATAPATH}"
+ fi
+
+ # use gid of 0 because some stupid ports don't have
+ # the group 'root' set to gid 0
+ chown -R root:0 "${D}"${LIBPATH}
+}
+
+## Do nothing!
+pkg_preinst() {
+ :
+}
+
+## Do (almost) nothing!
+pkg_postinst() {
+ # Sabayon specific bits to always force the latest gcc profile
+ local gcc_atom=$(best_version sys-devel/base-gcc)
+ local gcc_ver=
+ if [ -n "${gcc_atom}" ]; then
+ elog "Found latest base-gcc to be: ${gcc_atom}, forcing this profile"
+ gcc_ver=$(portageq metadata "${ROOT}" installed "${gcc_atom}" PV)
+ else
+ eerror "No sys-devel/base-gcc installed"
+ fi
+
+ if [ -n "${gcc_ver}" ]; then
+ local target="${CTARGET:${CHOST}}-${gcc_ver}"
+ local env_target="${ROOT}/etc/env.d/gcc/${target}"
+ [[ -e "${env_target}-vanilla" ]] && find_target="${target}-vanilla"
+
+ elog "Setting: ${target} GCC profile"
+ gcc-config "${target}"
+ else
+ eerror "No sys-devel/base-gcc version installed? Cannot set a proper GCC profile"
+ fi
+}
+
+## Do nothing!
+pkg_prerm() {
+ :
+}
+
+## Do nothing!
+pkg_postrm() {
+ :
+}
diff --git a/sys-devel/base-gcc/files/gcc-spec-env-r1.patch b/sys-devel/base-gcc/files/gcc-spec-env-r1.patch
new file mode 100644
index 00000000..a5892683
--- /dev/null
+++ b/sys-devel/base-gcc/files/gcc-spec-env-r1.patch
@@ -0,0 +1,87 @@
+2013-08-22 Magnus Granberg <zorry@gentoo.org>
+
+ * gcc/gcc.c (main): Add support for external spec file via the GCC_SPECS env var
+ and move the process of the user specifed specs.
+
+ This allows us to easily control pie/ssp defaults with gcc-config profiles.
+ Original patch by Rob Holland
+ Extended to support multiple entries separated by ':' by Kevin F. Quinn
+ Modified to use getenv instead of poisoned GET_ENVIRONMENT by Ryan Hill
+ Modified to process the GCC_SPECS env var befor DRIVER_SELF_SPECS by Magnus Granberg
+
+--- gcc-4.8-20130210/gcc/gcc.c 2013-02-05 16:55:31.000000000 +0100
++++ gcc-4.8-20130210-work/gcc/gcc.c 2013-07-26 02:32:14.625089864 +0200
+@@ -6427,6 +6428,48 @@ main (int argc, char **argv)
+ do_option_spec (option_default_specs[i].name,
+ option_default_specs[i].spec);
+
++#if !(defined (__MSDOS__) || defined (OS2) || defined (VMS) || defined (WIN32))
++ /* Add specs listed in GCC_SPECS. Note; in the process of separating
++ * each spec listed, the string is overwritten at token boundaries
++ * (':') with '\0', an effect of strtok_r().
++ */
++ specs_file = getenv ("GCC_SPECS");
++ if (specs_file && (strlen(specs_file) > 0))
++ {
++ char *spec, *saveptr;
++ for (spec=strtok_r(specs_file,":",&saveptr);
++ spec!=NULL;
++ spec=strtok_r(NULL,":",&saveptr))
++ {
++ struct user_specs *user = (struct user_specs *)
++ xmalloc (sizeof (struct user_specs));
++ user->next = (struct user_specs *) 0;
++ user->filename = spec;
++ if (user_specs_tail)
++ user_specs_tail->next = user;
++ else
++ user_specs_head = user;
++ user_specs_tail = user;
++ }
++ }
++#endif
++ /* Process any user specified specs in the order given on the command
++ * line. */
++ for (uptr = user_specs_head; uptr; uptr = uptr->next)
++ {
++ char *filename = find_a_file (&startfile_prefixes, uptr->filename,
++ R_OK, true);
++ read_specs (filename ? filename : uptr->filename, false, true);
++ }
++ /* Process any user self specs. */
++ {
++ struct spec_list *sl;
++ for (sl = specs; sl; sl = sl->next)
++ if (sl->name_len == sizeof "self_spec" - 1
++ && !strcmp (sl->name, "self_spec"))
++ do_self_spec (*sl->ptr_spec);
++ }
++
+ /* Process DRIVER_SELF_SPECS, adding any new options to the end
+ of the command line. */
+
+@@ -6535,24 +6578,6 @@ main (int argc, char **argv)
+ PREFIX_PRIORITY_LAST, 0, 1);
+ }
+
+- /* Process any user specified specs in the order given on the command
+- line. */
+- for (uptr = user_specs_head; uptr; uptr = uptr->next)
+- {
+- char *filename = find_a_file (&startfile_prefixes, uptr->filename,
+- R_OK, true);
+- read_specs (filename ? filename : uptr->filename, false, true);
+- }
+-
+- /* Process any user self specs. */
+- {
+- struct spec_list *sl;
+- for (sl = specs; sl; sl = sl->next)
+- if (sl->name_len == sizeof "self_spec" - 1
+- && !strcmp (sl->name, "self_spec"))
+- do_self_spec (*sl->ptr_spec);
+- }
+-
+ if (compare_debug)
+ {
+ enum save_temps save;
diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest
index 92f42db8..7948bc12 100644
--- a/sys-devel/gcc/Manifest
+++ b/sys-devel/gcc/Manifest
@@ -1,29 +1,31 @@
-AUX awk/fixlafiles.awk 7807 RMD160 749402c9c0a0f1e8755067c0e001f69d73edb09f SHA1 5fc91ce11eb93e989ae64470dba602fe534ac409 SHA256 3cae4890a295adef50c6cf8a7e14d1be4e7a2356479c073e5c29433c3cdf9c5c
-AUX awk/fixlafiles.awk-no_gcc_la 8596 RMD160 d34279d732586514b220ec0d583c5e634b5d97ef SHA1 95f07ff4d6c3196e682371f02e6d2207d921a1b5 SHA256 91e36c29133b6ff854bc84acd6cd2e9d07be6eaa73ef9b23e4f7bc6371107fab
-AUX c89 412 RMD160 2b54e526a76ff0b2e0e8f4f7f9d6949ac45806fa SHA1 6f6ed5affc4ae906c5d8cbdda557d5bbf683d861 SHA256 29ad5dd697135c2892067e780447894dc1cd071708157e46d21773ab99c5022c
-AUX c99 446 RMD160 04ecc9ef9b7a1fd525768955ff6a67fc0d5a17f7 SHA1 312b3b47490d9f62656706908112f9331bc509a4 SHA256 057b348cf5be9b4fb9db99a4549f6433c89d21e5f91dc5e46b0b4dc6b70432f5
-AUX fix_libtool_files.sh 1735 RMD160 5035cd4a9995ea6207a8de95815921c3939395bd SHA1 57cd1babab4c6b142dd8cc58b36943442ff2af13 SHA256 b8d86b1db9453dff4c62b3467887bf1e04ecb483120185102122bda2581ed3f5
-AUX gcc-4.6.2-fix-ICE-on-arm.patch 646 RMD160 ffddf3bc7cab3d74cbf31ab441d2e41cb3aa8500 SHA1 a162dc0b7bdee7aba0aadc647beb8d89e9b70990 SHA256 4df58b7f95bca7c850b98b90cf1798bbc2f988e9c86f608aa4c4c2b6a743aa58
-AUX gcc-configure-LANG.patch 2052 RMD160 91f5b90600dfccb10c4e2308a5a1485275fdfeee SHA1 56ecd1d6f2e4bd0b35ac108be72a4f6f60212c38 SHA256 63de6d2dcfe14f21d147abeb1390405b9220c03f8e968f482d4b4c1cf279c88b
-AUX gcc-configure-texinfo.patch 337 RMD160 d0e872a9f0ccb5ab51d10f129acd7a19d76a7b75 SHA1 7e267fac540175ce848e563539db8c951cab557b SHA256 74b73a7ecec2d88889876b4db480cd173632f49d5396bb8e5b3c93673f9b5b98
-AUX gcc-spec-env.patch 1544 RMD160 1f7747546513a6d8e16bd82c2824969b9a739dfb SHA1 bdc2736377813da4046ceea77922620dd69d8658 SHA256 64b01f29fb853fee5ecda998b66eeaa7ec86ff1fc3b21432bfd69eb543c93e6a
-AUX mkinfodir 7324 RMD160 96bbe8860ae8c0a50db42fea01cc1c2216bd36c8 SHA1 3b8316da1a0fa94943e6b71be709827563af7058 SHA256 0565353e767e253207adb8b5c9be9ba215a628447e075a4dc7bb3183ed099d2a
-AUX pro-police-docs.patch 3287 RMD160 eef412d92bed145db05bffa3a3e54e2ba74ee50d SHA1 ca58eda97d80f3d51f4e383ad3053fcb13f7a91b SHA256 ec012aed77285545b9d993cba1bc5fdb402c8dc9a17040f48b8b354746ede627
-DIST ecj-4.5.jar 1470676 RMD160 d3f4da657f086b6423f74e93f001132f4855368a SHA1 58c1d79c64c8cd718550f32a932ccfde8d1e6449 SHA256 98fd128f1d374d9e42fd9d4836bdd249c6d511ebc6c0df17fbc1b9df96c3d781
-DIST gcc-4.4.3-specs-0.2.0.tar.bz2 2004 RMD160 0a013f95029a170eeea3cb6ccbfd65f64b66f465 SHA1 61bd3c13400772ec4d5d4fcee297e3d86adbd065 SHA256 f6c7cb99beead66dd4d06f7004c5731a9360330cbe878ce79792c618e008eed2
-DIST gcc-4.5.3-patches-1.1.tar.bz2 20627 RMD160 432101fa66d4be008b6a4c606aea98bd4ae217d3 SHA1 0272e461a5e511d9998085f2b6387d917a151a17 SHA256 171348adbdbf3eeb26f47be414a47591eb332271995a052ef57fccb5742361ec
-DIST gcc-4.5.3-piepatches-v0.4.7.tar.bz2 14638 RMD160 3976e2390acb6d0ada68b697150522fa4bc67682 SHA1 326d230873059c635daf8120afeaeeef1bd3cd52 SHA256 fe3414a85b6b0a1e4ff758c008bbefc7411148ccb9af70cb1a0af179eba55a32
-DIST gcc-4.5.3-uclibc-patches-1.0.tar.bz2 3015 RMD160 af8fad2ca0a948f25bff2b4f4f9868a99c7ceae7 SHA1 679698942814c9b3caaa5d220d672c87df50fa26 SHA256 7ddb8ac57b42c0de07a9afb3338c05d884da3c606f80cf21ee767f9c4682e3f6
-DIST gcc-4.5.3.tar.bz2 66374586 RMD160 d07aa90f2186b4e082dfd5ad5d5188c097fb6247 SHA1 73c45dfda5eef6b124be53e56828b5925198cc1b SHA256 0a8847af44a9b33813b199997a73139517c96adfd519eaf24c79d4d9d09f65de
-DIST gcc-4.6.2-patches-1.0.tar.bz2 12374 RMD160 84aa2e55a8762e2d38161943e1661fd7a89683a8 SHA1 582f0c4bf7b734bb5798b0b8b9deac898557789d SHA256 a6fd308469094095891ba003b9c3c2d4c8bf35713df987609b675f04a43e83df
-DIST gcc-4.6.2-piepatches-v0.4.5.tar.bz2 14156 RMD160 101546367ae798f9080d111e4f9ccc0914ec74c8 SHA1 2ad14aa580d65cbc7dd35b5d05977890e9fb1679 SHA256 a18bea1bc2cad2efde5481a5777a97cf539d206dcbca33758d56d7fbdb43a554
-DIST gcc-4.6.2-uclibc-patches-1.0.tar.bz2 3019 RMD160 7e991775c15d4126bd8d85aceb677c675559606f SHA1 0d316aaf94966cc52b1582282723a932ac065639 SHA256 25e902a6d2db7181394df5ad11fafaad064bf28a6ffebd889033f744613ac201
-DIST gcc-4.6.2.tar.bz2 71995338 RMD160 e7041933b39629f9524848dcf81a1a4c02a225c6 SHA1 691974613b1c1f15ed0182ec539fa54a12dd6f93 SHA256 60b05463dfe18d40d68fb8a71b25b408a01f86cc6ceaf5e6b22238b6b0f450c2
-DIST gcc-4.6.3-patches-1.3.tar.bz2 83071 RMD160 4e8c94ce83421ed1138439f946321763803b3157 SHA1 b05f96f1741828fb13ca23f0bd057223de1908ab SHA256 0acc8494932259dbadc118587626bb2505fc565e1a862bb792116e08961c141a
-DIST gcc-4.6.3-piepatches-v0.5.2.tar.bz2 15002 RMD160 75f25287ded26fd8ae88516b0b72d21fc0f17296 SHA1 8a1848819bc9c3e00513e68abded115410f25f78 SHA256 6606d47a8bbaa9cba0dd3b022cbf6ed14325b8560dd17f7601dbaa4697df3691
-DIST gcc-4.6.3-uclibc-patches-1.0.tar.bz2 3023 RMD160 6487e89d892687c51f4d764979c90133ae4c0a07 SHA1 26581caab046ba4a03041557db641f2899d518af SHA256 4219a3582c5f98bf8437bfc3feb8c264f8aabd8078caaddef46dd38be33f089f
-DIST gcc-4.6.3.tar.bz2 71999439 RMD160 9abb2f940d08fc84f2d91b6a6ce8d662ca889269 SHA1 ce317ca5c8185b58bc9300182b534608c578637f SHA256 e8f5853d4eec2f5ebaf8a72ae4d53c436aacf98153b2499f8635b48c4718a093
-EBUILD gcc-4.5.3-r2.ebuild 3435 RMD160 1757d1e88359367810dd3a27aa921b2e329fc8ca SHA1 3f1534bc85393d68e33c301412eb4e2809d5133e SHA256 ce6f171cc959390a354d6466056eba94cde85c909b23dff98554a892df0332b8
-EBUILD gcc-4.6.2.ebuild 4114 RMD160 b9ffb3a8ecea9242393120803026fb99dcea203e SHA1 198c4f778226a2c87285a4a006b941da4631523b SHA256 638237c3c6e70e5357aff1ff19a58183de120cfd658473db431d9037ad3362b7
-EBUILD gcc-4.6.3.ebuild 5495 RMD160 039dbf2a7f5a84ebfb8dc4538eb9c4e3d21d4362 SHA1 4324fe2d0bd26867f0586ca1c866251ff4e58db2 SHA256 82e72b1bff5cf52fd10f2b7be70eb5709ae0635ce5325d30240c2e0aba0fcda1
-MISC metadata.xml 1780 RMD160 0fa658c47436e17235cd03b5a9a3cbd8448e474b SHA1 127adff4704c040ee42d43bd9ea8218b408203cf SHA256 57d7428c3d0ef34e72e780a3cfa7a059202b5c80f2d61cc12f90f0d1e8f5f12e
+DIST ecj-4.5.jar 1470676 SHA256 98fd128f1d374d9e42fd9d4836bdd249c6d511ebc6c0df17fbc1b9df96c3d781 SHA512 d4e1bf7538ace56e3d69fa91da5bbd16c272923b4de0a9d8dee23ea2b75f9f38c603de72fc4061df49285c450b63f3df211cee5270e9fffc5447445d1a9c9e4e WHIRLPOOL db54206cfd5eba935e707b8d36ebac40f3c4ed3c1f06ede794288cbdd9c7da9d90c0898e8c98b383af276ea4c1b40c861ebd9e1fc1dce712946184321339d3ad
+DIST gcc-4.4.3-specs-0.2.0.tar.bz2 2004 SHA256 f6c7cb99beead66dd4d06f7004c5731a9360330cbe878ce79792c618e008eed2 SHA512 779ecb0a064d2138b54569c8ae501975b8a6b72e5a3acbf8597619a8db77ee42ef9b0e62608d5192a15e4393e7dfc009bb50b994782236faa744b2c46b5fe517 WHIRLPOOL 8a1e45aad9d306cb19de93c63b5854a97e629d90852feb6861dcfca042b6257705304fc13ad65655a4cb227d36b83fc6063648c94f270821574ee0e85307094e
+DIST gcc-4.5.3-patches-1.1.tar.bz2 20627 SHA256 171348adbdbf3eeb26f47be414a47591eb332271995a052ef57fccb5742361ec SHA512 02e283e67e8c855e4e41a731c2a9f69a2d5160f3ef2cc928c945960b07e88f549b4920262c3476a400245d074726c5d87c256b5275a2c647fc4cf1cebbd197d9 WHIRLPOOL 7e93abb596e31077c7bd524bf5357ca3256959d1eb5edd71075b8aa99492b6bbfc631d8e27ba25227be1af7c4cb3c24142868c8ec93b0552f2c4ddeb6f3e483a
+DIST gcc-4.5.3-piepatches-v0.4.7.tar.bz2 14638 SHA256 fe3414a85b6b0a1e4ff758c008bbefc7411148ccb9af70cb1a0af179eba55a32 SHA512 e3cebb6caa67a949ec8e2a129ee2fb53e4f04549891d8522756c3f123495169d37328dc25c5f12ba79a530d79b422e95b2e8423301c1c521463da7ddabc1240e WHIRLPOOL 4b01a6c8099bc26ed197e8ba1236dbe1327777033a025c269976ac6a218a12a47b7e333356ace3727852b0b58d4e26e33b68538cbf591dca325376ccad45c410
+DIST gcc-4.5.3-uclibc-patches-1.0.tar.bz2 3015 SHA256 7ddb8ac57b42c0de07a9afb3338c05d884da3c606f80cf21ee767f9c4682e3f6 SHA512 dee229ab53968cd1b6eab3040dcb64d145d194bc55eb0599036192e27cfb6001db857f3a0baac9a31edd6df57941c59b6323f5a533bf834a5ca4288f84cc911c WHIRLPOOL c1579263965b6b05e075e6064afb716f3d60c39ff7e7cd10e05639312c789c7498a39d89fd05962788d2be14331d53d2f8a8c29745d263921021144cb39b86dc
+DIST gcc-4.5.3.tar.bz2 66374586 SHA256 0a8847af44a9b33813b199997a73139517c96adfd519eaf24c79d4d9d09f65de SHA512 42c03aa0d16a52e95d1857d859ddd0a4923c232b90481ee52b02bc9a3976bc6e5e502e94af3fc76ac054572a420303c47e409c72f816416aeffd74c4bcd443d3 WHIRLPOOL faad2337eaae059cde6a2f42227f29a6c2855e6cbf16894a178e446b7668b7f68e23a7968926473974ec9aff3680cebbebfc01af0a60474ff90cf1fad3e96a11
+DIST gcc-4.6.2-patches-1.0.tar.bz2 12374 SHA256 a6fd308469094095891ba003b9c3c2d4c8bf35713df987609b675f04a43e83df SHA512 e320dc000a1640cbca174a66a2ae3b88d2f64df35205a1e94d654cee01904e571b3297b4d6a5bd5eb4e697d557436366926ff574d85f9e1e69d14f77e11c0900 WHIRLPOOL a31a80cfb28f116d05f1615dd29f234d8aa67b51c8bce66a1536fc38e8c4b8dca424e86b944be7000c5219b321dd0e95149a1e6f3eb0a5c91d019168a5245bf2
+DIST gcc-4.6.2-piepatches-v0.4.5.tar.bz2 14156 SHA256 a18bea1bc2cad2efde5481a5777a97cf539d206dcbca33758d56d7fbdb43a554 SHA512 53212c6cfb4b8ce6a02af9c6542904d2840cd06346e108daf5e655ee4a7844ff8cb7ed7effda5e5848ea6022f4c0545429121485a4d7a4fad545b2dd2f971103 WHIRLPOOL e783b087283931d3ca36c099f7260e683f6a5348068901fa8b5a45e3c257193add972168700094d90815a6415b582f1fef9270971fe4c2e317333af074af55f8
+DIST gcc-4.6.2-uclibc-patches-1.0.tar.bz2 3019 SHA256 25e902a6d2db7181394df5ad11fafaad064bf28a6ffebd889033f744613ac201 SHA512 b02ce4bd972e80923182b86ff77d9a37b7733985501a9c6f1889d4c77cd0d240ba984d4bd902ba13502fe158b891d313360812f4076044ab58539f2e29930e0e WHIRLPOOL 950bab1bd47d4bf533a618637917449f50d6f9b9bef1b51a9a22248f7d11c1af411d226d57d856ce7736d6d6516345e82ce0fadca18eee68572e1a3af11e4c8b
+DIST gcc-4.6.2.tar.bz2 71995338 SHA256 60b05463dfe18d40d68fb8a71b25b408a01f86cc6ceaf5e6b22238b6b0f450c2 SHA512 51bd123b71b6e4ee4e4b9689a93d328332ea129692f6af2473efdcaedc897a130e4c1948820b3543846d89bb2dd5427b236d2a5d5a6cfa371ba086577f9c0e62 WHIRLPOOL eca8104dbaad1d9682425dd142cbebf3a62a730a1e3d99317f1bd082fb5c0c7fbd0522b3b14f75349618897173fcba79eb82d53718ec8e156bda56f78d1531dd
+DIST gcc-4.6.3-patches-1.3.tar.bz2 83071 SHA256 0acc8494932259dbadc118587626bb2505fc565e1a862bb792116e08961c141a SHA512 8b0a82b6f84d77064adb0f2905b266dada801e929decf6efb0b12dc153958c2c78d092437386576d023896ef44dd66b3259e23a4ade2f80e5972fcd3fc893c50 WHIRLPOOL a79dcf59032b8210a678b4383af02c188612573acb671b90cf411dc7a7e47bb0c8f7876bd2ee24c6b6272a71343e99bafd9f1685edc54f5ed384d27d3758e8e1
+DIST gcc-4.6.3-piepatches-v0.5.2.tar.bz2 15002 SHA256 6606d47a8bbaa9cba0dd3b022cbf6ed14325b8560dd17f7601dbaa4697df3691 SHA512 21ec5bcd43ec0075f8885ef6f567fd9ffd0a64f4c4f9340262900b91a8f22f73a22cd320d6c5a9211083a0a4d21f61ff42e4d9368b5768b395d6ec1b17fc47eb WHIRLPOOL f38666e7c47d9e10b96a22b85c90659800ecfa86d7cf9d5ff69385dc5584fc6ea4b90265ec62d8066adab63a647c1a4bd0f0d1cc69057fcc08c4aa6856cd5766
+DIST gcc-4.6.3-uclibc-patches-1.0.tar.bz2 3023 SHA256 4219a3582c5f98bf8437bfc3feb8c264f8aabd8078caaddef46dd38be33f089f SHA512 e0763dc7f3f94cb9ba6e34233d1a2fa6913918a5100dd029ae76b3b086529b8fafae3086dc22f3294f7d378e5548294264cb2faa80866e8a1ecc666bf60fe010 WHIRLPOOL 1744810d5928b1869929ebd608e1d817e4bcb4f666647bc873e9bdb41c65833a40745e58de5ef4beb98ef4ac539c8560733100a3bbee280c76525ee518ae88c8
+DIST gcc-4.6.3.tar.bz2 71999439 SHA256 e8f5853d4eec2f5ebaf8a72ae4d53c436aacf98153b2499f8635b48c4718a093 SHA512 efedecc1a6d1c36eb91cbecfae9a4414d01051e99965de8a284d1164df3cad13fa99a6dd5a4ceaa03ef63a66884eaf729b49d602ac82088f788bab045ce1eb26 WHIRLPOOL a50059cc5ec5bcf7c7d7108e38087c2168ff0c6817d06b709be901a87007f84cd231ebae0752cdc94fa99c93ecd30ba810d3213aba9f3639292b1e831818ec0c
+DIST gcc-4.6.4-patches-1.0.tar.bz2 18687 SHA256 f751e2e701c48bc30d3047b87b5d08fb15095de3bb5b83c9662c08f5e5449a92 SHA512 8dd580faa9bcffcdeb1843a8d3d3bd8db492891d855c17bba3cc019673d814a5d24a927055694307be6438cb2c041bc799646a483c019f3840e4e1ca33b7ccb5 WHIRLPOOL 695fd821f347062bed01305fa1aca8c0cf4085391ad63f31df4afa3f4eaeb57eba7cebae02caac788dc9b290a57d675e66667ee3e15522d7d2909cbcbf1e6982
+DIST gcc-4.6.4-piepatches-v0.5.2.tar.bz2 14888 SHA256 a6a853197fb0de66c07e6183e686dbdb1f4b55108efd4c8363662cb2b971f43c SHA512 2fd1993b0dc7fc2096e17198f70ff6328ac4d3b7c0db597e3bc119df10eb0b9744f8e6cc659ae1ddd8afdb14f94cb85fdd12033a5d76026c7f84aca44ce9c9b8 WHIRLPOOL 61babd71167114a3f8579e8fb4bba5ed0c217cff4f3760b89de8a67d69c05de43b49bd9f567e6417b69874a878ecdc0e98d807a0e25a9dc80ef5c67594e15a0d
+DIST gcc-4.6.4-uclibc-patches-1.0.tar.bz2 3010 SHA256 946334cc62c0afa2f50a435dffbed12fd32c170f0850bbdce47df188a1eb8918 SHA512 fd289089a30c768b0ec4e3459cf494bc5e9d4ecf87056dc183277c712f7d69ac4cf900950270d8eacfe686b4aa906e1ece87cae52f2cb00642e96c0b95dcf133 WHIRLPOOL 2ce7f308a21fb5072d08a640390eb3f453ad8d811df897b0f9d3e917eef4680fce6cce231159ffe96e371f3c299264eaa51cd110124a3a126f04fb6d8531639e
+DIST gcc-4.6.4.tar.bz2 72006076 SHA256 35af16afa0b67af9b8eb15cafb76d2bc5f568540552522f5dc2c88dd45d977e8 SHA512 b5a5395782e0b9e61cda052f6e00c8575d1aa0b7e8db9e34c06e4e45f12ff37b436018536b7fa69a04a4235b5b368895652e3ed8fab2fe11763f9782ed9161dc WHIRLPOOL ab1b035f43aec669640b36037e65ae0edceb3b13b1ce4f7900aeff5ee06686dc2d66c3dd81156f53c4e9a9a806e4becd4462f72a6c4ad7e646b632c10c23356c
+DIST gcc-4.7.3-patches-1.0.tar.bz2 39969 SHA256 c9a5d7c6da7d056f7fca15b33eb7f399bb7ed5a2d0a892b97e0c7609146a2a24 SHA512 d5c3151eca135bb08511955d81c7727adbf8fc33043b64a4431b0fe95d2cac1bf3c5410fa9616373d6b3d932604195ff29f6321e61a3de69a7704f1d1cb1759f WHIRLPOOL 315578ef5a7226ed66c4831b25c79647120453dc169dc8ecd291e099500ae52284ffa451164522d6d55d11c440a7aa353a283c07e28c103c522df0c2e2f43fff
+DIST gcc-4.7.3-patches-1.4.tar.bz2 43148 SHA256 bfafbd4c1cdd589858c18072f8e06c537370169cce1788aba869f35096174e57 SHA512 6dfc5b405e2eca70642f42974d7d3183ff8f0eed3e9f29fbf197e8959bc1795a1ba54df99e4f73df1017332f46bdf3d1c10d4b0f89fea71d604dd5ebda488c22 WHIRLPOOL 2fbd05323dd803a1b2b7c09a3b44cc8f23d4662f61a89b9365a5d505b4a605ac168fc940bae5992e2ad6b821f93d0f6651092d3301b15fdfd14ccf608fa241e6
+DIST gcc-4.7.3-piepatches-v0.5.5.tar.bz2 15378 SHA256 b6f6b6709e7b13f6c05090f3bf68f3a64db19d52593a870cc7717c5c128b05a2 SHA512 d0189d2e4049d471dedaddcba319fe2c2b29855f7b33e84b26051504ead2936c852ef7870a1d19d755bb343c9b121b0ce5295665ab4ff1e448436bd448c08e1f WHIRLPOOL ccceedb41d48da69f5a423b6b73436c9fbb7b1e382456abfcef954f25666e1b7caf926bc5eb977e934502359a356d623c439d80825e87d9fe46b5ae78a74bde3
+DIST gcc-4.7.3-uclibc-patches-1.0.tar.bz2 3013 SHA256 731c518f31db8debd08bea92db8e3bf1e9962552909407452dc2ac3c491cf11c SHA512 6119159300e76be87732f2a44b1a9388228235d7832370dbae531c2c96694ea42ed4c75acf7abca98ec0035fbc50a8bf84225574505358c2739e64b0f3fd6a95 WHIRLPOOL 4a874a5684937907720aa5a4a1dbc237aa7d985292befd1c591cf0789c71e0da22ced5b7f7e049731bc2d6496e959cbe3c9010047ceb1b05675e61865004c71a
+DIST gcc-4.7.3.tar.bz2 82904224 SHA256 2f7c37eb4fc14422ff2358a9ef59c974a75ab41204ef0e49fc34ab1d8981a9c3 SHA512 5671a2dd3b6ac0d23f305cb11a796aebd823c1462b873136b412e660966143f4e07439bd8926c1443b78442beb6ae370ef91d819ec615920294875b722b7b0bd WHIRLPOOL cb3408e3e251833f38ae7cf2388a1ddce864614fe1c68de9729a1a9a1f8f028ab92c0f2b863e7fa3ac16dbf443306ac864e74c9cce90690230c081ee2ac309d3
+DIST gcc-4.7.4-patches-1.2.tar.bz2 41732 SHA256 6885f63b7cd37a0f4fb9584a15e3144c5a08abd2b1fdcc485f43daba576f162c SHA512 ee42ca54ee8a3b03c20870493ac91ceb224c74c8f6c92e9bec43a2e4c46a0179a349faa14e3d6583367dec6e001cb2071a31d2eeadb4902ea97a7cf9a3958b6b WHIRLPOOL 04672dd9f9e481e591d0cb4a7bd2f65d7e78c3a44b91d982db3e78d1c9a3b29a544726a89d34ea4f4c9791595f21da2ad97ec87c719e5334b6eb7100df6e28b3
+DIST gcc-4.7.4-piepatches-v0.5.5.tar.bz2 15358 SHA256 6b568bd204e3ffb177df1830e5a888be3987491b4183bdb6ad75ad83c642a348 SHA512 f5e078bf4c17f7b5be102f1e3358d91c72e80363b5e055a92461f78399a1bf27bf6cb690d41900719bb260b6529f5d1aac999e613fda6ac5e4efa27f622510e6 WHIRLPOOL 42e348d5925cf4d43697a6dc06c911cc617f89037949ce1d8f7aa0fa93405f460e7416d6cd00e8fb2aac54c6f26fcae00691917f1517fcfb6891925efa3d3400
+DIST gcc-4.7.4-uclibc-patches-1.0.tar.bz2 3019 SHA256 cbdfe2947f653e11ac391dded461416e5cef1ff8900cf8fe92672de797b4018b SHA512 c2e6c96b74365f8233f6106fa03d94075b60f6f77c683aa2e27aceb007da723243f8e3ddea8b178e6a0f7939b8e35615165534dc74e5050f87680ab261a31c52 WHIRLPOOL 53c8bd64336eb55d8e3d62a33267d3d99c0239d5c818985a9830fd776d766aabf4b0bce630949c5b522580566e2eeba1b59bfc1b8388dee7ec6c990512d2c499
+DIST gcc-4.7.4.tar.bz2 82935453 SHA256 92e61c6dc3a0a449e62d72a38185fda550168a86702dea07125ebd3ec3996282 SHA512 dfcb737073191e628231031a3571ec77ee760a59377630f4a6e4fdfa66f9ddad39fde47e3f0f227eb43cdf90e0d34cde5abdc9ac892c1e111a911062a66c9189 WHIRLPOOL df8408e80634ce28f105f9abcdcf38fba5c130795cbe48428527a68819abebc3bc7152bb6ad714e40c71450a08986b48ddd630c887e1b2faf07c3babfe720969
+DIST gcc-4.8.3-patches-1.1.tar.bz2 19882 SHA256 019cbe76f20f4e294b900ccb99a6b52553ed04fa0d2993798b3a07b0e4a8f90a SHA512 8512ec54fb2d482e08ca54042e11c6334d653ec850cc7c920ed95654575222ac0303caa35cd46e80f1985d86cd229f35e26e0eaca1ae623fd8d336940148801c WHIRLPOOL d7b8d6278b6f79aa00fcd29ed6142cad3002def33edb0be44e638d50cb3b1fa8da72fa62a7276c81c94cd873c872dd0e7fd602022420d9601fde8f2b04872ece
+DIST gcc-4.8.3-piepatches-v0.5.9.tar.bz2 13310 SHA256 d08e3770453edb728216243ecaf639ff7bc8aa77560fffdd561b2a0859d0b869 SHA512 d9d7dc4b7d8f52cce48dff36ee32db5346baed50968a1cacafa9a426849c5df5387061b26c8a0d2363bf91e5f55cb459cb4a176c5652690f914916047c0437f8 WHIRLPOOL 1e5cb3556b695de7f42ab44636194e86128f80bdffbe049fc1d4ee17b772bc1ea2089b3fe88bec60c52aab4bf5301344be27fd11be3c6cc8ef798d6441285c8b
+DIST gcc-4.8.3-uclibc-patches-1.0.tar.bz2 3014 SHA256 75f089ed44e33be8923f82eaa1d231f71d2cded475fb10938eded386647c5e04 SHA512 7e74fefae6136d2e132ee37905adbdf7f528d31a7bb67ed97bc99b6208f177a6105ef0f0e0c77eb87368359f7da49de768ff98ec07a569e19bfdd00f67a445a8 WHIRLPOOL 6fd766ba280fc0b96f1823315b5098a36d361dc9c8d179b2e262d72156508b70c560ef5095f3556bb5c922e495cc7eefb4bd5d970b2e4dff9e9ce654703fddc5
+DIST gcc-4.8.3.tar.bz2 86126808 SHA256 6a8e4f11b185f4fe2ed9d7fc053e80f8c7e73f800c045f51f9d8bea33f080f1e SHA512 2b40d231e8445f9c1654137df509f09ce1187b475138ca7f648f710d922a1718f740b2d8a37c26e16b5e27900c60358be98229ae884a6f1f70e9df44ad24d02b WHIRLPOOL 6dd3bd4b51bb9b8c52fb743bba28cde8612ff7090b71e56bf02d3613b91cd4c3c4dd91dbcb672985f22400d776870ba55550e1fc44afae9737092ceca5f83ebd
diff --git a/sys-devel/gcc/files/gcc-4.6.4-fix-ICE-on-arm.patch b/sys-devel/gcc/files/gcc-4.6.4-fix-ICE-on-arm.patch
new file mode 100644
index 00000000..578506a9
--- /dev/null
+++ b/sys-devel/gcc/files/gcc-4.6.4-fix-ICE-on-arm.patch
@@ -0,0 +1,24 @@
+--- gcc-4.6.4/gcc/config/arm/arm.md
++++ gcc-4.6.4/gcc/config/arm/arm.md
+@@ -4202,7 +4202,9 @@
+ #
+ ldr%(h%)\\t%0, %1"
+ [(set_attr "type" "alu_shift,load_byte")
+- (set_attr "predicable" "yes")]
++ (set_attr "predicable" "yes")
++ (set_attr "pool_range" "*,256")
++ (set_attr "neg_pool_range" "*,244")]
+ )
+
+ (define_insn "*arm_zero_extendhisi2_v6"
+@@ -4213,7 +4215,9 @@
+ uxth%?\\t%0, %1
+ ldr%(h%)\\t%0, %1"
+ [(set_attr "type" "alu_shift,load_byte")
+- (set_attr "predicable" "yes")]
++ (set_attr "predicable" "yes")
++ (set_attr "pool_range" "*,256")
++ (set_attr "neg_pool_range" "*,244")]
+ )
+
+ (define_insn "*arm_zero_extendhisi2addsi"
diff --git a/sys-devel/gcc/files/gcc-4.6.4-spec-env.patch b/sys-devel/gcc/files/gcc-4.6.4-spec-env.patch
new file mode 100644
index 00000000..fff1221e
--- /dev/null
+++ b/sys-devel/gcc/files/gcc-4.6.4-spec-env.patch
@@ -0,0 +1,43 @@
+ Add support for external spec file via the GCC_SPECS env var. This
+ allows us to easily control pie/ssp defaults with gcc-config profiles.
+
+ Original patch by Rob Holland
+ Modified for Gentoo-based distros 'cuz of archive name by Stefan Cristian B.
+ Extended to support multiple entries separated by ':' by Kevin F. Quinn
+ Modified to use getenv instead of poisoned GET_ENVIRONMENT by Ryan Hill
+
+--- gcc-4.6.4/gcc/gcc.c
++++ gcc-4.6.4/gcc/gcc.c
+@@ -6482,6 +6482,32 @@
+
+ /* Process any user specified specs in the order given on the command
+ line. */
++#if !(defined (__MSDOS__) || defined (OS2) || defined (VMS) || defined (WIN32))
++ /* Add specs listed in GCC_SPECS. Note; in the process of separating
++ * each spec listed, the string is overwritten at token boundaries
++ * (':') with '\0', an effect of strtok_r().
++ */
++ specs_file = getenv ("GCC_SPECS");
++ if (specs_file && (strlen(specs_file) > 0))
++ {
++ char *spec, *saveptr;
++ for (spec=strtok_r(specs_file,":",&saveptr);
++ spec!=NULL;
++ spec=strtok_r(NULL,":",&saveptr))
++ {
++ struct user_specs *user = (struct user_specs *)
++ xmalloc (sizeof (struct user_specs));
++
++ user->next = (struct user_specs *) 0;
++ user->filename = spec;
++ if (user_specs_tail)
++ user_specs_tail->next = user;
++ else
++ user_specs_head = user;
++ user_specs_tail = user;
++ }
++ }
++#endif
+ for (uptr = user_specs_head; uptr; uptr = uptr->next)
+ {
+ char *filename = find_a_file (&startfile_prefixes, uptr->filename,
diff --git a/sys-devel/gcc/files/gcc-spec-env-r1.patch b/sys-devel/gcc/files/gcc-spec-env-r1.patch
new file mode 100644
index 00000000..a5892683
--- /dev/null
+++ b/sys-devel/gcc/files/gcc-spec-env-r1.patch
@@ -0,0 +1,87 @@
+2013-08-22 Magnus Granberg <zorry@gentoo.org>
+
+ * gcc/gcc.c (main): Add support for external spec file via the GCC_SPECS env var
+ and move the process of the user specifed specs.
+
+ This allows us to easily control pie/ssp defaults with gcc-config profiles.
+ Original patch by Rob Holland
+ Extended to support multiple entries separated by ':' by Kevin F. Quinn
+ Modified to use getenv instead of poisoned GET_ENVIRONMENT by Ryan Hill
+ Modified to process the GCC_SPECS env var befor DRIVER_SELF_SPECS by Magnus Granberg
+
+--- gcc-4.8-20130210/gcc/gcc.c 2013-02-05 16:55:31.000000000 +0100
++++ gcc-4.8-20130210-work/gcc/gcc.c 2013-07-26 02:32:14.625089864 +0200
+@@ -6427,6 +6428,48 @@ main (int argc, char **argv)
+ do_option_spec (option_default_specs[i].name,
+ option_default_specs[i].spec);
+
++#if !(defined (__MSDOS__) || defined (OS2) || defined (VMS) || defined (WIN32))
++ /* Add specs listed in GCC_SPECS. Note; in the process of separating
++ * each spec listed, the string is overwritten at token boundaries
++ * (':') with '\0', an effect of strtok_r().
++ */
++ specs_file = getenv ("GCC_SPECS");
++ if (specs_file && (strlen(specs_file) > 0))
++ {
++ char *spec, *saveptr;
++ for (spec=strtok_r(specs_file,":",&saveptr);
++ spec!=NULL;
++ spec=strtok_r(NULL,":",&saveptr))
++ {
++ struct user_specs *user = (struct user_specs *)
++ xmalloc (sizeof (struct user_specs));
++ user->next = (struct user_specs *) 0;
++ user->filename = spec;
++ if (user_specs_tail)
++ user_specs_tail->next = user;
++ else
++ user_specs_head = user;
++ user_specs_tail = user;
++ }
++ }
++#endif
++ /* Process any user specified specs in the order given on the command
++ * line. */
++ for (uptr = user_specs_head; uptr; uptr = uptr->next)
++ {
++ char *filename = find_a_file (&startfile_prefixes, uptr->filename,
++ R_OK, true);
++ read_specs (filename ? filename : uptr->filename, false, true);
++ }
++ /* Process any user self specs. */
++ {
++ struct spec_list *sl;
++ for (sl = specs; sl; sl = sl->next)
++ if (sl->name_len == sizeof "self_spec" - 1
++ && !strcmp (sl->name, "self_spec"))
++ do_self_spec (*sl->ptr_spec);
++ }
++
+ /* Process DRIVER_SELF_SPECS, adding any new options to the end
+ of the command line. */
+
+@@ -6535,24 +6578,6 @@ main (int argc, char **argv)
+ PREFIX_PRIORITY_LAST, 0, 1);
+ }
+
+- /* Process any user specified specs in the order given on the command
+- line. */
+- for (uptr = user_specs_head; uptr; uptr = uptr->next)
+- {
+- char *filename = find_a_file (&startfile_prefixes, uptr->filename,
+- R_OK, true);
+- read_specs (filename ? filename : uptr->filename, false, true);
+- }
+-
+- /* Process any user self specs. */
+- {
+- struct spec_list *sl;
+- for (sl = specs; sl; sl = sl->next)
+- if (sl->name_len == sizeof "self_spec" - 1
+- && !strcmp (sl->name, "self_spec"))
+- do_self_spec (*sl->ptr_spec);
+- }
+-
+ if (compare_debug)
+ {
+ enum save_temps save;
diff --git a/sys-devel/gcc/files/gcc-spec-env.patch b/sys-devel/gcc/files/gcc-spec-env.patch
index 57e7567e..5fa61a91 100644
--- a/sys-devel/gcc/files/gcc-spec-env.patch
+++ b/sys-devel/gcc/files/gcc-spec-env.patch
@@ -2,11 +2,12 @@
allows us to easily control pie/ssp defaults with gcc-config profiles.
Original patch by Rob Holland
+ Modified for Gentoo-based distros 'cuz of archive name by Stefan Cristian B.
Extended to support multiple entries separated by ':' by Kevin F. Quinn
Modified to use getenv instead of poisoned GET_ENVIRONMENT by Ryan Hill
---- gcc-4/gcc/gcc.c
-+++ gcc-4/gcc/gcc.c
+--- a/gcc/gcc.c
++++ b/gcc/gcc.c
@@ -6482,6 +6482,32 @@
/* Process any user specified specs in the order given on the command
diff --git a/sys-devel/gcc/gcc-4.7.2.ebuild b/sys-devel/gcc/gcc-4.6.4.ebuild
index 79d59c40..6bd6a237 100644
--- a/sys-devel/gcc/gcc-4.7.2.ebuild
+++ b/sys-devel/gcc/gcc-4.6.4.ebuild
@@ -3,7 +3,7 @@
# $Header: $
EAPI=2
-PATCH_VER="1.3"
+PATCH_VER="1.0"
UCLIBC_VER="1.0"
# Hardened gcc 4 stuff
@@ -46,7 +46,7 @@ RDEPEND="~sys-devel/base-gcc-${PV}
## Make sure we share all the USE flags in sys-devel/base-gcc
BASE_GCC_USE="fortran gcj gtk mudflap multilib nls nptl openmp altivec
- bootstrap build doc fixed-point go graphite hardened
+ bootstrap build doc fixed-point graphite hardened
multislot cxx nopie nossp objc objc++ objc-gc test vanilla"
for base_use in ${BASE_GCC_USE}; do
RDEPEND+=" ~sys-devel/base-gcc-${PV}[${base_use}?]"
@@ -86,7 +86,7 @@ src_unpack() {
eerror "The active gcc-profile is for sys-devel/gcc slot ${SLOT}."
eerror "Sabayon's split sys-devel/gcc package MUST be built"
eerror "with another slotted version of sys-devel/gcc active."
- die "Invalid gcc profile selected!"
+ ebeep 10
fi
if has_version '<sys-libs/glibc-2.12' ; then
@@ -104,10 +104,10 @@ src_unpack() {
use vanilla && return 0
- [[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env.patch
+ [[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-${PV}-spec-env.patch
# Fix http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47719
- epatch "${FILESDIR}/${PN}-4.6.2-fix-ICE-on-arm.patch"
+ epatch "${FILESDIR}/${PN}-${PV}-fix-ICE-on-arm.patch"
}
## Remove lto conditional
diff --git a/sys-devel/gcc/gcc-4.7.3-r1.ebuild b/sys-devel/gcc/gcc-4.7.3-r1.ebuild
new file mode 100644
index 00000000..3a78b264
--- /dev/null
+++ b/sys-devel/gcc/gcc-4.7.3-r1.ebuild
@@ -0,0 +1,131 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=2
+PATCH_VER="1.4"
+UCLIBC_VER="1.0"
+
+# Hardened gcc 4 stuff
+PIE_VER="0.5.5"
+SPECS_VER="0.2.0"
+SPECS_GCC_VER="4.4.3"
+# arch/libc configurations known to be stable with {PIE,SSP}-by-default
+PIE_GLIBC_STABLE="x86 amd64 ppc ppc64 arm ia64"
+PIE_UCLIBC_STABLE="x86 arm amd64 ppc ppc64"
+SSP_STABLE="amd64 x86 ppc ppc64 arm"
+# uclibc need tls and nptl support for SSP support
+# uclibc need to be >= 0.9.33
+SSP_UCLIBC_STABLE="x86 amd64 ppc ppc64 arm"
+#end Hardened stuff
+
+inherit toolchain
+
+DESCRIPTION="The GNU Compiler Collection"
+
+LICENSE="GPL-3+ LGPL-3+ || ( GPL-3+ libgcc libstdc++ gcc-runtime-library-exception-3.1 ) FDL-1.3+"
+KEYWORDS="alpha amd64 arm hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 -amd64-fbsd -x86-fbsd"
+
+## Make sure we share all the USE flags in sys-devel/base-gcc
+BASE_GCC_USE="fortran gcj mudflap multilib nls nptl openmp altivec
+ bootstrap build doc fixed-point graphite hardened
+ multislot cxx nopie nossp objc objc++ objc-gc test vanilla"
+for base_use in ${BASE_GCC_USE}; do
+ RDEPEND+=" ~sys-devel/base-gcc-${PV}[${base_use}?]"
+done
+IUSE="${BASE_GCC_USE}"
+
+RDEPEND="~sys-devel/base-gcc-${PV} ${RDEPEND}"
+DEPEND="${RDEPEND}
+ elibc_glibc? ( >=sys-libs/glibc-2.8 )
+ >=${CATEGORY}/binutils-2.18"
+## Should this be moved to base-gcc?
+## I guess the cross-* thing is now utterly broken
+if [[ ${CATEGORY} != cross-* ]] ; then
+ PDEPEND="${PDEPEND} elibc_glibc? ( >=sys-libs/glibc-2.8 )"
+fi
+
+## Check for valid gcc profile.
+src_unpack() {
+ # Since Sabayon's gcc ebuild are split into two parts, we have to
+ # build gcc with a different version of gcc, or terrible breakage
+ # will occur after sys-devel/base-gcc is installed, but the
+ # partner sys-devel/gcc still needs to be built.
+
+ # While it is possible to rebuild Sabayon's split gcc from
+ # the same version, we have to disallow this also since
+ # we have no way of discerning if a configuration change
+ # is significant enough to cause breakage.
+
+ GCC_PROFILE_VER=$(cat ${ROOT}/etc/env.d/gcc/config-$CHOST | awk -F- '{ print $NF }')
+ einfo "Checking for valid gcc profile to build ${P}"
+
+ # Construct the Slot of the gcc version in the active profile.
+ GCC_PROFILE_SLOT_MAJOR=$(echo ${GCC_PROFILE_VER} | awk -F. '{ print $1 }')
+ GCC_PROFILE_SLOT_MINOR=$(echo ${GCC_PROFILE_VER} | awk -F. '{ print $2 }')
+ GCC_PROFILE_SLOT="${GCC_PROFILE_SLOT_MAJOR}.${GCC_PROFILE_SLOT_MINOR}"
+ einfo "Current gcc profile version Slot is: ${GCC_PROFILE_SLOT}"
+ if [[ "${GCC_PROFILE_SLOT}" = "${SLOT}" ]] ; then
+ eerror "Error!"
+ eerror "The active gcc-profile is for sys-devel/gcc slot ${SLOT}."
+ eerror "Sabayon's split sys-devel/gcc package MUST be built"
+ eerror "with another slotted version of sys-devel/gcc active."
+ ebeep 10
+ fi
+
+ if has_version '<sys-libs/glibc-2.12' ; then
+ ewarn "Your host glibc is too old; disabling automatic fortify."
+ ewarn "Please rebuild gcc after upgrading to >=glibc-2.12 #362315"
+ EPATCH_EXCLUDE+=" 10_all_default-fortify-source.patch"
+ fi
+
+ # drop the x32 stuff once 4.7 goes stable
+ if [[ ${CTARGET} != x86_64* ]] || ! has x32 $(get_all_abis TARGET) ; then
+ EPATCH_EXCLUDE+=" 90_all_gcc-4.7-x32.patch"
+ fi
+
+ toolchain_src_unpack
+
+ use vanilla && return 0
+
+ cd "${S}" || die
+ [[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env.patch
+}
+
+## Just install libgcc stuff
+src_install() {
+ toolchain_src_install
+
+ # now drop what's provided by sys-devel/base-gcc-${PV}:${SLOT}
+ base_gcc_libs="libgfortran.so* libgcc_s.so* libobjc.so*
+ libobjc_gc.so* libmudflap.so* libmudflapth.so* libgomp.so* libstdc++.so*
+ libquadmath.so*"
+ base_multilib_gcc_libs="32/libgfortran.so* 32/libobjc.so* 32/libobjc_gc.so*
+ 32/libgcc_s.so* 32/libgomp.so* 32/libmudflap.so*
+ 32/libmudflapth.so* 32/libstdc++.so* 32/libquadmath.so*"
+ for gcc_lib in ${base_gcc_libs}; do
+ # -f is used because the file might not be there
+ rm "${D}"${LIBPATH}/${gcc_lib} -rf || die "cannot execute rm on ${gcc_lib}"
+ debug_dir="${D}"/usr/lib/debug
+ if [ -d "${debug_dir}" ]; then
+ rm "${debug_dir}"${LIBPATH}/${gcc_lib}.debug -rf || die "cannot execute rm on ${gcc_lib}.debug"
+ fi
+ done
+ if use multilib; then
+ for gcc_lib in ${base_multilib_gcc_libs}; do
+ # -f is used because the file might not be there
+ rm "${D}"${LIBPATH}/${gcc_lib} -rf || die "cannot execute rm on ${gcc_lib}"
+ debug_dir="${D}"/usr/lib/debug
+ if [ -d "${debug_dir}" ]; then
+ rm "${debug_dir}"${LIBPATH}/${gcc_lib}.debug -rf || die "cannot execute rm on ${gcc_lib}.debug"
+ fi
+ done
+ fi
+ # then .mo files provided by sys-devel/base-gcc-${PV}:${SLOT}
+ find "${D}"${DATAPATH}/locale -name libstdc++.mo -delete
+ find "${D}"${DATAPATH}/info -name libgomp.info* -delete
+ find "${D}"${DATAPATH}/info -name libquadmath.info* -delete
+
+ # drop stuff from env.d, provided by sys-devel/base-gcc-${PV}:${SLOT}
+ rm "${D}"/etc/env.d -rf
+}
diff --git a/sys-devel/gcc/gcc-4.7.3.ebuild b/sys-devel/gcc/gcc-4.7.3.ebuild
new file mode 100644
index 00000000..9d4e8539
--- /dev/null
+++ b/sys-devel/gcc/gcc-4.7.3.ebuild
@@ -0,0 +1,164 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=2
+PATCH_VER="1.0"
+UCLIBC_VER="1.0"
+
+# Hardened gcc 4 stuff
+PIE_VER="0.5.5"
+SPECS_VER="0.2.0"
+SPECS_GCC_VER="4.4.3"
+# arch/libc configurations known to be stable with {PIE,SSP}-by-default
+PIE_GLIBC_STABLE="x86 amd64 ppc ppc64 arm ia64"
+PIE_UCLIBC_STABLE="x86 arm amd64 ppc ppc64"
+SSP_STABLE="amd64 x86 ppc ppc64 arm"
+# uclibc need tls and nptl support for SSP support
+# uclibc need to be >= 0.9.33
+SSP_UCLIBC_STABLE="x86 amd64 ppc ppc64 arm"
+#end Hardened stuff
+
+inherit toolchain
+
+DESCRIPTION="The GNU Compiler Collection"
+
+LICENSE="GPL-3 LGPL-3 || ( GPL-3 libgcc libstdc++ gcc-runtime-library-exception-3.1 ) FDL-1.2"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
+
+RDEPEND="~sys-devel/base-gcc-${PV}
+ !build? (
+ gcj? (
+ gtk? (
+ x11-libs/libXt
+ x11-libs/libX11
+ x11-libs/libXtst
+ x11-proto/xproto
+ x11-proto/xextproto
+ =x11-libs/gtk+-2*
+ x11-libs/pango
+ )
+ >=media-libs/libart_lgpl-2.1
+ app-arch/zip
+ app-arch/unzip
+ )
+ )"
+
+## Make sure we share all the USE flags in sys-devel/base-gcc
+BASE_GCC_USE="fortran gcj gtk mudflap multilib nls nptl openmp altivec
+ bootstrap build doc fixed-point graphite hardened
+ multislot cxx nopie nossp objc objc++ objc-gc test vanilla"
+for base_use in ${BASE_GCC_USE}; do
+ RDEPEND+=" ~sys-devel/base-gcc-${PV}[${base_use}?]"
+done
+IUSE="${BASE_GCC_USE}"
+
+DEPEND="${RDEPEND}
+ amd64? ( multilib? ( gcj? ( app-emulation/emul-linux-x86-xlibs ) ) )"
+## Should this be moved to base-gcc?
+## I guess the cross-* thing is now utterly broken
+if [[ ${CATEGORY} != cross-* ]] ; then
+ PDEPEND="${PDEPEND} elibc_glibc? ( >=sys-libs/glibc-2.8 )"
+fi
+
+## Check for valid gcc profile.
+src_unpack() {
+ # Since Sabayon's gcc ebuild are split into two parts, we have to
+ # build gcc with a different version of gcc, or terrible breakage
+ # will occur after sys-devel/base-gcc is installed, but the
+ # partner sys-devel/gcc still needs to be built.
+
+ # While it is possible to rebuild Sabayon's split gcc from
+ # the same version, we have to disallow this also since
+ # we have no way of discerning if a configuration change
+ # is significant enough to cause breakage.
+
+ GCC_PROFILE_VER=$(cat ${ROOT}/etc/env.d/gcc/config-$CHOST | awk -F- '{ print $NF }')
+ einfo "Checking for valid gcc profile to build ${P}"
+
+ # Construct the Slot of the gcc version in the active profile.
+ GCC_PROFILE_SLOT_MAJOR=$(echo ${GCC_PROFILE_VER} | awk -F. '{ print $1 }')
+ GCC_PROFILE_SLOT_MINOR=$(echo ${GCC_PROFILE_VER} | awk -F. '{ print $2 }')
+ GCC_PROFILE_SLOT="${GCC_PROFILE_SLOT_MAJOR}.${GCC_PROFILE_SLOT_MINOR}"
+ einfo "Current gcc profile version Slot is: ${GCC_PROFILE_SLOT}"
+ if [[ "${GCC_PROFILE_SLOT}" = "${SLOT}" ]] ; then
+ eerror "Error!"
+ eerror "The active gcc-profile is for sys-devel/gcc slot ${SLOT}."
+ eerror "Sabayon's split sys-devel/gcc package MUST be built"
+ eerror "with another slotted version of sys-devel/gcc active."
+ ebeep 10
+ fi
+
+ if has_version '<sys-libs/glibc-2.12' ; then
+ ewarn "Your host glibc is too old; disabling automatic fortify."
+ ewarn "Please rebuild gcc after upgrading to >=glibc-2.12 #362315"
+ EPATCH_EXCLUDE+=" 10_all_default-fortify-source.patch"
+ fi
+
+ # drop the x32 stuff once 4.7 goes stable
+ case ${CHOST} in
+ x86_64*) has x32 $(get_all_abis) || EPATCH_EXCLUDE+=" 80_all_gcc-4.6-x32.patch" ;;
+ esac
+
+ # drop the x32 stuff once 4.7 goes stable
+ if [[ ${CTARGET} != x86_64* ]] || ! has x32 $(get_all_abis TARGET) ; then
+ EPATCH_EXCLUDE+=" 90_all_gcc-4.7-x32.patch"
+ fi
+
+ toolchain_src_unpack
+
+ use vanilla && return 0
+
+ [[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env.patch
+
+ # Fix http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47719
+ epatch "${FILESDIR}/${PN}-4.6.2-fix-ICE-on-arm.patch"
+}
+
+## Remove lto conditional
+pkg_setup() {
+ toolchain_pkg_setup
+
+ ewarn
+ ewarn "LTO support is still experimental and unstable."
+ ewarn "Any bugs resulting from the use of LTO will not be fixed."
+ ewarn
+}
+
+## Just install libgcc stuff
+src_install() {
+ toolchain_src_install
+
+ # now drop what's provided by sys-devel/base-gcc-${PV}:${SLOT}
+ base_gcc_libs="libgfortran.so* libgcc_s.so* libobjc.so*
+ libobjc_gc.so* libmudflap.so* libmudflapth.so* libgomp.so* libstdc++.so*
+ libquadmath.so*"
+ base_multilib_gcc_libs="32/libgfortran.so* 32/libobjc.so* 32/libobjc_gc.so*
+ 32/libgcc_s.so* 32/libgomp.so* 32/libmudflap.so*
+ 32/libmudflapth.so* 32/libstdc++.so* 32/libquadmath.so*"
+ for gcc_lib in ${base_gcc_libs}; do
+ # -f is used because the file might not be there
+ rm "${D}"${LIBPATH}/${gcc_lib} -rf || die "cannot execute rm on ${gcc_lib}"
+ debug_dir="${D}"/usr/lib/debug
+ if [ -d "${debug_dir}" ]; then
+ rm "${debug_dir}"${LIBPATH}/${gcc_lib}.debug -rf || die "cannot execute rm on ${gcc_lib}.debug"
+ fi
+ done
+ if use multilib; then
+ for gcc_lib in ${base_multilib_gcc_libs}; do
+ # -f is used because the file might not be there
+ rm "${D}"${LIBPATH}/${gcc_lib} -rf || die "cannot execute rm on ${gcc_lib}"
+ debug_dir="${D}"/usr/lib/debug
+ if [ -d "${debug_dir}" ]; then
+ rm "${debug_dir}"${LIBPATH}/${gcc_lib}.debug -rf || die "cannot execute rm on ${gcc_lib}.debug"
+ fi
+ done
+ fi
+ # then .mo files provided by sys-devel/base-gcc-${PV}:${SLOT}
+ find "${D}"${DATAPATH}/locale -name libstdc++.mo -delete
+ find "${D}"${DATAPATH}/info -name libgomp.info* -delete
+ find "${D}"${DATAPATH}/info -name libquadmath.info* -delete
+
+ # drop stuff from env.d, provided by sys-devel/base-gcc-${PV}:${SLOT}
+ rm "${D}"/etc/env.d -rf
+}
diff --git a/sys-devel/gcc/gcc-4.7.4.ebuild b/sys-devel/gcc/gcc-4.7.4.ebuild
new file mode 100644
index 00000000..05b19b63
--- /dev/null
+++ b/sys-devel/gcc/gcc-4.7.4.ebuild
@@ -0,0 +1,132 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="4"
+
+PATCH_VER="1.2"
+UCLIBC_VER="1.0"
+
+# Hardened gcc 4 stuff
+PIE_VER="0.5.5"
+SPECS_VER="0.2.0"
+SPECS_GCC_VER="4.4.3"
+# arch/libc configurations known to be stable with {PIE,SSP}-by-default
+PIE_GLIBC_STABLE="x86 amd64 ppc ppc64 arm ia64"
+PIE_UCLIBC_STABLE="x86 arm amd64 ppc ppc64"
+SSP_STABLE="amd64 x86 ppc ppc64 arm"
+# uclibc need tls and nptl support for SSP support
+# uclibc need to be >= 0.9.33
+SSP_UCLIBC_STABLE="x86 amd64 ppc ppc64 arm"
+#end Hardened stuff
+
+inherit toolchain
+
+DESCRIPTION="The GNU Compiler Collection"
+
+LICENSE="GPL-3+ LGPL-3+ || ( GPL-3+ libgcc libstdc++ gcc-runtime-library-exception-3.1 ) FDL-1.3+"
+
+KEYWORDS="alpha amd64 arm hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 -amd64-fbsd -x86-fbsd"
+
+## Make sure we share all the USE flags in sys-devel/base-gcc
+BASE_GCC_USE="fortran gcj mudflap multilib nls nptl openmp altivec
+ bootstrap build doc fixed-point graphite hardened
+ multislot cxx nopie nossp objc objc++ objc-gc test vanilla"
+for base_use in ${BASE_GCC_USE}; do
+ RDEPEND+=" ~sys-devel/base-gcc-${PV}[${base_use}?]"
+done
+IUSE="${BASE_GCC_USE}"
+
+RDEPEND="~sys-devel/base-gcc-${PV} ${RDEPEND}"
+DEPEND="${RDEPEND}
+ elibc_glibc? ( >=sys-libs/glibc-2.8 )
+ >=${CATEGORY}/binutils-2.18"
+## Should this be moved to base-gcc?
+## I guess the cross-* thing is now utterly broken
+if [[ ${CATEGORY} != cross-* ]] ; then
+ PDEPEND="${PDEPEND} elibc_glibc? ( >=sys-libs/glibc-2.8 )"
+fi
+
+## Check for valid gcc profile.
+src_prepare() {
+ # Since Sabayon's gcc ebuild are split into two parts, we have to
+ # build gcc with a different version of gcc, or terrible breakage
+ # will occur after sys-devel/base-gcc is installed, but the
+ # partner sys-devel/gcc still needs to be built.
+
+ # While it is possible to rebuild Sabayon's split gcc from
+ # the same version, we have to disallow this also since
+ # we have no way of discerning if a configuration change
+ # is significant enough to cause breakage.
+
+ GCC_PROFILE_VER=$(cat ${ROOT}/etc/env.d/gcc/config-$CHOST | awk -F- '{ print $NF }')
+ einfo "Checking for valid gcc profile to build ${P}"
+
+ # Construct the Slot of the gcc version in the active profile.
+ GCC_PROFILE_SLOT_MAJOR=$(echo ${GCC_PROFILE_VER} | awk -F. '{ print $1 }')
+ GCC_PROFILE_SLOT_MINOR=$(echo ${GCC_PROFILE_VER} | awk -F. '{ print $2 }')
+ GCC_PROFILE_SLOT="${GCC_PROFILE_SLOT_MAJOR}.${GCC_PROFILE_SLOT_MINOR}"
+ einfo "Current gcc profile version Slot is: ${GCC_PROFILE_SLOT}"
+ if [[ "${GCC_PROFILE_SLOT}" = "${SLOT}" ]] ; then
+ eerror "Error!"
+ eerror "The active gcc-profile is for sys-devel/gcc slot ${SLOT}."
+ eerror "Sabayon's split sys-devel/gcc package MUST be built"
+ eerror "with another slotted version of sys-devel/gcc active."
+ ebeep 10
+ fi
+
+ if has_version '<sys-libs/glibc-2.12' ; then
+ ewarn "Your host glibc is too old; disabling automatic fortify."
+ ewarn "Please rebuild gcc after upgrading to >=glibc-2.12 #362315"
+ EPATCH_EXCLUDE+=" 10_all_default-fortify-source.patch"
+ fi
+
+ # drop the x32 stuff once 4.7 goes stable
+ if [[ ${CTARGET} != x86_64* ]] || ! has x32 $(get_all_abis TARGET) ; then
+ EPATCH_EXCLUDE+=" 90_all_gcc-4.7-x32.patch"
+ fi
+
+ toolchain_src_prepare
+
+ use vanilla && return 0
+
+ [[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env.patch
+}
+
+## Just install libgcc stuff
+src_install() {
+ toolchain_src_install
+
+ # now drop what's provided by sys-devel/base-gcc-${PV}:${SLOT}
+ base_gcc_libs="libgfortran.so* libgcc_s.so* libobjc.so*
+ libobjc_gc.so* libmudflap.so* libmudflapth.so* libgomp.so* libstdc++.so*
+ libquadmath.so*"
+ base_multilib_gcc_libs="32/libgfortran.so* 32/libobjc.so* 32/libobjc_gc.so*
+ 32/libgcc_s.so* 32/libgomp.so* 32/libmudflap.so*
+ 32/libmudflapth.so* 32/libstdc++.so* 32/libquadmath.so*"
+ for gcc_lib in ${base_gcc_libs}; do
+ # -f is used because the file might not be there
+ rm "${D}"${LIBPATH}/${gcc_lib} -rf || die "cannot execute rm on ${gcc_lib}"
+ debug_dir="${D}"/usr/lib/debug
+ if [ -d "${debug_dir}" ]; then
+ rm "${debug_dir}"${LIBPATH}/${gcc_lib}.debug -rf || die "cannot execute rm on ${gcc_lib}.debug"
+ fi
+ done
+ if use multilib; then
+ for gcc_lib in ${base_multilib_gcc_libs}; do
+ # -f is used because the file might not be there
+ rm "${D}"${LIBPATH}/${gcc_lib} -rf || die "cannot execute rm on ${gcc_lib}"
+ debug_dir="${D}"/usr/lib/debug
+ if [ -d "${debug_dir}" ]; then
+ rm "${debug_dir}"${LIBPATH}/${gcc_lib}.debug -rf || die "cannot execute rm on ${gcc_lib}.debug"
+ fi
+ done
+ fi
+ # then .mo files provided by sys-devel/base-gcc-${PV}:${SLOT}
+ find "${D}"${DATAPATH}/locale -name libstdc++.mo -delete
+ find "${D}"${DATAPATH}/info -name libgomp.info* -delete
+ find "${D}"${DATAPATH}/info -name libquadmath.info* -delete
+
+ # drop stuff from env.d, provided by sys-devel/base-gcc-${PV}:${SLOT}
+ rm "${D}"/etc/env.d -rf
+}
diff --git a/sys-devel/gcc/gcc-4.8.3.ebuild b/sys-devel/gcc/gcc-4.8.3.ebuild
new file mode 100644
index 00000000..912b91f6
--- /dev/null
+++ b/sys-devel/gcc/gcc-4.8.3.ebuild
@@ -0,0 +1,129 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="4"
+
+PATCH_VER="1.1"
+UCLIBC_VER="1.0"
+
+# Hardened gcc 4 stuff
+PIE_VER="0.5.9"
+SPECS_VER="0.2.0"
+SPECS_GCC_VER="4.4.3"
+# arch/libc configurations known to be stable with {PIE,SSP}-by-default
+PIE_GLIBC_STABLE="x86 amd64 ppc ppc64 arm ia64"
+PIE_UCLIBC_STABLE="x86 arm amd64 ppc ppc64"
+SSP_STABLE="amd64 x86 ppc ppc64 arm"
+# uclibc need tls and nptl support for SSP support
+# uclibc need to be >= 0.9.33
+SSP_UCLIBC_STABLE="x86 amd64 ppc ppc64 arm"
+#end Hardened stuff
+
+inherit eutils toolchain
+
+DESCRIPTION="The GNU Compiler Collection"
+
+KEYWORDS="~alpha amd64 arm ~arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
+
+## Make sure we share all the USE flags in sys-devel/base-gcc
+BASE_GCC_USE="fortran gcj mudflap multilib nls nptl openmp altivec
+ bootstrap build doc fixed-point graphite hardened
+ multislot cxx nopie nossp objc objc++ objc-gc test vanilla"
+for base_use in ${BASE_GCC_USE}; do
+ RDEPEND+=" ~sys-devel/base-gcc-${PV}[${base_use}?]"
+done
+IUSE="${BASE_GCC_USE}"
+
+RDEPEND="~sys-devel/base-gcc-${PV} ${RDEPEND}"
+DEPEND="${RDEPEND}
+ elibc_glibc? ( >=sys-libs/glibc-2.8 )
+ >=${CATEGORY}/binutils-2.20"
+## Should this be moved to base-gcc?
+## I guess the cross-* thing is now utterly broken
+if [[ ${CATEGORY} != cross-* ]] ; then
+ PDEPEND="${PDEPEND} elibc_glibc? ( >=sys-libs/glibc-2.8 )"
+fi
+
+## Check for valid gcc profile.
+src_prepare() {
+ # Since Sabayon's gcc ebuild are split into two parts, we have to
+ # build gcc with a different version of gcc, or terrible breakage
+ # will occur after sys-devel/base-gcc is installed, but the
+ # partner sys-devel/gcc still needs to be built.
+
+ # While it is possible to rebuild Sabayon's split gcc from
+ # the same version, we have to disallow this also since
+ # we have no way of discerning if a configuration change
+ # is significant enough to cause breakage.
+
+ GCC_PROFILE_VER=$(cat ${ROOT}/etc/env.d/gcc/config-$CHOST | awk -F- '{ print $NF }')
+ einfo "Checking for valid gcc profile to build ${P}"
+
+ # Construct the Slot of the gcc version in the active profile.
+ GCC_PROFILE_SLOT_MAJOR=$(echo ${GCC_PROFILE_VER} | awk -F. '{ print $1 }')
+ GCC_PROFILE_SLOT_MINOR=$(echo ${GCC_PROFILE_VER} | awk -F. '{ print $2 }')
+ GCC_PROFILE_SLOT="${GCC_PROFILE_SLOT_MAJOR}.${GCC_PROFILE_SLOT_MINOR}"
+ einfo "Current gcc profile version Slot is: ${GCC_PROFILE_SLOT}"
+ if [[ "${GCC_PROFILE_SLOT}" = "${SLOT}" ]] ; then
+ eerror "Error!"
+ eerror "The active gcc-profile is for sys-devel/gcc slot ${SLOT}."
+ eerror "Sabayon's split sys-devel/gcc package MUST be built"
+ eerror "with another slotted version of sys-devel/gcc active."
+ ebeep 10
+ fi
+
+ if has_version '<sys-libs/glibc-2.12' ; then
+ ewarn "Your host glibc is too old; disabling automatic fortify."
+ ewarn "Please rebuild gcc after upgrading to >=glibc-2.12 #362315"
+ EPATCH_EXCLUDE+=" 10_all_default-fortify-source.patch"
+ fi
+
+ toolchain_src_prepare
+
+ use vanilla && return 0
+
+ #Use -r1 for newer piepatchet that use DRIVER_SELF_SPECS for the hardened specs.
+ [[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env-r1.patch
+}
+
+## Just install libgcc stuff
+src_install() {
+ toolchain_src_install
+
+ # now drop what's provided by sys-devel/base-gcc-${PV}:${SLOT}
+ base_gcc_libs="libgfortran.so* libgcc_s.so* libobjc.so*
+ libobjc_gc.so* libmudflap.so* libmudflapth.so* libgomp.so* libstdc++.so* libquadmath.so*
+ crtprec80.o crtbeginP.o crtfastmath.o crtprec32.o crtbeginT.o
+ crtbeginS.o crtbegin.o crtend.o crtendS.o crtprec64.o"
+ base_multilib_gcc_libs="32/libgfortran.so* 32/libobjc.so* 32/libobjc_gc.so*
+ 32/libgcc_s.so* 32/libgomp.so* 32/libmudflap.so*
+ 32/libmudflapth.so* 32/libstdc++.so* 32/libquadmath.so*
+ 32/crtprec80.o 32/crtbeginP.o 32/crtfastmath.o 32/crtprec32.o 32/crtbeginT.o
+ 32/crtbeginS.o 32/crtbegin.o 32/crtend.o 32/crtendS.o 32/crtprec64.o"
+ for gcc_lib in ${base_gcc_libs}; do
+ # -f is used because the file might not be there
+ rm "${D}"${LIBPATH}/${gcc_lib} -rf || die "cannot execute rm on ${gcc_lib}"
+ debug_dir="${D}"/usr/lib/debug
+ if [ -d "${debug_dir}" ]; then
+ rm "${debug_dir}"${LIBPATH}/${gcc_lib}.debug -rf || die "cannot execute rm on ${gcc_lib}.debug"
+ fi
+ done
+ if use multilib; then
+ for gcc_lib in ${base_multilib_gcc_libs}; do
+ # -f is used because the file might not be there
+ rm "${D}"${LIBPATH}/${gcc_lib} -rf || die "cannot execute rm on ${gcc_lib}"
+ debug_dir="${D}"/usr/lib/debug
+ if [ -d "${debug_dir}" ]; then
+ rm "${debug_dir}"${LIBPATH}/${gcc_lib}.debug -rf || die "cannot execute rm on ${gcc_lib}.debug"
+ fi
+ done
+ fi
+ # then .mo files provided by sys-devel/base-gcc-${PV}:${SLOT}
+ find "${D}"${DATAPATH}/locale -name libstdc++.mo -delete
+ find "${D}"${DATAPATH}/info -name libgomp.info* -delete
+ find "${D}"${DATAPATH}/info -name libquadmath.info* -delete
+
+ # drop stuff from env.d, provided by sys-devel/base-gcc-${PV}:${SLOT}
+ rm "${D}"/etc/env.d -rf
+}