sys-devel/gcc: Sync with Gentoo

It's from Gentoo commit fc30aec681ad047fc04225f48eca6716e7821bcb.
This commit is contained in:
Flatcar Buildbot 2023-10-23 07:15:31 +00:00 committed by Krzesimir Nowak
parent 21294d2ae5
commit 39a4903b40
19 changed files with 229 additions and 474 deletions

View File

@ -5,37 +5,30 @@ DIST gcc-10.5.0.tar.xz 77846412 BLAKE2B 9b71761f4015649514677784443886e59733ac38
DIST gcc-11-20230427.tar.xz 76165128 BLAKE2B dd896b418c1fce35a61005d5b5c90cfd1246d37d23c2a8fc08bacd7d7ca84c353f3ccf5de2370ae5e5ca95c7ae3deab3565b3f65eb78b611dbe5ad4a256516f0 SHA512 fada917a832be5d2e15ee32f24e19fc87b851dc8e6fc75d1be6d25d3510dba408ae3ef3b245ff239c51aa3d243c95f12269695611e5c8965ba55f5aa4730778d
DIST gcc-11-20230622.tar.xz 76199316 BLAKE2B a769dc6be63eabca3bc33944b471d727bf230e506773c85977156b187f12664f2cd3e0992a1faefda8ec88ff85d1a8d12795121baadc7e8b9653d69a8025e46e SHA512 8dbc5a4b54f2bc52458914705af40a00b33e46061dd5b335b4b4a6e96d17206fe480d3fec564dd11ebcca6168f054984d706b1b26b7e694e8b327692a13ae7d1
DIST gcc-11-20230824.tar.xz 76202120 BLAKE2B 243ce16e28c66d681bb27df32866947309f8fa386e258896651b6853e390da79304250669096fd55cafe0a9d5adf4b3a3cf5989302f4ad13660ece80639b545a SHA512 a9cab8bf61f2a572baba73a2a11271eeb61d43f07411df376a8568820c1373f64f635d747933fda1e942ae717b0ae9f1c810f662fc09ccb075940248bc48b582
DIST gcc-11-20230921.tar.xz 76227940 BLAKE2B b086b35bc7192be078d08f6c9363a9b343f8d97a1bc781870796cf564b829febeccb5f94739fb14a88357f7f66530ff3c23f298eed9341ffb6927a5ac4a40546 SHA512 20fd7e680303a8328e9c017ab21dc3cab46fe5684a08bfc48a342ec4e95cc94675db2e450483499f126b2d5943e3ef8115287a5b4da8718b966c0ffe9f79b925
DIST gcc-11-20230928.tar.xz 76217292 BLAKE2B d0c58f0e8e15a4efaa3faba9b83efdac9b96749836f776f2ef438cd0bcf74601e5d24b2c45e7edfb2cc44e5aee32c5a2b23c8efcb370e4cf902c98d930664157 SHA512 ddbc362d8b3177432886861da89e68b187deeaae7d40aa03881f8135931475ba688688fd3217d95dfb9d01d62a634808a04ab0a4c37f12332155bdabce459115
DIST gcc-11-20231005.tar.xz 76222664 BLAKE2B f5671cdb01df00bd917f59ad33ac91a4904514ed25b9879e6c10cad15a86666709dd7ff9425ba99de45b811e3a1afde977a5683b6e9c8de91da8080f37dc9cce SHA512 4f0f0543655f398ea32c08f2b18be2430652ef3537b1d46ecbb9e522a7701bea2ffe04ed6fe6a179596a5f8da02fbd5fdc4758c6b9e8e2e9d9f0805383c4fc1e
DIST gcc-11-20231012.tar.xz 76228876 BLAKE2B f48d440cefdad9eb021116b72ba41a7cb8b3af904abafb26bd49113f3bdaacbeab86f3d7a783130ea1a1f8c6556d1dc83b8176ae96973c524dc8606443e0be0a SHA512 7cae1a36a113e0184b1c10c7892a808a6ec38ecd4b1c482d589717c68474873093eebd68465694344ee1208d0e118f5d91b3a19f981da22dfa95ee86663572bb
DIST gcc-11-20231019.tar.xz 76228604 BLAKE2B cc1278eb4beb598d81b1629fe72095487709f9e1a7229dba0512ba8273767b05e79c7c02104a1aa28b699d42ef0f10f7b960f1a37693c1508df9846edfe80b82 SHA512 f98ce83e0d75fe4459e1852d900924e8e3c31853ba54e38e46f040f4d109726b6c171bbb51e9230c459d617c3c8ac37708ef65997d6797a1686b60cdca3107a0
DIST gcc-11.4.0-musl-patches-2.tar.xz 4308 BLAKE2B a2335e155fc57816fed822a648e0eaefafcba9d04e1ad0fd7baeea5a694ab6f5e3c1678cb406f2a1bd17bab25cb01699d032713a1ccf337948dfda2093844607 SHA512 17b84f907cb1bd763873655e6f35fd3ed55a40b602b70a626f04f83b4cc89c6261db1661de78d4d969187a8c56e9f6305b742515a3836b962248a21df0df5d0c
DIST gcc-11.4.0-patches-10.tar.xz 13852 BLAKE2B 54937d13e30e2a5303c7e197fae09eeed35ca0b9783625e02578fcee829b5503fb22d664366322b304df7d01ae807d00af7c93db3e3ceebe4851e15647724f87 SHA512 31b4d7a2e7cc589e92e12c3583d13d41c523cafbd309bc0532df9b68ea2473c89daef4c0edd3ce2917b5823d81a7792f145b9449f16277d0d64c22ceff50bbb9
DIST gcc-11.4.0-patches-9.tar.xz 14704 BLAKE2B 9aa2ecbac493d3040694e9930738e57d59a764b90ab92b91709c319b883f28ad108767e5d11e8b62af40bf1e583d5ff83a03e8c895f904bc6f41315ce9ab4f0a SHA512 ac8b7c6c382ffacc4e9d08299440fc237fa366ec36fb8eb7a8d426b64a4186384a262e6380dc83ed7f7240125ce26a8435c8a4e0e13976ef2652067a7129bd17
DIST gcc-12-20230526.tar.xz 79780444 BLAKE2B 6f6eca272ab506e16a231003c399e28572595c82fbaaec9deb14b78ff9fc493fb24afe1c375d4f2fd75e9813805934857ef2ceb6c05b7977dbfe2e50abdc3ec9 SHA512 fb190ce5bf3d38a1899016475c1551550d44c6f71f1f1a71ced545cbb2aff0446bd2765230b0920379579a13103a507ffc1e197ac69afb0a4f08efe11b50918d
DIST gcc-12-20230825.tar.xz 79804260 BLAKE2B 4d3eb40eb5954d497b3e9586dad0d18c9e561d3fdd0bdccc5c9572edfbe024a235e30371a10116d98c77f0b6042739600c57ac99253d34f0fbb8b8465b187e1f SHA512 a6cd868f474c356886460b95263807828f9a379ce97524611ec504d6a9149ca1f92585128e6ffd03fa2647442e72fde6ebe987fd49f2fc49d8df39ab056905c5
DIST gcc-12-20230922.tar.xz 79801244 BLAKE2B 9b7681a742ed7aa81f06f726d765d4b1259c199ec3fb5c3072b789491b99c966f1a5d90fbe357136b5f1dd8b046653c51653b8a7049ef0768049534b5364816a SHA512 41542d2ab1ebd3c5a342159bc58a2f891d89a6b87533a928193dd28dc8dc3e3b3e3e4e547be20c930f8e85014c76128cbedbe6f846524b67acd3af16e93c3189
DIST gcc-12-20230929.tar.xz 79799412 BLAKE2B b4290ca0c9dd115e7e893c49ee205ab6c310f5c2b3087a6f619dca1838aef4c813fad349a0b618cbd8d107ae8d1a2307bc3499f32bf53c78d3dbda67a4991c99 SHA512 98bd7fe68d3ddd565c56182331129c5270e6a8b02bcb687e58af55e4a82644e6429e2ef7171216a19841fa8fc6fd605c0fabb38d7844daf278fc3bbb634cfc08
DIST gcc-12-20231006.tar.xz 79786912 BLAKE2B 09da5378d449b6d1d5d5af82bfa18b6d073a4f255afef5e19a086e72d41ba0a204705353a4ef7df8c89ace4de639573fe98ab37f90e0f0761743336fcfb023b2 SHA512 21975c70bc7958a44e4785881cc4c64bc842ec28e34a10880ef7369299af0bccdeb54ceb6e303ca031795a678e1649100a6924110268ba53147ae6e7da6acb91
DIST gcc-12-20231013.tar.xz 79793868 BLAKE2B 39844a7ff9b5bfd1201816b5758aa9937fb69f28f43a6c6f3aba1debbc24e0908b0af20fd1257cfbddf5bfd23c3d8ea264a1743822443f8ed12c03b874732e76 SHA512 52ec9815535634db0ea47521a416b2be4fc483b1b90e10cac5d6235e661a5c142d8d5c9f3d06cc856572fc38d3a9abe601b9c1fa918f115dc7d1dc81db9d9ceb
DIST gcc-12-20231020.tar.xz 79803424 BLAKE2B 2bbd11b84a203a305279587ba8e8771778b425f507b38e6c9dd649c9124e0c77fdf23451150d5e70495ba4a978c449f0b5cd7a5355f63ed1e322585532d6976a SHA512 af6af7b0c6dc95d624bec7f17a092baf2c7258e3b87c372023ae3d1e07b30c7c155f21e24d6ed8e8e55378b1658e18dcb9d2658ddb7f534921b5ac25dab957d0
DIST gcc-12.3.0-musl-patches-1.tar.xz 3572 BLAKE2B c7bf65f7c9ea8023ddaac821ee2b778622fa310ac72a72b2f7032494a8f304eac86217f9204622e6c21aaef9952bece0d09bc126facd4f42b602927909815ab5 SHA512 babc279fea2c1fd4c018815f2f5630214fd46015ce9f365c28af242681d51818eaca30ce298eddcab1eed5ac5f2759e2b47b2335afab9d722b4469a6d4fec326
DIST gcc-12.3.0-patches-2.tar.xz 14236 BLAKE2B 06c43662c9abb0fa3cf90d5e2273c69aecb9158e6cf6f23c04754ed5d686be2616e81e2502eb16f4298ddd50518ca7677e13249da9e9b091162d3931ff65e4fe SHA512 b0d4b85dbf1a54aaaa1997203b872e3106906b4ad49cde57e1428bc22b2f8e2d73b8cb10ae0d0b792aebaf664594da4d1dea04c44ddc34e59047410766db04d1
DIST gcc-13-20230826.tar.xz 84285788 BLAKE2B c25be594e322dd7145245c42ae21b98aa9e3e6ae69f1fa313830e40bf2e8fcb8435762f1c9d3f1ca1dbf31653bdc76a658bec708b7850fe40a7c55504ac30618 SHA512 3d47632e90651bd50a881c727c1ef2aa3322b4fc3e082919ae430270901abf8a05a34fe93f8b678c10dc9a0758f93dc3b33ed5947c8743dab453d2b50c063722
DIST gcc-13-20230923.tar.xz 84304612 BLAKE2B 3820746f13c5b0dd741506c758ed8de4650fa5330b60802b627a7254f5b4b08da2493f12120aa24b712f98ae39fe2f188f05c79ad22ffdb3de67b2ebe49005aa SHA512 12c0aafb7e91a18224b9b94e7e7e34b57c2e447cc85f51c8ddab672fa3fe31c784d42c15a8a1eb0da8fc9cc321c24163b12fb4f71e7da91b0169a278f2b83713
DIST gcc-13-20230930.tar.xz 84312516 BLAKE2B f2d44c7a5a9d1996cfb02c1b08e4a4758434d39dde204f3acd5917828130d234ea6af3ec594aaa9aa60cd7cd4ce09dcf873c69ee801bae0de2b3c719515235cd SHA512 ca1c59c53af51c3e46a340210516594184fdfcb97bbb693c59a675d54239d8386732537632e486ed7c6030dbf3d836d07917d6dc9808071a55b1f411e46d3d10
DIST gcc-13-20231007.tar.xz 84313608 BLAKE2B 7c91f0e9329986df113c73f94325300918afcc58c5d2f2a8d4818d5f8c600c385160dd083f9a993138ede53f9e2163a84b8886e62cf6b83b03089c2c5c55f7b5 SHA512 5e3c7f4ec2b1d9f0f65097b0d992bf5acfafb2830b1394a832a4e95163a369b9beb42681cd0fd09aa25494d8b83bc377f1f03f0319dd785d4eea372b8477074b
DIST gcc-13-20231014.tar.xz 84317080 BLAKE2B 18c2326f203951d16904e4f2bf7fa0cd55da0460b19a9c9ce45de94b41fa71f8c1b8eb9d08700de427b3e02c2e61d3cbcc85cb6f27236717dca8359bfaf4c534 SHA512 406673a62deba759fc0532a801b3f57cabf894ea328587b23e62a707ba5767b0e3ae9b3f86bf3c6fcf13e8a3c30bc470e6598b625c8231efb629034211c162c2
DIST gcc-13-20231021.tar.xz 84324516 BLAKE2B 0b55e215eeb1240c9c03664e6e3b65b9321ad3ea6bfd81464a652bd58992bb5f80748ebdf0ea284feb4a50ced7ac4d19cb97f480ed5f98f753fbb93f831f799f SHA512 f713492b0a92d3cd61e0f4d1ed8cdd70e5be7fb77df1ade54e760e800f213a7e6004cc7bdb338dffbd0b768f4c39a88d6b45e86b957f3ff689f2abf5c39686b1
DIST gcc-13.2.0-musl-patches-2.tar.xz 5292 BLAKE2B c057d6574d03c05854edaa9f3fd40e9149662b04f3ac7a7db3eb078d73a7b535726d1bf52e5b12736dedb2f9898ad731f2e48a6421fcfbf7b90f929dee072fcb SHA512 a691da0c87c443a5e9d23731f4005f27871c5b12bc9102873ffa24d374aa7b9fbd187c4f5635d23fa9ffb17e351e76173c2d3fdf40646e355c4cb314b538de69
DIST gcc-13.2.0-patches-7.tar.xz 37064 BLAKE2B 4a8700a8d44bfaa84926f8bfd0da4c5b0c0377f47fc0679456e909f7c9029b9cf1b72c0ba0bc505d9035d5c38e27f7e5b029727eaf2bc7aca417a6be966b2f43 SHA512 f440c97e6782ecb8581d41608e31a648ac426e2d870bc1d171da7794cdeff2fd0546cae0c7214e72fd3a00ead8a5c66f3f633b670b74553a2f3a40378b51f20c
DIST gcc-13.2.0-patches-8.tar.xz 34872 BLAKE2B 58e8229384c7b1bfdf3b576c240599e4e9feece94dd39dfbe5e94f9978ca6f165edfa00579bbd2d5410c295d9114e3575a5efc78fa4f976b43bb8c3fb3bfb07f SHA512 bc5cfeef5e8053dbdb1e336f3374dbf37233e08b5f2a0635accf2ae746fa9658f2201971901c73f1332f2f36f21916709ff4ca1e3be7d1e05a0774fc6c7ecd4d
DIST gcc-14-20230917.tar.xz 85875468 BLAKE2B afd39683b7ae9e84c6fa81d6ba6059a1411463ab45fce81eccf34dfafb29ff633a287826063da547014c12b9e0244d2a022ddb1fef1c73edd882249c5be695e3 SHA512 a1f79805278e61c9feb4020c62e07c666fa724d872fc55dd0372a7d17cc2c2e2e8d2d149e748499e75331bcb28a6b1a6641c20111a6d8b871dddc1efe957608d
DIST gcc-14-20230924.tar.xz 85950048 BLAKE2B cc353b46f963eca7ad820fe35fb14ece3d76714466ee6ac227433fddc101e76c40d71ce4bc6363e2bc5c3fdf233ab7479bf18542be3df6e1f77690090d08d351 SHA512 19a93b35660f8960b5a9385b9312d9555d83bb8ca8662492b54ece3c1d634da0fd6614e677ce6f1738ac2eadc5dd18b2ce311d2adde6c41f34db8598373bd335
DIST gcc-14-20231001.tar.xz 85968476 BLAKE2B 3a3749b1c5346472977e436d09aff6cf44e372b2a05a6227df34b054070de9a438ead20f4da114525bc3e9d7d13bc111fa292ffd03fefb4428a22d00884aaa5f SHA512 bc342152c7d70ddc4b6b3a7c8fb769aca971d0f8432eb842b53e9c7e3075f6f57295fbcfae14f288709fa846e58eabdb07e6e3185195f6d1820cee69e9a2a586
DIST gcc-14-20231008.tar.xz 86002968 BLAKE2B 9b59a66e269b3a80f344e96619ed4fa99c5a1f03036b6fd577edac22cf8dfb2b4aa970bb30214dc4a32476c5b22970deea975f808e9a788e5cef8482d704f2c0 SHA512 6cc3030a16111eb57e02d40920e34b967ce1c006eae353f6d969722ce2c0cd3ed711036f826b61858e568a749f9c97ba9550283a5ba8a6c8d41a7024b475f32b
DIST gcc-13.2.0-patches-9.tar.xz 45724 BLAKE2B 5135f00ed2ac0db8b1e295f2ba9abb44fd4b5e26037083f012c5c104c301fd11c1b04179a7f777f1433d3e6e3e50e64d79a7f9ff263269cde52ded7ca5416448 SHA512 81158d7b260d2ca457553f2749333aea69b40b4896a156a2b81168124bf91469b8124c788e54b44cadc1215bbb69590d013385fbab2b4962ed5e36c697710165
DIST gcc-14-20231015.tar.xz 86138880 BLAKE2B e6dece3d6c4337c5ac85fec3fcd31117baf06a7c510440d2433d7750d4559ce5ccfb36edf1ed7dd003d55322dccf42ca811f16a9d22b19e3c784f48f804f688d SHA512 e0de6cd24278998138df8ac1e7e0ea2fe8f062f3bd4e1c88be5da3e468959dc3df41f076c1ce1ed6c919a4ddbd6cfff638cd101e6bd6a3a9ae0d67ded360a700
DIST gcc-14-20231022.tar.xz 86217644 BLAKE2B e3248d78323370e3afa3082e89e507860d45d4eaebdf479edebca71deab1a85a6b27845057090fb155e5e53e5d3eb24647e2482ebf1f63645a73ad3561b26b94 SHA512 bbe013c7d226c64e4b4f95c12464f48177c8dd7acfdd1f6f8f2f650c48a4e11e70b724728accff9f135fc6d234fb7dc01ca20a414468ccf43c2b81d0ddc73e1f
DIST gcc-14.0.0-musl-patches-1.tar.xz 3576 BLAKE2B 692baee8a7709905d53aeb150d73a3721c4ba47ee5f397cfb1b5be905cf003ca02b60c94ee294d90ac39645cd5cdf186c7a3aa950c47d8cf680c128ed705b807 SHA512 0592ab98a7142e404623a6511c67dff61e9ade32c3fb2c0e75b456306e0af3799ad13252b50b3d2fdd31e5815d7f0b16b0ad63ab8386fe4d78729fc9c182d617
DIST gcc-14.0.0-patches-2.tar.xz 11484 BLAKE2B 6ff968051d286f21eb7f4ec80303b232530c153cca8d9e61ddfdf3675ef8c5740223a8b720ec9d5c4561b505993c675cc6fc7a9bab659ee1db99e1d97911eb74 SHA512 b255338d6110d9bfe211ba14da7b186f69b81503dba6e4ec19ee6fa37d44c0690e713c763abe27ce934ff7f9e5d0c8788a54c30587f07f65858b1e817cbf7247
DIST gcc-14.0.0-patches-3.tar.xz 11500 BLAKE2B 508ac2fc1d15cba29921c5faf96f45ad77fc3aae05bcdb4a9eb3114ad23a2afa4810cfafd71ff3b77ea2bae9ed809f9de615396486acb6086ddf316a008fa1c8 SHA512 cac927be1ca191b98963bda65b5fb4eda3f6449d5f4e9c42a0db3e4036ec4963ba7675523cfa823a5938b7e6a5260c4c5e2f9b268414a94fab7418dc1cbbfd58
DIST gcc-14.0.0-patches-4.tar.xz 24132 BLAKE2B 95f382ff1232bc681f4fbd28134a5e781bbce0e472d36b9348f54153791ce2b942c9ca3ea0931df8ed5ef48fb0e71f5a5a941e90dfcbd7162f52a4a6a2df9133 SHA512 867c982ee4ce6e10bc76949d30749427e8d070261fd9253cd1ca6b21273f04303c317057176ad7a58ecde06104d295c3af7526151bab7339851f9b06214bba3d
DIST gcc-14.0.0-patches-5.tar.xz 21180 BLAKE2B 4ad48161bb35320141df60b99d2c7791df72f719931a649b45842df2acfb84428815efa11ecad6ff4f219a1fde77ffc5e4ed302e2f8f04e0911f514addb5cc7f SHA512 b47a1bbd7218fe03d6cc4968cb51614c34d1548fa85781c6b85cfa901cd43130f9c503404502c92a629ac6b23559fe3bccf38e3bbcb257524941aaec46774cff
DIST gcc-14.0.0-patches-6.tar.xz 20908 BLAKE2B fc13578e8d09efe262ba0f46a730afda70881d605af676faf476c73a6074845d43ee68bce814736da8198ed8dfee13553568b67d276a6299b3e7a256dae1e10e SHA512 0ba63e151a46116b0fbf5e9f27e98dfe4f75f42893719742a0dfe6e8448ed4c6e7c5101fde534697f0e62620aafc2a82430223e7231099fdabc43beed049ed09
DIST gcc-8.5.0-patches-4.tar.xz 18616 BLAKE2B 7594cbaea5daecf1a0b3d526c06aeba0a84c6da66aee2e105a51fda6be8d30a37ccc3814281b284a4582d892a1d556bca063551584edfc2525bed8ea5b6888e7 SHA512 1aa5742c361186637e7855f06feb1a4547e7d4d5de6e51f3d049e0ef3c19e2eff179465f52781739f59422035b7f8e4c0efa3844849f920f3c96acfdc37ca6a6
DIST gcc-8.5.0.tar.xz 63841008 BLAKE2B aa81a1a730fd7371360f6abed6ba78b5843fd18c58d5de5687acc320741b9e430e85df3535a1ef7a26051409be8d2f0945f503e5968480d919103123a99d4b12 SHA512 92f599680e6b7fbce88bcdda810f468777d541e5fddfbb287f7977d51093de2a5178bd0e6a08dfe37090ea10a0508a43ccd00220041abbbec33f1179bfc174d8
DIST gcc-9.5.0-patches-2.tar.xz 14324 BLAKE2B 1d3bf3e673108ad2fcdcb86daefb4603d1c9f6aa815e34d1591054d466b76d6f50cce124ab4760528c4951ea16eb00888a3e6485417f81ebf250548732df4a8e SHA512 a6d6f650aaf0bd193a17ac279649f0544a282cea295824384c59341c3000eac4b574b60e00dd427585d928f9768166abf85168b47772132790ad98854acacbbf

