aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStuart Shelton <stuart@shelton.me>2017-01-20 15:25:49 +0000
committerStuart Shelton <stuart@shelton.me>2017-01-20 15:25:49 +0000
commitdbc67c747b1f6faa161939e3563cd28731fa0bdf (patch)
tree1847bdc389e72dfc9a8c8c4ca424b8cf0a7056f5 /sys-devel
parentUpdate dev-lang/python-2.7.12 (diff)
downloadsrcshelton-dbc67c747b1f6faa161939e3563cd28731fa0bdf.tar.gz
srcshelton-dbc67c747b1f6faa161939e3563cd28731fa0bdf.tar.bz2
srcshelton-dbc67c747b1f6faa161939e3563cd28731fa0bdf.zip
Update prefix ebuilds with upstream changes
Diffstat (limited to 'sys-devel')
-rw-r--r--sys-devel/gcc/Manifest21
-rw-r--r--sys-devel/gcc/files/4.3.2/gcc-4.3.2-mint3.patch211
-rw-r--r--sys-devel/gcc/files/4.3.3/darwin-libgcc_s-installname.patch18
-rw-r--r--sys-devel/gcc/files/4.4.1/gcc-4.4.1-mint3.patch14
-rw-r--r--sys-devel/gcc/files/4.5.1/aix-force-pthread.patch282
-rw-r--r--sys-devel/gcc/files/4.5.1/ia64-hpux-always-pthread.patch22
-rw-r--r--sys-devel/gcc/files/4.5.2/prefix-search-dirs.patch37
-rw-r--r--sys-devel/gcc/files/4.7.1/solaris-searchpath.patch38
-rw-r--r--sys-devel/gcc/files/4.7.2/mint-unroll.patch13
-rw-r--r--sys-devel/gcc/files/4.7.2/mint1.patch1220
-rw-r--r--sys-devel/gcc/files/4.7.2/mint2.patch44
-rw-r--r--sys-devel/gcc/files/4.7.2/mint3.patch335
-rw-r--r--sys-devel/gcc/files/4.7.2/pr52391.patch110
-rw-r--r--sys-devel/gcc/files/4.7.2/pr52714.patch75
-rw-r--r--sys-devel/gcc/files/4.7.2/pr52773.patch70
-rw-r--r--sys-devel/gcc/files/4.7.2/solaris-x64-tls-gnu-as.patch135
-rw-r--r--sys-devel/gcc/files/gcc-4.7.2-cleanup-empty-eh-o0.patch17
-rw-r--r--sys-devel/gcc/files/gcc-4.7.2-linux-x86-on-amd64.patch34
-rw-r--r--sys-devel/gcc/files/interix-3.5-stdint.h301
-rw-r--r--sys-devel/gcc/files/no-libs-for-startfile.patch15
-rw-r--r--sys-devel/gcc/gcc-4.7.3-r1.ebuild160
21 files changed, 3167 insertions, 5 deletions
diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest
index 64ffa3d5..996a453d 100644
--- a/sys-devel/gcc/Manifest
+++ b/sys-devel/gcc/Manifest
@@ -1,12 +1,31 @@
+AUX 4.3.2/gcc-4.3.2-mint3.patch 7964 SHA256 5842e88a28347dba34a3b0f6d88b4f02d5fbe409fdc1764a1b9a552712233d6d SHA512 a00c4164ab1ebfcf67718cc2dc89130100da3c9e5bf33a7796b5c3e01b2ec5f624816467b19101ab0b62b6ac436b7779e850c509c3479753667a3c60243b2d8a WHIRLPOOL 11406465a1f9273ddf0395cdcb6ace809c5da0953816ea15d79e480f0da2f8369d50f648aa41f6f759e1ca312131462efac8b382475313c5cded7b400d281bc0
+AUX 4.3.3/darwin-libgcc_s-installname.patch 639 SHA256 6bc88bb2919ab20bb880084ace639d02a8dfd77325c5f78a683aa17ba438d054 SHA512 8798a11b80ad51944ec09c7ca15df54d46428003688094eb6b554ac6a42c664008a0454c6e48edb409d4d2a15a8024ff784f2970b0982d762b79f612be564231 WHIRLPOOL bc73997ca1aa1b37c399f2eac7c3db0c789b31c7710a117dc9bab32373cb6021b906b40e938fc5d9e4d311223527a87cadfd144e63282f99fd3ffa8e8fe32ccb
+AUX 4.4.1/gcc-4.4.1-mint3.patch 457 SHA256 fd976eeb63c16886c2bb080a63ca9ad6637f28f9de52853f9c17f4e9d728564c SHA512 99168c966933ebe477f7162862de46503c4e33ebd4d0338d18b8383bf257768341573e3c29f747d4710cfc8e5672e50f7273cd1ee033d5e73c085072f3d9cf0f WHIRLPOOL aac2788203c784d8d8010732f62f241e9891468ea1147bd740d23a5f3e1a0d037322246334c31e3ec2308d26dd286552bb6fd10e2c048fc0e6e3c0056619dbad
+AUX 4.5.1/aix-force-pthread.patch 10775 SHA256 6cd3337bed445691e415a4e720950ce0f4286c15731c024d1186bf750afa2929 SHA512 a9879514dc079d18ffb2a330d060f162fc982fc5ec05266f07327eae746405f33676ea50fab72eb93edaaa79b96055e34c0f7148d8803cc79e7ea56a9ab88c6b WHIRLPOOL b6bda5c87de6cdfee057765212af0f8029fa783e45ee7249a0c94b81894316be1f4852ded474fc79c1f3f8b1ce127bea0ac6d533dc3ca300693b59a9823da8a9
+AUX 4.5.1/ia64-hpux-always-pthread.patch 900 SHA256 f5116383928e93af9b9f3349c568b96b0d3d58b3d4f8d6a4260f49c1bd181e2a SHA512 18cfcad4e409c45a0fb6c5cb36c3f423a33c5810473bdd1dcb4f8ca43dd6d8623ab3ea5a0a52496c043107b4ff49bfe3a35a5a5f948f415fc5a48a6f123c5ea9 WHIRLPOOL 864ca2b578e228335e76c2ca2376d4e8dcc5b275fb5844c261c34f9ecc773e4c65137a1bc16a4464e23e06543b308f5ea154893b623464a00095501558f155df
+AUX 4.5.2/prefix-search-dirs.patch 1393 SHA256 3081b8b6fb6b276886c3422c6ea7e7bce8bfcc8f4dfde4ae871dd43ef5047c10 SHA512 3441307db53360389076ce055057619d57188a3420d58631a3dcfbee080e3a690f025efc6554fb716081f42767b8aef9195d32ab05095d87cc04447ff4935743 WHIRLPOOL 6931499a27ee871fd60030d19ed7780b2372df0c417e47089a4bb2f8f55d21b09bf74da2bcc20e38209bafc2e1baddfe5b6768a0ab346d35e3e8b891e85db26f
+AUX 4.7.1/solaris-searchpath.patch 1232 SHA256 43cdf7f7c8f491d4800fa9b0fb03fcc9f5e5a2d690c23302727f5c8006bac34c SHA512 15967513a71706a27eb8c96bd7f53f347c7e97be834601be494b85aec3ed92d5c48d4611dc6478d3d58a63284c357ee91b4d8c18fe8fbd8727723d3a2960abdd WHIRLPOOL 488e0046afb68534817cc2f89de6ded52875991144e9eb12a02f0e3310e8b644e0be5ff9f501fefee4ce2f43ea135ce195c59711c8664e361b3733a062e69efb
+AUX 4.7.2/mint-unroll.patch 758 SHA256 769b469c9f195c148a4842f9eb8986dd492a7347ccbe84fae8a4592dcd460919 SHA512 d618e97c652d8190cd606906caff3d89887f1fc0ecbb93f4cde4be1be3f9750ebb9b877520ebe037aba2ca2d7d4583ce40c68caeefe0caf06f382e2297e95545 WHIRLPOOL 73ef76545f4d0a6a941c8a26d9ceea9ad43110f4e83800a1fd05d5c521f3c87ae74d189f590d26688b651da7659ee3f2bdc9396b31009f7ce0708905f60ce29e
+AUX 4.7.2/mint1.patch 39020 SHA256 fba6572120fa88b29f2d247dda05040d403fe7a107a2d06d5fc303a0ec14a51b SHA512 84e8d7be6c15796401e94c0eaaad707d93e1a0426312bef23e29a53a817202f4f8642e682713dfe48cf06b27373a747f2d5f3f116ba4cf5fa53594b0e961ff21 WHIRLPOOL e173c6dd00729dfb5f13a90614eb0af994078c7b81a766b9cdb3b5c187232f95ecc32bdbee97556f21a2c58cb0ddea0ae5bf2443977e06c75854ac1c8ef02a57
+AUX 4.7.2/mint2.patch 1441 SHA256 88d05e20e1fc5c639f57ea8232b3cbd76bde6402242d0b776a869c6abd6f623b SHA512 fcfcf7b1e5925fc55760264830227c686760b41778c31e1629b59a27a0a4983b2d11913de1c998896cb36fb57273262620576eaa653b34cb17ce9c3597b0ca95 WHIRLPOOL 83d8a879dc1d15c6df31b59c351aff581c95f88fff2fc490faf6cda350f82068dac3a4eac854c38d724a2a26fc5b8343d74ab813abcf28de7ffa3b536a90fe5d
+AUX 4.7.2/mint3.patch 10279 SHA256 3cd4d01278a4485d5c6385b4fbf3a9593b1d1a3897a33c88a279ddc36a0b3ece SHA512 b22c6d0a2cbadf067b482bb4d568a9ae2bce04f7ac18ea57e35b061ce8f537544f89aea8e8a9a0342161f9a750c2ced34a6e164705bd0a63431ac6b14bd637d1 WHIRLPOOL 7ea7feceeb2e59c032e7194a56195f5942163f1e989eb86dbcd93ffa76ede86d726995ab44bc75274cc7641f7a078ed9cc0978a7c87b44b59cff2b4ba1a79be5
+AUX 4.7.2/pr52391.patch 3159 SHA256 5644b4b189ef652147c2ba3826c0a092ae812e20be2b8a82e003556514008b85 SHA512 a81ee46dc7934f8f059abf2450379b4595b41aa701ad959b52f8701a03f029c53129d54594db5ec79438b7f9bc5ef344752ee3379a4642fe3aeaadb84ade3f34 WHIRLPOOL bb61ed82556dc7395815c67d5e0cbcdfa618d04e6e0ceff0acb0bc9140801ae92039b38e31324365df8ddd006174f6d8db74de361ae0066722b0b194791b8d1b
+AUX 4.7.2/pr52714.patch 2582 SHA256 60f413a73c15b15d10e58bc30de44697ce905a88b38230b859298520b981bb6e SHA512 4b8d7cdbd82948614cf0842daf5eb033c789465cdc8303e6fad2a3b582aa0f50bdd6e9d88924f0ca42d8df92203ffb78c094a9f5a6ca669985cb0f103c9e7728 WHIRLPOOL 87ccb6af003b4a652ed81a27cefc2930f2a1ae98c2c6ffcdb817100cc6e178ef63ff6644cc08c61faed9c9d800bb9f3ecb0ab48ad5064234a44cf3124ad4c8d0
+AUX 4.7.2/pr52773.patch 2336 SHA256 e1d2c12f8d677ad1fcf4187c3a06d719ab80a5ca957d58e89b6924ab06b2fa62 SHA512 041468a56a795b77bbc3b899602e970af83d47e1d26622e6ded3fa3903954df3f305c8c9b09e01712846cd16663ba2692a820c5df54f42d809bdfb7ca282f8f3 WHIRLPOOL ce54cc01bdccbbab606395d88b67def976abad52b5aca95d0bad47126345f95a45ae600c57d2296eeb3e0b4ab67137bf2d75ef91a093073d511c5410c9d5a018
+AUX 4.7.2/solaris-x64-tls-gnu-as.patch 3276 SHA256 600edcc2c86a84d68b1de47c55c20c90dad9d9798a0a92f6755bd88f68b8c0a8 SHA512 0bdc8c674b1585fe4759c0d6fcbd2f036427d5edc06b5b50efae2c8844eba01ec80ce12a3fcedff39783556d2cf71d2a29223a84ac60ebe933653a7d7ef10aa8 WHIRLPOOL 1e1b28ca8503155e9f1a9cf25df5072793d9c19e61bf3418238713343cb14bca80e98092c225ee98f2c719391f9c23e0ac318de0a92484301b6d4617a46c94ab
AUX awk/fixlafiles.awk 7743 SHA256 2e5d2aeae8543fc58cab3c333411719cd2ab01bd297238a782f3a3d63687791d SHA512 a1cde452929d099df04c7327a8bd4783b894d95218578b5167f09c6920c2184bcf072b7d6828627ed9c17b8dbdd47f952742f39ec2c881cf5545040589afabea WHIRLPOOL 55607f7cbf6eaad94fe78632802f9fc6009b6d6c6c306682e137e9894d93c65975f71740de31e2d5d17fd2fd45353fbad1363e07dba5a821d2f8d04753fd35e6
AUX awk/fixlafiles.awk-no_gcc_la 8523 SHA256 43862e09d117a0cbbbf61ce0ca56fc05b30daeca03efae704b36e879be40e4ad SHA512 7fab69d3610d37177df5fbb6d42fd0b1f702116f7a164778398a28d7ae2a9de9b44ee298cf8ce867e03f136254d750b8b1de7582e1fbc4b39e6733ca205bff8f WHIRLPOOL 065c7dc75b4600025c4e898e74f3bdcc042fdfbebed71abe2df787a972d917fa1016cac6fc1a143746b302c7683e4e65cde86fc5d2a44458296a987c693a6923
AUX c89 412 SHA256 29ad5dd697135c2892067e780447894dc1cd071708157e46d21773ab99c5022c SHA512 71d33a147339d8d70a62aa22a95d3e70e445d8435d6ac05893f7da19ae851b89bea851f6ce213fbd22470f13572ae13b83cf02f0621333f07d7b0c68a79b7924 WHIRLPOOL d9707a2be8da7a709b54fcb1154cfa05e479f8c3bdd6173822ee1f1bc265b2a0d04741c0685bfb0db68e1e4297fb032d2f8ff94da88014575d947054474d8295
AUX c99 446 SHA256 057b348cf5be9b4fb9db99a4549f6433c89d21e5f91dc5e46b0b4dc6b70432f5 SHA512 bf3b0eb1125d5e89b433954fcbf805cd86dec5a6eeb23df685ebf3ff83a610573f2ffcec65d893244c845936a73918387cba026710c65c854b2c94a78b007989 WHIRLPOOL b888038b96615c7a0363555b407a3de2c1f17e34428fa16dfbf56fcf68875d6bcdecbc61b545d7f71842ff1909a3ffeff17165fa7f56b48f95adae22f5f8bff1
AUX fix_libtool_files.sh 1571 SHA256 e97ac9fdfe6dd964406b83ec7a514cfa41725982a9b684d03d846ef2aa1f3148 SHA512 e0542b5dca5b45075eeafc93f13d4aafb960602ddd34c36829863ef8d5c3cd5612e85cbe2a0c4d0992032ae6e2d13df4215ef56acf3074ceffa04746125c7e26 WHIRLPOOL 5f6fdd762e49db2c9cd9435e2d9ec9980d828867cf7f9c96f6fcd25804c4ec22db3969d1da3e1b878f24975d482566c0de341b62e008c5497383e3c5cf7898d8
+AUX gcc-4.7.2-cleanup-empty-eh-o0.patch 527 SHA256 1f51b21e09219a1c4d5244d093f3b51d117394e2c715452a3c5a23f801bf88bc SHA512 f651a36a12600c47506f6c3b234f289535620087522632759d4cb3522bab36b23d6b59a27b53c5a497177d972f077c108546df508f8a6b5af4212bb1ec3f0640 WHIRLPOOL 00fe7cdb1aa55d52761d318282ec55291ecc3693b56b1b0dd3a6b9a8761457273b58debcb820d0b1b6ed89e6feb13d58eeb7b14d4ff46065563c9dda0c5092dd
+AUX gcc-4.7.2-linux-x86-on-amd64.patch 1581 SHA256 55aa26e469787f14efdb3c5295ef8dc0ab149b91465d3df418c0afa970d268ca SHA512 311e1d2ff7bf3f2b6ead5644e72bb3fea168feae6ffc1fda7b166fe8155455b374fffb912159878a30464c05f88eae1e1225e3c2909eea686c23d020cd85c265 WHIRLPOOL 19ff289ddb066c27a945000c1df0096c8ab4322a61ceee45bd3ea6890c4df4a5fe625bd67773c08f0a9753fb5dcacc397d950f8b8b1779f46e5356605d5ae224
AUX gcc-configure-LANG.patch 2052 SHA256 63de6d2dcfe14f21d147abeb1390405b9220c03f8e968f482d4b4c1cf279c88b SHA512 a694c7ac2f45cc657097ff5b0cf1356ac88a9c06035c9ba15167e9d444844d0d8a478eb1b9b62195dd063774f79697b9148b9cdb6c261640b472c291061b2129 WHIRLPOOL 3cc1ec912fb192ff1058de5b93e49a994ba30d1501a932290dd5b3df1cd783875621cda56edeb41894cd5fa10c04917e693a40a60be8d742ddd7992bf5d8afeb
AUX gcc-configure-texinfo.patch 337 SHA256 74b73a7ecec2d88889876b4db480cd173632f49d5396bb8e5b3c93673f9b5b98 SHA512 a15fba8bf2ff02bdeca54d6f186bfa08c1079c6a8ba0a3beef154483ce5c1b8c497e7ffeec32371968f0037e0ff8384609eb0c367d0155a4e5a7eef8aad084d5 WHIRLPOOL 39d008aad06f7621e4e5db15f5e85a59e583b43f8d247029bd4944466bb60a9795bda157d185c45c329294078e282703a243aad5c468d90c77665dd6336870d4
AUX gcc-spec-env-r1.patch 3148 SHA256 da0a6442eb42bce58cbdc7858b110a2e65fc5bd5b4b780b9b491033de6e302fa SHA512 ecae71577543772cfe1711f1b4a8815c0b5d706ebd01edacd1f07586637d4805e25771f970a6e6d1bb696d4b1b5ef3e0036088a96a9f6beff7ddaee704175d16 WHIRLPOOL 3535605998eabccdee71ba396ed5cefbb8b0a8cb073101f6444c7d01233f3b3904c1b29f4daf0a3417c68de8dbd62a0b7dc367cacfcbfa0c4ee1b69b7df8c6fb
AUX gcc-spec-env.patch 1544 SHA256 64b01f29fb853fee5ecda998b66eeaa7ec86ff1fc3b21432bfd69eb543c93e6a SHA512 ce9c1f923e2c6d17347ec2d3d8482351a9644194b2753627389294d43bb4f11b9c2ef41eda1b46ad83d09901a0bedebd5b6b8a57a198646030ab61e8d2d8cb48 WHIRLPOOL b88c9c18e20868b3ff535c3390408ebe8f1304bcec6e70b6472781f684671265860dff4335f2301d3b4d3b73395283b29673f0f5da62414e1094cfcb8130e8d8
+AUX interix-3.5-stdint.h 6310 SHA256 8b1cd7e249faee17ca0d9a1ee2fccb004e46046f38279303fa7515b69db76523 SHA512 9ef0fe18eb9e603109808536135b6ef7e350998dc9e4fda77ecea69792c9701117dbcb8b4a85c56fa2b3898e34b41c8865993ccdcfda8a737bb34f98e7f9270f WHIRLPOOL 11b439c0085ce2e10b7ab75fbb92ea411b5148a3e24697a347c54ce39853cb4a3e8753588e0beee537511860c25412f4c54d3f79c81dff50b24ebc5977899149
+AUX no-libs-for-startfile.patch 460 SHA256 b7f722ae86f0ffb45bd0d9c6db1e65e8a52c85d1bc3c203aad26efa4db74fa90 SHA512 8875e8833d733c7f0db9ff2bd97954a92041890efb592e0b03ed13bb35a16bc2e85fe685a00becde9ac402c40b76aba194f6b21a4869f488202ebba85da37acb WHIRLPOOL 457c7d0d81894721fdf6df5f899b57858511d7e5994bf2c0b1ba8dba82ded41a73c17c581b98c3eec7eb88fafe4c1951897dd7074897f40b19f6d1b1e9e56ef7
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.7.3-patches-1.5.tar.bz2 44129 SHA256 945ae10e22326ecf77ebfc145da06c6502aa0487c89695198cf5cefaef9065f0 SHA512 3ddbd15faab4f25d7ccc15d1d5c276cb5fbbac9472e5b967261d518c6d94a37c41d16c4ee720d836a2874b0a1a6a92e9e19a8ea4ecf738e1061a4e6fb6457284 WHIRLPOOL 8e6bc88b03aaf08ec4c70127a4464e595651e77f4671ae68bc494bad88587596ff26d2d7a8c6eccfd1d911a688c7ffdd3fea6c8a0ed7a04d655c351d213710ee
@@ -37,7 +56,7 @@ DIST gcc-5.3.0-patches-1.1.tar.bz2 29696 SHA256 979f188196325a635fc84e6a11678859
DIST gcc-5.3.0-piepatches-v0.6.5.tar.bz2 14552 SHA256 01bb0408eee2b97c4605b10b4d0b2b8fd3b1eccbaf9733c7274e281182f4e975 SHA512 9e924665d1dd24081b2f06618c26a5969069d30ec7626ba96166f299e4738918a6df99dc74c8b36cad17b62b778c350b42cf0ec0ad3897cb25c20938846f225c WHIRLPOOL a9464f4b386219f54ad12add39e7467d793fc75777245a4577f50b2bc6e19e6ede5be7849cdf50c11514175782658f7b3917f3fb86ce9beb07694069a6679404
DIST gcc-5.3.0-uclibc-patches-1.0.tar.bz2 2534 SHA256 4b03623b614b42308420e3036886ab58cf29fe52a238e67013fa82c568f22c82 SHA512 243d063a42ebef0428c43434d5ba3623ee66b1678746ab4c2efd129004614efecb8fe145bf4dc54d6daef03dfd656deb874b0b49213ec1e13490128d91714de2 WHIRLPOOL ba6db27fc0e19b120761b411da33d1925527a3a79cc686300d581ee3de8bbad788fe722c6c3c6b512a96e755c407e220bf509a1ca4f0ca02f1cc5485990bf249
DIST gcc-5.3.0.tar.bz2 95441837 SHA256 b84f5592e9218b73dbae612b5253035a7b34a9a1f7688d2e1bfaaf7267d5c4db SHA512 d619847383405fd389f5a2d7225f97fedb01f81478dbb8339047ccba7561a5c20045ab500a8744bffd19ea51892ce09fc37f862f2cfcb42de0f0f8cd8f8da37a WHIRLPOOL 63c10c65dcd9eaca7a426113fb593744829b00093eb57eb02603fb5387a81af20f3576c4d61d32c351e46cc79db20b445a5630e54e328c9771c92cff980661f5
-EBUILD gcc-4.7.3-r1.ebuild 2709 SHA256 d9d00b3eb583a498ee3dc79c8619629757f1c509ddf56d2dc716bf7e299f0792 SHA512 9b711443a9942f884167710764a54a032ed37fe819eaafc41fd7c6d0aa846a601bad9cbbfde87fd80acbef55bd3783edd862b0bdfb56d66d7e2def32194968ea WHIRLPOOL 5c857cf34150757da515c9cbee71f1abc110ffcbfaa5f3a3eb47bfb20a5bbca9e6bdd110d2cdc02927f4bdf693666f457044a418e99e079e44dd329dacb12fe0
+EBUILD gcc-4.7.3-r1.ebuild 8725 SHA256 3f21d48bef2cb55f9bab6b1939f38a9f3a5782687d2d8e1940900799770eae9e SHA512 53a99844154fa6d67d8df0b3132ce4431b300b0e254eb3967af4eb86223e8abbbb399ab5b74c15b4395ff68c0f9a0d43f4cea75a2579798dd13c669e2fe9052f WHIRLPOOL a6bd8cb14bf630f42876a3a4db868727590008e5095ec42f78fa5c22abc738c48850a63e9f90bd52457d4a2f574d53ace59b964604b5286029fabdc51c2278ec
EBUILD gcc-4.8.3.ebuild 2576 SHA256 ca04a0d0a3bac67d676342350102d003ddf2f6bc0295213f4b367db9de7820d9 SHA512 5e0aedb94e73238da14b37102c0ac7958e3143ff45ea43d5ec203a2e43b302c427dc7197208286f8d9c2c12d121fa76d93781bd80ed404d33d8112ea5ced1325 WHIRLPOOL f0fc0fdd066fe052ab443e639d97e6e2f6673f8657924048a4293b20953bdcfe71352b8cfafa304c5a0ca4f679f570c54c9a5404f6ddedc5229993177e408271
EBUILD gcc-4.8.4.ebuild 2575 SHA256 e933e93f421f304eb30037fbf632492b5305ea67ce1309f89f3d2186ec1b0b0f SHA512 413b16e9e4a8a62113c6cf3fe69c21da1058a59735bdc35486260cacf58ec460c2386edbc3d09af0702184f3bbf864d92163d0f7a366c42649d1c7336300d02b WHIRLPOOL 8b253fe1f71b0318adedd828c3e7ccd63ca2fd525e9eac847b2310146016c7b9bfffc8ab309ffca8226273de0d046299b6329153c4ace133705d893641b1be9c
EBUILD gcc-4.8.5.ebuild 2575 SHA256 ddaa840b8c95d39ef6ae098399a812df4d3ac8ca241a99b06e742873d27ebb6e SHA512 190896f4d0e5cbdd4da38f4fb92394e80e95b06750fc258ceac59584706f6b89bbfea056c5d0daac319b43f95e0760ff7d781cc292c9ac9c78ba5da057dc01a0 WHIRLPOOL a80a22093bebf87f2b23bb1881f8e0dd4dd7e9f8183690bf70645179b5b3b263ca1985a1197214c72196e843445c149aa8ebfbe039f6e20b4b029328529e3109
diff --git a/sys-devel/gcc/files/4.3.2/gcc-4.3.2-mint3.patch b/sys-devel/gcc/files/4.3.2/gcc-4.3.2-mint3.patch
new file mode 100644
index 00000000..d8bfb2d7
--- /dev/null
+++ b/sys-devel/gcc/files/4.3.2/gcc-4.3.2-mint3.patch
@@ -0,0 +1,211 @@
+Alan Hourihane
+http://bugs.gentoo.org/show_bug.cgi?id=268343
+
+diff -aurN gcc-4.2.3/libtool.m4 gcc-4.2.3.mint/libtool.m4
+--- gcc-4.2.3/libtool.m4 Tue Apr 8 14:25:06 2008
++++ gcc-4.2.3.mint/libtool.m4 Tue Apr 8 14:26:46 2008
+@@ -317,6 +317,12 @@
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
++ mint*)
++ # On MiNT this test can take minutes to run, and I'm not sure it's
++ # healthy for this platform. Let's restrict it to 8192.
++ lt_cv_sys_max_cmd_len=8192;
++ ;;
++
+ netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+diff -ur gcc-4.2.3/boehm-gc/configure gcc-4.2.3.mint/boehm-gc/configure
+--- gcc-4.2.3/boehm-gc/configure 2008-04-16 00:27:25.000000000 +0100
++++ gcc-4.2.3.mint/boehm-gc/configure 2008-04-16 09:33:30.000000000 +0100
+@@ -4415,6 +4415,12 @@
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
++ mint*)
++ # On MiNT this test can take minutes to run, and I'm not sure it's
++ # healthy for this platform. Let's restrict it to 8192.
++ lt_cv_sys_max_cmd_len=8192;
++ ;;
++
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+diff -ur gcc-4.2.3/libffi/configure gcc-4.2.3.mint/libffi/configure
+--- gcc-4.2.3/libffi/configure 2008-04-16 00:27:44.000000000 +0100
++++ gcc-4.2.3.mint/libffi/configure 2008-04-16 09:34:32.000000000 +0100
+@@ -3552,6 +3552,12 @@
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
++ mint*)
++ # On MiNT this test can take minutes to run, and I'm not sure it's
++ # healthy for this platform. Let's restrict it to 8192.
++ lt_cv_sys_max_cmd_len=8192;
++ ;;
++
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+diff -ur gcc-4.2.3/libgfortran/configure gcc-4.2.3.mint/libgfortran/configure
+--- gcc-4.2.3/libgfortran/configure 2008-04-16 00:35:02.000000000 +0100
++++ gcc-4.2.3.mint/libgfortran/configure 2008-04-16 09:35:44.000000000 +0100
+@@ -3813,6 +3813,12 @@
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
++ mint*)
++ # On MiNT this test can take minutes to run, and I'm not sure it's
++ # healthy for this platform. Let's restrict it to 8192.
++ lt_cv_sys_max_cmd_len=8192;
++ ;;
++
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+diff -ur gcc-4.2.3/libgomp/configure gcc-4.2.3.mint/libgomp/configure
+--- gcc-4.2.3/libgomp/configure 2008-04-16 00:27:54.000000000 +0100
++++ gcc-4.2.3.mint/libgomp/configure 2008-04-16 09:35:20.000000000 +0100
+@@ -3985,6 +3985,12 @@
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
++ mint*)
++ # On MiNT this test can take minutes to run, and I'm not sure it's
++ # healthy for this platform. Let's restrict it to 8192.
++ lt_cv_sys_max_cmd_len=8192;
++ ;;
++
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+diff -ur gcc-4.2.3/libjava/classpath/configure gcc-4.2.3.mint/libjava/classpath/configure
+--- gcc-4.2.3/libjava/classpath/configure 2008-04-16 00:25:19.000000000 +0100
++++ gcc-4.2.3.mint/libjava/classpath/configure 2008-04-16 09:36:06.000000000 +0100
+@@ -5398,6 +5398,12 @@
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
++ mint*)
++ # On MiNT this test can take minutes to run, and I'm not sure it's
++ # healthy for this platform. Let's restrict it to 8192.
++ lt_cv_sys_max_cmd_len=8192;
++ ;;
++
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+diff -ur gcc-4.2.3/libjava/configure gcc-4.2.3.mint/libjava/configure
+--- gcc-4.2.3/libjava/configure 2008-04-16 00:35:08.000000000 +0100
++++ gcc-4.2.3.mint/libjava/configure 2008-04-16 09:36:32.000000000 +0100
+@@ -5535,6 +5535,12 @@
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
++ mint*)
++ # On MiNT this test can take minutes to run, and I'm not sure it's
++ # healthy for this platform. Let's restrict it to 8192.
++ lt_cv_sys_max_cmd_len=8192;
++ ;;
++
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+diff -ur gcc-4.2.3/libjava/libltdl/configure gcc-4.2.3.mint/libjava/libltdl/configure
+--- gcc-4.2.3/libjava/libltdl/configure 2008-04-16 00:33:55.000000000 +0100
++++ gcc-4.2.3.mint/libjava/libltdl/configure 2008-04-16 09:37:00.000000000 +0100
+@@ -5941,6 +5941,12 @@
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
++ mint*)
++ # On MiNT this test can take minutes to run, and I'm not sure it's
++ # healthy for this platform. Let's restrict it to 8192.
++ lt_cv_sys_max_cmd_len=8192;
++ ;;
++
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+diff -ur gcc-4.2.3/libmudflap/configure gcc-4.2.3.mint/libmudflap/configure
+--- gcc-4.2.3/libmudflap/configure 2008-04-16 00:35:10.000000000 +0100
++++ gcc-4.2.3.mint/libmudflap/configure 2008-04-16 09:34:13.000000000 +0100
+@@ -5484,6 +5484,12 @@
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
++ mint*)
++ # On MiNT this test can take minutes to run, and I'm not sure it's
++ # healthy for this platform. Let's restrict it to 8192.
++ lt_cv_sys_max_cmd_len=8192;
++ ;;
++
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+diff -ur gcc-4.2.3/libobjc/configure gcc-4.2.3.mint/libobjc/configure
+--- gcc-4.2.3/libobjc/configure 2008-04-16 00:28:07.000000000 +0100
++++ gcc-4.2.3.mint/libobjc/configure 2008-04-16 09:34:46.000000000 +0100
+@@ -3406,6 +3406,12 @@
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
++ mint*)
++ # On MiNT this test can take minutes to run, and I'm not sure it's
++ # healthy for this platform. Let's restrict it to 8192.
++ lt_cv_sys_max_cmd_len=8192;
++ ;;
++
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+diff -ur gcc-4.2.3/libssp/configure gcc-4.2.3.mint/libssp/configure
+--- gcc-4.2.3/libssp/configure 2008-04-16 00:28:07.000000000 +0100
++++ gcc-4.2.3.mint/libssp/configure 2008-04-16 09:33:49.000000000 +0100
+@@ -4571,6 +4571,12 @@
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
++ mint*)
++ # On MiNT this test can take minutes to run, and I'm not sure it's
++ # healthy for this platform. Let's restrict it to 8192.
++ lt_cv_sys_max_cmd_len=8192;
++ ;;
++
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+diff -ur gcc-4.2.3/libstdc++-v3/configure gcc-4.2.3.mint/libstdc++-v3/configure
+--- gcc-4.2.3/libstdc++-v3/configure 2008-04-16 00:35:28.000000000 +0100
++++ gcc-4.2.3.mint/libstdc++-v3/configure 2008-04-16 09:33:10.000000000 +0100
+@@ -4379,6 +4379,12 @@
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
++ mint*)
++ # On MiNT this test can take minutes to run, and I'm not sure it's
++ # healthy for this platform. Let's restrict it to 8192.
++ lt_cv_sys_max_cmd_len=8192;
++ ;;
++
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+diff -ur gcc-4.2.3/zlib/configure gcc-4.2.3.mint/zlib/configure
+--- gcc-4.2.3/zlib/configure 2008-04-16 00:28:38.000000000 +0100
++++ gcc-4.2.3.mint/zlib/configure 2008-04-16 09:35:02.000000000 +0100
+@@ -3521,6 +3521,12 @@
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
++ mint*)
++ # On MiNT this test can take minutes to run, and I'm not sure it's
++ # healthy for this platform. Let's restrict it to 8192.
++ lt_cv_sys_max_cmd_len=8192;
++ ;;
++
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
diff --git a/sys-devel/gcc/files/4.3.3/darwin-libgcc_s-installname.patch b/sys-devel/gcc/files/4.3.3/darwin-libgcc_s-installname.patch
new file mode 100644
index 00000000..831be968
--- /dev/null
+++ b/sys-devel/gcc/files/4.3.3/darwin-libgcc_s-installname.patch
@@ -0,0 +1,18 @@
+An intermediate "install" to the build dir is used with slibdir=/
+causing install_names to be recorded for /libgcc_s.1.dylib, which are
+obviously wrong. Avoid this from happening by hard-assigning
+shlib_slibdir with the correct value, such that even though the library
+is installed into the build dir (offsetted at /), it's install_name is
+still set to something which is correct afterwards.
+
+--- gcc-4.3.3/libgcc/Makefile.in
++++ gcc-4.3.3/libgcc/Makefile.in
+@@ -32,7 +32,7 @@
+
+ exec_prefix = @exec_prefix@
+ libdir = @libdir@
+-shlib_slibdir = @slibdir@
++shlib_slibdir = $(libdir)/gcc/$(host_noncanonical)/$(version)
+
+ SHELL = @SHELL@
+
diff --git a/sys-devel/gcc/files/4.4.1/gcc-4.4.1-mint3.patch b/sys-devel/gcc/files/4.4.1/gcc-4.4.1-mint3.patch
new file mode 100644
index 00000000..37e169c8
--- /dev/null
+++ b/sys-devel/gcc/files/4.4.1/gcc-4.4.1-mint3.patch
@@ -0,0 +1,14 @@
+diff -aurN gcc-4.4.1/gcc/configure gcc-4.4.1.mint/gcc/configure
+--- gcc-4.4.1/gcc/configure Tue Apr 8 14:25:06 2008
++++ gcc-4.4.1.mint/gcc/configure Tue Apr 8 14:26:46 2008
+@@ -14578,6 +14578,10 @@
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
++ mint*)
++ lt_cv_sys_max_cmd_len=8192;
++ ;;
++
+ netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
diff --git a/sys-devel/gcc/files/4.5.1/aix-force-pthread.patch b/sys-devel/gcc/files/4.5.1/aix-force-pthread.patch
new file mode 100644
index 00000000..8d19282c
--- /dev/null
+++ b/sys-devel/gcc/files/4.5.1/aix-force-pthread.patch
@@ -0,0 +1,282 @@
+diff -ru gcc/config/rs6000.orig/aix43.h gcc/config/rs6000/aix43.h
+--- gcc/config/rs6000.orig/aix43.h 2009-07-31 14:24:20 +0200
++++ gcc/config/rs6000/aix43.h 2009-07-31 14:25:50 +0200
+@@ -105,7 +105,7 @@
+ %{ansi: -D_ANSI_C_SOURCE}\
+ %{maix64: -D__64BIT__}\
+ %{mpe: -I%R/usr/lpp/ppe.poe/include}\
+- %{pthread: -D_THREAD_SAFE}"
++ %{pthread:} -D_THREAD_SAFE"
+
+ /* The GNU C++ standard library requires that these macros be
+ defined. */
+@@ -114,7 +114,7 @@
+ "-D_ALL_SOURCE \
+ %{maix64: -D__64BIT__} \
+ %{mpe: -I%R/usr/lpp/ppe.poe/include} \
+- %{pthread: -D_THREAD_SAFE}"
++ %{pthread:} -D_THREAD_SAFE"
+
+ #undef TARGET_DEFAULT
+ #define TARGET_DEFAULT MASK_NEW_MNEMONICS
+@@ -145,8 +145,8 @@
+ %{p:-L%R/lib/profiled -L%R/usr/lib/profiled}\
+ %{!maix64:%{!shared:%{g*:-lg}}}\
+ %{mpe:-L%R/usr/lpp/ppe.poe/lib -lmpi -lvtd}\
+- %{pthread:-L%R/usr/lib/threads -lpthreads -lc_r %R/usr/lib/libc.a}\
+- %{!pthread:-lc}"
++ %{pthread:}-L%R/usr/lib/threads -lpthreads -lc_r %R/usr/lib/libc.a\
++ "
+
+ #undef LINK_SPEC
+ #define LINK_SPEC "-bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\
+@@ -158,8 +158,8 @@
+ #define STARTFILE_SPEC "%{!shared:\
+ %{maix64:%{pg:gcrt0_64%O%s}%{!pg:%{p:mcrt0_64%O%s}%{!p:crt0_64%O%s}}}\
+ %{!maix64:\
+- %{pthread:%{pg:gcrt0_r%O%s}%{!pg:%{p:mcrt0_r%O%s}%{!p:crt0_r%O%s}}}\
+- %{!pthread:%{pg:gcrt0%O%s}%{!pg:%{p:mcrt0%O%s}%{!p:crt0%O%s}}}}}"
++ %{pthread:}%{pg:gcrt0_r%O%s}%{!pg:%{p:mcrt0_r%O%s}%{!p:crt0_r%O%s}}\
++ }}"
+
+ /* AIX 4.3 typedefs ptrdiff_t as "long" while earlier releases used "int". */
+
+diff -ru gcc/config/rs6000.orig/aix51.h gcc/config/rs6000/aix51.h
+--- gcc/config/rs6000.orig/aix51.h 2009-07-31 14:24:20 +0200
++++ gcc/config/rs6000/aix51.h 2009-07-31 14:26:13 +0200
+@@ -101,7 +101,7 @@
+ %{ansi: -D_ANSI_C_SOURCE} \
+ %{maix64: -D__64BIT__} \
+ %{mpe: -I%R/usr/lpp/ppe.poe/include} \
+- %{pthread: -D_THREAD_SAFE}"
++ %{pthread:} -D_THREAD_SAFE"
+
+ /* The GNU C++ standard library requires that these macros be
+ defined. */
+@@ -110,7 +110,7 @@
+ "-D_ALL_SOURCE \
+ %{maix64: -D__64BIT__} \
+ %{mpe: -I%R/usr/lpp/ppe.poe/include} \
+- %{pthread: -D_THREAD_SAFE}"
++ %{pthread:} -D_THREAD_SAFE"
+
+ #undef TARGET_DEFAULT
+ #define TARGET_DEFAULT MASK_NEW_MNEMONICS
+@@ -141,7 +141,7 @@
+ %{p:-L%R/lib/profiled -L%R/usr/lib/profiled}\
+ %{!maix64:%{!shared:%{g*:-lg}}}\
+ %{mpe:-L%R/usr/lpp/ppe.poe/lib -lmpi -lvtd}\
+- %{pthread:-lpthreads} -lc"
++ %{pthread:}-lpthreads -lc"
+
+ #undef LINK_SPEC
+ #define LINK_SPEC "-bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\
+@@ -153,8 +153,8 @@
+ #define STARTFILE_SPEC "%{!shared:\
+ %{maix64:%{pg:gcrt0_64%O%s}%{!pg:%{p:mcrt0_64%O%s}%{!p:crt0_64%O%s}}}\
+ %{!maix64:\
+- %{pthread:%{pg:gcrt0_r%O%s}%{!pg:%{p:mcrt0_r%O%s}%{!p:crt0_r%O%s}}}\
+- %{!pthread:%{pg:gcrt0%O%s}%{!pg:%{p:mcrt0%O%s}%{!p:crt0%O%s}}}}}"
++ %{pthread:}%{pg:gcrt0_r%O%s}%{!pg:%{p:mcrt0_r%O%s}%{!p:crt0_r%O%s}}\
++ }}"
+
+ /* AIX V5 typedefs ptrdiff_t as "long" while earlier releases used "int". */
+
+diff -ru gcc/config/rs6000.orig/aix52.h gcc/config/rs6000/aix52.h
+--- gcc/config/rs6000.orig/aix52.h 2009-07-31 14:24:20 +0200
++++ gcc/config/rs6000/aix52.h 2009-07-31 14:26:31 +0200
+@@ -100,7 +100,7 @@
+ %{ansi: -D_ANSI_C_SOURCE} \
+ %{maix64: -D__64BIT__} \
+ %{mpe: -I%R/usr/lpp/ppe.poe/include} \
+- %{pthread: -D_THREAD_SAFE}"
++ %{pthread:} -D_THREAD_SAFE"
+
+ /* The GNU C++ standard library requires that these macros be
+ defined. Synchronize with libstdc++ os_defines.h. */
+@@ -109,7 +109,7 @@
+ "-D_ALL_SOURCE \
+ %{maix64: -D__64BIT__} \
+ %{mpe: -I%R/usr/lpp/ppe.poe/include} \
+- %{pthread: -D_THREAD_SAFE}"
++ %{pthread:} -D_THREAD_SAFE"
+
+ #undef TARGET_DEFAULT
+ #define TARGET_DEFAULT (MASK_POWERPC | MASK_NEW_MNEMONICS)
+@@ -144,7 +144,7 @@
+ %{p:-L%R/lib/profiled -L%R/usr/lib/profiled}\
+ %{!maix64:%{!shared:%{g*:-lg}}}\
+ %{mpe:-L%R/usr/lpp/ppe.poe/lib -lmpi -lvtd}\
+- %{pthread:-lpthreads} -lc"
++ %{pthread:}-lpthreads -lc"
+
+ #undef LINK_SPEC
+ #define LINK_SPEC "-bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\
+@@ -156,8 +156,8 @@
+ #define STARTFILE_SPEC "%{!shared:\
+ %{maix64:%{pg:gcrt0_64%O%s}%{!pg:%{p:mcrt0_64%O%s}%{!p:crt0_64%O%s}}}\
+ %{!maix64:\
+- %{pthread:%{pg:gcrt0_r%O%s}%{!pg:%{p:mcrt0_r%O%s}%{!p:crt0_r%O%s}}}\
+- %{!pthread:%{pg:gcrt0%O%s}%{!pg:%{p:mcrt0%O%s}%{!p:crt0%O%s}}}}}"
++ %{pthread:}%{pg:gcrt0_r%O%s}%{!pg:%{p:mcrt0_r%O%s}%{!p:crt0_r%O%s}}\
++ }}"
+
+ /* AIX V5 typedefs ptrdiff_t as "long" while earlier releases used "int". */
+
+diff -ru gcc/config/rs6000.orig/aix53.h gcc/config/rs6000/aix53.h
+--- gcc/config/rs6000.orig/aix53.h 2009-07-31 14:24:20 +0200
++++ gcc/config/rs6000/aix53.h 2009-07-31 14:26:47 +0200
+@@ -102,7 +102,7 @@
+ %{ansi: -D_ANSI_C_SOURCE} \
+ %{maix64: -D__64BIT__} \
+ %{mpe: -I%R/usr/lpp/ppe.poe/include} \
+- %{pthread: -D_THREAD_SAFE}"
++ %{pthread:} -D_THREAD_SAFE"
+
+ /* The GNU C++ standard library requires that these macros be
+ defined. Synchronize with libstdc++ os_defines.h. */
+@@ -111,7 +111,7 @@
+ "-D_ALL_SOURCE \
+ %{maix64: -D__64BIT__} \
+ %{mpe: -I%R/usr/lpp/ppe.poe/include} \
+- %{pthread: -D_THREAD_SAFE}"
++ %{pthread:} -D_THREAD_SAFE"
+
+ #undef TARGET_DEFAULT
+ #define TARGET_DEFAULT (MASK_POWERPC | MASK_NEW_MNEMONICS)
+@@ -140,7 +140,7 @@
+ %{p:-L%R/lib/profiled -L%R/usr/lib/profiled}\
+ %{!maix64:%{!shared:%{g*:-lg}}}\
+ %{mpe:-L%R/usr/lpp/ppe.poe/lib -lmpi -lvtd}\
+- %{pthread:-lpthreads} -lc"
++ %{pthread:}-lpthreads -lc"
+
+ #undef LINK_SPEC
+ #define LINK_SPEC "-bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\
+@@ -152,8 +152,8 @@
+ #define STARTFILE_SPEC "%{!shared:\
+ %{maix64:%{pg:gcrt0_64%O%s}%{!pg:%{p:mcrt0_64%O%s}%{!p:crt0_64%O%s}}}\
+ %{!maix64:\
+- %{pthread:%{pg:gcrt0_r%O%s}%{!pg:%{p:mcrt0_r%O%s}%{!p:crt0_r%O%s}}}\
+- %{!pthread:%{pg:gcrt0%O%s}%{!pg:%{p:mcrt0%O%s}%{!p:crt0%O%s}}}}}"
++ %{pthread:}%{pg:gcrt0_r%O%s}%{!pg:%{p:mcrt0_r%O%s}%{!p:crt0_r%O%s}}\
++ }}"
+
+ /* AIX V5 typedefs ptrdiff_t as "long" while earlier releases used "int". */
+
+diff -ru gcc/config/rs6000.orig/aix61.h gcc/config/rs6000/aix61.h
+--- gcc/config/rs6000.orig/aix61.h 2009-07-31 14:24:20 +0200
++++ gcc/config/rs6000/aix61.h 2009-07-31 14:27:02 +0200
+@@ -103,7 +103,7 @@
+ %{ansi: -D_ANSI_C_SOURCE} \
+ %{maix64: -D__64BIT__} \
+ %{mpe: -I%R/usr/lpp/ppe.poe/include} \
+- %{pthread: -D_THREAD_SAFE}"
++ %{pthread:} -D_THREAD_SAFE"
+
+ /* The GNU C++ standard library requires that these macros be
+ defined. Synchronize with libstdc++ os_defines.h. */
+@@ -112,7 +112,7 @@
+ "-D_ALL_SOURCE -D__COMPATMATH__ \
+ %{maix64: -D__64BIT__} \
+ %{mpe: -I%R/usr/lpp/ppe.poe/include} \
+- %{pthread: -D_THREAD_SAFE}"
++ %{pthread:} -D_THREAD_SAFE"
+
+ #undef TARGET_DEFAULT
+ #define TARGET_DEFAULT (MASK_POWERPC | MASK_NEW_MNEMONICS)
+@@ -141,7 +141,7 @@
+ %{p:-L%R/lib/profiled -L%R/usr/lib/profiled}\
+ %{!maix64:%{!shared:%{g*:-lg}}}\
+ %{mpe:-L%R/usr/lpp/ppe.poe/lib -lmpi -lvtd}\
+- %{pthread:-lpthreads} -lc"
++ %{pthread:}-lpthreads -lc"
+
+ #undef LINK_SPEC
+ #define LINK_SPEC "-bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\
+@@ -153,8 +153,8 @@
+ #define STARTFILE_SPEC "%{!shared:\
+ %{maix64:%{pg:gcrt0_64%O%s}%{!pg:%{p:mcrt0_64%O%s}%{!p:crt0_64%O%s}}}\
+ %{!maix64:\
+- %{pthread:%{pg:gcrt0_r%O%s}%{!pg:%{p:mcrt0_r%O%s}%{!p:crt0_r%O%s}}}\
+- %{!pthread:%{pg:gcrt0%O%s}%{!pg:%{p:mcrt0%O%s}%{!p:crt0%O%s}}}}}"
++ %{pthread:}%{pg:gcrt0_r%O%s}%{!pg:%{p:mcrt0_r%O%s}%{!p:crt0_r%O%s}}\
++ }}"
+
+ /* AIX V5 typedefs ptrdiff_t as "long" while earlier releases used "int". */
+
+diff -ru gcc/config/rs6000.orig/t-aix43 gcc/config/rs6000/t-aix43
+--- gcc/config/rs6000.orig/t-aix43 2009-07-31 14:24:20 +0200
++++ gcc/config/rs6000/t-aix43 2009-07-31 14:29:20 +0200
+@@ -10,13 +10,13 @@
+ echo '#define FLOAT' > fp-bit.c
+ cat $(srcdir)/config/fp-bit.c >> fp-bit.c
+
+-# Build the libraries for pthread and all of the
++# Build the libraries for all of the
+ # different processor models
+
+-MULTILIB_OPTIONS = pthread \
++MULTILIB_OPTIONS = \
+ mcpu=common/mcpu=power/mcpu=powerpc/maix64
+
+-MULTILIB_DIRNAMES = pthread \
++MULTILIB_DIRNAMES = \
+ common power powerpc ppc64
+
+ MULTILIB_MATCHES = mcpu?power=mcpu?power \
+@@ -46,7 +46,7 @@
+ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
+ -Wl,-bE:@shlib_map_file@ -o @multilib_dir@/shr.o \
+ @multilib_flags@ @shlib_objs@ -lc \
+- `case @multilib_dir@ in \
++ `case pthread@multilib_dir@ in \
+ *pthread*) echo -L/usr/lib/threads -lpthreads -lc_r /usr/lib/libc.a ;; \
+ *) echo -lc ;; esac` ; \
+ rm -f @multilib_dir@/tmp-@shlib_base_name@.a ; \
+@@ -61,7 +61,7 @@
+ $$(mkinstalldirs) $$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@; \
+ $(INSTALL_DATA) @multilib_dir@/@shlib_base_name@.a \
+ $$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@/
+-SHLIB_LIBS = -lc `case @multilib_dir@ in *pthread*) echo -lpthread ;; esac`
++SHLIB_LIBS = -lc `case pthread@multilib_dir@ in *pthread*) echo -lpthread ;; esac`
+ SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
+ SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/rs6000/libgcc-ppc64.ver
+ SHLIB_NM_FLAGS = -Bpg -X32_64
+diff -ru gcc/config/rs6000.orig/t-aix52 gcc/config/rs6000/t-aix52
+--- gcc/config/rs6000.orig/t-aix52 2009-07-31 14:24:20 +0200
++++ gcc/config/rs6000/t-aix52 2009-07-31 14:29:38 +0200
+@@ -10,12 +10,12 @@
+ echo '#define FLOAT' > fp-bit.c
+ cat $(srcdir)/config/fp-bit.c >> fp-bit.c
+
+-# Build the libraries for pthread and all of the
++# Build the libraries for all of the
+ # different processor models
+
+-MULTILIB_OPTIONS = pthread maix64
++MULTILIB_OPTIONS = maix64
+
+-MULTILIB_DIRNAMES = pthread ppc64
++MULTILIB_DIRNAMES = ppc64
+
+ MULTILIB_MATCHES =
+
+@@ -27,7 +27,7 @@
+ SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
+ -Wl,-bE:@shlib_map_file@ -o @multilib_dir@/shr.o \
+ @multilib_flags@ @shlib_objs@ -lc \
+- `case @multilib_dir@ in \
++ `case pthread@multilib_dir@ in \
+ *pthread*) echo -L$(TARGET_SYSTEM_ROOT)/usr/lib/threads -lpthreads -lc_r $(TARGET_SYSTEM_ROOT)/usr/lib/libc.a ;; \
+ *) echo -lc ;; esac` ; \
+ rm -f @multilib_dir@/tmp-@shlib_base_name@.a ; \
+@@ -42,7 +42,7 @@
+ $$(mkinstalldirs) $$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@; \
+ $(INSTALL_DATA) @multilib_dir@/@shlib_base_name@.a \
+ $$(DESTDIR)$$(slibdir)@shlib_slibdir_qual@/
+-SHLIB_LIBS = -lc `case @multilib_dir@ in *pthread*) echo -lpthread ;; esac`
++SHLIB_LIBS = -lc `case pthread@multilib_dir@ in *pthread*) echo -lpthread ;; esac`
+ SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
+ SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/rs6000/libgcc-ppc64.ver
+ SHLIB_NM_FLAGS = -Bpg -X32_64
diff --git a/sys-devel/gcc/files/4.5.1/ia64-hpux-always-pthread.patch b/sys-devel/gcc/files/4.5.1/ia64-hpux-always-pthread.patch
new file mode 100644
index 00000000..f20123b7
--- /dev/null
+++ b/sys-devel/gcc/files/4.5.1/ia64-hpux-always-pthread.patch
@@ -0,0 +1,22 @@
+http://archives.gentoo.org/gentoo-portage-dev/msg_a98f2d22e6ec550bd55246a95768628d.xml
+
+--- gcc/config/ia64/hpux.h.orig 2009-07-30 16:43:06 +0200
++++ gcc/config/ia64/hpux.h 2009-07-30 16:43:36 +0200
+@@ -60,7 +60,7 @@
+
+ #undef CPP_SPEC
+ #define CPP_SPEC \
+- "%{mt|pthread:-D_REENTRANT -D_THREAD_SAFE -D_POSIX_C_SOURCE=199506L}"
++ "%{mt|pthread:}-D_REENTRANT -D_THREAD_SAFE -D_POSIX_C_SOURCE=199506L"
+ /* aCC defines also -DRWSTD_MULTI_THREAD, -DRW_MULTI_THREAD. These
+ affect only aCC's C++ library (Rogue Wave-derived) which we do not
+ use, and they violate the user's name space. */
+@@ -86,7 +86,7 @@
+ #undef LIB_SPEC
+ #define LIB_SPEC \
+ "%{!shared: \
+- %{mt|pthread:%{fopenmp:-lrt} -lpthread} \
++ %{mt|pthread:}%{fopenmp:-lrt} -lpthread \
+ %{p:%{!mlp64:-L/usr/lib/hpux32/libp} \
+ %{mlp64:-L/usr/lib/hpux64/libp} -lprof} \
+ %{pg:%{!mlp64:-L/usr/lib/hpux32/libp} \
diff --git a/sys-devel/gcc/files/4.5.2/prefix-search-dirs.patch b/sys-devel/gcc/files/4.5.2/prefix-search-dirs.patch
new file mode 100644
index 00000000..88efc287
--- /dev/null
+++ b/sys-devel/gcc/files/4.5.2/prefix-search-dirs.patch
@@ -0,0 +1,37 @@
+--- gcc/gcc.c.orig 2011-03-05 16:27:49.000000000 +0100
++++ gcc/gcc.c 2011-03-05 16:42:54.000000000 +0100
+@@ -2691,6 +2691,34 @@
+ {
+ struct add_to_obstack_info *info = (struct add_to_obstack_info *) data;
+
++#if DISABLE_MULTILIB
++ /*
++ * Fix multilib paths for our prefix, that is alter lib64 and lib32 to lib.
++ * No allocation needed, since the path won't grow but only shrink by two
++ * chars. We should not modify host multilib dirs, otherwise libs might not
++ * be found in /lib64 or /usr/lib64
++ */
++ int elen = strlen(STANDARD_EXEC_PREFIX);
++ if (elen && strncmp(path, STANDARD_EXEC_PREFIX, elen) == 0) {
++ /* multilib dirs are put at the end like ../lib32/ ../lib64/ */
++ static char const *mdirs[] = { "../lib64/", "../lib32/" };
++ int plen = strlen(path);
++ unsigned int idx;
++ int mlen;
++
++ /* For each path replace the multilib dir at the end of the path. */
++ for (idx = 0; idx < (sizeof(mdirs) / sizeof(mdirs[0])); idx++) {
++ mlen = strlen(mdirs[idx]);
++ if (strncmp(path + plen - mlen, mdirs[idx], mlen) == 0) {
++ /* Overwrite the part with null-termination. In prefix the only multilib
++ occurence is the one added by gcc so we can end here. */
++ strcpy(path + plen - mlen, "../lib/");
++ break;
++ }
++ }
++ }
++#endif
++
+ if (info->check_dir && !is_directory (path, false))
+ return NULL;
+
diff --git a/sys-devel/gcc/files/4.7.1/solaris-searchpath.patch b/sys-devel/gcc/files/4.7.1/solaris-searchpath.patch
new file mode 100644
index 00000000..7e4bbd6e
--- /dev/null
+++ b/sys-devel/gcc/files/4.7.1/solaris-searchpath.patch
@@ -0,0 +1,38 @@
+* don't inject /usr/lib{/64,} and /lib{/64,} before any other thing in
+ the call to the linker, that breaks the entire idea of Prefix
+
+--- gcc/config/sol2.h
++++ gcc/config/sol2.h
+@@ -115,10 +115,8 @@
+
+ #ifndef CROSS_DIRECTORY_STRUCTURE
+ #undef MD_EXEC_PREFIX
+-#define MD_EXEC_PREFIX "/usr/ccs/bin/"
+
+ #undef MD_STARTFILE_PREFIX
+-#define MD_STARTFILE_PREFIX "/usr/ccs/lib/"
+ #endif
+
+ #undef STARTFILE_ARCH32_SPEC
+@@ -149,8 +147,7 @@
+ "%{G:-G} \
+ %{YP,*} \
+ %{R*} \
+- %{!YP,*:%{p|pg:-Y P,%R/usr/ccs/lib/libp:%R/usr/lib/libp:%R/usr/ccs/lib:%R/lib:%R/usr/lib} \
+- %{!p:%{!pg:-Y P,%R/usr/ccs/lib:%R/lib:%R/usr/lib}}}"
++ %{!YP,*:%{p|pg:-Y P,%R/usr/lib/libp}}"
+
+ #undef LINK_ARCH32_SPEC
+ #define LINK_ARCH32_SPEC LINK_ARCH32_SPEC_BASE
+--- gcc/config/sol2-bi.h.orig 2012-07-30 18:54:25.888541283 +0200
++++ gcc/config/sol2-bi.h 2012-07-30 18:55:25.186888194 +0200
+@@ -74,8 +74,7 @@
+ "%{G:-G} \
+ %{YP,*} \
+ %{R*} \
+- %{!YP,*:%{p|pg:-Y P,%R/usr/lib/libp/" ARCH64_SUBDIR ":%R/lib/" ARCH64_SUBDIR ":%R/usr/lib/" ARCH64_SUBDIR "} \
+- %{!p:%{!pg:-Y P,%R/lib/" ARCH64_SUBDIR ":%R/usr/lib/" ARCH64_SUBDIR "}}}"
++ %{!YP,*:%{p|pg:-Y P,%R/usr/lib/libp/" ARCH64_SUBDIR "}}"
+
+ #undef LINK_ARCH64_SPEC
+ #ifndef USE_GLD
diff --git a/sys-devel/gcc/files/4.7.2/mint-unroll.patch b/sys-devel/gcc/files/4.7.2/mint-unroll.patch
new file mode 100644
index 00000000..ab220529
--- /dev/null
+++ b/sys-devel/gcc/files/4.7.2/mint-unroll.patch
@@ -0,0 +1,13 @@
+--- libgfortran/Makefile.in.old 2013-04-09 11:07:19.000000000 +0100
++++ libgfortran/Makefile.in 2013-04-09 11:08:10.000000000 +0100
+@@ -5889,9 +5889,7 @@
+ @LIBGFOR_USE_SYMVER_SUN_TRUE@@LIBGFOR_USE_SYMVER_TRUE@ > $@ || (rm -f $@ ; exit 1)
+
+ # Turn on vectorization and loop unrolling for matmul.
+-$(patsubst %.c,%.lo,$(notdir $(i_matmul_c))): AM_CFLAGS += -ftree-vectorize -funroll-loops
+-# Logical matmul doesn't vectorize.
+-$(patsubst %.c,%.lo,$(notdir $(i_matmull_c))): AM_CFLAGS += -funroll-loops
++$(patsubst %.c,%.lo,$(notdir $(i_matmul_c))): AM_CFLAGS += -ftree-vectorize
+
+ # Add the -fallow-leading-underscore option when needed
+ $(patsubst %.F90,%.lo,$(patsubst %.f90,%.lo,$(notdir $(gfor_specific_src)))): AM_FCFLAGS += -fallow-leading-underscore
diff --git a/sys-devel/gcc/files/4.7.2/mint1.patch b/sys-devel/gcc/files/4.7.2/mint1.patch
new file mode 100644
index 00000000..737f9b44
--- /dev/null
+++ b/sys-devel/gcc/files/4.7.2/mint1.patch
@@ -0,0 +1,1220 @@
+diff -aurN gcc-4.6.3/config-ml.in gcc-4.6.3-mint-20120503/config-ml.in
+--- gcc-4.6.3/config-ml.in 2010-11-19 21:25:49.000000000 +0100
++++ gcc-4.6.3-mint-20120503/config-ml.in 2012-05-03 18:23:00.890625000 +0200
+@@ -351,6 +351,23 @@
+ esac
+ done
+ fi
++ case "${host}" in
++ *-*-mint*)
++ case "${srcdir}" in
++ */libgcc ) : ;;
++ *)
++ old_multidirs="${multidirs}"
++ multidirs=""
++ for x in ${old_multidirs}; do
++ case "$x" in
++ *mshort ) : ;;
++ *) multidirs="${multidirs} ${x}" ;;
++ esac
++ done
++ ;;
++ esac
++ ;;
++ esac
+ ;;
+ mips*-*-*)
+ if [ x$enable_single_float = xno ]
+diff -aurN gcc-4.6.3/configure gcc-4.6.3-mint-20120503/configure
+--- gcc-4.6.3/configure 2011-12-18 11:03:44.000000000 +0100
++++ gcc-4.6.3-mint-20120503/configure 2012-05-03 18:23:00.937500000 +0200
+@@ -3077,6 +3077,9 @@
+ *-*-freebsd*)
+ # Enable libmudflap by default in FreeBSD.
+ ;;
++ *-*-mint*)
++ # Enable libmudflap by default in MiNT.
++ ;;
+ *)
+ # Disable it by default everywhere else.
+ noconfigdirs="$noconfigdirs target-libmudflap"
+@@ -3449,6 +3452,9 @@
+ m68k-*-coff*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
++ m68k-*-mint*)
++ noconfigdirs="$noconfigdirs target-libiberty ${libgcj}"
++ ;;
+ m68*-*-* | fido-*-*)
+ libgloss_dir=m68k
+ ;;
+diff -aurN gcc-4.6.3/configure.ac gcc-4.6.3-mint-20120503/configure.ac
+--- gcc-4.6.3/configure.ac 2011-11-18 12:45:44.000000000 +0100
++++ gcc-4.6.3-mint-20120503/configure.ac 2012-05-03 18:23:00.937500000 +0200
+@@ -523,6 +523,9 @@
+ *-*-freebsd*)
+ # Enable libmudflap by default in FreeBSD.
+ ;;
++ *-*-mint*)
++ # Enable libmudflap by default in MiNT.
++ ;;
+ *)
+ # Disable it by default everywhere else.
+ noconfigdirs="$noconfigdirs target-libmudflap"
+@@ -895,6 +898,9 @@
+ m68k-*-coff*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
++ m68k-*-mint*)
++ noconfigdirs="$noconfigdirs target-libiberty ${libgcj}"
++ ;;
+ m68*-*-* | fido-*-*)
+ libgloss_dir=m68k
+ ;;
+diff -aurN gcc-4.6.3/libgcc/config/m68k/lb1sf68.S gcc-4.6.3-mint-20120503/libgcc/config/m68k/lb1sf68.S
+--- gcc-4.6.3/libgcc/config/m68k/lb1sf68.S 2009-10-02 13:20:51.000000000 +0200
++++ gcc-4.6.3-mint-20120503/libgcc/config/m68k/lb1sf68.S 2012-05-03 18:23:00.953125000 +0200
+@@ -666,7 +666,9 @@
+ .globl SYM (__negdf2)
+ .globl SYM (__cmpdf2)
+ .globl SYM (__cmpdf2_internal)
++#ifdef __ELF__
+ .hidden SYM (__cmpdf2_internal)
++#endif
+
+ .text
+ .even
+@@ -2581,7 +2583,9 @@
+ .globl SYM (__negsf2)
+ .globl SYM (__cmpsf2)
+ .globl SYM (__cmpsf2_internal)
++#ifdef __ELF__
+ .hidden SYM (__cmpsf2_internal)
++#endif
+
+ | These are common routines to return and signal exceptions.
+
+diff -aurN gcc-4.6.3/gcc/config/m68k/m68k.h gcc-4.6.3-mint-20120503/gcc/config/m68k/m68k.h
+--- gcc-4.6.3/gcc/config/m68k/m68k.h 2010-11-22 02:57:50.000000000 +0100
++++ gcc-4.6.3-mint-20120503/gcc/config/m68k/m68k.h 2012-05-03 18:23:00.953125000 +0200
+@@ -138,7 +138,10 @@
+ } \
+ \
+ if (TARGET_68881) \
+- builtin_define ("__HAVE_68881__"); \
++ { \
++ builtin_define ("__HAVE_68881__"); \
++ builtin_define ("__M68881__"); /* Non-standard */ \
++ } \
+ \
+ if (TARGET_COLDFIRE) \
+ { \
+diff -aurN gcc-4.6.3/gcc/config/m68k/math-68881.h gcc-4.6.3-mint-20120503/gcc/config/m68k/math-68881.h
+--- gcc-4.6.3/gcc/config/m68k/math-68881.h 2004-02-09 01:48:13.000000000 +0100
++++ gcc-4.6.3-mint-20120503/gcc/config/m68k/math-68881.h 2012-05-03 18:23:00.953125000 +0200
+@@ -44,6 +44,16 @@
+
+ #include <errno.h>
+
++/* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
++ inline semantics, unless -fgnu89-inline is used. */
++#ifdef __cplusplus
++# define __MATH_68881_INLINE inline
++#elif defined __GNUC_STDC_INLINE__
++# define __MATH_68881_INLINE extern __inline __attribute__ ((__gnu_inline__))
++#else
++# define __MATH_68881_INLINE extern __inline
++#endif
++
+ #undef HUGE_VAL
+ #ifdef __sun__
+ /* The Sun assembler fails to handle the hex constant in the usual defn. */
+@@ -64,7 +74,7 @@
+ })
+ #endif
+
+-__inline extern double
++__MATH_68881_INLINE double
+ sin (double x)
+ {
+ double value;
+@@ -75,7 +85,7 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ cos (double x)
+ {
+ double value;
+@@ -86,7 +96,7 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ tan (double x)
+ {
+ double value;
+@@ -97,7 +107,7 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ asin (double x)
+ {
+ double value;
+@@ -108,7 +118,7 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ acos (double x)
+ {
+ double value;
+@@ -119,7 +129,7 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ atan (double x)
+ {
+ double value;
+@@ -130,7 +140,7 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ atan2 (double y, double x)
+ {
+ double pi, pi_over_2;
+@@ -187,7 +197,7 @@
+ }
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ sinh (double x)
+ {
+ double value;
+@@ -198,7 +208,7 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ cosh (double x)
+ {
+ double value;
+@@ -209,7 +219,7 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ tanh (double x)
+ {
+ double value;
+@@ -220,7 +230,7 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ atanh (double x)
+ {
+ double value;
+@@ -231,7 +241,7 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ exp (double x)
+ {
+ double value;
+@@ -242,7 +252,7 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ expm1 (double x)
+ {
+ double value;
+@@ -253,7 +263,7 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ log (double x)
+ {
+ double value;
+@@ -264,7 +274,7 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ log1p (double x)
+ {
+ double value;
+@@ -275,7 +285,7 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ log10 (double x)
+ {
+ double value;
+@@ -286,7 +296,7 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ sqrt (double x)
+ {
+ double value;
+@@ -297,13 +307,13 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ hypot (double x, double y)
+ {
+ return sqrt (x*x + y*y);
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ pow (double x, double y)
+ {
+ if (x > 0)
+@@ -352,7 +362,7 @@
+ }
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ fabs (double x)
+ {
+ double value;
+@@ -363,7 +373,7 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ ceil (double x)
+ {
+ int rounding_mode, round_up;
+@@ -385,7 +395,7 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ floor (double x)
+ {
+ int rounding_mode, round_down;
+@@ -408,7 +418,7 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ rint (double x)
+ {
+ int rounding_mode, round_nearest;
+@@ -430,7 +440,7 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ fmod (double x, double y)
+ {
+ double value;
+@@ -442,7 +452,7 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ drem (double x, double y)
+ {
+ double value;
+@@ -454,7 +464,7 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ scalb (double x, int n)
+ {
+ double value;
+@@ -466,7 +476,7 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ logb (double x)
+ {
+ double exponent;
+@@ -477,7 +487,7 @@
+ return exponent;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ ldexp (double x, int n)
+ {
+ double value;
+@@ -489,7 +499,7 @@
+ return value;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ frexp (double x, int *exp)
+ {
+ double float_exponent;
+@@ -514,7 +524,7 @@
+ return mantissa;
+ }
+
+-__inline extern double
++__MATH_68881_INLINE double
+ modf (double x, double *ip)
+ {
+ double temp;
+diff -aurN gcc-4.6.3/gcc/config/m68k/mint.h gcc-4.6.3-mint-20120503/gcc/config/m68k/mint.h
+--- gcc-4.6.3/gcc/config/m68k/mint.h 1970-01-01 01:00:00.000000000 +0100
++++ gcc-4.6.3-mint-20120503/gcc/config/m68k/mint.h 2012-05-03 18:23:00.968750000 +0200
+@@ -0,0 +1,178 @@
++/* Definitions of target machine for GNU compiler.
++ Atari ST TOS/MiNT.
++ Copyright (C) 1994, 1995, 2007, 2008, 2009, 2010, 2011
++ Free Software Foundation, Inc.
++
++This file is part of GCC.
++
++GCC is free software; you can redistribute it and/or modify
++it under the terms of the GNU General Public License as published by
++the Free Software Foundation; either version 3, or (at your option)
++any later version.
++
++GCC is distributed in the hope that it will be useful,
++but WITHOUT ANY WARRANTY; without even the implied warranty of
++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++GNU General Public License for more details.
++
++You should have received a copy of the GNU General Public License
++along with GCC; see the file COPYING3. If not see
++<http://www.gnu.org/licenses/>. */
++
++/* Here are four prefixes that are used by asm_fprintf to
++ facilitate customization for alternate assembler syntaxes.
++ Machines with no likelihood of an alternate syntax need not
++ define these and need not use asm_fprintf. */
++
++/* The prefix for register names. Note that REGISTER_NAMES
++ is supposed to include this prefix. Also note that this is NOT an
++ fprintf format string, it is a literal string */
++
++#undef REGISTER_PREFIX
++#define REGISTER_PREFIX "%"
++
++/* The prefix for local (compiler generated) labels.
++ These labels will not appear in the symbol table. */
++
++#undef LOCAL_LABEL_PREFIX
++#define LOCAL_LABEL_PREFIX "."
++
++#undef ASM_COMMENT_START
++#define ASM_COMMENT_START "|"
++
++#undef WCHAR_TYPE
++#define WCHAR_TYPE "short unsigned int"
++
++#undef WCHAR_TYPE_SIZE
++#define WCHAR_TYPE_SIZE SHORT_TYPE_SIZE
++
++#undef TARGET_OS_CPP_BUILTINS
++#define TARGET_OS_CPP_BUILTINS() \
++ do \
++ { \
++ builtin_define ("__MINT__"); \
++ builtin_define_std ("atarist"); \
++ builtin_assert ("machine=atari"); \
++ builtin_assert ("system=mint"); \
++ } \
++ while (0)
++
++/* The following defines are nonstandard
++ and are kept only for compatibility
++ with older versions of GCC for MiNT. */
++
++#undef CPP_SPEC
++#define CPP_SPEC \
++ "%{m68000:-D__M68000__} " \
++ "%{mc68020:-D__M68020__} " \
++ "%{m68020:-D__M68020__} " \
++ "%{m68030:-D__M68020__} " \
++ "%{m68040:-D__M68020__} " \
++ "%{m68060:-D__M68020__} " \
++ "%{m68020-40:-D__M68020__} " \
++ "%{m68020-60:-D__M68020__} " \
++ "%{!m680*:%{!mc680*:-D__M68000__}} " \
++ "%{mshort:-D__MSHORT__}"
++
++#define STARTFILE_SPEC "%{pg|p|profile:gcrt0.o%s;:crt0.o%s}"
++#define LIB_SPEC "-lc"
++
++/* Every structure or union's size must be a multiple of 2 bytes. */
++#define STRUCTURE_SIZE_BOUNDARY 16
++
++/* The -g option generates stabs debug information. */
++#define DBX_DEBUGGING_INFO 1
++
++/* This is the assembler directive to equate two values. */
++#undef SET_ASM_OP
++#define SET_ASM_OP "\t.set\t"
++
++/* This is how we tell the assembler that a symbol is weak. */
++#undef ASM_WEAKEN_LABEL
++#define ASM_WEAKEN_LABEL(FILE,NAME) \
++ do { fputs ("\t.weak\t", FILE); assemble_name (FILE, NAME); \
++ fputc ('\n', FILE); } while (0)
++
++/* Don't default to pcc-struct-return, because gcc is the only compiler, and
++ we want to retain compatibility with older gcc versions. */
++#define DEFAULT_PCC_STRUCT_RETURN 0
++
++/* The system headers are C++-aware. */
++#define NO_IMPLICIT_EXTERN_C
++
++/* By default, the vtable entries are void pointers, the so the alignment
++ is the same as pointer alignment. The value of this macro specifies
++ the alignment of the vtable entry in bits. It should be defined only
++ when special alignment is necessary.
++
++ MiNT: The default value of 32 is too much and unsupported by a.out-mintprg.
++*/
++#define TARGET_VTABLE_ENTRY_ALIGN 16
++
++/* If we have a definition of INCOMING_RETURN_ADDR_RTX, assume that
++ the rest of the DWARF 2 frame unwind support is also provided.
++
++ MiNT: DWARF 2 frame unwind is not supported by a.out-mint.
++*/
++#define DWARF2_UNWIND_INFO 0
++
++/* config/m68k.md has an explicit reference to the program counter,
++ prefix this by the register prefix. */
++
++#define ASM_RETURN_CASE_JUMP \
++ do { \
++ if (TARGET_COLDFIRE) \
++ { \
++ if (ADDRESS_REG_P (operands[0])) \
++ return "jmp %%pc@(2,%0:l)"; \
++ else \
++ return "ext%.l %0\n\tjmp %%pc@(2,%0:l)"; \
++ } \
++ else \
++ return "jmp %%pc@(2,%0:w)"; \
++ } while (0)
++
++/* The ADDR_DIFF_VEC must exactly follow the previous instruction. */
++
++#undef ADDR_VEC_ALIGN
++#define ADDR_VEC_ALIGN(ADDR_VEC) 0
++
++/* If defined, a C expression whose value is a string containing the
++ assembler operation to identify the following data as uninitialized global
++ data. */
++
++#define BSS_SECTION_ASM_OP "\t.bss"
++
++/* A C statement (sans semicolon) to output to the stdio stream
++ FILE the assembler definition of uninitialized global DECL named
++ NAME whose size is SIZE bytes and alignment is ALIGN bytes.
++ Try to use asm_output_aligned_bss to implement this macro. */
++
++#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
++ asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
++
++/* Disable -fpic and -fPIC since bsr.l _label@PLTPC
++ is unsupported by the assembler. */
++
++#undef SUBTARGET_OVERRIDE_OPTIONS
++#define SUBTARGET_OVERRIDE_OPTIONS \
++do { \
++ if (flag_pic && !TARGET_PCREL) \
++ error ("-f%s is not supported on this target", \
++ (flag_pic > 1) ? "PIC" : "pic"); \
++} while (0)
++
++
++/* Workaround for GCC bug #35067 about multiple thunks. */
++
++#undef MAKE_DECL_ONE_ONLY
++#define MAKE_DECL_ONE_ONLY(DECL) (DECL_WEAK (DECL) = 1)
++
++/* Avoid requiring -static with -fmudflap like in config/bfin/uclinux.h */
++#define MFWRAP_SPEC " %{fmudflap|fmudflapth: \
++ --wrap=malloc --wrap=free --wrap=calloc --wrap=realloc\
++ --wrap=mmap --wrap=munmap --wrap=alloca\
++ %{fmudflapth: --wrap=pthread_create\
++}} %{fmudflap|fmudflapth: --wrap=main}"
++
++#define TARGET_HAVE_NAMED_SECTIONS false
+diff -aurN gcc-4.6.3/gcc/config/m68k/t-mint gcc-4.6.3-mint-20120503/gcc/config/m68k/t-mint
+--- gcc-4.6.3/gcc/config/m68k/t-mint 1970-01-01 01:00:00.000000000 +0100
++++ gcc-4.6.3-mint-20120503/gcc/config/m68k/t-mint 2012-05-03 18:23:00.968750000 +0200
+@@ -0,0 +1,27 @@
++#
++# Use multiple libraries
++#
++
++MULTILIB_OPTIONS = m68020-60 mshort
++
++MULTILIB_DIRNAMES = m68020-60 mshort
++
++MULTILIB_MATCHES = \
++ m68020-60=m68881 \
++ m68020-60=m68020 \
++ m68020-60=m68020-40 \
++ m68020-60=mc68020 \
++ m68020-60=m68030 \
++ m68020-60=m68040 \
++ m68020-60=m68060 \
++ m68020-60=mcpu?68020 \
++ m68020-60=mcpu?68030 \
++ m68020-60=mcpu?68040 \
++ m68020-60=mcpu?68060 \
++ m68020-60=march?68020 \
++ m68020-60=march?68030 \
++ m68020-60=march?68040 \
++ m68020-60=march?68060
++
++LIBGCC = stmp-multilib
++INSTALL_LIBGCC = install-multilib
+diff -aurN gcc-4.6.3/gcc/config.gcc gcc-4.6.3-mint-20120503/gcc/config.gcc
+--- gcc-4.6.3/gcc/config.gcc 2011-07-22 18:44:50.000000000 +0200
++++ gcc-4.6.3-mint-20120503/gcc/config.gcc 2012-05-03 18:23:00.968750000 +0200
+@@ -1805,6 +1805,15 @@
+ tmake_file="$tmake_file m68k/t-slibgcc-elf-ver"
+ fi
+ ;;
++m68k-*-mint*)
++ default_m68k_cpu=68000
++ default_cf_cpu=5475
++ tm_file="${tm_file} m68k/mint.h"
++ tm_defines="${tm_defines} MOTOROLA=1"
++ tmake_file="m68k/t-floatlib m68k/t-mint"
++ gas=yes
++ gnu_ld=yes
++ ;;
+ m68k-*-rtems*)
+ default_m68k_cpu=68020
+ default_cf_cpu=5206
+diff -aurN gcc-4.6.3/libdecnumber/decNumberLocal.h gcc-4.6.3-mint-20120503/libdecnumber/decNumberLocal.h
+--- gcc-4.6.3/libdecnumber/decNumberLocal.h 2009-04-09 17:00:19.000000000 +0200
++++ gcc-4.6.3-mint-20120503/libdecnumber/decNumberLocal.h 2012-05-03 18:23:00.984375000 +0200
+@@ -188,7 +188,7 @@
+ #if (DECNUMMAXE != DEC_MAX_EMAX)
+ #error Maximum exponent mismatch
+ #endif
+- #if (DECNUMMINE != DEC_MIN_EMIN)
++ #if !(DECNUMMINE == DEC_MIN_EMIN) /* gcc 2.95.3 has bug in '!=' operator for negative constants */
+ #error Minimum exponent mismatch
+ #endif
+
+diff -aurN gcc-4.6.3/libgcc/config.host gcc-4.6.3-mint-20120503/libgcc/config.host
+--- gcc-4.6.3/libgcc/config.host 2011-11-23 23:15:54.000000000 +0100
++++ gcc-4.6.3-mint-20120503/libgcc/config.host 2012-05-03 18:23:00.984375000 +0200
+@@ -387,6 +387,9 @@
+ # with ELF format using glibc 2
+ # aka the GNU/Linux C library 6.
+ ;;
++m68k-*-mint*)
++ tmake_file="$tmake_file m68k/t-floatlib"
++ ;;
+ m68k-*-rtems*)
+ ;;
+ mcore-*-elf)
+diff -aurN gcc-4.6.3/libiberty/hex.c gcc-4.6.3-mint-20120503/libiberty/hex.c
+--- gcc-4.6.3/libiberty/hex.c 2007-01-31 21:05:50.000000000 +0100
++++ gcc-4.6.3-mint-20120503/libiberty/hex.c 2012-05-03 18:23:01.031250000 +0200
+@@ -24,7 +24,7 @@
+ #include "libiberty.h"
+ #include "safe-ctype.h" /* for HOST_CHARSET_ASCII */
+
+-#if EOF != -1
++#if !(EOF == -1) /* gcc 2.95.3 has bug in '!=' operator for negative constants */
+ #error "hex.c requires EOF == -1"
+ #endif
+
+diff -aurN gcc-4.6.3/libiberty/safe-ctype.c gcc-4.6.3-mint-20120503/libiberty/safe-ctype.c
+--- gcc-4.6.3/libiberty/safe-ctype.c 2005-05-10 17:33:18.000000000 +0200
++++ gcc-4.6.3-mint-20120503/libiberty/safe-ctype.c 2012-05-03 18:23:01.031250000 +0200
+@@ -119,7 +119,7 @@
+ #include <safe-ctype.h>
+ #include <stdio.h> /* for EOF */
+
+-#if EOF != -1
++#if !(EOF == -1) /* gcc 2.95.3 has bug in '!=' operator for negative constants */
+ #error "<safe-ctype.h> requires EOF == -1"
+ #endif
+
+diff -aurN gcc-4.6.3/libmudflap/mf-hooks2.c gcc-4.6.3-mint-20120503/libmudflap/mf-hooks2.c
+--- gcc-4.6.3/libmudflap/mf-hooks2.c 2009-04-09 17:00:19.000000000 +0200
++++ gcc-4.6.3-mint-20120503/libmudflap/mf-hooks2.c 2012-05-03 18:23:01.031250000 +0200
+@@ -1668,6 +1668,8 @@
+ }
+
+
++#ifdef HAVE_DLFCN_H
++
+ WRAPPER2(void *, dlopen, const char *path, int flags)
+ {
+ void *p;
+@@ -1735,6 +1737,8 @@
+ return p;
+ }
+
++#endif /* HAVE_DLFCN_H */
++
+
+ #if defined (HAVE_SYS_IPC_H) && defined (HAVE_SYS_SEM_H) && defined (HAVE_SYS_SHM_H)
+
+diff -aurN gcc-4.6.3/libmudflap/mf-runtime.h gcc-4.6.3-mint-20120503/libmudflap/mf-runtime.h
+--- gcc-4.6.3/libmudflap/mf-runtime.h 2009-04-09 17:00:19.000000000 +0200
++++ gcc-4.6.3-mint-20120503/libmudflap/mf-runtime.h 2012-05-03 18:23:01.046875000 +0200
+@@ -97,6 +97,7 @@
+ instrumented modules are meant to be affected. */
+
+ #ifdef _MUDFLAP
++#ifndef __USER_LABEL_PREFIX__
+ #pragma redefine_extname memcpy __mfwrap_memcpy
+ #pragma redefine_extname memmove __mfwrap_memmove
+ #pragma redefine_extname memset __mfwrap_memset
+@@ -230,6 +231,141 @@
+ #pragma redefine_extname getprotoent __mfwrap_getprotoent
+ #pragma redefine_extname getprotobyname __mfwrap_getprotobyname
+ #pragma redefine_extname getprotobynumber __mfwrap_getprotobynumber
++#else
++#pragma redefine_extname memcpy ___mfwrap_memcpy
++#pragma redefine_extname memmove ___mfwrap_memmove
++#pragma redefine_extname memset ___mfwrap_memset
++#pragma redefine_extname memcmp ___mfwrap_memcmp
++#pragma redefine_extname memchr ___mfwrap_memchr
++#pragma redefine_extname memrchr ___mfwrap_memrchr
++#pragma redefine_extname strcpy ___mfwrap_strcpy
++#pragma redefine_extname strncpy ___mfwrap_strncpy
++#pragma redefine_extname strcat ___mfwrap_strcat
++#pragma redefine_extname strncat ___mfwrap_strncat
++#pragma redefine_extname strcmp ___mfwrap_strcmp
++#pragma redefine_extname strcasecmp ___mfwrap_strcasecmp
++#pragma redefine_extname strncmp ___mfwrap_strncmp
++#pragma redefine_extname strncasecmp ___mfwrap_strncasecmp
++#pragma redefine_extname strdup ___mfwrap_strdup
++#pragma redefine_extname strndup ___mfwrap_strndup
++#pragma redefine_extname strchr ___mfwrap_strchr
++#pragma redefine_extname strrchr ___mfwrap_strrchr
++#pragma redefine_extname strstr ___mfwrap_strstr
++#pragma redefine_extname memmem ___mfwrap_memmem
++#pragma redefine_extname strlen ___mfwrap_strlen
++#pragma redefine_extname strnlen ___mfwrap_strnlen
++#pragma redefine_extname bzero ___mfwrap_bzero
++#pragma redefine_extname bcopy ___mfwrap_bcopy
++#pragma redefine_extname bcmp ___mfwrap_bcmp
++#pragma redefine_extname index ___mfwrap_index
++#pragma redefine_extname rindex ___mfwrap_rindex
++#pragma redefine_extname asctime ___mfwrap_asctime
++#pragma redefine_extname ctime ___mfwrap_ctime
++#pragma redefine_extname gmtime ___mfwrap_gmtime
++#pragma redefine_extname localtime ___mfwrap_localtime
++#pragma redefine_extname time ___mfwrap_time
++#pragma redefine_extname strerror ___mfwrap_strerror
++#pragma redefine_extname fopen ___mfwrap_fopen
++#pragma redefine_extname fdopen ___mfwrap_fdopen
++#pragma redefine_extname freopen ___mfwrap_freopen
++#pragma redefine_extname fclose ___mfwrap_fclose
++#pragma redefine_extname fread ___mfwrap_fread
++#pragma redefine_extname fwrite ___mfwrap_fwrite
++#pragma redefine_extname fgetc ___mfwrap_fgetc
++#pragma redefine_extname fgets ___mfwrap_fgets
++#pragma redefine_extname getc ___mfwrap_getc
++#pragma redefine_extname gets ___mfwrap_gets
++#pragma redefine_extname ungetc ___mfwrap_ungetc
++#pragma redefine_extname fputc ___mfwrap_fputc
++#pragma redefine_extname fputs ___mfwrap_fputs
++#pragma redefine_extname putc ___mfwrap_putc
++#pragma redefine_extname puts ___mfwrap_puts
++#pragma redefine_extname clearerr ___mfwrap_clearerr
++#pragma redefine_extname feof ___mfwrap_feof
++#pragma redefine_extname ferror ___mfwrap_ferror
++#pragma redefine_extname fileno ___mfwrap_fileno
++#pragma redefine_extname printf ___mfwrap_printf
++#pragma redefine_extname fprintf ___mfwrap_fprintf
++#pragma redefine_extname sprintf ___mfwrap_sprintf
++#pragma redefine_extname snprintf ___mfwrap_snprintf
++#pragma redefine_extname vprintf ___mfwrap_vprintf
++#pragma redefine_extname vfprintf ___mfwrap_vfprintf
++#pragma redefine_extname vsprintf ___mfwrap_vsprintf
++#pragma redefine_extname vsnprintf ___mfwrap_vsnprintf
++#pragma redefine_extname access ___mfwrap_access
++#pragma redefine_extname remove ___mfwrap_remove
++#pragma redefine_extname fflush ___mfwrap_fflush
++#pragma redefine_extname fseek ___mfwrap_fseek
++#pragma redefine_extname ftell ___mfwrap_ftell
++#pragma redefine_extname rewind ___mfwrap_rewind
++#pragma redefine_extname fgetpos ___mfwrap_fgetpos
++#pragma redefine_extname fsetpos ___mfwrap_fsetpos
++#pragma redefine_extname stat ___mfwrap_stat
++#pragma redefine_extname fstat ___mfwrap_fstat
++#pragma redefine_extname lstat ___mfwrap_lstat
++#pragma redefine_extname mkfifo ___mfwrap_mkfifo
++#pragma redefine_extname setvbuf ___mfwrap_setvbuf
++#pragma redefine_extname setbuf ___mfwrap_setbuf
++#pragma redefine_extname setbuffer ___mfwrap_setbuffer
++#pragma redefine_extname setlinebuf ___mfwrap_setlinebuf
++#pragma redefine_extname opendir ___mfwrap_opendir
++#pragma redefine_extname closedir ___mfwrap_closedir
++#pragma redefine_extname readdir ___mfwrap_readdir
++#pragma redefine_extname recv ___mfwrap_recv
++#pragma redefine_extname recvfrom ___mfwrap_recvfrom
++#pragma redefine_extname recvmsg ___mfwrap_recvmsg
++#pragma redefine_extname send ___mfwrap_send
++#pragma redefine_extname sendto ___mfwrap_sendto
++#pragma redefine_extname sendmsg ___mfwrap_sendmsg
++#pragma redefine_extname setsockopt ___mfwrap_setsockopt
++#pragma redefine_extname getsockopt ___mfwrap_getsockopt
++#pragma redefine_extname accept ___mfwrap_accept
++#pragma redefine_extname bind ___mfwrap_bind
++#pragma redefine_extname connect ___mfwrap_connect
++#pragma redefine_extname gethostname ___mfwrap_gethostname
++#pragma redefine_extname sethostname ___mfwrap_sethostname
++#pragma redefine_extname gethostbyname ___mfwrap_gethostbyname
++#pragma redefine_extname wait ___mfwrap_wait
++#pragma redefine_extname waitpid ___mfwrap_waitpid
++#pragma redefine_extname popen ___mfwrap_popen
++#pragma redefine_extname pclose ___mfwrap_pclose
++#pragma redefine_extname execve ___mfwrap_execve
++#pragma redefine_extname execv ___mfwrap_execv
++#pragma redefine_extname execvp ___mfwrap_execvp
++#pragma redefine_extname system ___mfwrap_system
++#pragma redefine_extname dlopen ___mfwrap_dlopen
++#pragma redefine_extname dlerror ___mfwrap_dlerror
++#pragma redefine_extname dlsym ___mfwrap_dlsym
++#pragma redefine_extname dlclose ___mfwrap_dlclose
++#pragma redefine_extname fopen64 ___mfwrap_fopen64
++#pragma redefine_extname freopen64 ___mfwrap_freopen64
++#pragma redefine_extname stat64 ___mfwrap_stat64
++#pragma redefine_extname fseeko64 ___mfwrap_fseeko64
++#pragma redefine_extname ftello64 ___mfwrap_ftello64
++#pragma redefine_extname semop ___mfwrap_semop
++#pragma redefine_extname semctl ___mfwrap_semctl
++#pragma redefine_extname shmctl ___mfwrap_shmctl
++#pragma redefine_extname shmat ___mfwrap_shmat
++#pragma redefine_extname shmdt ___mfwrap_shmdt
++#pragma redefine_extname __ctype_b_loc ___mfwrap___ctype_b_loc
++#pragma redefine_extname __ctype_toupper_loc ___mfwrap___ctype_toupper_loc
++#pragma redefine_extname __ctype_tolower_loc ___mfwrap___ctype_tolower_loc
++#pragma redefine_extname getlogin ___mfwrap_getlogin
++#pragma redefine_extname cuserid ___mfwrap_cuserid
++#pragma redefine_extname getpwnam ___mfwrap_getpwnam
++#pragma redefine_extname getpwuid ___mfwrap_getpwuid
++#pragma redefine_extname getgrnam ___mfwrap_getgrnam
++#pragma redefine_extname getgrgid ___mfwrap_getgrgid
++#pragma redefine_extname getservent ___mfwrap_getservent
++#pragma redefine_extname getservbyname ___mfwrap_getservbyname
++#pragma redefine_extname getservbyport ___mfwrap_getservbyport
++#pragma redefine_extname gai_strerror ___mfwrap_gai_strerror
++#pragma redefine_extname getmntent ___mfwrap_getmntent
++#pragma redefine_extname inet_ntoa ___mfwrap_inet_ntoa
++#pragma redefine_extname getprotoent ___mfwrap_getprotoent
++#pragma redefine_extname getprotobyname ___mfwrap_getprotobyname
++#pragma redefine_extname getprotobynumber ___mfwrap_getprotobynumber
++#endif
+
+ /* Disable glibc macros. */
+ #define __NO_STRING_INLINES
+diff -aurN gcc-4.6.3/libssp/ssp.c gcc-4.6.3-mint-20120503/libssp/ssp.c
+--- gcc-4.6.3/libssp/ssp.c 2009-04-13 12:37:17.000000000 +0200
++++ gcc-4.6.3-mint-20120503/libssp/ssp.c 2012-05-03 18:23:01.046875000 +0200
+@@ -63,6 +63,9 @@
+ #ifdef HAVE_SYSLOG_H
+ # include <syslog.h>
+ #endif
++#ifdef __MINT__
++#include <mint/osbind.h>
++#endif
+
+ void *__stack_chk_guard = 0;
+
+@@ -98,6 +101,9 @@
+ {
+ #ifdef __GNU_LIBRARY__
+ extern char * __progname;
++#elif defined (__MINT__)
++ extern char * program_invocation_short_name;
++ #define __progname program_invocation_short_name
+ #else
+ static const char __progname[] = "";
+ #endif
+@@ -139,6 +145,9 @@
+ syslog (LOG_CRIT, msg3);
+ #endif /* HAVE_SYSLOG_H */
+
++#ifdef __MINT__
++ Pterm(127);
++#else
+ /* Try very hard to exit. Note that signals may be blocked preventing
+ the first two options from working. The use of volatile is here to
+ prevent optimizers from "knowing" that __builtin_trap is called first,
+@@ -160,6 +169,7 @@
+ break;
+ }
+ }
++#endif
+ }
+
+ void
+diff -aurN gcc-4.6.3/libstdc++-v3/config/os/mint/ctype_base.h gcc-4.6.3-mint-20120503/libstdc++-v3/config/os/mint/ctype_base.h
+--- gcc-4.6.3/libstdc++-v3/config/os/mint/ctype_base.h 1970-01-01 01:00:00.000000000 +0100
++++ gcc-4.6.3-mint-20120503/libstdc++-v3/config/os/mint/ctype_base.h 2012-05-03 18:23:01.046875000 +0200
+@@ -0,0 +1,59 @@
++// Locale support -*- C++ -*-
++
++// Copyright (C) 1997, 1998, 1999, 2003, 2009, 2010
++// Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// <http://www.gnu.org/licenses/>.
++
++//
++// ISO C++ 14882: 22.1 Locales
++//
++
++// Mint C types, taken from mintlib-0.57.3/include/ctype.h
++
++namespace std _GLIBCXX_VISIBILITY(default)
++{
++_GLIBCXX_BEGIN_NAMESPACE_VERSION
++
++ /// @brief Base class for ctype.
++ struct ctype_base
++ {
++ // Non-standard typedefs.
++ typedef const int* __to_type;
++
++ // NB: Offsets into ctype<char>::_M_table force a particular size
++ // on the mask type. Because of this, we don't use an enum.
++ typedef unsigned int mask;
++ static const mask upper = _CTu;
++ static const mask lower = _CTl;
++ static const mask alpha = _CTu | _CTl;
++ static const mask digit = _CTd;
++ static const mask xdigit = _CTx;
++ static const mask space = _CTs;
++ static const mask print = _CTP;
++ static const mask graph = _CTg;
++ static const mask cntrl = _CTc;
++ static const mask punct = _CTp;
++ static const mask alnum = _CTd | _CTu | _CTl ;
++ };
++
++_GLIBCXX_END_NAMESPACE_VERSION
++} // namespace
+diff -aurN gcc-4.6.3/libstdc++-v3/config/os/mint/ctype_inline.h gcc-4.6.3-mint-20120503/libstdc++-v3/config/os/mint/ctype_inline.h
+--- gcc-4.6.3/libstdc++-v3/config/os/mint/ctype_inline.h 1970-01-01 01:00:00.000000000 +0100
++++ gcc-4.6.3-mint-20120503/libstdc++-v3/config/os/mint/ctype_inline.h 2012-05-03 18:23:01.046875000 +0200
+@@ -0,0 +1,76 @@
++// Locale support -*- C++ -*-
++
++// Copyright (C) 2000, 2003, 2009, 2010 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// <http://www.gnu.org/licenses/>.
++
++/** @file bits/ctype_inline.h
++ * This is an internal header file, included by other library headers.
++ * Do not attempt to use it directly. @headername{locale}
++ */
++
++//
++// ISO C++ 14882: 22.1 Locales
++//
++
++// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
++// functions go in ctype.cc
++
++// Mint C types, taken from mintlib-0.57.3/include/ctype.h
++
++namespace std _GLIBCXX_VISIBILITY(default)
++{
++_GLIBCXX_BEGIN_NAMESPACE_VERSION
++
++ bool
++ ctype<char>::
++ is(mask __m, char __c) const
++ { return _ctype[(unsigned char)((__c) + 1)] & __m; }
++
++ const char*
++ ctype<char>::
++ is(const char* __low, const char* __high, mask* __vec) const
++ {
++ while (__low < __high)
++ *__vec++ = _ctype[(*__low++) + 1] ;
++ return __high;
++ }
++
++ const char*
++ ctype<char>::
++ scan_is(mask __m, const char* __low, const char* __high) const
++ {
++ while (__low < __high && !this->is(__m, *__low))
++ ++__low;
++ return __low;
++ }
++
++ const char*
++ ctype<char>::
++ scan_not(mask __m, const char* __low, const char* __high) const
++ {
++ while (__low < __high && this->is(__m, *__low) != 0)
++ ++__low;
++ return __low;
++ }
++
++_GLIBCXX_END_NAMESPACE_VERSION
++} // namespace
+diff -aurN gcc-4.7.2/libstdc++-v3/config/os/mint/ctype_configure_char.cc gcc-4.7.2-mint-20120503/libstdc++-v3/config/os/mint/ctype_configure_char.cc
+--- gcc-4.7.2/libstdc++-v3/config/os/mint/ctype_configure_char.cc 1970-01-01 01:00:00.000000000 +0100
++++ gcc-4.7.2-mint-20120503/libstdc++-v3/config/os/mint/ctype_configure_char.cc 2012-05-03 18:23:01.046875000 +0200
+@@ -0,0 +1,100 @@
++// Locale support -*- C++ -*-
++
++// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2009, 2010
++// Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// <http://www.gnu.org/licenses/>.
++
++/** @file ctype_configure_char.cc */
++
++//
++// ISO C++ 14882: 22.1 Locales
++//
++
++#include <locale>
++#include <cstdlib>
++#include <cstring>
++
++namespace std _GLIBCXX_VISIBILITY(default)
++{
++_GLIBCXX_BEGIN_NAMESPACE_VERSION
++
++// Information as gleaned from /usr/include/ctype.h
++
++ const ctype_base::mask*
++ ctype<char>::classic_table() throw()
++ { return 0; }
++
++ ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
++ size_t __refs)
++ : facet(__refs), _M_del(__table != 0 && __del),
++ _M_toupper(NULL), _M_tolower(NULL),
++ _M_table(__table ? __table : classic_table())
++ {
++ memset(_M_widen, 0, sizeof(_M_widen));
++ _M_widen_ok = 0;
++ memset(_M_narrow, 0, sizeof(_M_narrow));
++ _M_narrow_ok = 0;
++ }
++
++ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
++ : facet(__refs), _M_del(__table != 0 && __del),
++ _M_toupper(NULL), _M_tolower(NULL),
++ _M_table(__table ? __table : classic_table())
++ {
++ memset(_M_widen, 0, sizeof(_M_widen));
++ _M_widen_ok = 0;
++ memset(_M_narrow, 0, sizeof(_M_narrow));
++ _M_narrow_ok = 0;
++ }
++
++ char
++ ctype<char>::do_toupper(char __c) const
++ { return ::toupper((int) __c); }
++
++ const char*
++ ctype<char>::do_toupper(char* __low, const char* __high) const
++ {
++ while (__low < __high)
++ {
++ *__low = ::toupper((int) *__low);
++ ++__low;
++ }
++ return __high;
++ }
++
++ char
++ ctype<char>::do_tolower(char __c) const
++ { return ::tolower((int) __c); }
++
++ const char*
++ ctype<char>::do_tolower(char* __low, const char* __high) const
++ {
++ while (__low < __high)
++ {
++ *__low = ::tolower((int) *__low);
++ ++__low;
++ }
++ return __high;
++ }
++
++_GLIBCXX_END_NAMESPACE_VERSION
++} // namespace
+diff -aurN gcc-4.6.3/libstdc++-v3/config/os/mint/os_defines.h gcc-4.6.3-mint-20120503/libstdc++-v3/config/os/mint/os_defines.h
+--- gcc-4.6.3/libstdc++-v3/config/os/mint/os_defines.h 1970-01-01 01:00:00.000000000 +0100
++++ gcc-4.6.3-mint-20120503/libstdc++-v3/config/os/mint/os_defines.h 2012-05-03 18:23:01.046875000 +0200
+@@ -0,0 +1,36 @@
++// Specific definitions for generic platforms -*- C++ -*-
++
++// Copyright (C) 2000, 2009, 2010 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// Under Section 7 of GPL version 3, you are granted additional
++// permissions described in the GCC Runtime Library Exception, version
++// 3.1, as published by the Free Software Foundation.
++
++// You should have received a copy of the GNU General Public License and
++// a copy of the GCC Runtime Library Exception along with this program;
++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
++// <http://www.gnu.org/licenses/>.
++
++/** @file bits/os_defines.h
++ * This is an internal header file, included by other library headers.
++ * Do not attempt to use it directly. @headername{iosfwd}
++ */
++
++#ifndef _GLIBCXX_OS_DEFINES
++#define _GLIBCXX_OS_DEFINES 1
++
++// System-specific #define, typedefs, corrections, etc, go here. This
++// file will come before all others.
++
++#endif
+diff -aurN gcc-4.6.3/libstdc++-v3/configure gcc-4.6.3-mint-20120503/libstdc++-v3/configure
+--- gcc-4.6.3/libstdc++-v3/configure 2011-11-20 22:24:07.000000000 +0100
++++ gcc-4.6.3-mint-20120503/libstdc++-v3/configure 2012-05-03 18:23:01.125000000 +0200
+@@ -44640,7 +44640,7 @@
+ ;;
+ esac
+ ;;
+- *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu)
++ *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu | *-mint*)
+
+ # All these tests are for C++; save the language and the compiler flags.
+ # The CXXFLAGS thing is suspicious, but based on similar bits previously
+diff -aurN gcc-4.6.3/libstdc++-v3/configure.host gcc-4.6.3-mint-20120503/libstdc++-v3/configure.host
+--- gcc-4.6.3/libstdc++-v3/configure.host 2010-12-06 01:50:04.000000000 +0100
++++ gcc-4.6.3-mint-20120503/libstdc++-v3/configure.host 2012-05-03 18:23:01.125000000 +0200
+@@ -258,6 +258,10 @@
+ error_constants_dir="os/mingw32"
+ OPT_LDFLAGS="${OPT_LDFLAGS} \$(lt_host_flags)"
+ ;;
++ mint*)
++ SECTION_FLAGS="${SECTION_FLAGS} -D_GNU_SOURCE"
++ os_include_dir="os/mint"
++ ;;
+ netbsd*)
+ os_include_dir="os/bsd/netbsd"
+ ;;
+diff -aurN gcc-4.6.3/libstdc++-v3/crossconfig.m4 gcc-4.6.3-mint-20120503/libstdc++-v3/crossconfig.m4
+--- gcc-4.6.3/libstdc++-v3/crossconfig.m4 2011-02-04 08:26:57.000000000 +0100
++++ gcc-4.6.3-mint-20120503/libstdc++-v3/crossconfig.m4 2012-05-03 18:23:01.125000000 +0200
+@@ -141,7 +141,7 @@
+ ;;
+ esac
+ ;;
+- *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu)
++ *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu | *-mint*)
+ GLIBCXX_CHECK_COMPILER_FEATURES
+ GLIBCXX_CHECK_LINKER_FEATURES
+ GLIBCXX_CHECK_MATH_SUPPORT
diff --git a/sys-devel/gcc/files/4.7.2/mint2.patch b/sys-devel/gcc/files/4.7.2/mint2.patch
new file mode 100644
index 00000000..948f09f3
--- /dev/null
+++ b/sys-devel/gcc/files/4.7.2/mint2.patch
@@ -0,0 +1,44 @@
+http://bugs.gentoo.org/show_bug.cgi?id=347319
+
+--- gcc/Makefile.in.old 2010-11-26 18:16:31.000000000 +0000
++++ gcc/Makefile.in 2010-11-26 18:17:13.000000000 +0000
+@@ -1819,6 +1819,7 @@
+ cc1$(exeext): $(C_OBJS) cc1-checksum.o $(BACKEND) $(LIBDEPS)
+ $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) \
+ cc1-checksum.o $(BACKEND) $(LIBS) $(BACKENDLIBS)
++ stack -S 2 $@
+
+ #
+ # Build libgcc.a.
+--- gcc/cp/Make-lang.in.old 2013-03-22 21:10:05.000000000 +0000
++++ gcc/cp/Make-lang.in 2013-03-22 21:10:24.000000000 +0000
+@@ -104,6 +104,7 @@
+ cc1plus$(exeext): $(CXX_OBJS) cc1plus-checksum.o $(BACKEND) $(LIBDEPS)
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
+ $(CXX_OBJS) cc1plus-checksum.o $(BACKEND) $(LIBS) $(BACKENDLIBS)
++ stack -S 2 $@
+
+ ifeq ($(ENABLE_MAINTAINER_RULES), true)
+ # Special build rule. This is a maintainer rule, that is only
+--- config/picflag.m4.old 2013-03-09 22:38:27.000000000 +0000
++++ config/picflag.m4 2013-03-09 22:38:49.000000000 +0000
+@@ -11,6 +11,8 @@
+ # Common symbols not allowed in MH_DYLIB files
+ $1=-fno-common
+ ;;
++ *-*-mint*)
++ ;;
+ alpha*-dec-osf5*)
+ # PIC is the default.
+ ;;
+--- libiberty/configure.old 2013-03-09 22:36:10.000000000 +0000
++++ libiberty/configure 2013-03-09 22:36:45.000000000 +0000
+@@ -4859,6 +4859,8 @@
+ # Common symbols not allowed in MH_DYLIB files
+ PICFLAG=-fno-common
+ ;;
++ *-*-mint*)
++ ;;
+ alpha*-dec-osf5*)
+ # PIC is the default.
+ ;;
diff --git a/sys-devel/gcc/files/4.7.2/mint3.patch b/sys-devel/gcc/files/4.7.2/mint3.patch
new file mode 100644
index 00000000..71195ccf
--- /dev/null
+++ b/sys-devel/gcc/files/4.7.2/mint3.patch
@@ -0,0 +1,335 @@
+http://bugs.gentoo.org/show_bug.cgi?id=350822
+
+--- libstdc++-v3/libsupc++/guard.cc.old 2008-04-21 14:01:06.429023196 +0100
++++ libstdc++-v3/libsupc++/guard.cc 2008-04-21 14:01:25.230287338 +0100
+@@ -30,6 +30,7 @@
+ // Thread support written by Jason Merrill, Red Hat Inc. <jason@redhat.com>
+
+ #include <bits/c++config.h>
++#include <cstdlib>
+ #include <cxxabi.h>
+ #include <exception>
+ #include <new>
+--- libstdc++-v3/src/c++98/codecvt.cc.old 2008-04-21 14:32:37.116117842 +0100
++++ libstdc++-v3/src/c++98/codecvt.cc 2008-04-21 14:32:47.505045768 +0100
+@@ -27,6 +27,7 @@
+
+ // Written by Benjamin Kosnik <bkoz@redhat.com>
+
++#include <cstdlib>
+ #include <locale>
+
+ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- libstdc++-v3/src/c++98/complex_io.cc.old 2008-04-21 14:36:27.261023151 +0100
++++ libstdc++-v3/src/c++98/complex_io.cc 2008-04-21 14:36:36.534232802 +0100
+@@ -27,6 +27,7 @@
+ // invalidate any other reasons why the executable file might be covered by
+ // the GNU General Public License.
+
++#include <cstdlib>
+ #include <complex>
+
+ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- libstdc++-v3/src/c++98/ctype.cc.old 2008-04-21 14:40:06.994312017 +0100
++++ libstdc++-v3/src/c++98/ctype.cc 2008-04-21 14:40:18.218220665 +0100
+@@ -26,6 +26,7 @@
+ // invalidate any other reasons why the executable file might be covered by
+ // the GNU General Public License.
+
++#include <cstdlib>
+ #include <locale>
+
+ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- libstdc++-v3/src/c++98/globals_io.cc.old 2008-04-21 14:47:42.230023258 +0100
++++ libstdc++-v3/src/c++98/globals_io.cc 2008-04-21 14:47:52.749297097 +0100
+@@ -27,6 +27,7 @@
+ // the GNU General Public License.
+
+ #include "bits/c++config.h"
++#include <cstdlib>
+ #include <fstream>
+ #include <istream>
+ #include <ostream>
+--- libstdc++-v3/src/c++98/ios.cc.old 2008-04-21 14:51:32.364023391 +0100
++++ libstdc++-v3/src/c++98/ios.cc 2008-04-21 14:51:39.371196232 +0100
+@@ -32,6 +32,7 @@
+ // ISO C++ 14882: 27.4 Iostreams base classes
+ //
+
++#include <cstdlib>
+ #include <ios>
+ #include <limits>
+
+--- libstdc++-v3/src/c++98/ios_failure.cc.old 2008-04-21 14:53:10.759023042 +0100
++++ libstdc++-v3/src/c++98/ios_failure.cc 2008-04-21 14:53:40.197127646 +0100
+@@ -32,6 +32,7 @@
+ // ISO C++ 14882: 27.4.2.1.1 Class ios_base::failure
+ //
+
++#include <cstdlib>
+ #include <ios>
+
+ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- libstdc++-v3/src/c++98/ios_init.cc.old 2008-04-21 14:55:53.181023355 +0100
++++ libstdc++-v3/src/c++98/ios_init.cc 2008-04-21 14:56:01.407485842 +0100
+@@ -32,6 +32,7 @@
+ // ISO C++ 14882: 27.4 Iostreams base classes
+ //
+
++#include <cstdlib>
+ #include <ios>
+ #include <ostream>
+ #include <istream>
+--- libstdc++-v3/src/c++98/ios_locale.cc.old 2008-04-21 15:04:38.355183857 +0100
++++ libstdc++-v3/src/c++98/ios_locale.cc 2008-04-21 15:04:47.456159205 +0100
+@@ -32,6 +32,7 @@
+ // ISO C++ 14882: 27.4 Iostreams base classes
+ //
+
++#include <cstdlib>
+ #include <ios>
+ #include <locale>
+
+--- libstdc++-v3/src/c++98/locale_facets.cc.old 2008-04-21 15:10:19.610023164 +0100
++++ libstdc++-v3/src/c++98/locale_facets.cc 2008-04-21 15:10:26.952034403 +0100
+@@ -26,6 +26,7 @@
+ // invalidate any other reasons why the executable file might be covered by
+ // the GNU General Public License.
+
++#include <cstdlib>
+ #include <locale>
+
+ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- libstdc++-v3/src/c++98/strstream.cc.old 2008-04-21 15:17:36.006071207 +0100
++++ libstdc++-v3/src/c++98/strstream.cc 2008-04-21 15:17:43.447641937 +0100
+@@ -46,6 +46,7 @@
+ // MAY BE REMOVED in a future standard revision. You should use the
+ // header <sstream> instead.
+
++#include <cstdlib>
+ #include <strstream>
+ #include <algorithm>
+ #include <new>
+--- libstdc++-v3/src/c++11/fstream-inst.cc.old 2008-04-21 15:25:14.168032671 +0100
++++ libstdc++-v3/src/c++11/fstream-inst.cc 2008-04-21 15:25:24.605060960 +0100
+@@ -32,6 +32,7 @@
+ // ISO C++ 14882:
+ //
+
++#include <cstdlib>
+ #include <fstream>
+
+ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- libstdc++-v3/src/c++98/ios-inst.cc.old 2008-04-21 15:40:43.642023146 +0100
++++ libstdc++-v3/src/c++98/ios-inst.cc 2008-04-21 15:40:51.723051414 +0100
+@@ -32,6 +32,7 @@
+ // ISO C++ 14882:
+ //
+
++#include <cstdlib>
+ #include <ios>
+
+ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- libstdc++-v3/src/c++98/iostream-inst.cc.old 2008-04-21 15:55:15.625023267 +0100
++++ libstdc++-v3/src/c++98/iostream-inst.cc 2008-04-21 15:55:23.629058393 +0100
+@@ -32,6 +32,7 @@
+ // ISO C++ 14882:
+ //
+
++#include <cstdlib>
+ #include <iomanip>
+
+ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- libstdc++-v3/src/c++98/istream-inst.cc.old 2008-04-21 15:59:50.862024439 +0100
++++ libstdc++-v3/src/c++98/istream-inst.cc 2008-04-21 15:59:59.603028397 +0100
+@@ -32,6 +32,7 @@
+ // ISO C++ 14882:
+ //
+
++#include <cstdlib>
+ #include <istream>
+ #include <iomanip>
+
+--- libstdc++-v3/src/c++98/istream.cc.old 2008-04-21 16:03:55.949023206 +0100
++++ libstdc++-v3/src/c++98/istream.cc 2008-04-21 16:04:03.746026447 +0100
+@@ -31,6 +31,7 @@
+ // ISO C++ 14882: 27.6.1 Input streams
+ //
+
++#include <cstdlib>
+ #include <istream>
+
+ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- libstdc++-v3/src/c++98/locale-inst.cc.old 2008-04-21 16:07:06.705023144 +0100
++++ libstdc++-v3/src/c++98/locale-inst.cc 2008-04-21 16:07:14.922226343 +0100
+@@ -32,6 +32,7 @@
+ // ISO C++ 14882: 22.1 Locales
+ //
+
++#include <cstdlib>
+ #include <locale>
+
+ // Instantiation configuration.
+--- libstdc++-v3/src/c++98/ostream-inst.cc.old 2008-04-21 16:19:19.443023243 +0100
++++ libstdc++-v3/src/c++98/ostream-inst.cc 2008-04-21 16:19:26.505037357 +0100
+@@ -32,6 +32,7 @@
+ // ISO C++ 14882:
+ //
+
++#include <cstdlib>
+ #include <ostream>
+ #include <iomanip>
+
+--- libstdc++-v3/src/c++98/sstream-inst.cc.old 2008-04-21 16:22:53.830023256 +0100
++++ libstdc++-v3/src/c++98/sstream-inst.cc 2008-04-21 16:23:01.792239858 +0100
+@@ -32,6 +32,7 @@
+ // ISO C++ 14882:
+ //
+
++#include <cstdlib>
+ #include <sstream>
+
+ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- libstdc++-v3/src/c++98/streambuf-inst.cc.old 2008-04-21 16:27:18.648023102 +0100
++++ libstdc++-v3/src/c++98/streambuf-inst.cc 2008-04-21 16:27:28.394022870 +0100
+@@ -32,6 +32,7 @@
+ // ISO C++ 14882:
+ //
+
++#include <cstdlib>
+ #include <ios>
+ #include <streambuf>
+
+--- libstdc++-v3/src/c++98/streambuf.cc.old 2008-04-21 16:32:11.191078470 +0100
++++ libstdc++-v3/src/c++98/streambuf.cc 2008-04-21 16:32:20.434047649 +0100
+@@ -31,6 +31,7 @@
+ // ISO C++ 14882: 27.5 Stream buffers
+ //
+
++#include <cstdlib>
+ #include <streambuf>
+
+ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- libstdc++-v3/config/locale/generic/codecvt_members.cc.old 2008-04-21 16:40:52.235023128 +0100
++++ libstdc++-v3/config/locale/generic/codecvt_members.cc 2008-04-21 16:41:01.248427209 +0100
+@@ -33,6 +33,7 @@
+
+ // Written by Benjamin Kosnik <bkoz@redhat.com>
+
++#include <cstdlib>
+ #include <locale>
+
+ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- libstdc++-v3/config/locale/generic/collate_members.cc.old 2008-04-21 16:42:19.265348380 +0100
++++ libstdc++-v3/config/locale/generic/collate_members.cc 2008-04-21 16:42:25.552040967 +0100
+@@ -33,6 +33,7 @@
+
+ // Written by Benjamin Kosnik <bkoz@redhat.com>
+
++#include <cstdlib>
+ #include <locale>
+
+ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- libstdc++-v3/config/locale/generic/ctype_members.cc.old 2008-04-21 16:49:06.726023078 +0100
++++ libstdc++-v3/config/locale/generic/ctype_members.cc 2008-04-21 16:49:18.212045558 +0100
+@@ -33,6 +33,7 @@
+
+ // Written by Benjamin Kosnik <bkoz@redhat.com>
+
++#include <cstdlib>
+ #include <locale>
+
+ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- libstdc++-v3/config/locale/generic/messages_members.cc.old 2008-04-21 16:51:46.237348712 +0100
++++ libstdc++-v3/config/locale/generic/messages_members.cc 2008-04-21 16:51:55.015221637 +0100
+@@ -33,6 +33,7 @@
+
+ // Written by Benjamin Kosnik <bkoz@redhat.com>
+
++#include <cstdlib>
+ #include <locale>
+
+ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- libstdc++-v3/config/locale/generic/monetary_members.cc.old 2008-04-21 16:53:14.893023165 +0100
++++ libstdc++-v3/config/locale/generic/monetary_members.cc 2008-04-21 16:53:22.350043513 +0100
+@@ -33,6 +33,7 @@
+
+ // Written by Benjamin Kosnik <bkoz@redhat.com>
+
++#include <cstdlib>
+ #include <locale>
+
+ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- libstdc++-v3/config/locale/generic/numeric_members.cc.old 2008-04-21 16:54:11.077212480 +0100
++++ libstdc++-v3/config/locale/generic/numeric_members.cc 2008-04-21 16:53:32.618266080 +0100
+@@ -33,6 +33,7 @@
+
+ // Written by Benjamin Kosnik <bkoz@redhat.com>
+
++#include <cstdlib>
+ #include <locale>
+
+ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- libstdc++-v3/config/locale/generic/time_members.cc.old 2008-04-21 16:54:00.835099080 +0100
++++ libstdc++-v3/config/locale/generic/time_members.cc 2008-04-21 16:53:41.260024731 +0100
+@@ -34,6 +34,7 @@
+
+ // Written by Benjamin Kosnik <bkoz@redhat.com>
+
++#include <cstdlib>
+ #include <locale>
+
+ _GLIBCXX_BEGIN_NAMESPACE(std)
+--- libstdc++-v3/config/io/basic_file_stdio.cc.old 2008-04-21 17:00:09.629307442 +0100
++++ libstdc++-v3/config/io/basic_file_stdio.cc 2008-04-21 16:59:58.512314844 +0100
+@@ -32,6 +32,7 @@
+ // ISO C++ 14882: 27.8 File-based streams
+ //
+
++#include <cstdlib>
+ #include <bits/basic_file.h>
+ #include <fcntl.h>
+ #include <errno.h>
+--- gcc/cp/g++spec.c.old 2008-06-05 11:12:02.252475943 +0100
++++ gcc/cp/g++spec.c 2008-06-05 11:12:49.557473133 +0100
+@@ -343,6 +343,12 @@
+ }
+ #endif
+ }
++#ifdef __MINT__
++ generate_option (OPT_l, "pthread", 1,
++ CL_DRIVER, &new_decoded_options[j]);
++ added_libraries++;
++ j++;
++#endif
+ if (saw_math)
+ new_decoded_options[j++] = *saw_math;
+ else if (library > 0 && need_math)
+--- libstdc++-v3/include/c_global/cstdlib.old 2008-06-05 11:15:10.644432810 +0100
++++ libstdc++-v3/include/c_global/cstdlib 2008-06-05 11:15:43.703707876 +0100
+@@ -97,7 +97,11 @@
+ #undef strtod
+ #undef strtol
+ #undef strtoul
++#if _POSIX_THREAD_SYSCALL_SOFT && !defined(_PTHREAD_PRIVATE)
++/* don't undefine system as we're using libpthread */
++#else
+ #undef system
++#endif
+ #undef wcstombs
+ #undef wctomb
+
+--- libstdc++-v3/include/c_std/cstdlib.old 2008-06-05 11:15:10.644432810 +0100
++++ libstdc++-v3/include/c_std/cstdlib 2008-06-05 11:15:43.703707876 +0100
+@@ -97,7 +97,11 @@
+ #undef strtod
+ #undef strtol
+ #undef strtoul
++#if _POSIX_THREAD_SYSCALL_SOFT && !defined(_PTHREAD_PRIVATE)
++/* don't undefine system as we're using libpthread */
++#else
+ #undef system
++#endif
+ #undef wcstombs
+ #undef wctomb
+
diff --git a/sys-devel/gcc/files/4.7.2/pr52391.patch b/sys-devel/gcc/files/4.7.2/pr52391.patch
new file mode 100644
index 00000000..9191fe51
--- /dev/null
+++ b/sys-devel/gcc/files/4.7.2/pr52391.patch
@@ -0,0 +1,110 @@
+http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52391
+
+--- gcc/config/m68k/m68k.md.old 2013-03-11 22:58:49.000000000 +0000
++++ gcc/config/m68k/m68k.md 2013-03-11 23:00:49.000000000 +0000
+@@ -6331,7 +6331,7 @@
+ {
+ OUTPUT_JUMP ("jeq %l0", "fjeq %l0", "jeq %l0");
+ }
+- [(set (attr "type") (symbol_ref "m68k_sched_branch_type (insn)"))])
++ [(set_attr "type" "bcc")])
+
+ (define_insn "bne"
+ [(set (pc)
+@@ -6343,7 +6343,7 @@
+ {
+ OUTPUT_JUMP ("jne %l0", "fjne %l0", "jne %l0");
+ }
+- [(set (attr "type") (symbol_ref "m68k_sched_branch_type (insn)"))])
++ [(set_attr "type" "bcc")])
+
+ (define_insn "bgt"
+ [(set (pc)
+@@ -6361,7 +6361,7 @@
+
+ OUTPUT_JUMP ("jgt %l0", "fjgt %l0", 0);
+ }
+- [(set (attr "type") (symbol_ref "m68k_sched_branch_type (insn)"))])
++ [(set_attr "type" "bcc")])
+
+ (define_insn "bgtu"
+ [(set (pc)
+@@ -6397,7 +6397,7 @@
+
+ OUTPUT_JUMP ("jlt %l0", "fjlt %l0", "jmi %l0");
+ }
+- [(set (attr "type") (symbol_ref "m68k_sched_branch_type (insn)"))])
++ [(set_attr "type" "bcc")])
+
+ (define_insn "bltu"
+ [(set (pc)
+--- gcc/config/m68k/m68k-protos.h.old 2013-03-11 23:01:22.000000000 +0000
++++ gcc/config/m68k/m68k-protos.h 2013-03-11 23:01:30.000000000 +0000
+@@ -81,7 +81,6 @@
+ extern enum attr_opy_type m68k_sched_attr_opy_type (rtx, int);
+ extern enum attr_size m68k_sched_attr_size (rtx);
+ extern enum attr_op_mem m68k_sched_attr_op_mem (rtx);
+-extern enum attr_type m68k_sched_branch_type (rtx);
+ #endif /* HAVE_ATTR_cpu */
+
+ #endif /* RTX_CODE */
+--- gcc/config/m68k/m68k.c.old 2013-03-11 23:01:44.000000000 +0000
++++ gcc/config/m68k/m68k.c 2013-03-11 23:02:52.000000000 +0000
+@@ -5880,26 +5880,6 @@
+ return OP_MEM_I1;
+ }
+
+-/* Jump instructions types. Indexed by INSN_UID.
+- The same rtl insn can be expanded into different asm instructions
+- depending on the cc0_status. To properly determine type of jump
+- instructions we scan instruction stream and map jumps types to this
+- array. */
+-static enum attr_type *sched_branch_type;
+-
+-/* Return the type of the jump insn. */
+-enum attr_type
+-m68k_sched_branch_type (rtx insn)
+-{
+- enum attr_type type;
+-
+- type = sched_branch_type[INSN_UID (insn)];
+-
+- gcc_assert (type != 0);
+-
+- return type;
+-}
+-
+ /* Data for ColdFire V4 index bypass.
+ Producer modifies register that is used as index in consumer with
+ specified scale. */
+@@ -6123,20 +6103,6 @@
+ int sched_verbose ATTRIBUTE_UNUSED,
+ int n_insns ATTRIBUTE_UNUSED)
+ {
+- /* Init branch types. */
+- {
+- rtx insn;
+-
+- sched_branch_type = XCNEWVEC (enum attr_type, get_max_uid () + 1);
+-
+- for (insn = get_insns (); insn != NULL_RTX; insn = NEXT_INSN (insn))
+- {
+- if (JUMP_P (insn))
+- /* !!! FIXME: Implement real scan here. */
+- sched_branch_type[INSN_UID (insn)] = TYPE_BCC;
+- }
+- }
+-
+ #ifdef ENABLE_CHECKING
+ /* Check that all instructions have DFA reservations and
+ that all instructions can be issued from a clean state. */
+@@ -6218,9 +6184,6 @@
+ sched_ib.records.adjust = NULL;
+ sched_ib.records.n_insns = 0;
+ max_insn_size = 0;
+-
+- free (sched_branch_type);
+- sched_branch_type = NULL;
+ }
+
+ /* Implementation of targetm.sched.init () hook.
diff --git a/sys-devel/gcc/files/4.7.2/pr52714.patch b/sys-devel/gcc/files/4.7.2/pr52714.patch
new file mode 100644
index 00000000..c39285a5
--- /dev/null
+++ b/sys-devel/gcc/files/4.7.2/pr52714.patch
@@ -0,0 +1,75 @@
+[proposed but not yet submitted fix for PR52714 on M68K <mikpe@it.uu.se>]
+
+gcc/
+
+2012-12-30 Mikael Pettersson <mikpe@it.uu.se>
+
+ PR rtl-optimization/52714
+ * combine.c (try_combine): Revert to gcc-4.5 version
+ of PR rtl-optimization/45695 fix.
+
+--- gcc-4.6.3/gcc/combine.c.~1~ 2012-02-09 18:29:38.000000000 +0100
++++ gcc-4.6.3/gcc/combine.c 2012-12-30 16:14:06.000000000 +0100
+@@ -3765,41 +3765,42 @@ try_combine (rtx i3, rtx i2, rtx i1, rtx
+ && GET_CODE (XVECEXP (newpat, 0, 1)) == SET
+ && GET_CODE (SET_DEST (XVECEXP (newpat, 0, 1))) != ZERO_EXTRACT
+ && GET_CODE (SET_DEST (XVECEXP (newpat, 0, 1))) != STRICT_LOW_PART
++ && ! use_crosses_set_p (SET_SRC (XVECEXP (newpat, 0, 1)),
++ DF_INSN_LUID (i2))
+ && ! reg_referenced_p (SET_DEST (XVECEXP (newpat, 0, 1)),
+ XVECEXP (newpat, 0, 0))
+ && ! reg_referenced_p (SET_DEST (XVECEXP (newpat, 0, 0)),
+ XVECEXP (newpat, 0, 1))
+ && ! (contains_muldiv (SET_SRC (XVECEXP (newpat, 0, 0)))
+- && contains_muldiv (SET_SRC (XVECEXP (newpat, 0, 1)))))
++ && contains_muldiv (SET_SRC (XVECEXP (newpat, 0, 1))))
++#ifdef HAVE_cc0
++ /* We cannot split the parallel into two sets if both sets
++ reference cc0. */
++ && ! (reg_referenced_p (cc0_rtx, XVECEXP (newpat, 0, 0))
++ && reg_referenced_p (cc0_rtx, XVECEXP (newpat, 0, 1)))
++#endif
++ )
+ {
+ /* Normally, it doesn't matter which of the two is done first,
+- but the one that references cc0 can't be the second, and
+- one which uses any regs/memory set in between i2 and i3 can't
++ but it does if one references cc0. In that case, it has to
+ be first. */
+- if (!use_crosses_set_p (SET_SRC (XVECEXP (newpat, 0, 1)),
+- DF_INSN_LUID (i2))
+-#ifdef HAVE_cc0
+- && !reg_referenced_p (cc0_rtx, XVECEXP (newpat, 0, 0))
+-#endif
+- )
+- {
+- newi2pat = XVECEXP (newpat, 0, 1);
+- newpat = XVECEXP (newpat, 0, 0);
+- }
+- else if (!use_crosses_set_p (SET_SRC (XVECEXP (newpat, 0, 0)),
+- DF_INSN_LUID (i2))
+ #ifdef HAVE_cc0
+- && !reg_referenced_p (cc0_rtx, XVECEXP (newpat, 0, 1))
+-#endif
+- )
++ if (reg_referenced_p (cc0_rtx, XVECEXP (newpat, 0, 0)))
+ {
++ if (use_crosses_set_p (SET_SRC (XVECEXP (newpat, 0, 0)),
++ DF_INSN_LUID (i2)))
++ {
++ undo_all ();
++ return 0;
++ }
+ newi2pat = XVECEXP (newpat, 0, 0);
+ newpat = XVECEXP (newpat, 0, 1);
+ }
+ else
++#endif
+ {
+- undo_all ();
+- return 0;
++ newi2pat = XVECEXP (newpat, 0, 1);
++ newpat = XVECEXP (newpat, 0, 0);
+ }
+
+ i2_code_number = recog_for_combine (&newi2pat, i2, &new_i2_notes);
diff --git a/sys-devel/gcc/files/4.7.2/pr52773.patch b/sys-devel/gcc/files/4.7.2/pr52773.patch
new file mode 100644
index 00000000..dc3d2ff3
--- /dev/null
+++ b/sys-devel/gcc/files/4.7.2/pr52773.patch
@@ -0,0 +1,70 @@
+diff --git a/gcc/calls.c b/gcc/calls.c
+index cdab8e0..db38b73 100644
+--- a/gcc/calls.c
++++ b/gcc/calls.c
+@@ -3603,6 +3603,7 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value,
+ int reg_parm_stack_space = 0;
+ int needed;
+ rtx before_call;
++ bool have_push_fusage;
+ tree tfom; /* type_for_mode (outmode, 0) */
+
+ #ifdef REG_PARM_STACK_SPACE
+@@ -3956,6 +3957,8 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value,
+
+ /* Push the args that need to be pushed. */
+
++ have_push_fusage = false;
++
+ /* ARGNUM indexes the ARGVEC array in the order in which the arguments
+ are to be pushed. */
+ for (count = 0; count < nargs; count++, argnum += inc)
+@@ -4046,14 +4049,19 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value,
+ if (argblock)
+ use = plus_constant (Pmode, argblock,
+ argvec[argnum].locate.offset.constant);
++ else if (have_push_fusage)
++ continue;
+ else
+- /* When arguments are pushed, trying to tell alias.c where
+- exactly this argument is won't work, because the
+- auto-increment causes confusion. So we merely indicate
+- that we access something with a known mode somewhere on
+- the stack. */
+- use = gen_rtx_PLUS (Pmode, virtual_outgoing_args_rtx,
+- gen_rtx_SCRATCH (Pmode));
++ {
++ /* When arguments are pushed, trying to tell alias.c where
++ exactly this argument is won't work, because the
++ auto-increment causes confusion. So we merely indicate
++ that we access something with a known mode somewhere on
++ the stack. */
++ use = gen_rtx_PLUS (Pmode, stack_pointer_rtx,
++ gen_rtx_SCRATCH (Pmode));
++ have_push_fusage = true;
++ }
+ use = gen_rtx_MEM (argvec[argnum].mode, use);
+ use = gen_rtx_USE (VOIDmode, use);
+ call_fusage = gen_rtx_EXPR_LIST (VOIDmode, use, call_fusage);
+diff --git a/gcc/testsuite/gcc.c-torture/compile/pr52773.c b/gcc/testsuite/gcc.c-torture/compile/pr52773.c
+new file mode 100644
+index 0000000..8daa5ee
+--- /dev/null
++++ b/gcc/testsuite/gcc.c-torture/compile/pr52773.c
+@@ -0,0 +1,16 @@
++/* pr52773.c */
++
++struct s {
++ short x;
++ short _pad[2];
++};
++
++static short mat_a_x;
++
++void transform(const struct s *src, struct s *dst, int n)
++{
++ int i;
++
++ for (i = 0; i < n; ++i)
++ dst[i].x = (src[i].x * mat_a_x) >> 6;
++}
diff --git a/sys-devel/gcc/files/4.7.2/solaris-x64-tls-gnu-as.patch b/sys-devel/gcc/files/4.7.2/solaris-x64-tls-gnu-as.patch
new file mode 100644
index 00000000..03b63f64
--- /dev/null
+++ b/sys-devel/gcc/files/4.7.2/solaris-x64-tls-gnu-as.patch
@@ -0,0 +1,135 @@
+diff -ur gcc-4.7.2-orig/gcc/configure gcc-4.7.2/gcc/configure
+--- gcc-4.7.2-orig/gcc/configure 2014-04-11 21:54:51.000000000 +0200
++++ gcc-4.7.2/gcc/configure 2014-04-11 22:01:49.000000000 +0200
+@@ -23323,16 +23323,12 @@
+ tls_first_major=2
+ tls_first_minor=17
+ ;;
+- i[34567]86-*-* | x86_64-*-solaris2.1[0-9]*)
++ i[34567]86-*-*)
+ case "$target" in
+ i[34567]86-*-solaris2.*)
+ on_solaris=yes
+ tga_func=___tls_get_addr
+ ;;
+- x86_64-*-solaris2.1[0-9]*)
+- on_solaris=yes
+- tga_func=__tls_get_addr
+- ;;
+ *)
+ on_solaris=no
+ ;;
+@@ -23368,8 +23364,31 @@
+ leal foo@ntpoff(%ecx), %eax"
+ ;;
+ x86_64-*-*)
+- conftest_s='
+- .section ".tdata","awT",@progbits
++ case "$target" in
++ x86_64-*-solaris2.1[0-9]*)
++ on_solaris=yes
++ tga_func=__tls_get_addr
++ ;;
++ *)
++ on_solaris=no
++ ;;
++ esac
++ if test x$on_solaris = xyes && test x$gas_flag = xno; then
++ conftest_s='
++ .section .tdata,"awt",@progbits'
++ tls_first_major=0
++ tls_first_minor=0
++
++$as_echo "#define TLS_SECTION_ASM_FLAG 't'" >>confdefs.h
++
++ else
++ conftest_s='
++ .section ".tdata","awT",@progbits'
++ tls_first_major=2
++ tls_first_minor=14
++ tls_as_opt="--fatal-warnings"
++ fi
++ conftest_s="$conftest_s
+ foo: .long 25
+ .text
+ movq %fs:0, %rax
+@@ -23377,10 +23396,7 @@
+ leaq foo@TLSLD(%rip), %rdi
+ leaq foo@DTPOFF(%rax), %rdx
+ movq foo@GOTTPOFF(%rip), %rax
+- movq $foo@TPOFF, %rax'
+- tls_first_major=2
+- tls_first_minor=14
+- tls_as_opt=--fatal-warnings
++ movq \$foo@TPOFF, %rax"
+ ;;
+ ia64-*-*)
+ conftest_s='
+diff -ur gcc-4.7.2-orig/gcc/configure.ac gcc-4.7.2/gcc/configure.ac
+--- gcc-4.7.2-orig/gcc/configure.ac 2014-04-11 21:54:51.000000000 +0200
++++ gcc-4.7.2/gcc/configure.ac 2014-04-11 21:56:27.000000000 +0200
+@@ -2871,16 +2871,12 @@
+ tls_first_major=2
+ tls_first_minor=17
+ ;;
+- i[34567]86-*-* | x86_64-*-solaris2.1[0-9]*)
++ i[34567]86-*-*)
+ case "$target" in
+ i[34567]86-*-solaris2.*)
+ on_solaris=yes
+ tga_func=___tls_get_addr
+ ;;
+- x86_64-*-solaris2.1[0-9]*)
+- on_solaris=yes
+- tga_func=__tls_get_addr
+- ;;
+ *)
+ on_solaris=no
+ ;;
+@@ -2917,8 +2913,32 @@
+ leal foo@ntpoff(%ecx), %eax"
+ ;;
+ x86_64-*-*)
+- conftest_s='
+- .section ".tdata","awT",@progbits
++ case "$target" in
++ x86_64-*-solaris2.1[0-9]*)
++ on_solaris=yes
++ tga_func=__tls_get_addr
++ ;;
++ *)
++ on_solaris=no
++ ;;
++ esac
++ if test x$on_solaris = xyes && test x$gas_flag = xno; then
++ conftest_s='
++ .section .tdata,"awt",@progbits'
++ tls_first_major=0
++ tls_first_minor=0
++changequote([,])dnl
++ AC_DEFINE(TLS_SECTION_ASM_FLAG, 't',
++[Define to the flag used to mark TLS sections if the default (`T') doesn't work.])
++changequote(,)dnl
++ else
++ conftest_s='
++ .section ".tdata","awT",@progbits'
++ tls_first_major=2
++ tls_first_minor=14
++ tls_as_opt="--fatal-warnings"
++ fi
++ conftest_s="$conftest_s
+ foo: .long 25
+ .text
+ movq %fs:0, %rax
+@@ -2926,10 +2946,7 @@
+ leaq foo@TLSLD(%rip), %rdi
+ leaq foo@DTPOFF(%rax), %rdx
+ movq foo@GOTTPOFF(%rip), %rax
+- movq $foo@TPOFF, %rax'
+- tls_first_major=2
+- tls_first_minor=14
+- tls_as_opt=--fatal-warnings
++ movq \$foo@TPOFF, %rax"
+ ;;
+ ia64-*-*)
+ conftest_s='
diff --git a/sys-devel/gcc/files/gcc-4.7.2-cleanup-empty-eh-o0.patch b/sys-devel/gcc/files/gcc-4.7.2-cleanup-empty-eh-o0.patch
new file mode 100644
index 00000000..16c56727
--- /dev/null
+++ b/sys-devel/gcc/files/gcc-4.7.2-cleanup-empty-eh-o0.patch
@@ -0,0 +1,17 @@
+--- gcc-4.7.2/gcc/tree-eh.c (revision 207837)
++++ gcc-4.7.2/gcc/tree-eh.c (working copy)
+@@ -4557,11 +4557,12 @@ execute_cleanup_eh_1 (void)
+ remove_unreachable_handlers ();
+
+ /* Watch out for the region tree vanishing due to all unreachable. */
+- if (cfun->eh->region_tree && optimize)
++ if (cfun->eh->region_tree)
+ {
+ bool changed = false;
+
+- changed |= unsplit_all_eh ();
++ if (optimize)
++ changed |= unsplit_all_eh ();
+ changed |= cleanup_all_empty_eh ();
+
+ if (changed)
diff --git a/sys-devel/gcc/files/gcc-4.7.2-linux-x86-on-amd64.patch b/sys-devel/gcc/files/gcc-4.7.2-linux-x86-on-amd64.patch
new file mode 100644
index 00000000..1b732d42
--- /dev/null
+++ b/sys-devel/gcc/files/gcc-4.7.2-linux-x86-on-amd64.patch
@@ -0,0 +1,34 @@
+--- gcc/config.gcc.orig 2009-04-17 13:58:41.000000000 +0200
++++ gcc/config.gcc 2009-09-22 15:38:53.614811935 +0200
+@@ -1294,6 +1294,7 @@
+ esac
+ else
+ tm_file="${tm_file} i386/gnu-user.h i386/linux.h"
++ tmake_file="${tmake_file} i386/t-linux32"
+ fi
+ ;;
+ i[34567]86-*-knetbsd*-gnu) tm_file="${tm_file} i386/linux.h knetbsd-gnu.h i386/knetbsd-gnu.h" ;;
+--- gcc/config/i386/gnu-user.h.orig 2009-05-21 15:21:30.000000000 +0200
++++ gcc/config/i386/gnu-user.h 2009-09-22 15:33:39.158050728 +0200
+@@ -114,6 +114,8 @@
+ %{mpc80:crtprec80.o%s} \
+ %{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
+
++#define MULTILIB_DEFAULTS { "m32" }
++
+ /* A C statement (sans semicolon) to output to the stdio stream
+ FILE the assembler definition of uninitialized global DECL named
+ NAME whose size is SIZE bytes and alignment is ALIGN bytes.
+--- /dev/null 2009-09-10 15:59:29.820003140 +0200
++++ gcc/config/i386/t-linux32 2009-09-16 11:02:34.118502434 +0200
+@@ -0,0 +1,10 @@
++# On Debian, Ubuntu and other derivative distributions, the 32bit libraries
++# are found in /lib32 and /usr/lib32, /lib64 and /usr/lib64 are symlinks to
++# /lib and /usr/lib, while other distributions install libraries into /lib64
++# and /usr/lib64. The LSB does not enforce the use of /lib64 and /usr/lib64,
++# it doesn't tell anything about the 32bit libraries on those systems. Set
++# MULTILIB_OSDIRNAMES according to what is found on the target.
++
++MULTILIB_OPTIONS = m32
++MULTILIB_DIRNAMES = .
++MULTILIB_OSDIRNAMES = $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,)
diff --git a/sys-devel/gcc/files/interix-3.5-stdint.h b/sys-devel/gcc/files/interix-3.5-stdint.h
new file mode 100644
index 00000000..ee9289f6
--- /dev/null
+++ b/sys-devel/gcc/files/interix-3.5-stdint.h
@@ -0,0 +1,301 @@
+/*
+ * Copyright (c) 2002 Caldera International, Inc. All Rights Reserved.
+ *
+ * THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF
+ * Caldera International, Inc.
+ *
+ * The copyright notice above does not evidence any actual or intended
+ * publication of such source code.
+ */
+
+#ifndef _STDINT_H
+#define _STDINT_H
+
+#ifndef _SIZE_T_DEFINED
+#if defined (lp64) || defined(_WIN64)
+typedef unsigned __int64 size_t;
+#else
+typedef unsigned int size_t;
+#endif
+#define _SIZE_T_DEFINED
+#define _SIZE_T
+#endif/*_SIZE_T_DEFINED*/
+
+#ifndef _SSIZE_T_DEFINED
+#if (defined(lp64) || defined(_WIN64))
+typedef __int64 ssize_t;
+#else
+typedef int ssize_t;
+#endif
+#define _SSIZE_T_DEFINED
+#endif/*_SIZE_T_DEFINED*/
+
+
+#ifndef _INT8_T
+#define _INT8_T
+typedef signed char int8_t;
+#endif
+#ifndef _INT_LEAST8_T
+#define _INT_LEAST8_T
+typedef char int_least8_t;
+#endif
+#ifndef _INT_FAST8_T
+#define _INT_FAST8_T
+typedef int int_fast8_t;
+#endif
+
+#ifndef _UINT8_T
+#define _UINT8_T
+typedef unsigned char uint8_t;
+#endif
+#ifndef _UINT_LEAST8_T
+#define _UINT_LEAST8_T
+typedef unsigned char uint_least8_t;
+#endif
+#ifndef _UINT_FAST8_T
+#define _UINT_FAST8_T
+typedef unsigned int uint_fast8_t;
+#endif
+
+#ifndef _INT16_T
+#define _INT16_T
+typedef short int16_t;
+#endif
+#ifndef _INT_LEAST16_T
+#define _INT_LEAST16_T
+typedef short int_least16_t;
+#endif
+#ifndef _INT_FAST16_T
+#define _INT_FAST16_T
+typedef int int_fast16_t;
+#endif
+
+#ifndef _UINT16_T
+#define _UINT16_T
+typedef unsigned short uint16_t;
+#endif
+#ifndef _UINT_LEAST16_T
+#define _UINT_LEAST16_T
+typedef unsigned short uint_least16_t;
+#endif
+#ifndef _UINT_FAST16_T
+#define _UINT_FAST16_T
+typedef unsigned int uint_fast16_t;
+#endif
+
+#ifndef _INT32_T
+#define _INT32_T
+typedef int int32_t;
+#endif
+#ifndef _INT_LEAST32_T
+#define _INT_LEAST32_T
+typedef int int_least32_t;
+#endif
+#ifndef _INT_FAST32_T
+#define _INT_FAST32_T
+typedef int int_fast32_t;
+#endif
+
+#ifndef _UINT32_T
+#define _UINT32_T
+typedef unsigned int uint32_t;
+#endif
+#ifndef _UINT_LEAST32_T
+#define _UINT_LEAST32_T
+typedef unsigned int uint_least32_t;
+#endif
+#ifndef _UINT_FAST32_T
+#define _UINT_FAST32_T
+typedef unsigned int uint_fast32_t;
+#endif
+
+#if defined(lp64)
+
+#ifndef _INT64_T
+#define _INT64_T
+typedef long int64_t;
+#endif
+#ifndef _INT_LEAST64_T
+#define _INT_LEAST64_T
+typedef long int_least64_t;
+#endif
+#ifndef _INT_FAST64_T
+#define _INT_FAST64_T
+typedef long int_fast64_t;
+#endif
+
+#ifndef _UINT64_T
+#define _UINT64_T
+typedef unsigned long uint64_t;
+#endif
+#ifndef _UINT_LEAST64_T
+#define _UINT_LEAST64_T
+typedef unsigned long uint_least64_t;
+#endif
+#ifndef _UINT_FAST64_T
+#define _UINT_FAST64_T
+typedef unsigned long uint_fast64_t;
+#endif
+
+#else /*!#model(lp64)*/
+
+#ifndef _INT64_T
+#define _INT64_T
+typedef long long int64_t;
+#endif
+#ifndef _INT_LEAST64_T
+#define _INT_LEAST64_T
+typedef long long int_least64_t;
+#endif
+#ifndef _INT_FAST64_T
+#define _INT_FAST64_T
+typedef long long int_fast64_t;
+#endif
+
+#ifndef _UINT64_T
+#define _UINT64_T
+typedef unsigned long long uint64_t;
+#endif
+#ifndef _UINT_LEAST64_T
+#define _UINT_LEAST64_T
+typedef unsigned long long uint_least64_t;
+#endif
+#ifndef _UINT_FAST64_T
+#define _UINT_FAST64_T
+typedef unsigned long long uint_fast64_t;
+#endif
+
+#endif /*#model(lp64)*/
+
+#ifndef _INTPTR_T
+#define _INTPTR_T
+typedef ssize_t intptr_t;
+#endif
+
+#ifndef _UINTPTR_T
+#define _UINTPTR_T
+typedef size_t uintptr_t;
+#endif
+
+#ifndef _INTMAX_T
+#define _INTMAX_T
+#ifdef __GNUC__
+typedef long long int intmax_t;
+#else
+typedef __int64 intmax_t;
+#endif /*__GNUC__*/
+#endif
+
+#ifndef _UINTMAX_T
+#define _UINTMAX_T
+#ifdef __GNUC__
+typedef unsigned long long int uintmax_t;
+#else
+typedef unsigned __int64 uintmax_t;
+#endif /*__GNUC__*/
+#endif
+
+#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
+
+#define INT8_MAX 0x7f
+#define INT16_MAX 0x7fff
+#define INT32_MAX 0x7fffffff
+#define INT64_MAX 0x7fffffffffffffff
+
+#define INT8_MIN (-INT8_MAX - 1)
+#define INT16_MIN (-INT16_MAX - 1)
+#define INT32_MIN (-INT32_MAX - 1)
+#define INT64_MIN (-INT64_MAX - 1)
+
+#define UINT8_MAX 0xff
+#define UINT16_MAX 0xffff
+#define UINT32_MAX 0xffffffff
+#define UINT64_MAX 0xffffffffffffffff
+
+#define INT_LEAST8_MIN INT8_MIN
+#define INT_LEAST16_MIN INT16_MIN
+#define INT_LEAST32_MIN INT32_MIN
+#define INT_LEAST64_MIN INT64_MIN
+
+#define INT_LEAST8_MAX INT8_MAX
+#define INT_LEAST16_MAX INT16_MAX
+#define INT_LEAST32_MAX INT32_MAX
+#define INT_LEAST64_MAX INT64_MAX
+
+#define UINT_LEAST8_MAX UINT8_MAX
+#define UINT_LEAST16_MAX UINT16_MAX
+#define UINT_LEAST32_MAX UINT32_MAX
+#define UINT_LEAST64_MAX UINT64_MAX
+
+#define INT_FAST8_MIN INT32_MIN
+#define INT_FAST16_MIN INT32_MIN
+#define INT_FAST32_MIN INT32_MIN
+#define INT_FAST64_MIN INT64_MIN
+
+#define INT_FAST8_MAX INT32_MAX
+#define INT_FAST16_MAX INT32_MAX
+#define INT_FAST32_MAX INT32_MAX
+#define INT_FAST64_MAX INT64_MAX
+
+#define UINT_FAST8_MAX UINT32_MAX
+#define UINT_FAST16_MAX UINT32_MAX
+#define UINT_FAST32_MAX UINT32_MAX
+#define UINT_FAST64_MAX UINT64_MAX
+
+#if defined(lp64)
+
+#define INTPTR_MIN INT64_MIN
+#define INTPTR_MAX INT64_MAX
+#define UINTPTR_MAX UINT64_MAX
+
+#define PTRDIFF_MIN INT64_MIN
+#define PTRDIFF_MAX INT64_MAX
+
+#define SIZE_MAX INT64_MAX
+
+#else /*!#model(lp64)*/
+
+#define INTPTR_MIN INT32_MIN
+#define INTPTR_MAX INT32_MAX
+#define UINTPTR_MAX UINT32_MAX
+
+#define PTRDIFF_MIN INT32_MIN
+#define PTRDIFF_MAX INT32_MAX
+
+#define SIZE_MAX INT32_MAX
+
+#endif /*#model(lp64)*/
+
+#define INTMAX_MIN INT64_MIN
+#define INTMAX_MAX INT64_MAX
+#define UINTMAX_MAX UINT64_MAX
+
+#define SIG_ATOMIC_MIN INT32_MIN
+#define SIG_ATOMIC_MAX INT32_MAX
+
+#define WCHAR_MIN INT32_MIN
+#define WCHAR_MAX INT32_MAX
+
+#define WINT_MIN INT32_MIN
+#define WINT_MAX INT32_MAX
+
+#endif /*!defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)*/
+
+#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)
+
+#define INT8_C(v) v
+#define INT16_C(v) v
+#define INT32_C(v) v
+#define INT64_C(v) v##LL
+
+#define UINT8_C(v) v##U
+#define UINT16_C(v) v##U
+#define UINT32_C(v) v##U
+#define UINT64_C(v) v##ULL
+
+#define INTMAX_C(v) v##LL
+#define UINTMAX_C(v) v##ULL
+
+#endif /*!defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)*/
+
+#endif /*_STDINT_H*/
diff --git a/sys-devel/gcc/files/no-libs-for-startfile.patch b/sys-devel/gcc/files/no-libs-for-startfile.patch
new file mode 100644
index 00000000..cebf26a7
--- /dev/null
+++ b/sys-devel/gcc/files/no-libs-for-startfile.patch
@@ -0,0 +1,15 @@
+* do not generate multilib paths, since adding those dirs, e.g.
+ /usr/lib/amd64 or /usr/lib64, screws up Prefix badly (in %D)
+ see also: http://article.gmane.org/gmane.linux.gentoo.alt/3575
+
+--- gcc/gcc.c
++++ gcc/gcc.c
+@@ -4740,7 +4740,7 @@
+ #endif
+ info.separate_options = false;
+
+- for_each_path (&startfile_prefixes, true, 0, spec_path, &info);
++ for_each_path (&startfile_prefixes, false, 0, spec_path, &info);
+ }
+ break;
+
diff --git a/sys-devel/gcc/gcc-4.7.3-r1.ebuild b/sys-devel/gcc/gcc-4.7.3-r1.ebuild
index 4b8316f7..e5b1fce6 100644
--- a/sys-devel/gcc/gcc-4.7.3-r1.ebuild
+++ b/sys-devel/gcc/gcc-4.7.3-r1.ebuild
@@ -20,17 +20,23 @@ SSP_STABLE="amd64 x86 ppc ppc64 arm"
SSP_UCLIBC_STABLE="x86 amd64 ppc ppc64 arm"
#end Hardened stuff
-inherit eutils multilib toolchain
+inherit eutils flag-o-matic multilib 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"
+KEYWORDS+="~ppc-aix ~x64-freebsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
RDEPEND=""
DEPEND="${RDEPEND}
- elibc_glibc? ( >=sys-libs/glibc-2.8 )
- >=${CATEGORY}/binutils-2.18"
+ !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.8 ) )
+ kernel_Darwin? ( ${CATEGORY}/binutils-apple )
+ kernel_AIX? ( ${CATEGORY}/native-cctools )
+ kernel_linux? ( >=${CATEGORY}/binutils-2.18 )"
if [[ ${CATEGORY} != cross-* ]] ; then
- PDEPEND="${PDEPEND} elibc_glibc? ( >=sys-libs/glibc-2.8 )"
+ PDEPEND="${PDEPEND} !prefix? ( elibc_glibc? ( >=sys-libs/glibc-2.8 ) )"
fi
src_prepare() {
@@ -39,6 +45,14 @@ src_prepare() {
ewarn "Please rebuild gcc after upgrading to >=glibc-2.12 #362315"
EPATCH_EXCLUDE+=" 10_all_default-fortify-source.patch"
fi
+ # Fedora/RedHat ships glibc-2.15+ with some nasty warnings that cause
+ # configure checks for most system headers to fail, resulting in bugs
+ # compiling e.g. gcc itself, bug #433333
+ if [[ -e /usr/include/features.h ]] ; then
+ grep -qF "_FORTIFY_SOURCE requires compiling with optimization" \
+ /usr/include/features.h && \
+ EPATCH_EXCLUDE+=" 10_all_default-fortify-source.patch"
+ fi
# drop the x32 stuff in the next patchset #543578
if [[ ${CTARGET} != x86_64* ]] || ! has x32 $(get_all_abis TARGET) ; then
@@ -49,6 +63,42 @@ src_prepare() {
use vanilla && return 0
+ # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60221
+ epatch "${FILESDIR}"/gcc-4.7.2-cleanup-empty-eh-o0.patch
+
+ # make sure solaris-x64 doesn't misdetect tls support, bug #505446
+ epatch "${FILESDIR}"/4.7.2/solaris-x64-tls-gnu-as.patch
+
+ # make sure 64-bits native targets don't screw up the linker paths
+ epatch "${FILESDIR}"/4.7.1/solaris-searchpath.patch
+ epatch "${FILESDIR}"/no-libs-for-startfile.patch
+ if use prefix; then
+ epatch "${FILESDIR}"/4.5.2/prefix-search-dirs.patch
+ # try /usr/lib32 in 32bit profile on x86_64-linux (needs
+ # --enable-multilib), but this does make sense in prefix only
+ epatch "${FILESDIR}"/${PN}-4.7.2-linux-x86-on-amd64.patch
+ fi
+
+ # make it have correct install_names on Darwin
+ epatch "${FILESDIR}"/4.3.3/darwin-libgcc_s-installname.patch
+
+ if [[ ${CHOST} == *-mint* ]] ; then
+ epatch "${FILESDIR}"/4.3.2/${PN}-4.3.2-mint3.patch
+ epatch "${FILESDIR}"/4.7.2/mint1.patch
+ epatch "${FILESDIR}"/4.4.1/${PN}-4.4.1-mint3.patch
+ epatch "${FILESDIR}"/4.7.2/mint2.patch
+ epatch "${FILESDIR}"/4.7.2/mint3.patch
+ epatch "${FILESDIR}"/4.7.2/pr52391.patch
+ epatch "${FILESDIR}"/4.7.2/mint-unroll.patch
+ epatch "${FILESDIR}"/4.7.2/pr52773.patch
+ epatch "${FILESDIR}"/4.7.2/pr52714.patch
+ fi
+
+ # Always behave as if -pthread were passed on AIX and HPUX (#266548)
+# fails, likely still necessary though
+# epatch "${FILESDIR}"/4.5.1/aix-force-pthread.patch
+# epatch "${FILESDIR}"/4.5.1/ia64-hpux-always-pthread.patch
+
[[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env.patch
if [[ "${ARCH}" == "amd64" ]]; then
@@ -81,3 +131,105 @@ src_prepare() {
|| die 'ADA replacement failed'
fi
}
+
+src_configure() {
+ case ${CTARGET}:" ${USE} " in
+ powerpc*-darwin*)
+ # bug #381179
+ filter-flags "-mcpu=*" "-mtune=*"
+ ;;
+ *-mint*)
+ EXTRA_ECONF="${EXTRA_ECONF} --enable-multilib"
+ ;;
+ *-solaris*)
+ # todo: some magic for native vs. GNU linking?
+ EXTRA_ECONF="${EXTRA_ECONF} --with-gnu-ld --with-gnu-as"
+ ;;
+ *-aix*)
+ # AIX doesn't use GNU binutils, because it doesn't produce usable
+ # code
+ EXTRA_ECONF="${EXTRA_ECONF} --without-gnu-ld --without-gnu-as"
+ append-ldflags -Wl,-bbigtoc,-bmaxdata:0x10000000 # bug#194635
+ ;;
+ *-interix*)
+ # disable usage of poll() on interix, since poll() only
+ # works on the /proc filesystem (.......)
+ export glibcxx_cv_POLL=no
+
+ # if using the old system as, gcc's configure script fails
+ # to detect that as cannot handle .lcomm with alignment.
+ # on interix, it is rather easy to detect the as, since there
+ # is only _one_ build of it with a fixed date in the version
+ # header...
+ if as --version | grep 20021111 > /dev/null 2>&1; then
+ einfo "preventing gcc from detecting .lcomm alignment option in interix system as."
+ export gcc_cv_as_lcomm_with_alignment=no
+ fi
+ ;;
+ i[34567]86-*-linux*:*" prefix "*)
+ # to allow the linux-x86-on-amd64.patch become useful, we need
+ # to enable multilib, even if there is just one multilib option.
+ EXTRA_ECONF="${EXTRA_ECONF} --enable-multilib"
+ if [[ ${CBUILD:-${CHOST}} == "${CHOST}" ]]; then
+ # we might be on x86_64-linux, but don't do cross-compile, so
+ # tell the host-compiler to really create 32bits (for stage1)
+ # (real x86-linux-gcc also accept -m32).
+ tc-export CC CXX
+ CC="${CC} -m32"
+ CXX="${CC} -m32"
+ fi
+ ;;
+ esac
+
+ # Since GCC 4.1.2 some non-posix (?) /bin/sh compatible code is used, at
+ # least on Solaris, and AIX /bin/sh is ways too slow,
+ # so force it to use $BASH (that portage uses) - it can't be EPREFIX
+ # in case that doesn't exist yet
+ export CONFIG_SHELL="${CONFIG_SHELL:-${BASH}}"
+ toolchain_src_configure
+}
+
+src_install() {
+ toolchain_src_install
+
+ if [[ ${CTARGET} == *-interix* ]] && ! is_crosscompile; then
+ # interix delivers libdl and dlfcn.h with gcc-3.3.
+ # Since those parts are perfectly usable by this gcc (and
+ # required for example by perl), we simply can reuse them.
+ # As libdl is in /usr/lib, we only need to copy dlfcn.h.
+ # When cross compiling for interix once, ensure that sysroot
+ # contains dlfcn.h.
+ cp /opt/gcc.3.3/include/dlfcn.h "${ED}${INCLUDEPATH}" \
+ || die "Cannot gain /opt/gcc.3.3/include/dlfcn.h"
+ fi
+
+ if [[ ${CTARGET} == *-interix3* ]]; then
+ # interix 3.5 has no stdint.h and no inttypes.h. This breaks
+ # so many packages, that i just install interix 5.2's stdint.h
+ # which should be ok.
+ cp "${FILESDIR}"/interix-3.5-stdint.h "${ED}${INCLUDEPATH}/stdint.h" \
+ || die "Cannot install stdint.h for interix3"
+ fi
+
+ # create a small profile.d script, unsetting some of the bad
+ # environment variables that the system could set from the outside.
+ # (GCC_SPECS, GCC_EXEC_PREFIX, CPATH, LIBRARY_PATH, LD_LIBRARY_PATH,
+ # C_INCLUDE_PATH, CPLUS_INCLUDE_PATH, LIBPATH, SHLIB_PATH, LIB, INCLUDE,
+ # LD_LIBRARY_PATH_32, LD_LIBRARY_PATH_64).
+ # Maybe there is a better location for doing this ...? Feel free to move
+ # it there if you want to.
+
+ cat > "${T}"/00-gcc-paths.sh <<- _EOF
+ #!/bin/env bash
+ # GCC specific variables
+ unset GCC_SPECS GCC_EXEC_PREFIX
+ # include path variables
+ unset CPATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH INCLUDE
+ # library path variables
+ unset LIBRARY_PATH LD_LIBRARY_PATH LIBPATH SHLIB_PATH LIB LD_LIBRARY_PATH_32 LD_LIBRARY_PATH_64
+ _EOF
+
+ insinto /etc/profile.d
+ doins "${T}"/00-gcc-paths.sh
+
+}