summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Haubenwallner <haubi@gentoo.org>2014-07-07 13:44:46 +0200
committerMichael Haubenwallner <haubi@gentoo.org>2014-07-07 13:44:46 +0200
commitb74972c21a02b344aaeb7d5eaecf8450b9b7e187 (patch)
tree8daa147553db509402ddb857cc6d35db56761b72
parentsync (diff)
parent+gcc-4.2.4-r01.5: (diff)
downloadprefix-b74972c21a02b344aaeb7d5eaecf8450b9b7e187.tar.gz
prefix-b74972c21a02b344aaeb7d5eaecf8450b9b7e187.tar.bz2
prefix-b74972c21a02b344aaeb7d5eaecf8450b9b7e187.zip
merge +gcc-4.2.4-r01.5:
AIX: Improve runtime-linking support, allow for libssp. Add patch for std::string().c_str() to point to readonly memory.
-rw-r--r--sys-devel/gcc/ChangeLog9
-rw-r--r--sys-devel/gcc/Manifest29
-rw-r--r--sys-devel/gcc/files/4.2.2/aix-libssp.patch34
-rw-r--r--sys-devel/gcc/files/4.2.2/aix-runtimelinking.patch85
-rw-r--r--sys-devel/gcc/files/4.2.2/aix-soname.patch35
-rw-r--r--sys-devel/gcc/files/4.2.2/ro-string.patch109
-rw-r--r--sys-devel/gcc/gcc-4.2.4-r01.5.ebuild208
7 files changed, 454 insertions, 55 deletions
diff --git a/sys-devel/gcc/ChangeLog b/sys-devel/gcc/ChangeLog
index c8a05619c3..ae01988dec 100644
--- a/sys-devel/gcc/ChangeLog
+++ b/sys-devel/gcc/ChangeLog
@@ -2,6 +2,15 @@
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/ChangeLog,v 1.998 2014/01/19 01:51:34 dirtyepic Exp $
+*gcc-4.2.4-r01.5 (04 Jul 2014)
+
+ 04 Jul 2014; Michael Haubenwallner <haubi@gentoo.org>
+ +gcc-4.2.4-r01.5.ebuild, +files/4.2.2/aix-libssp.patch,
+ files/4.2.2/aix-runtimelinking.patch, files/4.2.2/aix-soname.patch,
+ +files/4.2.2/ro-string.patch:
+ AIX: Improve runtime-linking support, allow for libssp.
+ Add patch for std::string().c_str() to point to readonly memory.
+
11 Apr 2014; redlizard <redlizard@gentoo.org>
+files/4.7.2/solaris-x64-tls-gnu-as.patch, gcc-4.7.2-r1.ebuild,
gcc-4.7.3-r1.ebuild, gcc-4.8.2-r1.ebuild:
diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest
index fb1b0c0785..c6bd6106d7 100644
--- a/sys-devel/gcc/Manifest
+++ b/sys-devel/gcc/Manifest
@@ -1,6 +1,3 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA256
-
AUX 3.3.4/libffi-without-libgcj.patch 890 SHA256 a422ebf05e279bdcb15627363af8101e4d6a54ca037d6da11c13b4768799d974 SHA512 6204588808a37a13dffc8c6bdf70eb453107413d0c8fffddeb360444e3e605f1ceb42c41905cfa1c4f9cbb1b22dc290e68d2728dbddb0f4d0406dd8dca6789a0 WHIRLPOOL 7260ba32fc7d60f1fa4d8667c929e16f3bdf9fe953c823c5b6876d4fea4d4fed52e67aec92cbb599d6327eac009bc4fbbc06ba85acf9848bf346384af0523363
AUX 3.3.6/gcc-3.3.6-cross-compile.patch 2202 SHA256 00e5152f211a2c0892ba4f5a7ebb078c1d5d1dfc77bd0ba81ab8dfcd2924ffb3 SHA512 0d81d516a3635eb303d8f75099bf8fbbf1ffcd771c9cb4a770a55189232ed53e15728191a3e8c5339cc1562bbe4bcaa4b6c0d1c1d264287216abe715ca734829 WHIRLPOOL 579e035254ed4500acdbf23872e0b30d81b914f080054dbe7ebd16c483a0fb6bd787b41d570c0f1338dc8e3c5f03dceb94cfadc6d73d68fb230d839f896142f2
AUX 3.4.3/libffi-nogcj-lib-path-fix.patch 1691 SHA256 030e2c9f31b325ea975792bdfee88272d1065b8794511410dc30bd2caf8b3451 SHA512 001e3c1c585c3ab641a540eb5502788dd1151cb66fc9f0196ae79e3ad7f01a291812511bd19114fdffc9d8b71987623f1dcccefed3546cb9e0f0e6abd55f093c WHIRLPOOL ffda82e69885c7691f7746188f3565dd90fa9a33be1426155ccf8f5cc40f910ac8bdac14accef120c379bbddc589732028cff94377a6bfffc080789d7a825d15
@@ -17,11 +14,12 @@ AUX 4.1.0/gcc-4.1.0-cross-compile.patch 1134 SHA256 8ee57285151659793df88e025f12
AUX 4.1.0/gcc-4.1.0-fast-math-i386-Os-workaround.patch 1686 SHA256 7547293b945808f63b70aafed644a43c99e19f82aaf1d2f2df8502d87ab3f01d SHA512 cb0268c64d8d50ee3c95e9c6ca9242be1cb08382c7b081c129045a4852a7b3ed5c48124b33aa51816d80f5c930929bdc097644e817d77b5e186442248a609f2f WHIRLPOOL 7c152c59e7cffe1730bfb20e9ac97aba8a2bad583d9b6daff0ea0be90ca0d4a153bc40c169e1f4831c87c88b4ac5b41bef0cb019e8bbe69a72b702916770a765
AUX 4.2.2/aix-bnoerok.patch 1393 SHA256 6245d64f3c9d706da598e85338cb90b727d0f5ae25cb515f582dfeb20d471297 SHA512 44e7df80cade6572a6b3dd511d8712787cdcd7e1610759fb211e304e365ecad41155bbb545aa8177e04e2c7629090bb81cfac6838faca8d5d636b1681e9a1e98 WHIRLPOOL a722d9b77ba110d40a34a1211baa2a9464e474aba22abb5c76c4372010e6ee5c11ad4f706ec9f8854c4f1f07d9ec3321dae54af9a9c8a336e1d41fee34af1e53
AUX 4.2.2/aix-force-pthread.patch 10545 SHA256 cc704327bb61b61d577e0ad90c349bd18b1273b647be4ca962a250e148e0a91e SHA512 54772a3f1bb7fe9b70f2cb79a7f18a3a56b6818d81f08f8bafe4056687989daca53a3eb67218e951dffde6ff4c3c73d9f7e2984b9eaab7e3d7927ad0ec0a97dc WHIRLPOOL 7d2e295840cdd9069a268ec54d4fae4d44cfcb6fb07a594a5b4a049f6a7aecb7183df451baa8d6dbd7b2b0cf41e6223718d3246f7e5f586d294c6a9c7a67620e
+AUX 4.2.2/aix-libssp.patch 1434 SHA256 67b56e9bc2bda69f5315bdc037143562d0b6526051f03274df48dc0c955c7a0a SHA512 139715b14e9b28073183f938668decf6fca681767548241be1812ad91ce099e99a4650bf7bb9800899e427e7f47bc2546e1dadfa2be94f13f4e4685d0620872f WHIRLPOOL 0dfa5d5b08834eedc55e463a7fb054a2ff7006c5342ddf8f6be675d8a02e40fe8700f058babfb4a7fb414b71dcd16b9061ad860795aa5aba2fabd4a6dedf5757
AUX 4.2.2/aix-lineno.patch 1227 SHA256 9fa153add1983c3a5365c0420f38b87c161b810e44cb5dc41348461fce4ef6fe SHA512 4a3a4d8351bc3e28702a1657ca4d2491e5fccb4cf6f16f3f5b16f5cf1162e0dc00671bb5997a928dd0de011e46a9cc8b1b420fa5d3b2856b91474e3789c877de WHIRLPOOL 5f13e27b5084ca1d04d5e334317c94db7b8b601a79a7b4a7b2bd1f796390b07931352afa7ed0b35f3c0a6c73942a4dbb43e66805d4a6e965eb6b3c14043b0e72
AUX 4.2.2/aix-minimal-toc.patch 646 SHA256 da79c2dbda22ab41b70ae30173ae4b4e29d90b2b682d16307ce988befdaa82f6 SHA512 772dde6046e1241f98b3fb3e1feae9fdf060a215f1f6cd153e17e934d91da1bcf0970b211fb83b8b3dc945a3612780952991f6fb4b630468d3f4c5a4dc80c126 WHIRLPOOL 4695dae2c878d247ac983eb90c4e4384627cd20b5244fe0c6a12773cd47c914624f44ac5ef87d20ca2553ddd104bf08bcf0f15ed0d02919465bdf17830d4241f
AUX 4.2.2/aix-pr46072.patch 889 SHA256 ad0408f3d5d01181284cffc90b761506537d10317c05f63738ce1f1f68369e57 SHA512 5c8e0a8e35d5fe85e845c16e283bd75a047653b280a339589d5a816c6dfed490f17b17ec4105e5291c7dc1f05e791b70cf639339198955ecd956b4a27d938e11 WHIRLPOOL 00048bedccc83de819088879ad7951b55b29e341c35dd6646833f9dc6d9543ac6d3b71d777a9644dde74b1379404569690b323cddba8776fab070b219e975ac8
-AUX 4.2.2/aix-runtimelinking.patch 2543 SHA256 6d1dcd8291250d8438c3a750c5e048d69ee52e9a744c1fc72f7d229e6f7aeb7f SHA512 7f9f6a5c8662dcd3e0d145c6a0b856a42bd87e817d0ee2cd68ae9df941256fc62cf53c7ba4744a142eb121d3d4a9308325f053dcf5002697b04e6bf39c00d5fe WHIRLPOOL aab21bc399d1e6c9052092775d84d60f44f856c6a70b6d95d8d824d1b3d02c1b7366ca1ebeec7614ae21abf431858e1f9e54dd871cda8a6f2d498fd5e7bd2912
-AUX 4.2.2/aix-soname.patch 7421 SHA256 47b6f85ff2fcd6911c5aef10be8baca8700cce6bdb9fa94c55ff29105f9dab32 SHA512 7ad61a1d7f09dae7f4a6aecf5e27375c77aeb616d76d936506b952512d98f93316e45e5eaf6aef91e97e7bef54f2439f608d4659b8227e8af1b9adf0496e21ab WHIRLPOOL 31e7cf0d715032ee48a113ee64ad8f442bbf1858b70a1e3a391448b5653ea21fbb70e6c5be1e94cbacac5b20695f244b7f50205e2931ed952cbe260b50de28f7
+AUX 4.2.2/aix-runtimelinking.patch 6097 SHA256 356c57e1662121865c81885378fd2ac93848a8df61915a9d13ec950480031768 SHA512 79fe7dfb6c6f5212a7e72e94163fc4597d68aba0b3fd0f5ceccace9f72d55fd7ede50b0e0ef94d3e75cbc77e7b8f39b3a711bef01436af39ddcd985c5b87bb8a WHIRLPOOL 98b259a9b7f015de0041da45aae5fe2a99a844c32339efffd1559462af5c53f2e933be6bb3176c9606d34c055f3784d3a2db9c2d93a6c3a33bae6452d0f64090
+AUX 4.2.2/aix-soname.patch 6875 SHA256 df660d04f72e409aef458d9a11f315a4211ad76b39741f4ec1fc9a3ca6ce355e SHA512 555678b335f501b2ec64d367aeee547ff5a078a9728cdd9ceef73bd310de2f9075b40767a64e1052ab183520de0d69a24cdf00174afb6d1efd10ff33f395b57f WHIRLPOOL 8e7f79a6dbc559ade2591bfa96c4cdfe0f40c5b403a910cbeeca0b65aaa955d1f9fe78e279f98e7d04520db7f049dda1b249a9f1429393eed241f4f97ca3a1d9
AUX 4.2.2/aix61-longdouble64.patch 633 SHA256 9b3670dd3ed57610e0684cde83706385d94b04d12d1165b44fb9be66362b647a SHA512 e74bb318602853c540a85385800d565d404efefb0c074cfb6734e5997646805dbc9ff1932cbdfd410f8fb1fe79fcc1e132c7cddc28ad188a6aaa66777366eb72 WHIRLPOOL 7054ee989c63b93a320ffa74e5691aefd7777aee5084c57ed33adaac128e74db77cbeb431d38d935d6c2a0c4c8c4f16e4bf1fd48cab4158ea1cab29f27f481a0
AUX 4.2.2/gentoo-fixincludes.patch 1152 SHA256 c69458cc0de447a8e720e4cdec386a12d3cbc3ab66b3880adea71f27e1d13042 SHA512 fbc973b4a48cff23e375de09c6a74ee56f73f07bfa9a23523ecd52ed4675eecf9ccb10ecff3add44a6419c8d8e69284ef85b854f986a5e5778a6eb1a228e6ca6 WHIRLPOOL 8b5ad2167a1adec3c2a06a8731857c4e74f087ef4fb832e5cbdd02331214cce99cb9f9a3fc75ba6819bf89a78334212e9ed7113aa99f996d93c4d27df7b176b9
AUX 4.2.2/interix-3.5-x86.patch 584 SHA256 1295e5c49071ce7b7aad4942dc20406f2078b116fd544de40454cef2c2f6fa43 SHA512 bbbbe72a85438dfedf98822bb004511a56474f8ba189586c190289121e2195a18b1c543beb5f8575f63a798bd4875a9d4df22110b203457cf445b7ca77b42371 WHIRLPOOL 4bc95aa137b962befe19aa50e4d958f55eaab3d071aa875542bc042b7f5e31f895a1e331000fecde70ffe20e251e2900cc55eec367efda84bca7c39c0e7a7927
@@ -29,6 +27,7 @@ AUX 4.2.2/interix-x86.patch.bz2 8885 SHA256 45fabaa0464762da94254d0529bbfb65f60c
AUX 4.2.2/pr26189-pa.patch 856 SHA256 defac911eb23b854f3e66e36b9469d0426f20952f858d06ba8f4d15422942149 SHA512 ab7d0bb5d154a5a03d5a8ef24a3402aec8f8f56d226bc2f751c1deb1db4eb2d0b122e65a4ce4453381cea7a9449a0bf57469139a01eec1e8a7c0ea7a50d4e7d2 WHIRLPOOL b90486c4d4558a31a63c93b0f96b986ef86a01cccb7c10818c14854bec6964c38fe950e112680a61599514376e1e513cc9206d40e42694fc5ae0fd6dcdf1038e
AUX 4.2.2/pr31899.patch 2150 SHA256 b6a18313653d2cd3ac9fe12876c93da8b7f0f97ba2e12b90d2d78b2e6b549b54 SHA512 f218b70ae08c448228a061b7bbd927bfb1ac7ade83cb5b6e4db97fc63808626c1d5b2eefb5553b317013630b693d14e2b2a05e0c19fef60b0322342e4c24518c WHIRLPOOL 32c29fb615bc089f06fdc2555897bb617eb50f6439d4bf2f4a095fea7bba1587859429e1b1c2e6ee92c83b3e3da96ae2fa8d494c39d77207ce9a273dd9c5822a
AUX 4.2.2/prefix-search-dirs.patch 1973 SHA256 658855e8f6b2314ad0cbcb59877ee88be1e0b54ab8a3c542c4fa9c70ab361f25 SHA512 c1ad13e532bd216d9dd826d09b4b41d5b17aebbcc6df26981b1b85c62f8a6541230e670e806887ade564e4d364b1ffe52f12b6e7f529d317c59b74d1f3101d06 WHIRLPOOL 0be8b49436ec2ea18b5f9a7aee4fa0f150d1fea475578b370f8781cf584504e75c121a922d49e1fa11bb1fbf01a51797a42f937cbfcd811856fbec70d96757c7
+AUX 4.2.2/ro-string.patch 4438 SHA256 aa897cbf7b41a729819524195466726ad6b28e16f3f7dd44965df77fee32ebac SHA512 59e94201eac056dd64e6dc1dc8c3b700af40cfc8621ea0344d589d379e2b69398eb3353fa2bf7168b04eafedea5f5671b0af60c9fad586b665a2d64ca065753b WHIRLPOOL ed3c10d7518ec398b34c1bc1cc323989152aecfcbafa8d91d828e8dbc4bc0357838db0e9874cafd9f496048d6f5adba8351e63f526bc3f2189570869a690b16e
AUX 4.2.2/solarisx86.patch 482 SHA256 af42ed35b9d717c0264a95a6581a02a579ea8b078b5cb17914dc0e40e8b442d8 SHA512 317f9df53f4c44f9a724f60cc8a362b2c2dbebe0c7a0e6227bc3703751e17c13d6584fce3c6d66e595c622ca6b788dcc37f2ce09769df95d80374e9164d5b19f WHIRLPOOL 1fcfdbaead0dee6d8f41dc24f1bc4ffbe83862cf018e2357f2130902dbb7ae3ef7cbeb29c9c2a73138b0586dbd5ee89540ede519e08b3ad0f5e0d2ac3240fdc0
AUX 4.2.2/solarisx86_64.patch 2591 SHA256 146ded782bf915aed5b87c1ca2be0bfa860fb8d88c7deff3e4e150bf4ec10769 SHA512 84f5a23e43b93a9cf48fea1fc0faec65e60622c7eae056ad8f4cdac8705dc1b9928d32e7e9d54b914e9807317dfbb03188fffc6c7da38097e222d98a3cc6b93c WHIRLPOOL 645055624b45bd19cfac114bddd74c254a6f22bb1a825a4d3cb6a47708773829a3c118a5c486bb2ec693b23161497cdf036c52f02e2efcf0b9c2e373d90d0c83
AUX 4.2.2/targettools-checks.patch 4078 SHA256 958325d291250fbc42d0ee257b215da094ec2c6513920b66302f2b3252ebe09c SHA512 ae38d7ea6c7d2463060b2889077fc34323e651f1fc88f2529bda1bc108eab48aabac45454d8041e53090fbbe6b7f1ed3e613638da58e89cc8adf3a9430d5c71a WHIRLPOOL dbed9603dc58db2f2387733b29b61b16abe0c5d2c528234ccc9b654c5c99c7d9103002a9d1237f50c307491e1f29601b71b639e9f8d80e01a75fc0779f8b24d8
@@ -151,25 +150,9 @@ EBUILD gcc-3.3.6-r1.ebuild 1566 SHA256 082642502bbf553488c3ee03237b3e3e65501d2d6
EBUILD gcc-3.4.6-r2.ebuild 2859 SHA256 44fb15ae2432f0e9b7dade84f2a62bded9eaa7b8eb66d2ce58f6e018da1da148 SHA512 b46770083d5479f190b24191efe3b921b4d6bf56fd5d536d7fc31a87cf280c08f415b30d0da6aa75592f1fbbe19d59f8dd378c5b9dcca18d94b75450dfaf940f WHIRLPOOL 0809cfec23b5d03e7f4df07d415adeab8dd38f16e6085693478503586814c910211c2e316dd54a8674eb2708c48e25e571910ec03f8c43d22d8ca0ac541fb016
EBUILD gcc-4.1.2.ebuild 2411 SHA256 3f9472bf3c0cb02e086669b6c58b62b7aab5415502d26975e17391d2f7bdef88 SHA512 74d48935f4b32e0bab7a373512cbd5aa8824fca62a2dcfe38cab0e562dfc46df4c9b14e6c97c4acd24dc390d4e9d04283f94fd0eb3927710f69055a6276ee4c9 WHIRLPOOL 6364b1e1c7aebfaa3ec615b0a5535d4397e30ec62dac1d386b002ee6970adcaeb709f140e6983e8ca56eaacad5631c948f9eeb276c09cfd0ae601c7bc31a781c
EBUILD gcc-4.2.4-r01.4.ebuild 7767 SHA256 2f0b278e2f61bd545357f085fdd7f8320067380f79f1ff49e2e58428ffcef223 SHA512 1bd533b19467fd97b4b844d56500c2f7e82e2b38b8634ba4a5844d119e28ac8930f91c6c2aa85f40bded8c4543f7b6b3cb6e4f53601738354a245b3cb261bec5 WHIRLPOOL 4ec71375f51df78edb3b4a47e35b6a600714912362f2fc61fe8fa945ff9a7a5f5633cc4a69a04e5dd5c9f548ad57189cafb01b9133464937376887a2df9f4d0a
+EBUILD gcc-4.2.4-r01.5.ebuild 7856 SHA256 a9d2c33a53a55c2a086c2d1dc1825338445e65d4d8beaa3a6cd8a621d105e529 SHA512 633c73a449f91b5099c25a53f2ec36b299c9d6b2164a52a6181b66686811145f4a82a21f778619d5ee1877198c050e9e29a616c937efd7d6c0ac173810200c82 WHIRLPOOL 2b0cd62960a91575acd2ead0b81c0973a0d5c8d917e74f8c53e761cfc75f8fb9bc2e516a99433edfd12c5ebcd61a66a5f3e29eaa8b4fea5996e2210af44375eb
EBUILD gcc-4.7.2-r1.ebuild 7488 SHA256 e7c96c336ac032b659a10fa30d05e2f9fdeaa933dd31e449fb8e3a7c451dda8e SHA512 ce6f8b16d2a01d454f5fc78b693470fc2a06d17a0855d05a726159b40c601abcfbc42adc08cccf488148c83c342e64745634675345067d3d426fd29a1f95b8ff WHIRLPOOL d3ff49892b2d89b344d4c1e7bc7afba85dfe5d7afcbb5b27a5304e838a091a2c0c2a14253601e473b25ae68cdfa7135f242cb17ac2871f3089767a9bdd35e0a3
EBUILD gcc-4.7.3-r1.ebuild 7489 SHA256 25fb4869cfe82df8feb8770d61be0d8f497e3f68a2ec43b7ebad3b9399188fa4 SHA512 1627d52272724c463ccb9de195c8d8db40c3b837a885dfd553459b582085d84a809954bee4c79f431dd1c5b593b84ab181ef4c36f915a6c90f37e30f74fb903c WHIRLPOOL cc23419ad49fd9b11a08b9c0cd6214794822fb03dec25b3f21faf93b91079a94d04b6333a1a86cdb7f77775af3638471004ed741c12d628421abaac7bd18637d
EBUILD gcc-4.8.2-r1.ebuild 5790 SHA256 74387032c8d6bfbde20f63160c7bc1b4c3040c8743f08f27db164a63fb09dbd2 SHA512 6f5b83a61f0e51fea3a2d1a2af189884706ae287e2c6c2f92ed72d3a5f8d108667dd61ddd444be18ae22b2df56de6125e18384d5f46149bfca04be4255c6e829 WHIRLPOOL a2542c768735f6e6fb983c40f440c59f561be5d80dee4d40d9f7525d2ebb0fa3a814c20f2d23a82b3c97f7906ce4de80ad8afa3aa121874023474a8467a1e023
-MISC ChangeLog 178451 SHA256 e3aa2853db3bb6ca6a651530201f55e67afc5936ec981c395795bb91b84d73a6 SHA512 4e38a6f994940f8c09416762d2bb363cdf9d8167135b524c5dfd42d0c845fc704eb5fafa7721b45b879b36b324d25c14c1fdf38851e4b169f11d125b966becfd WHIRLPOOL a469fe6de9f0b1556f5facbccf91e282a59ec1abe854c87fd337b67431bb5290fdad48c5731dfdf65fd5d5dc6f149bc3095bf8e49823ec93800fd621f752c75a
+MISC ChangeLog 178825 SHA256 59c2212e39813d9cc34eb99653f9e937fb02a74b47e8ee4d5cff36b784a5d99c SHA512 820e0396ac75fc203f93a36aac6f8e4d373aee719048262683782963a932965cecedc914367f9c3ea2662942f2c4411562a4ae71dea3beeef4621e6c59cc1b5e WHIRLPOOL bc68ce32ddc8d817661861340a6ac4e9fe6bcc8f069347ddd54763050e6e91c84c4e7aee9c213ac03c280fb0e6ce815953203f63153ce26d08b1f01676561f8b
MISC metadata.xml 2013 SHA256 908c83d1adcb78c343319c0730554e914cd8bc9fa1cf81b1eb86de338372d9df SHA512 36ea07edc9590441d66d49a9a61bd4849c15fac0e23cb49774af8d0b9ba8af4dc9c55ed303535ad6ac3fbdc7dc82f1df01bcdad5320bfef7451633a09b966b12 WHIRLPOOL 87a1601ac7ab333b6fb489458502d0918745b3d8d1e3b7d8ba28a4effc05ef2cac13c580cd28d829cfc0cc421f17c2b82ddb59decb09e24751a1665a409b2625
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.22 (GNU/Linux)
-
-iQIcBAEBCAAGBQJTgPMJAAoJEMcu9QQQ+wFrPG4QAKq3M9EsAUc36NWGV3RBhqrY
-yQq4f6/4ZR9ofcdR8WvHBdKkKNWm/sbEpVVlAI+vfygTecJQC2xkWZbW4aY3R99w
-8wv/qLd31g7H2r1DR3wRXmCjU1QzpesxI33CKlyYSS5uYH5zzr6xawTDfW4M44U1
-i26fyjP3yJvzVLFuJWQ905y6lGKBEJq/086cgZ4Xc1eSpH2RHOQRVCl/CnBGrHeO
-aBQI5xFzgzh/n8IQWR9thDayDoibPCuEcCGk3WcTPlBEgmyjyRzQu7Y+HAV1tQvU
-7AEjkiZZ8a2wJ2V5B7KRYdhZUlwR7eOc+WXJ7I4ePVVeZO87oiXW+B4dzAcpLciF
-eaJ5as5Tl8/Otx8yh9mq1WsI/oq8riExgAVuss8sqoblUfUrosxHygEM3FGWT8TR
-AUmDM02qcWoRZn4E72ZqZiUXQKhPn3KCdIdgclTgaZtDlBWTpm+PKSkqtZwAyT6G
-VKN1Bi+MaE7PpN+7zduAKg7hZINvlG6swCQir2yWdsiFHDUZVcINTVY6JdD6v403
-pKEon0IP0JT56eDjcw0qKA7NiH1RACQ6uziJpCVcEiFoO+fD4NII1XPONUCXHvY7
-4DVeeCzpUUQXfZWl+G/aXIJ4Ln+5g9RJp5QdJplaHvf9MRpH1yPgiyc9xOHagj6p
-vTl1UoTWJ3hFR+bM/f6F
-=0j76
------END PGP SIGNATURE-----
diff --git a/sys-devel/gcc/files/4.2.2/aix-libssp.patch b/sys-devel/gcc/files/4.2.2/aix-libssp.patch
new file mode 100644
index 0000000000..412c8425ea
--- /dev/null
+++ b/sys-devel/gcc/files/4.2.2/aix-libssp.patch
@@ -0,0 +1,34 @@
+When locked to GCC, Stack Smashing Protector works well on AIX.
+
+diff -ruN gcc-4.2.4/configure /junk/base-2010.0u/portage/sys-devel/gcc-4.2.4-r01.11/work/gcc-4.2.4/configure
+--- gcc-4.2.4/configure 2014-06-30 16:44:39 +0200
++++ /junk/base-2010.0u/portage/sys-devel/gcc-4.2.4-r01.11/work/gcc-4.2.4/configure 2014-06-30 15:51:26 +0200
+@@ -1529,7 +1529,7 @@
+ ;;
+ powerpc-*-aix*)
+ # copied from rs6000-*-* entry
+- noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp ${libgcj}"
++ noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
+ ;;
+ powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe)
+ target_configdirs="$target_configdirs target-winsup"
+@@ -2567,7 +2567,6 @@
+ add_this_lang=no
+ ;;
+ esac
+- aix_use_runtimelinking=yes
+
+ case $add_this_lang in
+ no)
+diff -ruN gcc-4.2.4/configure.in /junk/base-2010.0u/portage/sys-devel/gcc-4.2.4-r01.11/work/gcc-4.2.4/configure.in
+--- gcc-4.2.4/configure.in 2014-06-30 16:44:39 +0200
++++ /junk/base-2010.0u/portage/sys-devel/gcc-4.2.4-r01.11/work/gcc-4.2.4/configure.in 2014-06-30 15:51:26 +0200
+@@ -686,7 +686,7 @@
+ ;;
+ powerpc-*-aix*)
+ # copied from rs6000-*-* entry
+- noconfigdirs="$noconfigdirs gprof target-libgloss target-libssp ${libgcj}"
++ noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}"
+ ;;
+ powerpc*-*-winnt* | powerpc*-*-pe* | ppc*-*-pe)
+ target_configdirs="$target_configdirs target-winsup"
diff --git a/sys-devel/gcc/files/4.2.2/aix-runtimelinking.patch b/sys-devel/gcc/files/4.2.2/aix-runtimelinking.patch
index 6671ee5bdb..499c85c5e3 100644
--- a/sys-devel/gcc/files/4.2.2/aix-runtimelinking.patch
+++ b/sys-devel/gcc/files/4.2.2/aix-runtimelinking.patch
@@ -1,52 +1,113 @@
---- gcc/config/rs6000/aix43.h.orig 2011-06-10 13:44:52.702133487 +0200
-+++ gcc/config/rs6000/aix43.h 2011-06-10 13:45:52.918701902 +0200
+Set '-brtl' for executables, to allow overriding shared library symbol
+definitions with local symbol definitions - this is called runtime-linking.
+Even if that usually is a hack, it is the only option with SVR4/ELF/Linux.
+This requires shared libraries to be linked with '-bnosymbolic':
+Using -G is recommended to mimic SVR4 behaviour as good as possible.
+
+Better not use '-bexpfull', may trigger this AIX 7.1 kernel problem:
+https://www-304.ibm.com/support/docview.wss?uid=isg1IV39558
+Use '-bexpall' instead, even if that won't export symbol names with leading _.
+Actually, '-bexpall' is more similar to SVR4/ELF except for the leading _.
+
+For collect2, take -G and -bsvr4 to change library-extension search order to
+what -brtl does. Also, take -bnortl to disable -brtl mode. Upstream report is
+https://gcc.gnu.org/ml/gcc-patches/2013-02/msg00104.html
+
+For collect2, ignore shared archive members with the F_LOADONLY flag.
+
+diff -ruN gcc-4.2.4/gcc/config/rs6000/aix43.h /junk/base-2010.0u/portage/sys-devel/gcc-4.2.4-r01.11/work/gcc-4.2.4/gcc/config/rs6000/aix43.h
+--- gcc-4.2.4/gcc/config/rs6000/aix43.h 2014-07-01 09:07:24 +0200
++++ /junk/base-2010.0u/portage/sys-devel/gcc-4.2.4-r01.11/work/gcc-4.2.4/gcc/config/rs6000/aix43.h 2014-06-30 15:51:22 +0200
@@ -143,8 +143,8 @@
"
#undef LINK_SPEC
-#define LINK_SPEC "-bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\
- %{static:-bnso %(link_syscalls) } %{shared:-bM:SRE %{!e:-bnoentry}}\
-+#define LINK_SPEC "%{!shared:-brtl} -bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\
++#define LINK_SPEC "%{!shared:-brtl -bexpall} -bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\
+ %{static:-bnso %(link_syscalls) } %{shared:-G -bernotok %{!e:-bnoentry}}\
%{!maix64:%{!shared:%{g*: %(link_libg) }}} %{maix64:-b64}\
%{mpe:-binitfini:poe_remote_main}"
---- gcc/config/rs6000/aix51.h.orig 2011-06-10 13:44:58.358702965 +0200
-+++ gcc/config/rs6000/aix51.h 2011-06-10 13:46:12.782003395 +0200
+diff -ruN gcc-4.2.4/gcc/config/rs6000/aix51.h /junk/base-2010.0u/portage/sys-devel/gcc-4.2.4-r01.11/work/gcc-4.2.4/gcc/config/rs6000/aix51.h
+--- gcc-4.2.4/gcc/config/rs6000/aix51.h 2014-07-01 09:07:24 +0200
++++ /junk/base-2010.0u/portage/sys-devel/gcc-4.2.4-r01.11/work/gcc-4.2.4/gcc/config/rs6000/aix51.h 2014-06-30 15:51:22 +0200
@@ -138,8 +138,8 @@
%{pthread:}-lpthreads -lc"
#undef LINK_SPEC
-#define LINK_SPEC "-bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\
- %{static:-bnso %(link_syscalls) } %{shared:-bM:SRE %{!e:-bnoentry}}\
-+#define LINK_SPEC "%{!shared:-brtl} -bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\
++#define LINK_SPEC "%{!shared:-brtl -bexpall} -bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\
+ %{static:-bnso %(link_syscalls) } %{shared:-G -bernotok %{!e:-bnoentry}}\
%{!maix64:%{!shared:%{g*: %(link_libg) }}} %{maix64:-b64}\
%{mpe:-binitfini:poe_remote_main}"
---- gcc/config/rs6000/aix52.h.orig 2011-06-10 13:45:00.741987969 +0200
-+++ gcc/config/rs6000/aix52.h 2011-06-10 13:46:26.342060886 +0200
+diff -ruN gcc-4.2.4/gcc/config/rs6000/aix52.h /junk/base-2010.0u/portage/sys-devel/gcc-4.2.4-r01.11/work/gcc-4.2.4/gcc/config/rs6000/aix52.h
+--- gcc-4.2.4/gcc/config/rs6000/aix52.h 2014-07-01 09:07:24 +0200
++++ /junk/base-2010.0u/portage/sys-devel/gcc-4.2.4-r01.11/work/gcc-4.2.4/gcc/config/rs6000/aix52.h 2014-06-30 15:51:22 +0200
@@ -140,8 +140,8 @@
%{pthread:}-lpthreads -lc"
#undef LINK_SPEC
-#define LINK_SPEC "-bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\
- %{static:-bnso %(link_syscalls) } %{shared:-bM:SRE %{!e:-bnoentry}}\
-+#define LINK_SPEC "%{!shared:-brtl} -bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\
++#define LINK_SPEC "%{!shared:-brtl -bexpall} -bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\
+ %{static:-bnso %(link_syscalls) } %{shared:-G -bernotok %{!e:-bnoentry}}\
%{!maix64:%{!shared:%{g*: %(link_libg) }}} %{maix64:-b64}\
%{mpe:-binitfini:poe_remote_main}"
---- gcc/config/rs6000/aix61.h.orig 2011-06-10 13:45:03.455371116 +0200
-+++ gcc/config/rs6000/aix61.h 2011-06-10 13:46:42.335327775 +0200
+diff -ruN gcc-4.2.4/gcc/config/rs6000/aix61.h /junk/base-2010.0u/portage/sys-devel/gcc-4.2.4-r01.11/work/gcc-4.2.4/gcc/config/rs6000/aix61.h
+--- gcc-4.2.4/gcc/config/rs6000/aix61.h 2014-07-01 09:07:24 +0200
++++ /junk/base-2010.0u/portage/sys-devel/gcc-4.2.4-r01.11/work/gcc-4.2.4/gcc/config/rs6000/aix61.h 2014-06-30 15:51:24 +0200
@@ -143,8 +143,8 @@
%{pthread:}-lpthreads -lc"
#undef LINK_SPEC
-#define LINK_SPEC "-bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\
- %{static:-bnso %(link_syscalls) } %{shared:-bM:SRE %{!e:-bnoentry}}\
-+#define LINK_SPEC "%{!shared:-brtl} -bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\
++#define LINK_SPEC "%{!shared:-brtl -bexpall} -bpT:0x10000000 -bpD:0x20000000 %{!r:-btextro} -bnodelcsect\
+ %{static:-bnso %(link_syscalls) } %{shared:-G -bernotok %{!e:-bnoentry}}\
%{!maix64:%{!shared:%{g*: %(link_libg) }}} %{maix64:-b64}\
%{mpe:-binitfini:poe_remote_main}"
+diff -ruN gcc-4.2.4/gcc/collect2.c /junk/base-2010.0u/portage/sys-devel/gcc-4.2.4-r01.11/work/gcc-4.2.4/gcc/collect2.c
+--- gcc-4.2.4/gcc/collect2.c 2007-12-31 17:04:26 +0100
++++ /junk/base-2010.0u/portage/sys-devel/gcc-4.2.4-r01.11/work/gcc-4.2.4/gcc/collect2.c 2014-06-30 15:51:22 +0200
+@@ -1068,8 +1068,15 @@
+ export_flag = 1;
+ else if (arg[2] == '6' && arg[3] == '4')
+ aix64_flag = 1;
+- else if (arg[2] == 'r' && arg[3] == 't' && arg[4] == 'l')
+- aixrtl_flag = 1;
++ else if (arg[2] == 'r' && arg[3] == 't' && arg[4] == 'l' && arg[5] == '\0')
++ aixrtl_flag = 1; /* -brtl enables (but not -brtllib) */
++ else if (arg[2] == 'n' && arg[3] == 'o' && arg[4] == 'r' && arg[5] == 't' && arg[6] == 'l' && arg[7] == '\0')
++ aixrtl_flag = 0; /* -bnortl disables (but not -bnortllib) */
++ else if (arg[2] == 's' && arg[3] == 'v' && arg[4] == 'r' && arg[5] == '4')
++ aixrtl_flag = 1; /* -bsvr4 enables -brtl too */
++ break;
++ case 'G':
++ aixrtl_flag = 1; /* -G enables -brtl too */
+ break;
+ #endif
+
+@@ -2322,12 +2329,14 @@
+ /* 0757 = U803XTOCMAGIC (AIX 4.3) and 0767 = U64_TOCMAGIC (AIX V5) */
+ #ifdef _AIX51
+ # define GCC_CHECK_HDR(X) \
+- ((HEADER (X).f_magic == U802TOCMAGIC && ! aix64_flag) \
+- || (HEADER (X).f_magic == 0767 && aix64_flag))
++ (((HEADER (X).f_magic == U802TOCMAGIC && ! aix64_flag) \
++ || (HEADER (X).f_magic == 0767 && aix64_flag)) \
++ && !(HEADER (X).f_flags & F_LOADONLY))
+ #else
+ # define GCC_CHECK_HDR(X) \
+- ((HEADER (X).f_magic == U802TOCMAGIC && ! aix64_flag) \
+- || (HEADER (X).f_magic == 0757 && aix64_flag))
++ (((HEADER (X).f_magic == U802TOCMAGIC && ! aix64_flag) \
++ || (HEADER (X).f_magic == 0757 && aix64_flag)) \
++ && !(HEADER (X).f_flags & F_LOADONLY))
+ #endif
+
+ #endif
diff --git a/sys-devel/gcc/files/4.2.2/aix-soname.patch b/sys-devel/gcc/files/4.2.2/aix-soname.patch
index 73d29d0319..237959a9d6 100644
--- a/sys-devel/gcc/files/4.2.2/aix-soname.patch
+++ b/sys-devel/gcc/files/4.2.2/aix-soname.patch
@@ -3,9 +3,8 @@ utilizing the ld-wrapper handling the '-soname' flag.
http://bugs.gentoo.org/show_bug.cgi?id=213277
-diff -ruN gcc-4.2.4.orig/config.rpath gcc-4.2.4/config.rpath
---- gcc-4.2.4.orig/config.rpath 2005-07-16 04:30:53 +0200
-+++ gcc-4.2.4/config.rpath 2011-03-21 16:15:29 +0100
+--- gcc-4.2.4/config.rpath
++++ gcc-4.2.4/config.rpath
@@ -204,7 +204,7 @@
# have to do anything special.
aix_use_runtimelinking=no
@@ -15,9 +14,8 @@ diff -ruN gcc-4.2.4.orig/config.rpath gcc-4.2.4/config.rpath
# Test if we are trying to use run time linking or normal
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
# need to do runtime linking.
-diff -ruN gcc-4.2.4.orig/ltcf-c.sh gcc-4.2.4/ltcf-c.sh
---- gcc-4.2.4.orig/ltcf-c.sh 2011-03-21 16:04:29 +0100
-+++ gcc-4.2.4/ltcf-c.sh 2011-03-21 16:22:18 +0100
+--- gcc-4.2.4/ltcf-c.sh
++++ gcc-4.2.4/ltcf-c.sh
@@ -325,7 +325,7 @@
else
# Test if we are trying to use run time linking, or normal AIX style linking.
@@ -32,13 +30,12 @@ diff -ruN gcc-4.2.4.orig/ltcf-c.sh gcc-4.2.4/ltcf-c.sh
allow_undefined_flag=' ${wl}-berok'
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$realname ${wl}-soname "${wl}$soname" $libobjs $deplibs $compiler_flags ${allow_undefined_flag} ${wl}-bernotok '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
++ archive_expsym_cmds="\$CC \${wl}-brtl $shared_flag"' -o $output_objdir/$realname ${wl}-soname "${wl}$soname" $libobjs $deplibs $compiler_flags ${allow_undefined_flag} ${wl}-bernotok '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
else
if test "$host_cpu" = ia64; then
if test $with_gnu_ld = no; then
-diff -ruN gcc-4.2.4.orig/ltcf-cxx.sh gcc-4.2.4/ltcf-cxx.sh
---- gcc-4.2.4.orig/ltcf-cxx.sh 2011-03-21 16:04:29 +0100
-+++ gcc-4.2.4/ltcf-cxx.sh 2011-03-21 16:22:43 +0100
+--- gcc-4.2.4/ltcf-cxx.sh
++++ gcc-4.2.4/ltcf-cxx.sh
@@ -176,7 +176,7 @@
else
# Test if we are trying to use run time linking, or normal AIX style linking.
@@ -53,13 +50,12 @@ diff -ruN gcc-4.2.4.orig/ltcf-cxx.sh gcc-4.2.4/ltcf-cxx.sh
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
allow_undefined_flag=' -Wl,-G'
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}-brtl \${wl}$exp_sym_flag:\$export_symbols"
-+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$realname ${wl}-soname "${wl}$soname" $libobjs $deplibs $compiler_flags ${allow_undefined_flag} ${wl}-bernotok '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
++ archive_expsym_cmds="\$CC \${wl}-brtl $shared_flag"' -o $output_objdir/$realname ${wl}-soname "${wl}$soname" $libobjs $deplibs $compiler_flags ${allow_undefined_flag} ${wl}-bernotok '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
else
if test "$host_cpu" = ia64; then
if test $with_gnu_ld = no; then
-diff -ruN gcc-4.2.4.orig/ltcf-gcj.sh gcc-4.2.4/ltcf-gcj.sh
---- gcc-4.2.4.orig/ltcf-gcj.sh 2011-03-21 16:04:29 +0100
-+++ gcc-4.2.4/ltcf-gcj.sh 2011-03-21 16:23:07 +0100
+--- gcc-4.2.4/ltcf-gcj.sh
++++ gcc-4.2.4/ltcf-gcj.sh
@@ -324,7 +324,7 @@
else
# Test if we are trying to use run time linking, or normal AIX style linking.
@@ -74,13 +70,12 @@ diff -ruN gcc-4.2.4.orig/ltcf-gcj.sh gcc-4.2.4/ltcf-gcj.sh
allow_undefined_flag=' ${wl}-berok'
hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$realname ${wl}-soname "${wl}$soname" $libobjs $deplibs $compiler_flags ${allow_undefined_flag} ${wl}-bernotok '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
++ archive_expsym_cmds="\$CC \${wl}-brtl $shared_flag"' -o $output_objdir/$realname ${wl}-soname "${wl}$soname" $libobjs $deplibs $compiler_flags ${allow_undefined_flag} ${wl}-bernotok '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
else
if test "$host_cpu" = ia64; then
if test $with_gnu_ld = no; then
-diff -ruN gcc-4.2.4.orig/ltconfig gcc-4.2.4/ltconfig
---- gcc-4.2.4.orig/ltconfig 2011-03-21 16:04:29 +0100
-+++ gcc-4.2.4/ltconfig 2011-03-21 16:14:16 +0100
+--- gcc-4.2.4/ltconfig
++++ gcc-4.2.4/ltconfig
@@ -1005,6 +1005,7 @@
# If using run time linking (on AIX 4.2 or later) use lib<name>.so instead of
# lib<name>.a to let people know that these are not typical AIX shared libraries.
@@ -89,8 +84,8 @@ diff -ruN gcc-4.2.4.orig/ltconfig gcc-4.2.4/ltconfig
else
# We preserve .a as extension for shared libraries though AIX4.2
# and later when we are not doing run time linking.
---- gcc-4.2.4.orig/gcc/config/rs6000/t-aix52
-+++ gcc-4.2.4.orig/gcc/config/rs6000/t-aix52
+--- gcc-4.2.4/gcc/config/rs6000/t-aix52
++++ gcc-4.2.4/gcc/config/rs6000/t-aix52
@@ -23,25 +23,32 @@
INSTALL_LIBGCC = install-multilib
diff --git a/sys-devel/gcc/files/4.2.2/ro-string.patch b/sys-devel/gcc/files/4.2.2/ro-string.patch
new file mode 100644
index 0000000000..1541e152ef
--- /dev/null
+++ b/sys-devel/gcc/files/4.2.2/ro-string.patch
@@ -0,0 +1,109 @@
+https://gcc.gnu.org/ml/gcc-patches/2012-08/msg01938.html
+
+diff -ruN gcc-4.2.4/libstdc++-v3/include/bits/basic_string.h /junk/base-2010.0u/portage/sys-devel/gcc-4.2.4-r01.11/work/gcc-4.2.4/libstdc++-v3/include/bits/basic_string.h
+--- gcc-4.2.4/libstdc++-v3/include/bits/basic_string.h 2007-10-14 20:22:22 +0200
++++ /junk/base-2010.0u/portage/sys-devel/gcc-4.2.4-r01.11/work/gcc-4.2.4/libstdc++-v3/include/bits/basic_string.h 2014-06-30 15:51:25 +0200
+@@ -174,7 +174,7 @@
+
+ // The following storage is init'd to 0 by the linker, resulting
+ // (carefully) in an empty string with one reference.
+- static size_type _S_empty_rep_storage[];
++ static size_type const _S_empty_rep_storage[];
+
+ static _Rep&
+ _S_empty_rep()
+@@ -182,7 +182,7 @@
+ // NB: Mild hack to avoid strict-aliasing warnings. Note that
+ // _S_empty_rep_storage is never modified and the punning should
+ // be reasonably safe in this case.
+- void* __p = reinterpret_cast<void*>(&_S_empty_rep_storage);
++ void* __p = const_cast<void*>(reinterpret_cast<void const*>(&_S_empty_rep_storage));
+ return *reinterpret_cast<_Rep*>(__p);
+ }
+
+@@ -204,12 +204,17 @@
+
+ void
+ _M_set_length_and_sharable(size_type __n)
+- {
+- this->_M_set_sharable(); // One reference.
+- this->_M_length = __n;
+- traits_type::assign(this->_M_refdata()[__n], _S_terminal);
+- // grrr. (per 21.3.4)
+- // You cannot leave those LWG people alone for a second.
++ {
++#ifndef _GLIBCXX_FULLY_DYNAMIC_STRING
++ if (__builtin_expect(this != &_S_empty_rep(), false))
++#endif
++ {
++ this->_M_set_sharable(); // One reference.
++ this->_M_length = __n;
++ traits_type::assign(this->_M_refdata()[__n], _S_terminal);
++ // grrr. (per 21.3.4)
++ // You cannot leave those LWG people alone for a second.
++ }
+ }
+
+ _CharT*
+@@ -1153,16 +1158,8 @@
+ * The value of the string doesn't change if an error is thrown.
+ */
+ iterator
+- erase(iterator __first, iterator __last)
+- {
+- _GLIBCXX_DEBUG_PEDASSERT(__first >= _M_ibegin() && __first <= __last
+- && __last <= _M_iend());
+- const size_type __pos = __first - _M_ibegin();
+- _M_mutate(__pos, __last - __first, size_type(0));
+- _M_rep()->_M_set_leaked();
+- return iterator(_M_data() + __pos);
+- }
+-
++ erase(iterator __first, iterator __last);
++
+ /**
+ * @brief Replace characters with value from another string.
+ * @param pos Index of first character to replace.
+diff -ruN gcc-4.2.4/libstdc++-v3/include/bits/basic_string.tcc /junk/base-2010.0u/portage/sys-devel/gcc-4.2.4-r01.11/work/gcc-4.2.4/libstdc++-v3/include/bits/basic_string.tcc
+--- gcc-4.2.4/libstdc++-v3/include/bits/basic_string.tcc 2007-03-30 19:11:22 +0200
++++ /junk/base-2010.0u/portage/sys-devel/gcc-4.2.4-r01.11/work/gcc-4.2.4/libstdc++-v3/include/bits/basic_string.tcc 2014-06-30 15:51:25 +0200
+@@ -75,10 +75,10 @@
+ // Linker sets _S_empty_rep_storage to all 0s (one reference, empty string)
+ // at static init time (before static ctors are run).
+ template<typename _CharT, typename _Traits, typename _Alloc>
+- typename basic_string<_CharT, _Traits, _Alloc>::size_type
++ typename basic_string<_CharT, _Traits, _Alloc>::size_type const
+ basic_string<_CharT, _Traits, _Alloc>::_Rep::_S_empty_rep_storage[
+ (sizeof(_Rep_base) + sizeof(_CharT) + sizeof(size_type) - 1) /
+- sizeof(size_type)];
++ sizeof(size_type)] = {};
+
+ // NB: This is the special case for Input Iterators, used in
+ // istreambuf_iterators, etc.
+@@ -391,6 +391,26 @@
+ }
+
+ template<typename _CharT, typename _Traits, typename _Alloc>
++ typename basic_string<_CharT, _Traits, _Alloc>::iterator
++ basic_string<_CharT, _Traits, _Alloc>::
++ erase(iterator __first, iterator __last)
++ {
++ _GLIBCXX_DEBUG_PEDASSERT(__first >= _M_ibegin() && __first <= __last
++ && __last <= _M_iend());
++
++ const size_type __size = __last - __first;
++ if (__size)
++ {
++ const size_type __pos = __first - _M_ibegin();
++ _M_mutate(__pos, __size, size_type(0));
++ _M_rep()->_M_set_leaked();
++ return iterator(_M_data() + __pos);
++ }
++ else
++ return __first;
++ }
++
++ template<typename _CharT, typename _Traits, typename _Alloc>
+ basic_string<_CharT, _Traits, _Alloc>&
+ basic_string<_CharT, _Traits, _Alloc>::
+ replace(size_type __pos, size_type __n1, const _CharT* __s,
diff --git a/sys-devel/gcc/gcc-4.2.4-r01.5.ebuild b/sys-devel/gcc/gcc-4.2.4-r01.5.ebuild
new file mode 100644
index 0000000000..3412391df3
--- /dev/null
+++ b/sys-devel/gcc/gcc-4.2.4-r01.5.ebuild
@@ -0,0 +1,208 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-4.2.4-r1.ebuild,v 1.16 2014/01/19 01:51:34 dirtyepic Exp $
+
+EAPI="2"
+
+PATCH_VER="1.3"
+UCLIBC_VER="1.0"
+
+inherit eutils toolchain flag-o-matic prefix
+
+DESCRIPTION="The GNU Compiler Collection"
+
+LICENSE="GPL-3+ LGPL-2.1+ || ( GPL-3+ libgcc libstdc++ ) FDL-1.2+"
+KEYWORDS="~ppc-aix ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ kernel_Darwin? ( ${CATEGORY}/binutils-apple )
+ kernel_AIX? ( ${CATEGORY}/native-cctools )
+ kernel_Interix? ( || ( ${CATEGORY}/native-cctools >=${CATEGORY}/binutils-2.16 ) )
+ !kernel_Darwin? ( !kernel_AIX? ( !kernel_Interix? (
+ ppc? ( >=${CATEGORY}/binutils-2.17 )
+ ppc64? ( >=${CATEGORY}/binutils-2.17 )
+ >=${CATEGORY}/binutils-2.15.94
+ ) ) )"
+
+src_prepare() {
+ toolchain_src_prepare
+
+ use vanilla && return 0
+
+ # work around http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33637
+ epatch "${FILESDIR}"/4.2.2/targettools-checks.patch
+
+ # http://bugs.gentoo.org/show_bug.cgi?id=201490
+ epatch "${FILESDIR}"/4.2.2/gentoo-fixincludes.patch
+
+ # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27516
+ epatch "${FILESDIR}"/4.2.2/treelang-nomakeinfo.patch
+
+ # call the linker without explicit target like on sparc
+ epatch "${FILESDIR}"/solaris-i386-ld-emulation-4.2.patch
+
+ # fix configure problem, bug #416577
+ epatch "${FILESDIR}"/4.2.2/solarisx86.patch
+
+ # add support for 64-bits native target on Solaris (includes fix for #416577)
+ epatch "${FILESDIR}"/4.2.2/solarisx86_64.patch
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ # fix nasty bootstrap problem: we need 4.2 due to no deps of MPC, GMP,
+ # MPFR, but 4.2 doesn't know about *_sol2 ld targets of >=binutils-2.21
+ # we likely have that one installed, so if so, we patch it to *_sol2
+ if has_version '>=sys-devel/binutils-2.21' ; then
+ einfo "Patching specs to target elf_*_sol2 for newer binutils"
+ sed -i \
+ -e '/TARGET_LD_EMULATION/s/elf_\(x86_64\|i386\)/elf_\1_sol2/g' \
+ gcc/config/i386/sol2-10.h || die
+ sed -i \
+ -e 's/elf\(32\|64\)_sparc/&_sol2/g' \
+ gcc/config/sparc/sol2-gld-bi.h || die
+ fi
+ fi
+
+ # make sure 64-bits native targets don't screw up the linker paths
+ epatch "${FILESDIR}"/solaris-searchpath.patch
+ epatch "${FILESDIR}"/no-libs-for-startfile.patch
+ # replace nasty multilib dirs like ../lib64 that occur on --disable-multilib
+ if use prefix; then
+ epatch "${FILESDIR}"/4.2.2/prefix-search-dirs.patch
+ eprefixify "${S}"/gcc/gcc.c
+ fi
+
+ # interix patch from http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15212
+ epatch "${FILESDIR}"/4.2.2/interix-x86.patch.bz2
+ # gcc sources are polluted with old stuff for interix 3.5 not needed here
+ epatch "${FILESDIR}"/4.2.2/interix-3.5-x86.patch
+ # define _ALL_SOURCE by default on Interix
+ epatch "${FILESDIR}"/${P}-interix-all-source.patch
+ # support for the $@#$% dir structure on 64bit SUA
+ epatch "${FILESDIR}"/${P}-interix-x64-support.patch
+ # make long double be 64bit on intierx, as libc was built with VC++ (which
+ # has 64 bit long doubles).
+ epatch "${FILESDIR}"/${P}-interix-long-double.patch
+
+ if [[ ${CHOST} == *-mint* ]] ; then
+ epatch "${FILESDIR}"/gcc-4.2.3-mint.patch
+ epatch "${FILESDIR}"/gcc-4.2.3-mint2.patch
+ fi
+
+ # http://gcc.gnu.org/PR20366
+ epatch "${FILESDIR}"/${P}-aix-largefiles.patch
+
+ # Always behave as if -pthread were passed on AIX (#266548)
+ epatch "${FILESDIR}"/4.2.2/aix-force-pthread.patch
+
+ # Always behave as if -Wl,-brtl were passed on AIX (#213277)
+ epatch "${FILESDIR}"/4.2.2/aix-runtimelinking.patch
+
+ # allow gcj compilation to succeed on platforms with libiconv
+ epatch "${FILESDIR}"/gcj-${PV}-iconvlink.patch
+
+ epatch "${FILESDIR}"/${PN}-4.2-pa-hpux-libgcc_s-soname.patch
+ epatch "${FILESDIR}"/${PN}-4.2-ia64-hpux-always-pthread.patch
+ epatch "${FILESDIR}"/4.2.2/pr26189-pa.patch
+ epatch "${FILESDIR}"/4.2.2/aix-bnoerok.patch
+ epatch "${FILESDIR}"/4.2.2/aix-lineno.patch
+ epatch "${FILESDIR}"/4.2.2/aix-pr46072.patch
+
+ # try /usr/lib32 in 32bit profile on x86_64-linux (needs --enable-multilib)
+ # but this does make sense in prefix only.
+ use prefix && epatch "${FILESDIR}"/${P}-linux-x86-on-amd64.patch
+
+ [[ ${CHOST} == ${CTARGET} ]] && epatch "${FILESDIR}"/gcc-spec-env.patch
+
+ [[ ${CTARGET} == *-softfloat-* ]] && epatch "${FILESDIR}"/4.0.2/gcc-4.0.2-softfloat.patch
+
+ epatch "${FILESDIR}"/4.2.2/aix-minimal-toc.patch
+ epatch "${FILESDIR}"/4.2.2/aix61-longdouble64.patch
+ epatch "${FILESDIR}"/4.2.2/aix-soname.patch
+ epatch "${FILESDIR}"/4.2.2/aix-libssp.patch
+ epatch "${FILESDIR}"/4.2.2/ro-string.patch
+}
+
+src_configure() {
+ case ${CTARGET}:" ${USE} " in
+ *-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
+ ;;
+ *-darwin7)
+ # libintl triggers inclusion of -lc which results in multiply
+ # defined symbols, so disable nls
+ EXTRA_ECONF="${EXTRA_ECONF} --disable-nls"
+ ;;
+ 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
+ ;;
+ *-interix*" bootstrap "*)
+ # with suacomp, on interix, we need to have some header files
+ # available, which complement the system headers. adding this
+ # to CC/CXX is the only way to get a stage1 gcc built during
+ # bootstrap. the rest will work as normal.
+ tc-export CC CXX
+ CC="${CC} -I${EPREFIX}/usr/include"
+ CXX="${CXX} -I${EPREFIX}/usr/include"
+ ;;
+ 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="${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
+
+ # 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
+}
+