View File

@ -0,0 +1,212 @@
https://gcc.gnu.org/PR111845
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=f1744dd50bb1661c98b694ff907cb0a1be4f6134
From f1744dd50bb1661c98b694ff907cb0a1be4f6134 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek <jakub@redhat.com>
Date: Wed, 18 Oct 2023 12:37:40 +0200
Subject: [PATCH] tree-ssa-math-opts: Fix up match_uaddc_usubc [PR111845]
GCC ICEs on the first testcase. Successful match_uaddc_usubc ends up with
some dead stmts which DCE will remove (hopefully) later all.
The ICE is because one of the dead stmts refers to a freed SSA_NAME.
The code already gsi_removes a couple of stmts in the
/* Remove some statements which can't be kept in the IL because they
use SSA_NAME whose setter is going to be removed too. */
section for the same reason (the reason for the freed SSA_NAMEs is that
we don't really have a replacement for those cases - all we have after
a match is combined overflow from the addition/subtraction of 2 operands + a
[0, 1] carry in, but not the individual overflows from the former 2
additions), but for the last (most significant) limb case, where we try
to match x = op1 + op2 + carry1 + carry2; or
x = op1 - op2 - carry1 - carry2; we just gsi_replace the final stmt, but
left around the 2 temporary stmts as dead; if we were unlucky enough that
those referenced the carry flag that went away, it ICEs.
So, the following patch remembers those temporary statements (rather than
trying to rediscover them more expensively) and removes them before the
final one is replaced.
While working on it, I've noticed we didn't support all the reassociated
possibilities of writing the addition of 4 operands or subtracting 3
operands from one, we supported e.g.
x = ((op1 + op2) + op3) + op4;
x = op1 + ((op2 + op3) + op4);
but not
x = (op1 + (op2 + op3)) + op4;
x = op1 + (op2 + (op3 + op4));
Fixed by the change to inspect also rhs[2] when rhs[1] didn't yield what
we were searching for (if non-NULL) - rhs[0] is inspected in the first
loop and has different handling for the MINUS_EXPR case.
2023-10-18 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/111845
* tree-ssa-math-opts.cc (match_uaddc_usubc): Remember temporary
statements for the 4 operand addition or subtraction of 3 operands
from 1 operand cases and remove them when successful. Look for
nested additions even from rhs[2], not just rhs[1].
* gcc.dg/pr111845.c: New test.
* gcc.target/i386/pr111845.c: New test.
---
gcc/testsuite/gcc.dg/pr111845.c | 16 ++++++++
gcc/testsuite/gcc.target/i386/pr111845.c | 47 +++++++++++++++++++++++
gcc/tree-ssa-math-opts.cc | 48 +++++++++++++++---------
3 files changed, 94 insertions(+), 17 deletions(-)
create mode 100644 gcc/testsuite/gcc.dg/pr111845.c
create mode 100644 gcc/testsuite/gcc.target/i386/pr111845.c
diff --git a/gcc/testsuite/gcc.dg/pr111845.c b/gcc/testsuite/gcc.dg/pr111845.c
new file mode 100644
index 000000000000..1bcb4f88e6f1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr111845.c
@@ -0,0 +1,16 @@
+/* PR tree-optimization/111845 */
+/* { dg-do compile } */
+/* { dg-options "-O2 --param tree-reassoc-width=2" } */
+
+int a, b;
+unsigned int c, d, e;
+
+void
+foo (int x)
+{
+ b += d;
+ c += b < d;
+ b += e = a < x;
+ c += b;
+ c += b < e;
+}
diff --git a/gcc/testsuite/gcc.target/i386/pr111845.c b/gcc/testsuite/gcc.target/i386/pr111845.c
new file mode 100644
index 000000000000..d52110a40422
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr111845.c
@@ -0,0 +1,47 @@
+/* PR tree-optimization/111845 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -g -masm=att" } */
+/* { dg-final { scan-assembler-times "\tadcq\t" 8 { target lp64 } } } */
+/* { dg-final { scan-assembler-times "\tadcl\t" 8 { target ia32 } } } */
+
+unsigned long l, m;
+
+__attribute__((noipa)) void
+foo (unsigned long x, unsigned long y, unsigned long h, unsigned long i, int a, int b)
+{
+ unsigned long c, d;
+ unsigned long e = __builtin_add_overflow (x, y, &c);
+ unsigned long f = __builtin_add_overflow (c, a < b, &d);
+ m = ((h + i) + e) + f;
+ l = d;
+}
+
+__attribute__((noipa)) void
+bar (unsigned long x, unsigned long y, unsigned long h, unsigned long i, int a, int b)
+{
+ unsigned long c, d;
+ unsigned long e = __builtin_add_overflow (x, y, &c);
+ unsigned long f = __builtin_add_overflow (c, a < b, &d);
+ m = (h + (i + e)) + f;
+ l = d;
+}
+
+__attribute__((noipa)) void
+baz (unsigned long x, unsigned long y, unsigned long h, unsigned long i, int a, int b)
+{
+ unsigned long c, d;
+ unsigned long e = __builtin_add_overflow (x, y, &c);
+ unsigned long f = __builtin_add_overflow (c, a < b, &d);
+ m = h + (i + (e + f));
+ l = d;
+}
+
+__attribute__((noipa)) void
+qux (unsigned long x, unsigned long y, unsigned long h, unsigned long i, int a, int b)
+{
+ unsigned long c, d;
+ unsigned long e = __builtin_add_overflow (x, y, &c);
+ unsigned long f = __builtin_add_overflow (c, a < b, &d);
+ m = h + ((i + e) + f);
+ l = d;
+}
diff --git a/gcc/tree-ssa-math-opts.cc b/gcc/tree-ssa-math-opts.cc
index 51c14d6bad9f..363f31646691 100644
--- a/gcc/tree-ssa-math-opts.cc
+++ b/gcc/tree-ssa-math-opts.cc
@@ -4581,6 +4581,7 @@ match_uaddc_usubc (gimple_stmt_iterator *gsi, gimple *stmt, tree_code code)
if (!INTEGRAL_TYPE_P (type) || !TYPE_UNSIGNED (type))
return false;
+ auto_vec<gimple *, 2> temp_stmts;
if (code != BIT_IOR_EXPR && code != BIT_XOR_EXPR)
{
/* If overflow flag is ignored on the MSB limb, we can end up with
@@ -4615,26 +4616,29 @@ match_uaddc_usubc (gimple_stmt_iterator *gsi, gimple *stmt, tree_code code)
rhs[0] = gimple_assign_rhs1 (g);
tree &r = rhs[2] ? rhs[3] : rhs[2];
r = r2;
+ temp_stmts.quick_push (g);
}
else
break;
}
- while (TREE_CODE (rhs[1]) == SSA_NAME && !rhs[3])
- {
- gimple *g = SSA_NAME_DEF_STMT (rhs[1]);
- if (has_single_use (rhs[1])
- && is_gimple_assign (g)
- && gimple_assign_rhs_code (g) == PLUS_EXPR)
- {
- rhs[1] = gimple_assign_rhs1 (g);
- if (rhs[2])
- rhs[3] = gimple_assign_rhs2 (g);
- else
- rhs[2] = gimple_assign_rhs2 (g);
- }
- else
- break;
- }
+ for (int i = 1; i <= 2; ++i)
+ while (rhs[i] && TREE_CODE (rhs[i]) == SSA_NAME && !rhs[3])
+ {
+ gimple *g = SSA_NAME_DEF_STMT (rhs[i]);
+ if (has_single_use (rhs[i])
+ && is_gimple_assign (g)
+ && gimple_assign_rhs_code (g) == PLUS_EXPR)
+ {
+ rhs[i] = gimple_assign_rhs1 (g);
+ if (rhs[2])
+ rhs[3] = gimple_assign_rhs2 (g);
+ else
+ rhs[2] = gimple_assign_rhs2 (g);
+ temp_stmts.quick_push (g);
+ }
+ else
+ break;
+ }
/* If there are just 3 addends or one minuend and two subtrahends,
check for UADDC or USUBC being pattern recognized earlier.
Say r = op1 + op2 + ovf1 + ovf2; where the (ovf1 + ovf2) part
@@ -5039,7 +5043,17 @@ match_uaddc_usubc (gimple_stmt_iterator *gsi, gimple *stmt, tree_code code)
g = gimple_build_assign (ilhs, IMAGPART_EXPR,
build1 (IMAGPART_EXPR, TREE_TYPE (ilhs), nlhs));
if (rhs[2])
- gsi_insert_before (gsi, g, GSI_SAME_STMT);
+ {
+ gsi_insert_before (gsi, g, GSI_SAME_STMT);
+ /* Remove some further statements which can't be kept in the IL because
+ they can use SSA_NAMEs whose setter is going to be removed too. */
+ while (temp_stmts.length ())
+ {
+ g = temp_stmts.pop ();
+ gsi2 = gsi_for_stmt (g);
+ gsi_remove (&gsi2, true);
+ }
+ }
else
gsi_replace (gsi, g, true);
/* Remove some statements which can't be kept in the IL because they
--
2.39.3

View File

@ -37,7 +37,7 @@ if tc_is_live ; then
EGIT_BRANCH=releases/gcc-$(ver_cut 1)
elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
# Don't keyword live ebuilds
KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
:;
fi

View File

@ -37,7 +37,7 @@ if tc_is_live ; then
EGIT_BRANCH=releases/gcc-$(ver_cut 1)
elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
# Don't keyword live ebuilds
KEYWORDS="~alpha ~amd64 ~arm ~arm64 hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc x86"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
:;
fi

View File

@ -1,64 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
TOOLCHAIN_PATCH_DEV="sam"
PATCH_GCC_VER="11.4.0"
PATCH_VER="10"
MUSL_VER="2"
MUSL_GCC_VER="11.4.0"
if [[ ${PV} == *.9999 ]] ; then
MY_PV_2=$(ver_cut 2)
MY_PV_3=1
if [[ ${MY_PV_2} == 0 ]] ; then
MY_PV_2=0
MY_PV_3=0
else
MY_PV_2=$((${MY_PV_2} - 1))
fi
# e.g. 12.2.9999 -> 12.1.1
TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3}
elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
# Cheesy hack for RCs
MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5)
MY_P=${PN}-${MY_PV}
GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz"
TOOLCHAIN_SET_S=no
S="${WORKDIR}"/${MY_P}
fi
inherit toolchain
if tc_is_live ; then
# Needs to be after inherit (for now?), bug #830908
EGIT_BRANCH=releases/gcc-$(ver_cut 1)
elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
# Don't keyword live ebuilds
#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
:;
fi
if [[ ${CATEGORY} != cross-* ]] ; then
# Technically only if USE=hardened *too* right now, but no point in complicating it further.
# If GCC is enabling CET by default, we need glibc to be built with support for it.
# bug #830454
RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )"
DEPEND="${RDEPEND}"
BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]"
fi
src_prepare() {
local p upstreamed_patches=(
# add them here
)
for p in "${upstreamed_patches[@]}"; do
rm -v "${WORKDIR}/patch/${p}" || die
done
toolchain_src_prepare
eapply_user
}

View File

@ -1,64 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
TOOLCHAIN_PATCH_DEV="sam"
PATCH_GCC_VER="11.4.0"
PATCH_VER="10"
MUSL_VER="2"
MUSL_GCC_VER="11.4.0"
if [[ ${PV} == *.9999 ]] ; then
MY_PV_2=$(ver_cut 2)
MY_PV_3=1
if [[ ${MY_PV_2} == 0 ]] ; then
MY_PV_2=0
MY_PV_3=0
else
MY_PV_2=$((${MY_PV_2} - 1))
fi
# e.g. 12.2.9999 -> 12.1.1
TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3}
elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
# Cheesy hack for RCs
MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5)
MY_P=${PN}-${MY_PV}
GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz"
TOOLCHAIN_SET_S=no
S="${WORKDIR}"/${MY_P}
fi
inherit toolchain
if tc_is_live ; then
# Needs to be after inherit (for now?), bug #830908
EGIT_BRANCH=releases/gcc-$(ver_cut 1)
elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
# Don't keyword live ebuilds
#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
:;
fi
if [[ ${CATEGORY} != cross-* ]] ; then
# Technically only if USE=hardened *too* right now, but no point in complicating it further.
# If GCC is enabling CET by default, we need glibc to be built with support for it.
# bug #830454
RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )"
DEPEND="${RDEPEND}"
BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]"
fi
src_prepare() {
local p upstreamed_patches=(
# add them here
)
for p in "${upstreamed_patches[@]}"; do
rm -v "${WORKDIR}/patch/${p}" || die
done
toolchain_src_prepare
eapply_user
}

View File

@ -37,7 +37,7 @@ if tc_is_live ; then
EGIT_BRANCH=releases/gcc-$(ver_cut 1)
elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
# Don't keyword live ebuilds
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ~ppc ppc64 ~riscv ~s390 sparc x86"
:;
fi

View File

@ -1,64 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
TOOLCHAIN_PATCH_DEV="sam"
PATCH_GCC_VER="12.3.0"
PATCH_VER="2"
MUSL_VER="1"
MUSL_GCC_VER="12.3.0"
if [[ ${PV} == *.9999 ]] ; then
MY_PV_2=$(ver_cut 2)
MY_PV_3=1
if [[ ${MY_PV_2} == 0 ]] ; then
MY_PV_2=0
MY_PV_3=0
else
MY_PV_2=$((${MY_PV_2} - 1))
fi
# e.g. 12.2.9999 -> 12.1.1
TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3}
elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
# Cheesy hack for RCs
MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5)
MY_P=${PN}-${MY_PV}
GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz"
TOOLCHAIN_SET_S=no
S="${WORKDIR}"/${MY_P}
fi
inherit toolchain
if tc_is_live ; then
# Needs to be after inherit (for now?), bug #830908
EGIT_BRANCH=releases/gcc-$(ver_cut 1)
elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
# Don't keyword live ebuilds
#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
:;
fi
if [[ ${CATEGORY} != cross-* ]] ; then
# Technically only if USE=hardened *too* right now, but no point in complicating it further.
# If GCC is enabling CET by default, we need glibc to be built with support for it.
# bug #830454
RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )"
DEPEND="${RDEPEND}"
BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]"
fi
src_prepare() {
local p upstreamed_patches=(
# add them here
)
for p in "${upstreamed_patches[@]}"; do
rm -v "${WORKDIR}/patch/${p}" || die
done
toolchain_src_prepare
eapply_user
}

View File

@ -1,65 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
TOOLCHAIN_PATCH_DEV="sam"
PATCH_GCC_VER="13.2.0"
PATCH_VER="7"
MUSL_VER="2"
MUSL_GCC_VER="13.2.0"
if [[ ${PV} == *.9999 ]] ; then
MY_PV_2=$(ver_cut 2)
MY_PV_3=1
if [[ ${MY_PV_2} == 0 ]] ; then
MY_PV_2=0
MY_PV_3=0
else
MY_PV_2=$((${MY_PV_2} - 1))
fi
# e.g. 12.2.9999 -> 12.1.1
TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3}
elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
# Cheesy hack for RCs
MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5)
MY_P=${PN}-${MY_PV}
GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz"
TOOLCHAIN_SET_S=no
S="${WORKDIR}"/${MY_P}
fi
inherit toolchain
if tc_is_live ; then
# Needs to be after inherit (for now?), bug #830908
EGIT_BRANCH=releases/gcc-$(ver_cut 1)
elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
# Don't keyword live ebuilds
#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
:;
fi
if [[ ${CATEGORY} != cross-* ]] ; then
# Technically only if USE=hardened *too* right now, but no point in complicating it further.
# If GCC is enabling CET by default, we need glibc to be built with support for it.
# bug #830454
RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )"
DEPEND="${RDEPEND}"
BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]"
fi
src_prepare() {
local p upstreamed_patches=(
# add them here
)
for p in "${upstreamed_patches[@]}"; do
rm -v "${WORKDIR}/patch/${p}" || die
done
toolchain_src_prepare
eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
eapply_user
}

View File

@ -1,65 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
TOOLCHAIN_PATCH_DEV="sam"
PATCH_GCC_VER="13.2.0"
PATCH_VER="8"
MUSL_VER="2"
MUSL_GCC_VER="13.2.0"
if [[ ${PV} == *.9999 ]] ; then
MY_PV_2=$(ver_cut 2)
MY_PV_3=1
if [[ ${MY_PV_2} == 0 ]] ; then
MY_PV_2=0
MY_PV_3=0
else
MY_PV_2=$((${MY_PV_2} - 1))
fi
# e.g. 12.2.9999 -> 12.1.1
TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3}
elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
# Cheesy hack for RCs
MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5)
MY_P=${PN}-${MY_PV}
GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz"
TOOLCHAIN_SET_S=no
S="${WORKDIR}"/${MY_P}
fi
inherit toolchain
if tc_is_live ; then
# Needs to be after inherit (for now?), bug #830908
EGIT_BRANCH=releases/gcc-$(ver_cut 1)
elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
# Don't keyword live ebuilds
#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
:;
fi
if [[ ${CATEGORY} != cross-* ]] ; then
# Technically only if USE=hardened *too* right now, but no point in complicating it further.
# If GCC is enabling CET by default, we need glibc to be built with support for it.
# bug #830454
RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )"
DEPEND="${RDEPEND}"
BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]"
fi
src_prepare() {
local p upstreamed_patches=(
# add them here
)
for p in "${upstreamed_patches[@]}"; do
rm -v "${WORKDIR}/patch/${p}" || die
done
toolchain_src_prepare
eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
eapply_user
}

View File

@ -5,7 +5,7 @@ EAPI=8
TOOLCHAIN_PATCH_DEV="sam"
PATCH_GCC_VER="13.2.0"
PATCH_VER="8"
PATCH_VER="9"
MUSL_VER="2"
MUSL_GCC_VER="13.2.0"

View File

@ -5,7 +5,7 @@ EAPI=8
TOOLCHAIN_PATCH_DEV="sam"
PATCH_GCC_VER="13.2.0"
PATCH_VER="8"
PATCH_VER="9"
MUSL_VER="2"
MUSL_GCC_VER="13.2.0"

View File

@ -1,64 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
TOOLCHAIN_PATCH_DEV="sam"
PATCH_GCC_VER="14.0.0"
PATCH_VER="2"
MUSL_VER="1"
MUSL_GCC_VER="14.0.0"
if [[ ${PV} == *.9999 ]] ; then
MY_PV_2=$(ver_cut 2)
MY_PV_3=1
if [[ ${MY_PV_2} == 0 ]] ; then
MY_PV_2=0
MY_PV_3=0
else
MY_PV_2=$((${MY_PV_2} - 1))
fi
# e.g. 12.2.9999 -> 12.1.1
TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3}
elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
# Cheesy hack for RCs
MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5)
MY_P=${PN}-${MY_PV}
GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz"
TOOLCHAIN_SET_S=no
S="${WORKDIR}"/${MY_P}
fi
inherit toolchain
if tc_is_live ; then
# Needs to be after inherit (for now?), bug #830908
EGIT_BRANCH=master
elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
# Don't keyword live ebuilds
#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
:;
fi
if [[ ${CATEGORY} != cross-* ]] ; then
# Technically only if USE=hardened *too* right now, but no point in complicating it further.
# If GCC is enabling CET by default, we need glibc to be built with support for it.
# bug #830454
RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )"
DEPEND="${RDEPEND}"
BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]"
fi
src_prepare() {
local p upstreamed_patches=(
# add them here
)
for p in "${upstreamed_patches[@]}"; do
rm -v "${WORKDIR}/patch/${p}" || die
done
toolchain_src_prepare
eapply_user
}

View File

@ -1,64 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
TOOLCHAIN_PATCH_DEV="sam"
PATCH_GCC_VER="14.0.0"
PATCH_VER="2"
MUSL_VER="1"
MUSL_GCC_VER="14.0.0"
if [[ ${PV} == *.9999 ]] ; then
MY_PV_2=$(ver_cut 2)
MY_PV_3=1
if [[ ${MY_PV_2} == 0 ]] ; then
MY_PV_2=0
MY_PV_3=0
else
MY_PV_2=$((${MY_PV_2} - 1))
fi
# e.g. 12.2.9999 -> 12.1.1
TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3}
elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
# Cheesy hack for RCs
MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5)
MY_P=${PN}-${MY_PV}
GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz"
TOOLCHAIN_SET_S=no
S="${WORKDIR}"/${MY_P}
fi
inherit toolchain
if tc_is_live ; then
# Needs to be after inherit (for now?), bug #830908
EGIT_BRANCH=master
elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
# Don't keyword live ebuilds
#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
:;
fi
if [[ ${CATEGORY} != cross-* ]] ; then
# Technically only if USE=hardened *too* right now, but no point in complicating it further.
# If GCC is enabling CET by default, we need glibc to be built with support for it.
# bug #830454
RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )"
DEPEND="${RDEPEND}"
BDEPEND=">=${CATEGORY}/binutils-2.30[cet(-)?]"
fi
src_prepare() {
local p upstreamed_patches=(
# add them here
)
for p in "${upstreamed_patches[@]}"; do
rm -v "${WORKDIR}/patch/${p}" || die
done
toolchain_src_prepare
eapply_user
}

View File

@ -5,7 +5,7 @@ EAPI=8
TOOLCHAIN_PATCH_DEV="sam"
PATCH_GCC_VER="14.0.0"
PATCH_VER="3"
PATCH_VER="5"
MUSL_VER="1"
MUSL_GCC_VER="14.0.0"
@ -60,6 +60,6 @@ src_prepare() {
toolchain_src_prepare
eapply "${FILESDIR}"/${P}-pycryptodome-ice.patch
eapply_user
eapply "${FILESDIR}"/${P}-pgo-bootstrap.patch
}

View File

@ -5,7 +5,7 @@ EAPI=8
TOOLCHAIN_PATCH_DEV="sam"
PATCH_GCC_VER="14.0.0"
PATCH_VER="3"
PATCH_VER="4"
MUSL_VER="1"
MUSL_GCC_VER="14.0.0"

View File

@ -5,7 +5,7 @@ EAPI=8
TOOLCHAIN_PATCH_DEV="sam"
PATCH_GCC_VER="14.0.0"
PATCH_VER="3"
PATCH_VER="6"
MUSL_VER="1"
MUSL_GCC_VER="14.0.0"