From 441d1370330332b7d78f238d2f5e13f7aed5e4e0 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Fri, 25 Dec 2020 23:06:25 +0000 Subject: gentoo christmass resync : 25.12.2020 --- sys-devel/binutils-apple/Manifest | 49 +-- .../binutils-apple/binutils-apple-11.3.1-r1.ebuild | 378 ++++++++++++++++++++ .../binutils-apple/binutils-apple-11.3.1.ebuild | 374 -------------------- sys-devel/binutils-apple/binutils-apple-3.2.ebuild | 239 ------------- .../binutils-apple/binutils-apple-4.3-r2.ebuild | 337 ------------------ .../binutils-apple/binutils-apple-5.1-r1.ebuild | 384 -------------------- .../binutils-apple/binutils-apple-6.1-r1.ebuild | 385 -------------------- .../binutils-apple/binutils-apple-6.3-r2.ebuild | 386 -------------------- .../binutils-apple/binutils-apple-7.0-r1.ebuild | 369 ------------------- .../binutils-apple/binutils-apple-7.1-r1.ebuild | 369 ------------------- .../binutils-apple/binutils-apple-7.2-r1.ebuild | 370 ------------------- .../binutils-apple/binutils-apple-7.3.1.ebuild | 393 --------------------- sys-devel/binutils-apple/binutils-apple-8.1.ebuild | 334 ----------------- .../binutils-apple-8.2.1-r100.ebuild | 100 ++++++ sys-devel/binutils-apple/metadata.xml | 4 - 15 files changed, 483 insertions(+), 3988 deletions(-) create mode 100644 sys-devel/binutils-apple/binutils-apple-11.3.1-r1.ebuild delete mode 100644 sys-devel/binutils-apple/binutils-apple-11.3.1.ebuild delete mode 100644 sys-devel/binutils-apple/binutils-apple-3.2.ebuild delete mode 100644 sys-devel/binutils-apple/binutils-apple-4.3-r2.ebuild delete mode 100644 sys-devel/binutils-apple/binutils-apple-5.1-r1.ebuild delete mode 100644 sys-devel/binutils-apple/binutils-apple-6.1-r1.ebuild delete mode 100644 sys-devel/binutils-apple/binutils-apple-6.3-r2.ebuild delete mode 100644 sys-devel/binutils-apple/binutils-apple-7.0-r1.ebuild delete mode 100644 sys-devel/binutils-apple/binutils-apple-7.1-r1.ebuild delete mode 100644 sys-devel/binutils-apple/binutils-apple-7.2-r1.ebuild delete mode 100644 sys-devel/binutils-apple/binutils-apple-7.3.1.ebuild delete mode 100644 sys-devel/binutils-apple/binutils-apple-8.1.ebuild create mode 100644 sys-devel/binutils-apple/binutils-apple-8.2.1-r100.ebuild (limited to 'sys-devel/binutils-apple') diff --git a/sys-devel/binutils-apple/Manifest b/sys-devel/binutils-apple/Manifest index eafcbdeaee6b..e4a06d366627 100644 --- a/sys-devel/binutils-apple/Manifest +++ b/sys-devel/binutils-apple/Manifest @@ -1,61 +1,22 @@ -DIST binutils-apple-LP64-patches-1.tar.bz2 10235 BLAKE2B 3352170bcfe73c574217597233ca58c7d6ebeedf9dfe9da1399953dfe1a0c87fc26e9ba8864620ddd67c6f38e48aeb6950737637605f0b860eb4a0d246f3aff7 SHA512 5632d4033c39e47de3ec275d02100ed53408a63122fe722c26dda1b02275c397524b113e51e1334d3235fc7f0a3bb8e53d4ccc1c2e40f24c6129282846da22e1 -DIST binutils-apple-patches-11.3.tar.bz2 7871 BLAKE2B de4e909a084da79d139b7f07d98c55ebe8aac3fc5ba5accb365e0eb003b726a619369e7695f43faaeb6acabc1db5eba9195e8e22aeed0e864446ade48d13a826 SHA512 ae73528bd0fa47413caef0f65b0077011123ae2bcf366a09da8fcd5cb79ef76495f9c11560f039fc2f35405430d5ff0295913ba44dce1a8677bd347db179ecdf -DIST binutils-apple-patches-3.2-r0.tar.bz2 4137 BLAKE2B 9cd7afbba5337cb9c395556b2691e4acd73ee323d643da4335f6465ccc29b06f889d01fb42c7778576607bfdb859e2df38d3ebf82d4bf7f0971079da6985f237 SHA512 5381a93d61c39993cdb294ecb238016e26cdfe283fae553f75ddc6662812709301d5208c770ac0992d1dfab92e4802c660e6fb4336ad891335ab716d3b042805 +DIST binutils-apple-patches-11.3-r1.tar.bz2 9041 BLAKE2B c881117e19e119173dd8c126859f8ebab5ff4024697c9650b8ba145c021aa6e251086d3678d80fec2672e78637a5beca795b71ae871692e832ba4e69a7a8e04c SHA512 eda63cd89f67674556dc75de719cd318f534544db50165d4faac454f67c557c9944e7e024c4443e640f987ed8c8826ccd578427743a86d7220c2ba90ed2206d4 DIST binutils-apple-patches-3.2.6-r0.tar.bz2 3500 BLAKE2B f10dcf71400ea5d4bf7efb8ad906240765cfb56743274b3e1684eeb4273a35171aa4202d475920cff2c5c39e89f9bd1d7e5b0d38ba6c2b4705b0a592ba47e063 SHA512 4ccb8ebd49ac8eac4dbd0c1f24ee1836f216efd2e9e15b13072cbc76d8f83fbf4f1f6b3b60736bf5d5482af3e49ec1eaedfce8dd0ce1e949f915faf9c92ee0ea DIST binutils-apple-patches-4.3-r1.tar.bz2 37363 BLAKE2B a5ad04d4bf746a864f03a25d052197ed9a6ecada1f34460f4e38bea8cd87dfe2cb6c7f99f2096acac2231cd1e0c13c53757854b07f729a7a0c5a162a908fbe83 SHA512 f5d64ad182891c3af971e6aabd3c0c1b717b6a1cb471632339cba61b41a998d15880d18de09aafa1c3d059e528c888d6e8b914025c79bc21897d90a6d0e2ebf5 DIST binutils-apple-patches-5.1-r2.tar.bz2 51642 BLAKE2B 1b44020a05e0a91cfe569273f1e3dc65afaeac4bcdb80a626bdcc1f30cf8fbba6cc7bb522ece93126d4035b2d309defefd17fe0cee5bcaadcc58c4fa0feb4827 SHA512 37ba0dcae6c10b54a07c6208f6893ab80b0de1bd1c2f677902f707c8290629f7671a481e256b57a18bf304b95e41e4d59519bc1c88f15de488c0ef7e142f5cd8 -DIST binutils-apple-patches-6.1-r1.tar.bz2 42189 BLAKE2B 8505acaff6343b2f4dffe9c1dd78e360762f0ad78d39fbc0227265ed8b6768dba62c1a7d6784ca685934942e1a211c70275474001b066e3292c579fa0aa2f356 SHA512 be8ee5af5c8c9f9228cf6980f032aa101058ac1a414bec89401dbc4ff32ea96d6ebf96b7b79285fa1e7b4037a9ed68b285dbe59ff8e3d3e62bfc0145199e72f3 -DIST binutils-apple-patches-6.3-r2.tar.bz2 53029 BLAKE2B c2e7d773c00d3e6e13e01ee23a8aaf1986af31d2e1390a49ff3932bec45be916af56584a1d218412e2ed528bf55bd4de3942fa1ea3e4d113f841699172ab295c SHA512 bb165ceaebbb2545ac946c94bcc930ba52de452ea71c984d3d92a5b5105507de94752c3584cf05bd27ea288f5353e459c31e97f45553f2ad993249023f486a71 -DIST binutils-apple-patches-7.0-r3.tar.bz2 57504 BLAKE2B 2c894368141fa68c2b5ee85e05309233857afed89e81a89ff9739570397042e174921c9a174b026c61cf04d4bd09b84600a6acb8ac0ac6d55b59d37667ccc0a6 SHA512 4bfe2f1f29f3ca91c093af6b95d16cc315fe8098fb5fd0230458ac2575b34110c250d848b8d9a5425136069b5022d5005fa099489ba6534dd38d1c7049dce009 -DIST binutils-apple-patches-7.2-r1.tar.bz2 2924 BLAKE2B 167fb37e5cb4cae8fe6777dceb1085eee68ce601cf158a9b67d9f77113088c745551ef1500e1fb82e9e74a15bf010fc8e07728506879b5f8ee97fe10b93cea2f SHA512 1285ae5dfcac59e3f27312cfe53683df2f3f166a28ae60e78bc4d25fab6de2a8baf99a4e166638ea90b5823b9c9f0c5feb2a16265c7713fbfe81b5f43b524c54 DIST binutils-apple-patches-7.3-r2.tar.bz2 44551 BLAKE2B 036cd2a2e4a66b046467f2984cce1c15f0d07c6b66aa6c8df3e07360943104aabe6f2555a0094973df71a5844496cb69d97a0ff13366043e02a01d8fbb0b0239 SHA512 219c26aeb54e89e23ab91706dda0803cf0c9f2a33acb5cc676db2d2ea33ad22af0661ea19450ad8f1f006f6c1703269fd95c98c52a7bcfa0c6491bc1cfb1a0ba DIST binutils-apple-patches-8.2-r1.tar.bz2 10830 BLAKE2B 345db8619873e9e91b79c3fdc0685fc46f82366df0b6153c1a59fbe5c122622e799754397e980e8752ef01ef25bbac81bb8f0339e92168790211b1d9c03bef2d SHA512 e7ca8cbac75671846c044abcd5415cfcf5832ff71acd5a2799b643369b02f2f7148990398c51913a3758e589f9fbff875e333aadf568e2a8a2defeafaa2aca95 -DIST cctools-750.tar.gz 1947990 BLAKE2B b0fe71ae6972bd2b21c1ecf7a699104c51519babf67bb5fc45e31ed1d17108e7627cb46b5f65d48c33dbec9e9032e703924e9a9a687ec19bd384a3cdea243a46 SHA512 298a447757d926b3d156aaf8be27ceadeb4242336b66cb0bee0fd2dc8bb4ad3f167758ff526e4bf3fe458cb72391f5dc38f9112171883fcf28d49a18d671296a DIST cctools-795.tar.gz 1993795 BLAKE2B dc0915f8647eecba5352e34dfc5752b679df39ead9a4734c49955a824d2cc127308eed46a614665dfe08a9d3036eb37f587e1b765a7df727facc42a33befacb0 SHA512 5a34a73dc71d3574a357f6b0f26a48a99dd0995d62695b309cdfe85c4960934b410455b1ba6bdbc9a4e32106bb45b35555604975d2a80ad1be21f5d4eac69254 -DIST cctools-822.tar.gz 2024412 BLAKE2B 6b58499a9dfc2a1b166ff428f1e263cd44e03c50cdc8f6e467cfee93bc2dc2a9c81bf7626479dce195b152f04217e2d3a427afac45484cba4c5f2bdfbb7e46f9 SHA512 8b02cc837d5e0520f35da445f25ba86b5042d5caa27b49a599e829ed89428cf78dbd1831bcf6c18301f941fbfb31ac2114e248041d98008a466e1574f4fe1586 -DIST cctools-855.tar.gz 1699635 BLAKE2B 4d98cf2bbced6894083dc2733a35cf9a4c47f71172fe98265a8f047218cc90276085919129553e3a1ea0658416eebf3b7cf0908bd32ac1a224480554257999ee SHA512 50f5d015ce807aa5ca274dd2deea810b8b375110e60b5e334ca4b2170526b738ea5f86a5436caebbdb748badc3b89601d0f450f5b867d8393c89e336a3db4b3f -DIST cctools-862.tar.gz 1702345 BLAKE2B de84058aa78824562b0eabf93a29badaba0908a7140336a281a6ea46a9b09d893433a908c299e8de866a76e0eeb98b730570958fc8fac559ccc6e35f5138b121 SHA512 faa401c1dc55bfb9cd2a9a9cc7bc9d473ee63b019607967c8b0da325514d6a1f7b1f52404370bcc018e86d30d75a4b01183f49b793f577110663efe43871360a -DIST cctools-870.tar.gz 1702965 BLAKE2B c0e6ebe33ce283d1c89d52df0a6d99c7065131e215532ad5e080d22e9e4742a146a9d448043f3b9ef8cf36ff971fe52c30fe0097b2a0ae5a9a6bce271232af46 SHA512 8cd16350bc2eea576e3922f44de3d15cfcf492a5561215a3a9160f2045284a2fd0fa28e030686868bae8619993fc8901649d7576c56d86a423f9955b27f65138 -DIST cctools-877.5.tar.gz 1717664 BLAKE2B 36f64578c23689e1e056500a6368854d5c80f49984d7b910d0b347042ecdcbb613e47ab83191d07ab6daa9bc12c567fc7f5aa5d97b817f80f96bb95bec4c24f1 SHA512 cec8520450c3b1ffe77bd841ad6b8f6b0d28657e7c39ae1525bfe7ec1460c0f4bb394da316e6ed5b08cb5df26b757b9d94a9923cc7eaf9b14315d045ea891062 -DIST cctools-877.7.tar.gz 1720523 BLAKE2B 78e4d387b34504a001a5dac2db5f791fcbeae7f1fc859b794e9262464dd2a6ad088dde07e47918d1b6fb3e6aff2b9c2ca495113135abce89945f4d1d75f252a1 SHA512 5c381fe8b85d1254f660eb3c3510d9e0a49792ae5bb0e69a4dfb5a18e7f1706ee1411589f20583a9d7f12126ef616f66f1ad5c1c4ff405f66b52759c0a4272b5 -DIST cctools-877.8.tar.gz 1720708 BLAKE2B 97bce69d7c88a917ad1351635b4bd0ebd3273f7a62b10dd3d58a0df7e1de2e05dc3fa04b014dff6966e77b85e264d1be181ac4d5dafc069c72c79d803393176a SHA512 3f75fbe4eacd89f2e6372a3167ed197e2b8bda9faa10fe6bce0cf9d3d3eca536f0af5fc4ce1e4bc6a24eb68db36f5d0b1d0bc3f9807e285e67cfaa2d336d81ef -DIST cctools-886.tar.gz 1731850 BLAKE2B c206ad8c94fa3d132726db8cbc60ed09b6f1f7aa8118a99b1e7ed350323c11b729d68c912ba7648cf900cc2a26cbff12a03072afe92efe09c8974be280448731 SHA512 49f14e165da3a9fcf16614a810b8a2a68907348bd27a60b268b330e416a0bc070fb6445e1e6b80d849026bd6ce7de4459623ab86168e2d63bb492d1ba6680c5b DIST cctools-895.tar.gz 1716126 BLAKE2B 9706a6b243518693888e5e21dfe8d83b217380b47db621a7f1b35105eb72fb8997353ff85133224b0856f6b6ec710f54a4fe79076d9e228f89c98b6f517de309 SHA512 4ef9db870385cc2c4263bcbe42ff0de80386771f5acbc7082a1818ecd6b8d7bb1bfa02a7fcfecd3e7281481aeaaac4c331359aca3564bfe7a4c7dea1e0d06126 DIST cctools-949.0.1.tar.gz 1968671 BLAKE2B b38fbae5d2ec011a94c2e4ec299c1ecd173f2c2516664cf925b06aaa078e234b59068158ea29dfcbf763ca98c73bc1806a507fbbe49a8d4d0a2fd4e602f401ce SHA512 13c493a48852c980d2829d28616c18640ad5ebfe6acd55143c4c948665e0b65377a459560667074fdac5e69bb6360fea13d988303c49fd3dd4a58e9b5c54ebcb +DIST darwin-xtools-8.2.1-r100.tar.gz 2934997 BLAKE2B d0324d47d3aa0afd0007fbbd16c74e046c643c645744cc7ef0535eeed275c2d61763a1c6708b3a0a796f0fc83e62b5e5fe907c62553b439bea750353cfac2f73 SHA512 7000bca61b1dc63d1d08a9bcf104dace4376c2656af0faddc28a7d6c3718dbe54713da96136091a2024a644eaf90758714d1e4eb3cfeec2df0e412d847f59c30 DIST dyld-132.13.tar.gz 342690 BLAKE2B 011418ba5b91a28bb7c5f8188af2fac5478bad53581396b7c1c4623a854a8f0d5ecb92d023246157830ed2db83bbf28e23225a255188e2d07eeb6c933814bda6 SHA512 2c9d50fc32868b696d88730eb6ea6afa9bb9f56883cc2ea4f1d41f370f311b7487a29ce0eff6761e1eeb086a18e2513953989d8d5d3ef1043bb662e86baadd3f -DIST dyld-195.6.tar.gz 412518 BLAKE2B f525aac0020baa69c5d7c42a7027b0d2fdef9fa3c2e5d3831101989eab20f2eb7932c99355ca34e6e0b988b9808013739d452592e0b8832e1306cc6027cc5d0f SHA512 58a9ea27efc02e66f9d99bfa250af1d90326385385431e5279386bbd9ab53366bf7e8236543296908b7214c33523c8f60098a6298a7393b3180e2a6bce18e7c5 -DIST dyld-353.2.1.tar.gz 510036 BLAKE2B 6f355bcb87d6136d3c29b2766146303ecf092fb407296a0a93412598276ea88c4f826da75d20cc5d3e2bfac750a62c413b117ee95dd710eac83b647786fb109b SHA512 a9488620499f682e245b55b7e0e4ec02fc0bcf03bd8a70d4a4ee0ba762067ade2f41c188990c101727476d41c19368b4cc89cccf2df40231da1c777742c7391f -DIST dyld-360.14.tar.gz 518873 BLAKE2B ebf651a8880ef337ed5ee7d5d7b9d2da77fed481f4a01c52dbc81e1192138a423bafc89b49417d1edf36167c59600a6ef63d60c2f3e080d4f77b19405e5b0755 SHA512 cfe536ea1f0ad8fbc2846417289e3e36704bf69388e083e0ece0ffa6eeee501e7e9b2ba47eed7be0e5120b5cc72f33b2fc0d2d39ba7a16beaf98db94dfb4ae40 -DIST dyld-360.17.tar.gz 518876 BLAKE2B f627c7628b0956fef040a526116d27db14010eb0769394c9130d5b0d24d0d03a471d1c44e9533a34b1832f542a98432f2045b309a85dff4e0c1756f7bc1b0fb4 SHA512 aae2a0ea1f4130de51aa920ce1affa579993b3b58a7d398ec998c0d7ac4919907ba4e508b9bfc15080b1f4f4cf15e4615bc416b6ec32b52a4b5d8fbbad1dc9ab -DIST dyld-360.18.tar.gz 518957 BLAKE2B 536954a681a18d55f9dba6e4ec2bce116dea84f80769c57518b50b3187625a7384bb77afe3d8b24c456da3ab4d8206f1ddfdbd008e4674dc1f5e9574ca09596f SHA512 1299bd2dd5cd663917ec4a03ed0f875e0bf07d6680d3d095af12f4b11960c02a52e361bde27ff88843f80832fc6d36654e2556ee0a3ca2259fcded5b568ab2f9 DIST dyld-421.2.tar.gz 625173 BLAKE2B 8f8325314861ae2ea10fbe78c74c7199b547973ac61a8e9cb76fb874a0e53395ea31c04e489f85ac7cfdb5715ae5051679453de75eb195e313113e7bbbc70340 SHA512 75f2fb840da980d44649aa3e045f50c4e37d4403fbdb1e2e5f1a85bf6d8859e1130053c3806f7ef992fdfc6573f7f18146263c690144bdd3df31452c6bdd8bd8 DIST dyld-551.4.tar.gz 832297 BLAKE2B e65c5b2ed90af6ec94f1295efc984404af99f0e5dc666bfc854379f13fd2e98b8048fae84b7bc8864fe27112abf12f741a33cc404b18ae7c88b7abd6a1d9e3c6 SHA512 896281c4b2330c92ed538af58f1b60906ed0a9ffa3099a5e8ef9a15b7ed974259bf546fd2ab7562739f2c8cf1fdfb44ea0ea7567092c77f2ea2cab377da064b0 -DIST ld64-128.2.tar.gz 494361 BLAKE2B 787d145edafe56a134ead84ae376842d9994608a771d0512a6f56738e170c2498a031c77c895da79b30efa309986c8cd624f5f09cd9784f63c7b2d2e0334e0d9 SHA512 f50a3c396e6f4fddc685bb3f59f9a260bd2f47060535d24259b2b411e4f759e48daa35819da682ad9bceaa1b9a1981eb34716387d988cdc4b7eec9ab2169726e -DIST ld64-236.3.tar.gz 624400 BLAKE2B 37c074093c312fc9720564aa9702d6007bd44252a1282c4c67e0c1b75f6f4aeaf5b6278df3d5ed5f5baee948c547a462476dfe5eabb665612e4d31d57f26a286 SHA512 e103fc5efd4d4161c7dc55b1ad53aebd455cfcd72de7873ebfdf5ba896b7b0da9c9aeb12e1e1a76425768ac1dc85d864a4ce33b5b841ba115eeab96a2e2965aa -DIST ld64-241.9.tar.gz 639944 BLAKE2B 1aa58dbb4e42b8314421bb10867aacd6cdece7a5983ed88571349e97366b61c1de175769b2d9f7b04495f2f306406f8a6fe785548f74dd39f419f321ec24d93b SHA512 6958e7064f4fd8b47501225fc4cbc6292e5da63d7f4103ad79add177ef7382c8de3c732f14d19a9c11356b8070f578392383caccc3795e2ab8ef7b7ddbde88da -DIST ld64-242.tar.gz 641597 BLAKE2B 09d241cbd24e98cf59cd4b25f2237fb518bbd6550d753812ea24ab7f1acdec0082319507e92b77362f61d599eef8c8abfec48dc2c87678454ced3b42fce917c2 SHA512 bde2eee69ada7f81d5e97762c371661f304372d5461da4bd843c76d0abcab518193fa71b917850af2022e586a756a3624a0ad28debfa8de6777e3c255d83dd34 -DIST ld64-253.3.tar.gz 671087 BLAKE2B 33d00185bdeb7eadc8c1f94d338ebe08c23b8944daeca794e1ee8e58528d6c9775eecf704b098a87bc0a3281b2e3dc9e634714923fea65cc22977b2cd89cfa1d SHA512 ce2c86f2f37ee37bd417315ba51815707b0ca6f24da06819fd1b2d0b4fe0762e45a08c3faf2c0c980e4913c9cbfbf6c8185f9a6810cfa1d9dad231b5bb276081 -DIST ld64-253.6.tar.gz 671838 BLAKE2B e7b05c658896a799cfb6dd8d4d74ec16d9a2c39cdbdfac1e7d3f6b5ccd4722b343a9567dbd649e71e96742d6b2eae74ac951bada8899be51f152809c579c73e9 SHA512 40b29e273ed3d69e4f92593cadea831fd618452d3f05e30c0b836ffc05db61fd345cb2f6d63271563c786ecabd47f19f8369456cbe6422800117a53c654a98c6 -DIST ld64-253.9.tar.gz 673388 BLAKE2B 65af4f3ddd49b15deecf824fd991d41e5223ff9c963a0ccc89862181353c52279897171d37a00939d6678f2260efa7f7852b9dfd71c2c7b4b00d3fa2dbd85a34 SHA512 a52b081295c19f28858f8ee47c05249bba3e15cc8bb6f7017d9f6dcf7509cdacef7a4b16b3940cd0b1f72b3b67efb503ab2e3801b31e50cda1d34c6bc8df8dcf -DIST ld64-264.3.102.tar.gz 681509 BLAKE2B 4a0699ec761bd145b8034c8577ce9f843c9384fee5486855565d1d89858a445492d66aca2798a6e9c1bb4f59328680c05bcf1cd024d917c063e74d3549073ce0 SHA512 ec221de3624dcce3db694ec2d7b05f3c939cd1ba79c97437ba9f2d4e5d9c37369bb5df82cc37bc158bf5c4e2128cc2b96ca1a7477f98538850092bffa4601da0 -DIST ld64-274.1.tar.gz 670493 BLAKE2B 00ab46b09f29c6143c5066ffb0a12017fb2268a5f205c41851a95bc38443aa5494ce81b793a6668bcd3a8abb0ba4215f0da372c413ae52e4ca1e437ad370f8e0 SHA512 ef5d6802f759e09aa2dfab7eb84e9cd2a57b28da3f150833cf1a922c395dd696e501b1bcb10385cbe995f4945fc6c99c2d2d8c50c42f369186bdc1ac3e30ad99 DIST ld64-274.2.tar.gz 671652 BLAKE2B f45bb65bbe65c7baff54dec633a49b8ea472a59a7978aa050b329132963b26e4a2b3ef3dd034b04247531a11a07de5135b3726a429165cbfcae50e06c09531f4 SHA512 7b4e17f199909450b697bf719564c6841d46f5116c48dd47ff483ae7ddfe2965db1b7c024ed8ebeeaf90cd983ed353b95f7f23c93c8971536977dc892e6d6a9d DIST ld64-530.tar.gz 744871 BLAKE2B 8117160ffe55c02b463559a52fcbd109629d6e2b4707f36391ec2151785cc1ab5be911129397af7bea05f06b2c718bc345a1e3b6b0838dae943f4083612af38f SHA512 0197ec05f9fbaf9e1902bb6e0819d0562573a433e0445809f1020e76126d3af57222a8e9e187fce793a5b581f825b48bfb5ec5cca9ae3eb77758cbc7f20e9e20 -DIST ld64-85.2.1.tar.gz 598524 BLAKE2B 92cb3c763cc067e2ee6c4fec910f078cc69daca2a328a74ebc988908b1655138873b69bfb0c19b284f0aedb678e99de3866d4f13460cb3427985704093dca37a SHA512 b5ffaffc43e74f22688fecd9fb3023a59160cf051f9412f34e6b0acf1c4f9d43ba641e199d8d6b1c6cf3bbbbf117645988fd879ded1fec8be056b6941fe79999 DIST ld64-97.17.tar.gz 421947 BLAKE2B 56820ef28490f2e0181d6e36b87506c6f00ae5759afe304a063fb6bd1904ace566ef4aa69ff0d235d65968af547a1a5735cb23bcefa990f418740188d399b637 SHA512 841774a1a7c0e2f661ac7e66703f7578d8f11274897ffa15f8c49daf290a23465763f264a4dae99f15754891f44c425c0d327652112007b499bc8f755a7fc9d6 DIST libunwind-30.tar.gz 82811 BLAKE2B 26993d6afa6930931c01b579326964a66832ed7a6ffa26eff10016c8d6d175d3b671753cf8700dcdbae7f0a9c01b16e9cbd3c9fe86697608f1f08a8eceb64782 SHA512 57106eafa1516791b4e0db2de6c6336bc0c1cbd8bf098a6d3a809fafa457802c95a7aeae9137f4ca5922a3018dfd8f597907ea4187b0afbbf267500eae00041f -DIST libunwind-35.3.tar.gz 90002 BLAKE2B d63ab0ae6e66a6f35ec17de9713d3bf4853cd80af218e868762b20dd8a44d42cd9ff8fce1d8c46fca4759144726bbf248a02a5dede5a94a2b75d3b45ddb7d018 SHA512 b7d9a86ef24f1fe9ca14517471e03a910219a229af9f0d4cf94435115971360640451107ba20c93fb1aab788f8b6eb5ed580ee08fdaa990b9fa43e9ae360c6b4 -EBUILD binutils-apple-11.3.1.ebuild 11874 BLAKE2B b254cbffd41be7f0e4dbf7d534c20ee33011fd6f2685e57595777c1e3be833d25f03bcfd2a52c40354170c5ccaa28f46bc680e020e6dddf86f434482c353c821 SHA512 314b8f699f06f285285cc4fca53b5551af50f79eaae4337d23c7ab025aae201e103498d3c25c256e028ba6aa499e4212ff7d1b63ec5ee8077dd50fbfdcf0d1a1 +EBUILD binutils-apple-11.3.1-r1.ebuild 12072 BLAKE2B 503efec8e7918f50ef1dbdc12c8c6e0e9eea9e4742e936b64f53bd62a1c9b6c088fffcf9a2e8f5efc0c35a1038cde09682b490121cd07dc7a75fabae5e93d4f9 SHA512 18ddce3981b0b7bc7f9fd15fa402d5cec01f851003f892e6b57499654b5cb681c7d1362b49f76358fca1443cc9b9082f4ee491c814b70da019bae25667b9007b EBUILD binutils-apple-3.2.6.ebuild 6937 BLAKE2B 649bdbc5433d05db4fca58b4cb95538fae8654ac0c91c95915f172a92a4fa61724e57876b0a9ecfb09d1942060b0298da3af5577033bb8a860807d6a7fcdba08 SHA512 617d78b58688d9f4900d65bd49f90c21c64d62de48bcc42e63ed9a5f2468e29e5dba84e17799eb2fbffa064ce5b0087fbdf5669000b0dc6a2eb30388d585f123 -EBUILD binutils-apple-3.2.ebuild 5855 BLAKE2B e709686ef502a5d015b8559b2102e45daa586b66f9e6ef60026baca48baaef4d2dee0e3ed757146d9842676de074827fdfd23dced29e631d75e22e1ed6668103 SHA512 76fa7523601c37302012453208284ff0ce5f2efd6442a2df54c8b73e86d427ea8c1d6a8fb4045b0987cff1232b0b7f93f9319a68fb553e7fad04f6046b8b14c9 -EBUILD binutils-apple-4.3-r2.ebuild 10207 BLAKE2B 8d115224cf5fc41ba2d77fcd9effc8c86e28d18ffdd97defdf9d3739136682dfd02de84ce14e429f3ebe45ec614152ebb8a574ebab6ad6f14e23dba07e3742d3 SHA512 8aa25ac3326aa24bf501201fcd8c07c98d71c8d2bda8aeafacf854318b40b101b2acc112a4d81817269908294904b1ba466fd4eb48e162f65caa8f800be77a76 -EBUILD binutils-apple-5.1-r1.ebuild 12103 BLAKE2B b01ad672d7aa2e473458f87631def8179481cad1391a353693839966b94be8e340144d72f1660bb8b45a48895b4583ff4f2f26657fa9aeb4f735a9087c0cca28 SHA512 a6fab818f451f0e1eb845f98e548aec7e089c879d5e9c543bdb7683cba16078f3ccabb7967e98d9b6c9e8bd79b0c9233c11bafbd96a69e628ebbc875e9f50957 -EBUILD binutils-apple-6.1-r1.ebuild 12177 BLAKE2B 9df959ff5bae06392acd30e5dded62c1831cf1e3bdf2434aacf599961834449e2456458ae52ff5996769a38def8c2015d8cbf77fb031f39dc856ff14d7a61723 SHA512 a27980c8b5362491fded65df6fdc35684049261794b4a996eacee63c9ba92f80b26274de351b639b4a5eb2536515ab5962158ba11b833458445ab64362986215 -EBUILD binutils-apple-6.3-r2.ebuild 12195 BLAKE2B 1aee908d1269368deeb1095faa36d6527a703d8958917ca62ad2b530f4ec6e60117e72cd99f68f989d83fe305fa7bdba370ce5fc2f8e063bf2aaa1bac92fd34e SHA512 098d4b94ab31d7f72f28bf4c911036cdcac9534a5ff1f5d4ed16d7af0eb84945e5d01b676bee326aa13e0f8a37538110800305a23afbb80189a6087c69caa3f7 -EBUILD binutils-apple-7.0-r1.ebuild 11871 BLAKE2B edce88bdcbb869fec564245f861d0f1ca6898d0fc939f8b17000cd88b3b9b4710ccc54101487b5bec5ecd923297d143f1a21a47d9d71bc9d0a6977efb13d21f5 SHA512 6a33926bfaaa7daf42b2be85f0667b91f1390c4bcc7a3053a5af078dc06bc2f06e4c34a6929fa2275e254a8926b028bf6e438f120d35ccfaec30a87abea87e43 -EBUILD binutils-apple-7.1-r1.ebuild 11871 BLAKE2B cb2c16ec3f922e2b5613a7a5dd2624542d0b867966e9fe558730324b344b2e3c28ca95f66f98736c9f8065ca1aa3459282f37bb8cf95dc39af08c23c53962cae SHA512 20db903dac989e61dee78187ff033399515301a99dd554522b6925b436cee8095d126f4221726027fb5d142ecdf77799f8dfeb973e3c699864c5b7ad56c275f4 -EBUILD binutils-apple-7.2-r1.ebuild 11943 BLAKE2B 675e352ea19134540d25f7d71c027b9abf74f87804d0d0738c751025286f45da2026dc08eef36cf1370b620e352837ddf2fa88832e0a0fac2ab58b1f47f8ed6a SHA512 63572e3c110f3911762012bab6185082a3fb65c47ce7f20199f954fc672f5aefd049148e3020c5a91c22b08efb61b541a8c318f4a21c28ecaeb48acf8fd37128 -EBUILD binutils-apple-7.3.1.ebuild 13155 BLAKE2B c436339d7c06e06e0f4dbeddabc0eecb699588f18d877cc47f555b1f1ccc749c19836e508b45f024564d2e23b2a2ae694bda53d97d07f8bfffb0a03023bbafec SHA512 c111e2eee6cf3803ff3a10e3f83fcdfecb9207803c208100c0610c0a2200263e140c1f76db85e3947aad81aa9fd1a9ba9e4d7a5a616a1003c8057961f3ef90ac -EBUILD binutils-apple-8.1.ebuild 10340 BLAKE2B 4410c9bb7642e2ccc84224724cbba2a942f32bbc9386043613c271c9e8f93c2b9177868f3b784b84f1393a23dba62ed23e5d404d8578cead0ab6ede5af75a094 SHA512 27014523cfce9f79cc151626e6954b54c9fa73806d67ebb98197157f3edea2ccc24b57c311f67c91360cf59082a69df9c37fd0340d3c0005b0fe04733a7ffcaa EBUILD binutils-apple-8.2.1-r1.ebuild 11367 BLAKE2B 572af74e5a95f6c120152fc7627ac1a2634a8537ed28400c827d683cbc7447bbdd83d873678ab2e459770a1c515d43c759b0471fb3ee531d5a5c203dcccbd774 SHA512 9a49baeda4f83da08eebcaa8497e1149b490b3bb7a49d32106a3f4ab1b770d7ed0e499c8ae670ebb83f671bc20d97a8e61e924a736e408e469a4146b58418e80 -MISC metadata.xml 684 BLAKE2B 5cd10b7a5817bb4fe8b94ffbfa422e43c0f50c2d7d6db881ab82b4741f24548560fb07c6f4b1bf8164ee80ec7052147f7f5158640e4c9fa94b950871148491f2 SHA512 e588cb802b2b22ee656b9dcf45d9d372a3b306fa3574a7d859e2df9032eeeab63219a9d9b69249a5a67733dff4c484da17621f00d2b0775935f2cfa5a6f91977 +EBUILD binutils-apple-8.2.1-r100.ebuild 2543 BLAKE2B 2db8d00218bb9047adada4d64a9ff04ff877c58095198fdedd4032be79daae71ac6d08867f28737c62ad49ef8f455ba1240340942754f6ae5532ecf0dac78d9e SHA512 695fb60963860ada3848850ab55f649792948708e3eb410877f8c930d7df21ea5f5cab4bebc0d25226dadb27de975878c562879d6e6d1483fa526d86331d57cb +MISC metadata.xml 501 BLAKE2B 98bd13a9501faa366c3a7dd9eacea30192cd55429102d920df8722e2565eac472f2d814f09c5be5c437b86a5d404af797d521f0fc1fb4dba374e23af31fccf6a SHA512 026c997212e2bec4698613ad9f5517c5a4427d6da1cd8a8afe3d2f549edbe80f3a17d0c345961a9dbbdc730e8b6b33fdee97f66b3309095803ced0fb9202b899 diff --git a/sys-devel/binutils-apple/binutils-apple-11.3.1-r1.ebuild b/sys-devel/binutils-apple/binutils-apple-11.3.1-r1.ebuild new file mode 100644 index 000000000000..fa4886114d0b --- /dev/null +++ b/sys-devel/binutils-apple/binutils-apple-11.3.1-r1.ebuild @@ -0,0 +1,378 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +inherit eutils flag-o-matic toolchain-funcs llvm prefix + +# versions: +# XCode-11.3.1 ld64-530 cctools-949.0.1 +# XCode-11.2.1 ld64-520 cctools-949.0.1 +# XCode-11.0 ld64-512.4 cctools-949.0.1 +# XCode-8.2.1 ld64-274.2 cctools-895 <== binutils-apple-8.2.1-r1 (2019) + +# macOS-10.15.6 dyld-750.6 Causes build failures with Xcode-11 tools +# macOS-10.14.4-10.14.6 dyld-655.1.1 Causes build failures with Xcode-11 tools +# macOS-10.13.6 dyld-551.4 +# macOS-10.12.1-10.12.3 dyld-421.2 <== binutils-apple-8.2.1-r1,8.1 + +LD64=ld64-530 +CCTOOLS_VERSION=949.0.1 +CCTOOLS=cctools-${CCTOOLS_VERSION} +DYLD=dyld-551.4 + +DESCRIPTION="Darwin assembler as(1) and static linker ld(1), Xcode Tools ${PV}" +HOMEPAGE="http://www.opensource.apple.com/" +SRC_URI="http://www.opensource.apple.com/tarballs/ld64/${LD64}.tar.gz + http://www.opensource.apple.com/tarballs/cctools/${CCTOOLS}.tar.gz + http://www.opensource.apple.com/tarballs/dyld/${DYLD}.tar.gz + https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-4.3-r1.tar.bz2 + https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-5.1-r2.tar.bz2 + https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-7.3-r2.tar.bz2 + https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-8.2-r1.tar.bz2 + https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-11.3-r1.tar.bz2" + +LICENSE="APSL-2" +KEYWORDS="~x64-macos ~x86-macos" +IUSE="lto classic test" # tapi is now required +RESTRICT="!test? ( test )" + +# ld64 can now only be compiled using llvm and libc++ since it massively uses +# C++11 language features. *But additionally* the as driver now defaults to +# calling clang as the assembler on many platforms. This can be disabled using +# -Wa,-Q but since it's default we make llvm a static runtime dependency. +RDEPEND="sys-devel/binutils-config + lto? ( app-arch/xar ) + sys-libs/tapi + sys-devel/llvm:* + sys-libs/libcxx" +DEPEND="${RDEPEND} + test? ( >=dev-lang/perl-5.8.8 )" + +SLOT="11" + +S=${WORKDIR} + +is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } + +llvm_pkg_setup() { + # eclass version will die if no LLVM can be found which will break prefix + # bootstrap + : +} + +src_prepare() { + cd "${S}"/${LD64}/src + cp "${S}"/ld64-136-compile_stubs.h ld/compile_stubs.h + cp "${S}"/ld64-530-Makefile Makefile + + epatch "${S}"/ld64-530-nolto.patch + epatch "${S}"/ld64-236.3-crashreporter.patch + + # workound llvm-3.9.{0,1} issue + # https://bugs.gentoo.org/show_bug.cgi?id=603580 + # https://groups.google.com/forum/#!topic/llvm-dev/JY6nuKE__sU + # http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20160829/169553.html + sed -i -e '/COMPILE_TIME_ASSERT/d' ld/parsers/libunwind/*.hpp || die + + # provide missing headers dyld + mkdir -p include/mach-o || die + # never present because it's private + cp ../../${DYLD}/include/mach-o/dyld_priv.h include/mach-o || die + # TARGET_OS_BRIDGE is undefined in TargetConditionals.h of newer MacOSX.sdk. + # We don't target BridgeOS. Disable it to avoid errors when clang adds: + # -Werror,-Wundef-prefix=TARGET_OS_ + sed -i -e 's/#if TARGET_OS_BRIDGE/#if 0/' include/mach-o/dyld_priv.h + + local VER_STR="\"@(#)PROGRAM:ld PROJECT:${LD64} (Gentoo ${PN}-${PVR})\\n\"" + echo "char ldVersionString[] = ${VER_STR};" > version.cpp + + cd "${S}"/${CCTOOLS} + epatch "${S}"/${PN}-4.5-as.patch + epatch "${S}"/${PN}-5.1-as-dir.patch + epatch "${S}"/${PN}-5.1-ranlib.patch + epatch "${S}"/${PN}-3.1.1-libtool-ranlib.patch + epatch "${S}"/${PN}-3.1.1-no-headers.patch + epatch "${S}"/${PN}-4.0-no-oss-dir.patch + epatch "${S}"/cctools-839-intel-retf.patch + epatch "${S}"/${PN}-5.1-extraneous-includes.patch + epatch "${S}"/${PN}-5.1-strnlen.patch + epatch "${S}"/${PN}-7.3-make-j.patch + epatch "${S}"/${PN}-11.3.1-no-developertools-dir.patch + epatch "${S}"/${PN}-11.3.1-llvm-prefix.patch + epatch "${S}"/${PN}-11.3.1-llvm-shim.patch + epatch "${S}"/${PN}-11.3.1-nolto-fix.patch # bugfix + epatch "${S}"/${PN}-11.3.1-segaddrtable-fix.patch # bugfix + eprefixify libstuff/execute.c + cp ../${LD64}/src/other/prune_trie.h include/mach-o/ || die + + # do not build profileable libstuff to save compile time + sed -i -e "/^all:/s, profile , ," libstuff/Makefile + + # bugfix. args.c not built but args_expand_at is used in misc/libtool.c + sed -i -e "/^CFILES = /s, errors.c , errors.c args.c ," libstuff/Makefile + + # cctools version is provided to make via RC_ProjectSourceVersion which + # generates and compiles it as apple_version[] into libstuff. From + # there it's picked up by the individual tools. Since + # RC_ProjectSourceVersion is also used as library version, we can't + # just append our local version info. So we hack the libstuff Makefile + # to include our Gentoo version. + sed -i -e "/cctools-.*(RC_ProjectSourceVersion).*OFILE_DIR/s,Version),Version) (Gentoo ${PN}-${PVR})," \ + libstuff/Makefile + + eapply_user + + # clean up test suite + cd "${S}"/${LD64}/unit-tests/test-cases + local c + + # we don't have llvm + ((++c)); rm -rf llvm-integration; + + # we don't have dtrace + ((++c)); rm -rf dtrace-static-probes-coalescing; + ((++c)); rm -rf dtrace-static-probes; + + # a file is missing + ((++c)); rm -rf eh-coalescing-r + + # we don't do universal binaries + ((++c)); rm -rf blank-stubs; + + # looks like a problem with apple's result-filter.pl + ((++c)); rm -rf implicit-common3; + ((++c)); rm -rf order_file-ans; + + # TODO no idea what goes wrong here + ((++c)); rm -rf dwarf-debug-notes; + + einfo "Deleted $c tests that were bound to fail" + + cd "${S}" + ebegin "cleaning Makefiles from unwanted CFLAGS" + find . -name "Makefile" -print0 | xargs -0 sed \ + -i \ + -e 's/ -g / /g' \ + -e 's/"-g /"/g' \ + -e 's/^G =.*$/G =/' \ + -e 's/^OFLAG =.*$/OFLAG =/' \ + -e 's/install -c -s/install/g' + eend $? +} + +src_configure() { + ENABLE_LTO=0 + if use lto ; then + ENABLE_LTO=1 + + LLVM_INCDIR=$(get_llvm_prefix)/include + LLVM_LIBDIR=$(get_llvm_prefix)/lib + + [ -n "${LLVM_INCDIR}" -a -n "${LLVM_LIBDIR}" ] || \ + die "LLVM not found - LTO support can not be enabled" + + # LTO and LLVM support currently both depend only on libLTO being + # present. So we can enable both. + CCTOOLS_LTO_CFLAGS="-DLTO_SUPPORT -I${LLVM_INCDIR}" + CCTOOLS_LLVM_CFLAGS="-DLLVM_SUPPORT -I${LLVM_INCDIR}" + fi + + export CTARGET=${CTARGET:-${CHOST}} + if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi + fi + + LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV} + DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV} + if is_cross ; then + BINPATH=/usr/${CHOST}/${CTARGET}/binutils-bin/${PV} + else + BINPATH=/usr/${CTARGET}/binutils-bin/${PV} + fi + + export CCTOOLS_CPPFLAGS="${CPPFLAGS}" + # CPPFLAGS only affects ld64, cctools don't use 'em (which currently is + # what we want). Removed in compile_cctools. + append-cppflags -DNDEBUG + + # Create configure.h for ld64 with SUPPORT_ARCH_ defines in it. + DERIVED_FILE_DIR=${LD64}/src \ + ${LD64}/src/create_configure +} + +compile_ld64() { + einfo "building ${LD64}" + cd "${S}"/${LD64}/src + emake \ + LTO=${ENABLE_LTO} \ + LTO_INCDIR=${LLVM_INCDIR} \ + LTO_LIBDIR=${LLVM_LIBDIR} \ + TAPI=1 \ + TAPI_LIBDIR="${EPREFIX}"/usr/lib + + use test && emake build_test +} + +compile_cctools() { + einfo "building ${CCTOOLS}" + filter-flags -DNDEBUG + + cd "${S}"/${CCTOOLS} + # Suppress running dsymutil because it will warn about missing debug + # info which is expected when compiling without -g as we normally do. + # This might need some more thought if anyone ever wanted to build us + # for debugging with Apple's tools. + emake \ + LIB_PRUNETRIE="-L../../${LD64}/src -lprunetrie" \ + EFITOOLS= \ + LTO="${CCTOOLS_LTO_CFLAGS} ${CCTOOLS_LLVM_CFLAGS}" \ + COMMON_SUBDIRS='libstuff ar misc otool' \ + SUBDIRS_32= \ + LEGACY= \ + RC_ProjectSourceVersion=${CCTOOLS_VERSION} \ + RC_CFLAGS="${CFLAGS}" \ + OFLAG="${CCTOOLS_OFLAG}" \ + DSYMUTIL=": disabled: dsymutil" + + cd "${S}"/${CCTOOLS}/as + emake \ + BUILD_OBSOLETE_ARCH= \ + RC_ProjectSourceVersion=${CCTOOLS_VERSION} \ + RC_CFLAGS="-DASLIBEXECDIR=\"\\\"${EPREFIX}${LIBPATH}/\\\"\" ${CFLAGS}" \ + OFLAG="${CCTOOLS_OFLAG}" \ + DSYMUTIL=": disabled: dsymutil" +} + +src_compile() { + compile_ld64 + compile_cctools +} + +install_ld64() { + exeinto ${BINPATH} + doexe "${S}"/${LD64}/src/{ld64,dyldinfo,unwinddump,ObjectDump,objcimageinfo,machocheck} + dosym ld64 ${BINPATH}/ld + insinto ${DATAPATH}/man/man1 + doins "${S}"/${LD64}/doc/man/man1/{ld,ld64,dyldinfo,unwinddump}.1 +} + +install_cctools() { + cd "${S}"/${CCTOOLS} + emake install_all_but_headers \ + EFITOOLS= \ + COMMON_SUBDIRS='ar misc otool' \ + SUBDIRS_32= \ + DSTROOT=\"${D}\" \ + BINDIR=\"${EPREFIX}\"${BINPATH} \ + LOCBINDIR=\"${EPREFIX}\"${BINPATH} \ + USRBINDIR=\"${EPREFIX}\"${BINPATH} \ + LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} \ + MANDIR=\"${EPREFIX}\"${DATAPATH}/man/ + cd "${S}"/${CCTOOLS}/as + emake install \ + BUILD_OBSOLETE_ARCH= \ + DSTROOT=\"${D}\" \ + USRBINDIR=\"${EPREFIX}\"${BINPATH} \ + LIBDIR=\"${EPREFIX}\"${LIBPATH} \ + LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} + + # upstream is starting to replace classic binutils with llvm-integrated + # ones. In Xcode, nm and size are now symlinks to llvm-{nm,size} while the + # classic version is preserved as {nm,size}-classic. When asked to do so + # by use classic we statically link to the classic version. + # binutils-bin// + # -> binutils-bin//-classic + # + # Otherwise we try to find and use the llvm version of the tool. Since our + # binutils do not live in the same directory as the llvm installation and + # llvm tends to move around, we use a shim that tries to find the llvm + # version of the tool in prefix. It will fall back to the classic tool if + # it fails. + # binutils-bin// + # -> binutils-bin//llvm- + # -> $EPREFIX/usr/lib/llvm/ + # -> $EPREFIX/usr/bin/llvm- + # -> binutils-bin//-classic + budir=${D}/${EPREFIX}/${BINPATH} + for tool in nm size ; do + use classic && \ + ln -sfn ${tool}-classic "${budir}/${tool}" || \ + ln -sfn llvm-shim "${budir}/${tool}" + done + + # Also, otool is now based on llvm-objdump. But a small wrapper installed + # as llvm-otool remains, providing command line compatibility. + use classic && \ + ln -sfn otool-classic "${budir}/otool" || \ + ln -sfn llvm-otool "${budir}/otool" + + # And finally, although our cctools don't actually contain dsymutil and + # objdump, we provide access to the llvm versions of them via the shim to + # be in line with Xcode. + for tool in objdump dsymutil ; do + ln -sfn llvm-shim "${budir}/${tool}" + done + + cd "${ED}"${BINPATH} + insinto ${DATAPATH}/man/man1 + local skips manpage + # ar brings an up-to-date manpage with it + skips=( ar ) + for bin in *; do + for skip in ${skips[@]}; do + if [[ ${bin} == ${skip} ]]; then + continue 2; + fi + done + manpage=${S}/${CCTOOLS}/man/${bin}.1 + if [[ -f "${manpage}" ]]; then + doins "${manpage}" + fi + done + insinto ${DATAPATH}/man/man5 + doins "${S}"/${CCTOOLS}/man/*.5 +} + +src_test() { + if ! [ "${EPREFIX}"/usr/bin/clang ] ; then + einfo "Test suite only works properly with clang - please install" + return + fi + + einfo "Running unit tests" + cd "${S}"/${LD64}/unit-tests/test-cases + # provide the new ld as a symlink to clang so that -ccc-install-dir + # will pick it up + ln -sfn ../../src/ld64 ld + # use our arch command because the System's will report i386 even for an + # x86_64 prefix + perl ../bin/make-recursive.pl \ + BUILT_PRODUCTS_DIR="${S}"/${LD64}/src \ + ARCH="$(arch)" \ + LD="${S}"/${LD64}/src/ld64 \ + CC="${CC} -ccc-install-dir $PWD" \ + CXX="${CXX} -ccc-install-dir $PWD" \ + OTOOL="${S}"/${CCTOOLS}/otool/otool.NEW \ + | perl ../bin/result-filter.pl +} + +src_install() { + install_ld64 + install_cctools + + cd "${S}" + insinto /etc/env.d/binutils + cat <<-EOF > env.d + TARGET="${CHOST}" + VER="${PV}" + FAKE_TARGETS="${CHOST}" + EOF + newins env.d ${CHOST}-${PV} +} + +pkg_postinst() { + binutils-config ${CHOST}-${PV} +} diff --git a/sys-devel/binutils-apple/binutils-apple-11.3.1.ebuild b/sys-devel/binutils-apple/binutils-apple-11.3.1.ebuild deleted file mode 100644 index 9263d8e00b0f..000000000000 --- a/sys-devel/binutils-apple/binutils-apple-11.3.1.ebuild +++ /dev/null @@ -1,374 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="6" - -inherit eutils flag-o-matic toolchain-funcs llvm prefix - -# versions: -# XCode-11.3.1 ld64-530 cctools-949.0.1 -# XCode-11.2.1 ld64-520 cctools-949.0.1 -# XCode-11.0 ld64-512.4 cctools-949.0.1 -# XCode-8.2.1 ld64-274.2 cctools-895 <== binutils-apple-8.2.1-r1 (2019) - -# macOS-10.15.6 dyld-750.6 Causes build failures with Xcode-11 tools -# macOS-10.14.4-10.14.6 dyld-655.1.1 Causes build failures with Xcode-11 tools -# macOS-10.13.6 dyld-551.4 -# macOS-10.12.1-10.12.3 dyld-421.2 <== binutils-apple-8.2.1-r1,8.1 - -LD64=ld64-530 -CCTOOLS_VERSION=949.0.1 -CCTOOLS=cctools-${CCTOOLS_VERSION} -DYLD=dyld-551.4 - -DESCRIPTION="Darwin assembler as(1) and static linker ld(1), Xcode Tools ${PV}" -HOMEPAGE="http://www.opensource.apple.com/" -SRC_URI="http://www.opensource.apple.com/tarballs/ld64/${LD64}.tar.gz - http://www.opensource.apple.com/tarballs/cctools/${CCTOOLS}.tar.gz - http://www.opensource.apple.com/tarballs/dyld/${DYLD}.tar.gz - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-4.3-r1.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-5.1-r2.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-7.3-r2.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-8.2-r1.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-11.3.tar.bz2" - -LICENSE="APSL-2" -KEYWORDS="~x64-macos ~x86-macos" -IUSE="lto classic test" # tapi is now required -RESTRICT="!test? ( test )" - -# ld64 can now only be compiled using llvm and libc++ since it massively uses -# C++11 language features. *But additionally* the as driver now defaults to -# calling clang as the assembler on many platforms. This can be disabled using -# -Wa,-Q but since it's default we make llvm a static runtime dependency. -RDEPEND="sys-devel/binutils-config - lto? ( app-arch/xar ) - sys-libs/tapi - sys-devel/llvm:* - sys-libs/libcxx" -DEPEND="${RDEPEND} - test? ( >=dev-lang/perl-5.8.8 )" - -SLOT="11" - -S=${WORKDIR} - -is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } - -llvm_pkg_setup() { - # eclass version will die if no LLVM can be found which will break prefix - # bootstrap - : -} - -src_prepare() { - cd "${S}"/${LD64}/src - cp "${S}"/ld64-136-compile_stubs.h ld/compile_stubs.h - cp "${S}"/ld64-530-Makefile Makefile - - epatch "${S}"/ld64-530-nolto.patch - epatch "${S}"/ld64-236.3-crashreporter.patch - - # workound llvm-3.9.{0,1} issue - # https://bugs.gentoo.org/show_bug.cgi?id=603580 - # https://groups.google.com/forum/#!topic/llvm-dev/JY6nuKE__sU - # http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20160829/169553.html - sed -i -e '/COMPILE_TIME_ASSERT/d' ld/parsers/libunwind/*.hpp || die - - # provide missing headers dyld - mkdir -p include/mach-o || die - # never present because it's private - cp ../../${DYLD}/include/mach-o/dyld_priv.h include/mach-o || die - - local VER_STR="\"@(#)PROGRAM:ld PROJECT:${LD64} (Gentoo ${PN}-${PVR})\\n\"" - echo "char ldVersionString[] = ${VER_STR};" > version.cpp - - cd "${S}"/${CCTOOLS} - epatch "${S}"/${PN}-4.5-as.patch - epatch "${S}"/${PN}-5.1-as-dir.patch - epatch "${S}"/${PN}-5.1-ranlib.patch - epatch "${S}"/${PN}-3.1.1-libtool-ranlib.patch - epatch "${S}"/${PN}-3.1.1-no-headers.patch - epatch "${S}"/${PN}-4.0-no-oss-dir.patch - epatch "${S}"/cctools-839-intel-retf.patch - epatch "${S}"/${PN}-5.1-extraneous-includes.patch - epatch "${S}"/${PN}-5.1-strnlen.patch - epatch "${S}"/${PN}-7.3-make-j.patch - epatch "${S}"/${PN}-11.3.1-no-developertools-dir.patch # 7.3 failed to apply. updated - epatch "${S}"/${PN}-11.3.1-llvm-prefix.patch # 8.2.1 failed to apply. updated - epatch "${S}"/${PN}-8.2.1-llvm-shim.patch - epatch "${S}"/${PN}-11.3.1-nolto-fix.patch # bugfix - epatch "${S}"/${PN}-11.3.1-segaddrtable-fix.patch # bugfix - eprefixify libstuff/execute.c - cp ../${LD64}/src/other/prune_trie.h include/mach-o/ || die - - # do not build profileable libstuff to save compile time - sed -i -e "/^all:/s, profile , ," libstuff/Makefile - - # bugfix. args.c not built but args_expand_at is used in misc/libtool.c - sed -i -e "/^CFILES = /s, errors.c , errors.c args.c ," libstuff/Makefile - - # cctools version is provided to make via RC_ProjectSourceVersion which - # generates and compiles it as apple_version[] into libstuff. From - # there it's picked up by the individual tools. Since - # RC_ProjectSourceVersion is also used as library version, we can't - # just append our local version info. So we hack the libstuff Makefile - # to include our Gentoo version. - sed -i -e "/cctools-.*(RC_ProjectSourceVersion).*OFILE_DIR/s,Version),Version) (Gentoo ${PN}-${PVR})," \ - libstuff/Makefile - - eapply_user - - # clean up test suite - cd "${S}"/${LD64}/unit-tests/test-cases - local c - - # we don't have llvm - ((++c)); rm -rf llvm-integration; - - # we don't have dtrace - ((++c)); rm -rf dtrace-static-probes-coalescing; - ((++c)); rm -rf dtrace-static-probes; - - # a file is missing - ((++c)); rm -rf eh-coalescing-r - - # we don't do universal binaries - ((++c)); rm -rf blank-stubs; - - # looks like a problem with apple's result-filter.pl - ((++c)); rm -rf implicit-common3; - ((++c)); rm -rf order_file-ans; - - # TODO no idea what goes wrong here - ((++c)); rm -rf dwarf-debug-notes; - - einfo "Deleted $c tests that were bound to fail" - - cd "${S}" - ebegin "cleaning Makefiles from unwanted CFLAGS" - find . -name "Makefile" -print0 | xargs -0 sed \ - -i \ - -e 's/ -g / /g' \ - -e 's/"-g /"/g' \ - -e 's/^G =.*$/G =/' \ - -e 's/^OFLAG =.*$/OFLAG =/' \ - -e 's/install -c -s/install/g' - eend $? -} - -src_configure() { - ENABLE_LTO=0 - if use lto ; then - ENABLE_LTO=1 - - LLVM_INCDIR=$(get_llvm_prefix)/include - LLVM_LIBDIR=$(get_llvm_prefix)/lib - - [ -n "${LLVM_INCDIR}" -a -n "${LLVM_LIBDIR}" ] || \ - die "LLVM not found - LTO support can not be enabled" - - # LTO and LLVM support currently both depend only on libLTO being - # present. So we can enable both. - CCTOOLS_LTO_CFLAGS="-DLTO_SUPPORT -I${LLVM_INCDIR}" - CCTOOLS_LLVM_CFLAGS="-DLLVM_SUPPORT -I${LLVM_INCDIR}" - fi - - export CTARGET=${CTARGET:-${CHOST}} - if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi - fi - - LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV} - DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV} - if is_cross ; then - BINPATH=/usr/${CHOST}/${CTARGET}/binutils-bin/${PV} - else - BINPATH=/usr/${CTARGET}/binutils-bin/${PV} - fi - - export CCTOOLS_CPPFLAGS="${CPPFLAGS}" - # CPPFLAGS only affects ld64, cctools don't use 'em (which currently is - # what we want). Removed in compile_cctools. - append-cppflags -DNDEBUG - - # Create configure.h for ld64 with SUPPORT_ARCH_ defines in it. - DERIVED_FILE_DIR=${LD64}/src \ - ${LD64}/src/create_configure -} - -compile_ld64() { - einfo "building ${LD64}" - cd "${S}"/${LD64}/src - emake \ - LTO=${ENABLE_LTO} \ - LTO_INCDIR=${LLVM_INCDIR} \ - LTO_LIBDIR=${LLVM_LIBDIR} \ - TAPI=1 \ - TAPI_LIBDIR="${EPREFIX}"/usr/lib - - use test && emake build_test -} - -compile_cctools() { - einfo "building ${CCTOOLS}" - filter-flags -DNDEBUG - - cd "${S}"/${CCTOOLS} - # Suppress running dsymutil because it will warn about missing debug - # info which is expected when compiling without -g as we normally do. - # This might need some more thought if anyone ever wanted to build us - # for debugging with Apple's tools. - emake \ - LIB_PRUNETRIE="-L../../${LD64}/src -lprunetrie" \ - EFITOOLS= \ - LTO="${CCTOOLS_LTO_CFLAGS} ${CCTOOLS_LLVM_CFLAGS}" \ - COMMON_SUBDIRS='libstuff ar misc otool' \ - SUBDIRS_32= \ - LEGACY= \ - RC_ProjectSourceVersion=${CCTOOLS_VERSION} \ - RC_CFLAGS="${CFLAGS}" \ - OFLAG="${CCTOOLS_OFLAG}" \ - DSYMUTIL=": disabled: dsymutil" - - cd "${S}"/${CCTOOLS}/as - emake \ - BUILD_OBSOLETE_ARCH= \ - RC_ProjectSourceVersion=${CCTOOLS_VERSION} \ - RC_CFLAGS="-DASLIBEXECDIR=\"\\\"${EPREFIX}${LIBPATH}/\\\"\" ${CFLAGS}" \ - OFLAG="${CCTOOLS_OFLAG}" \ - DSYMUTIL=": disabled: dsymutil" -} - -src_compile() { - compile_ld64 - compile_cctools -} - -install_ld64() { - exeinto ${BINPATH} - doexe "${S}"/${LD64}/src/{ld64,dyldinfo,unwinddump,ObjectDump,objcimageinfo,machocheck} - dosym ld64 ${BINPATH}/ld - insinto ${DATAPATH}/man/man1 - doins "${S}"/${LD64}/doc/man/man1/{ld,ld64,dyldinfo,unwinddump}.1 -} - -install_cctools() { - cd "${S}"/${CCTOOLS} - emake install_all_but_headers \ - EFITOOLS= \ - COMMON_SUBDIRS='ar misc otool' \ - SUBDIRS_32= \ - DSTROOT=\"${D}\" \ - BINDIR=\"${EPREFIX}\"${BINPATH} \ - LOCBINDIR=\"${EPREFIX}\"${BINPATH} \ - USRBINDIR=\"${EPREFIX}\"${BINPATH} \ - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} \ - MANDIR=\"${EPREFIX}\"${DATAPATH}/man/ - cd "${S}"/${CCTOOLS}/as - emake install \ - BUILD_OBSOLETE_ARCH= \ - DSTROOT=\"${D}\" \ - USRBINDIR=\"${EPREFIX}\"${BINPATH} \ - LIBDIR=\"${EPREFIX}\"${LIBPATH} \ - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} - - # upstream is starting to replace classic binutils with llvm-integrated - # ones. In Xcode, nm and size are now symlinks to llvm-{nm,size} while the - # classic version is preserved as {nm,size}-classic. When asked to do so - # by use classic we statically link to the classic version. - # binutils-bin// - # -> binutils-bin//-classic - # - # Otherwise we try to find and use the llvm version of the tool. Since our - # binutils do not live in the same directory as the llvm installation and - # llvm tends to move around, we use a shim that tries to find the llvm - # version of the tool in prefix. It will fall back to the classic tool if - # it fails. - # binutils-bin// - # -> binutils-bin//llvm- - # -> $EPREFIX/usr/lib/llvm/ - # -> $EPREFIX/usr/bin/llvm- - # -> binutils-bin//-classic - budir=${D}/${EPREFIX}/${BINPATH} - for tool in nm size ; do - use classic && \ - ln -sfn ${tool}-classic "${budir}/${tool}" || \ - ln -sfn llvm-shim "${budir}/${tool}" - done - - # Also, otool is now based on llvm-objdump. But a small wrapper installed - # as llvm-otool remains, providing command line compatibility. - use classic && \ - ln -sfn otool-classic "${budir}/otool" || \ - ln -sfn llvm-otool "${budir}/otool" - - # And finally, although our cctools don't actually contain dsymutil and - # objdump, we provide access to the llvm versions of them via the shim to - # be in line with Xcode. - for tool in objdump dsymutil ; do - ln -sfn llvm-shim "${budir}/${tool}" - done - - cd "${ED}"${BINPATH} - insinto ${DATAPATH}/man/man1 - local skips manpage - # ar brings an up-to-date manpage with it - skips=( ar ) - for bin in *; do - for skip in ${skips[@]}; do - if [[ ${bin} == ${skip} ]]; then - continue 2; - fi - done - manpage=${S}/${CCTOOLS}/man/${bin}.1 - if [[ -f "${manpage}" ]]; then - doins "${manpage}" - fi - done - insinto ${DATAPATH}/man/man5 - doins "${S}"/${CCTOOLS}/man/*.5 -} - -src_test() { - if ! [ "${EPREFIX}"/usr/bin/clang ] ; then - einfo "Test suite only works properly with clang - please install" - return - fi - - einfo "Running unit tests" - cd "${S}"/${LD64}/unit-tests/test-cases - # provide the new ld as a symlink to clang so that -ccc-install-dir - # will pick it up - ln -sfn ../../src/ld64 ld - # use our arch command because the System's will report i386 even for an - # x86_64 prefix - perl ../bin/make-recursive.pl \ - BUILT_PRODUCTS_DIR="${S}"/${LD64}/src \ - ARCH="$(arch)" \ - LD="${S}"/${LD64}/src/ld64 \ - CC="${CC} -ccc-install-dir $PWD" \ - CXX="${CXX} -ccc-install-dir $PWD" \ - OTOOL="${S}"/${CCTOOLS}/otool/otool.NEW \ - | perl ../bin/result-filter.pl -} - -src_install() { - install_ld64 - install_cctools - - cd "${S}" - insinto /etc/env.d/binutils - cat <<-EOF > env.d - TARGET="${CHOST}" - VER="${PV}" - FAKE_TARGETS="${CHOST}" - EOF - newins env.d ${CHOST}-${PV} -} - -pkg_postinst() { - binutils-config ${CHOST}-${PV} -} diff --git a/sys-devel/binutils-apple/binutils-apple-3.2.ebuild b/sys-devel/binutils-apple/binutils-apple-3.2.ebuild deleted file mode 100644 index 4ccf5b257b9c..000000000000 --- a/sys-devel/binutils-apple/binutils-apple-3.2.ebuild +++ /dev/null @@ -1,239 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="6" - -inherit eutils flag-o-matic toolchain-funcs - -RESTRICT="test" # the test suite will test what's installed. - -# LD64=ld64-95.2.12 # can't compile this one, missing libunwind/* includes -# http://lists.apple.com/archives/Darwin-dev/2009/Sep/msg00025.html -LD64=ld64-85.2.1 # from 3.1.2 -CCTOOLS=cctools-750 -LP64PATCHES=binutils-apple-LP64-patches-1 - -DESCRIPTION="Darwin assembler as(1) and static linker ld(1), Xcode Tools 3.2" -HOMEPAGE="http://www.opensource.apple.com/" -SRC_URI="https://opensource.apple.com/tarballs/ld64/${LD64}.tar.gz - https://opensource.apple.com/tarballs/cctools/${CCTOOLS}.tar.gz - https://dev.gentoo.org/~grobian/distfiles/${LP64PATCHES}.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-3.2-r0.tar.bz2" - -LICENSE="APSL-2" -KEYWORDS="~ppc-macos ~x64-macos ~x86-macos" -IUSE="test" - -RDEPEND="sys-devel/binutils-config" -DEPEND="${RDEPEND} - test? ( >=dev-lang/perl-5.8.8 )" - -SLOT="3" - -S=${WORKDIR} - -is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } - -prepare_ld64() { - cd "${S}"/${LD64}/src - cp "${WORKDIR}"/Makefile . || die - - local VER_STR="\"@(#)PROGRAM:ld PROJECT:${LD64} (Gentoo ${PN}-${PVR})\\n\"" - sed -i \ - -e '/^#define LTO_SUPPORT 1/s:1:0:' \ - ObjectDump.cpp || die - echo '#undef LTO_SUPPORT' > configure.h - echo '' > linker_opts - echo "char ldVersionString[] = ${VER_STR};" > version.cpp - - # clean up test suite - cd "${S}"/${LD64}/unit-tests/test-cases - local c - - # we don't have llvm - ((++c)); rm -rf llvm-integration; - - # we don't have dtrace - ((++c)); rm -rf dtrace-static-probes-coalescing; - ((++c)); rm -rf dtrace-static-probes; - - # a file is missing - ((++c)); rm -rf eh-coalescing-r - - # we don't do universal binaries - ((++c)); rm -rf blank-stubs; - - # looks like a problem with apple's result-filter.pl - ((++c)); rm -rf implicit-common3; - ((++c)); rm -rf order_file-ans; - - # TODO no idea what goes wrong here - ((++c)); rm -rf dwarf-debug-notes; - - elog "Deleted $c tests that were bound to fail" -} - -src_prepare() { - prepare_ld64 - - cd "${S}"/${CCTOOLS} - epatch "${WORKDIR}"/${PN}-3.1.1-as.patch - epatch "${WORKDIR}"/${PN}-3.1.1-as-dir.patch - epatch "${WORKDIR}"/${PN}-3.1.1-ranlib.patch - epatch "${WORKDIR}"/${PN}-3.1.1-libtool-ranlib.patch - epatch "${WORKDIR}"/${PN}-3.1.1-nmedit.patch - epatch "${WORKDIR}"/${PN}-3.1.1-no-headers.patch - epatch "${WORKDIR}"/${PN}-3.1.1-no-oss-dir.patch - - cd "${S}"/${LD64} - epatch "${WORKDIR}"/${PN}-3.1.1-testsuite.patch - epatch "${WORKDIR}"/LP64/ld64/*.patch - - cd "${S}" - ebegin "cleaning Makefiles from unwanted CFLAGS" - find . -name "Makefile" -print0 | xargs -0 sed \ - -i \ - -e 's/ -g / /g' \ - -e 's/^OFLAG =.*$/OFLAG =/' \ - -e 's/install -c -s/install/g' - eend $? - - # -pg is used and the two are incompatible - filter-flags -fomit-frame-pointer - - eapply_user -} - -src_configure() { - export CTARGET=${CTARGET:-${CHOST}} - if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi - fi - - LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV} - INCPATH=${LIBPATH}/include - DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV} - if is_cross ; then - BINPATH=/usr/${CHOST}/${CTARGET}/binutils-bin/${PV} - else - BINPATH=/usr/${CTARGET}/binutils-bin/${PV} - fi - - if tc-is-gcc && [[ $(gcc-fullversion) != 4.2.1 ]] ; then - # force gcc-apple - CC=${CTARGET}-gcc-4.2.1 - CXX=${CTARGET}-g++-4.2.1 - fi -} - -compile_ld64() { - cd "${S}"/${LD64}/src - # 'struct linkedit_data_command' is defined in mach-o/loader.h on leopard, - # but not on tiger. - [[ ${CHOST} == *-apple-darwin8 ]] && \ - append-flags -isystem "${S}"/${CCTOOLS}/include/ - emake - use test && emake build_test -} - -compile_cctools() { - cd "${S}"/${CCTOOLS} - emake \ - LTO= \ - TRIE= \ - EFITOOLS= \ - COMMON_SUBDIRS='libstuff ar misc otool' \ - SUBDIRS_32= \ - RC_CFLAGS="${CFLAGS}" OFLAG="${CFLAGS}" - - cd "${S}"/${CCTOOLS}/as - emake \ - BUILD_OBSOLETE_ARCH= \ - RC_CFLAGS="-DASLIBEXECDIR=\"\\\"${EPREFIX}${LIBPATH}/\\\"\" ${CFLAGS}" -} - -src_compile() { - tc-export CC CXX - compile_cctools - compile_ld64 -} - -install_ld64() { - exeinto ${BINPATH} - doexe "${S}"/${LD64}/src/{ld64,rebase} - dosym ld64 ${BINPATH}/ld - insinto ${DATAPATH}/man/man1 - doins "${S}"/${LD64}/doc/man/man1/{ld,ld64,rebase}.1 -} - -install_cctools() { - cd "${S}"/${CCTOOLS} - emake install_all_but_headers \ - EFITOOLS= \ - COMMON_SUBDIRS='ar misc otool' \ - SUBDIRS_32= \ - RC_CFLAGS="${CFLAGS}" OFLAG="${CFLAGS}" \ - DSTROOT=\"${D}\" \ - BINDIR=\"${EPREFIX}\"${BINPATH} \ - LOCBINDIR=\"${EPREFIX}\"${BINPATH} \ - USRBINDIR=\"${EPREFIX}\"${BINPATH} \ - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} \ - MANDIR=\"${EPREFIX}\"${DATAPATH}/man/ - cd "${S}"/${CCTOOLS}/as - emake install \ - BUILD_OBSOLETE_ARCH= \ - DSTROOT=\"${D}\" \ - USRBINDIR=\"${EPREFIX}\"${BINPATH} \ - LIBDIR=\"${EPREFIX}\"${LIBPATH} \ - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} - - cd "${ED}"${BINPATH} - insinto ${DATAPATH}/man/man1 - local skips manpage - # ar brings an up-to-date manpage with it - skips=( ar ) - for bin in *; do - for skip in ${skips[@]}; do - if [[ ${bin} == ${skip} ]]; then - continue 2; - fi - done - manpage=${S}/${CCTOOLS}/man/${bin}.1 - if [[ -f "${manpage}" ]]; then - doins "${manpage}" - fi - done - insinto ${DATAPATH}/man/man5 - doins "${S}"/${CCTOOLS}/man/*.5 -} - -src_test() { - einfo "Running unit tests" - cd "${S}"/${LD64}/unit-tests/test-cases - # need host arch, since GNU arch doesn't do what Apple's does - tc-export CC CXX - perl ../bin/make-recursive.pl \ - ARCH="$(/usr/bin/arch)" \ - RELEASEDIR="${S}"/${LD64}/src \ - | perl ../bin/result-filter.pl -} - -src_install() { - install_ld64 - install_cctools - - cd "${S}" - insinto /etc/env.d/binutils - cat <<-EOF > env.d - TARGET="${CHOST}" - VER="${PV}" - FAKE_TARGETS="${CHOST}" - EOF - newins env.d ${CHOST}-${PV} -} - -pkg_postinst() { - binutils-config ${CHOST}-${PV} -} diff --git a/sys-devel/binutils-apple/binutils-apple-4.3-r2.ebuild b/sys-devel/binutils-apple/binutils-apple-4.3-r2.ebuild deleted file mode 100644 index b3cf69bdae49..000000000000 --- a/sys-devel/binutils-apple/binutils-apple-4.3-r2.ebuild +++ /dev/null @@ -1,337 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="5" - -inherit eutils flag-o-matic toolchain-funcs - -LD64=ld64-128.2 -CCTOOLS_VERSION=822 -CCTOOLS=cctools-${CCTOOLS_VERSION} -CCTOOLS_HEADERS=cctools-855 -LIBUNWIND=libunwind-30 -DYLD=dyld-195.6 - -DESCRIPTION="Darwin assembler as(1) and static linker ld(1), Xcode Tools ${PV}" -HOMEPAGE="http://www.opensource.apple.com/" -SRC_URI="http://www.opensource.apple.com/tarballs/ld64/${LD64}.tar.gz - http://www.opensource.apple.com/tarballs/cctools/${CCTOOLS}.tar.gz - http://www.opensource.apple.com/tarballs/cctools/${CCTOOLS_HEADERS}.tar.gz - http://www.opensource.apple.com/tarballs/libunwind/${LIBUNWIND}.tar.gz - http://www.opensource.apple.com/tarballs/dyld/${DYLD}.tar.gz - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-4.3-r1.tar.bz2" - -LICENSE="APSL-2" -KEYWORDS="~ppc-macos ~x64-macos ~x86-macos" -IUSE="lto test multitarget" -RESTRICT="!test? ( test )" - -RDEPEND="sys-devel/binutils-config - lto? ( sys-devel/llvm:* )" -DEPEND="${RDEPEND} - test? ( >=dev-lang/perl-5.8.8 ) - || ( >=sys-devel/gcc-apple-4.2.1 sys-devel/llvm:* )" - -SLOT="4" - -S=${WORKDIR} - -is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } - -src_prepare() { - if use multitarget ; then - ewarn "You have enabled support for non-standard target architectures" - ewarn "using USE=multitarget. This includes experimental support for" - ewarn "ppc and ppc64 which is a community forward-port from the last" - ewarn "version of ld64 to officially support PPC." - - if [[ ${CHOST} == powerpc*-darwin* ]] ; then - ewarn "HERE BE DRAGONS! Your system seems to be PPC which means that" - ewarn "the actual usability of your Gentoo programs will depend on the" - ewarn "above-mentioned experimental PPC support in the linker. Be" - ewarn "sure to keep a known-to-work version like ${PN}-3.2.6 around!" - fi - fi - - cd "${S}"/${LD64}/src - cp "${S}"/ld64-128.2-Makefile-3 Makefile - epatch "${S}"/ld64-127.2-lto.patch - epatch "${S}"/ld64-128.2-stdlib.patch - epatch "${S}"/ld64-241.9-register-names.patch - epatch "${S}"/ld64-241.9-get-comm-align.patch - epatch "${S}"/ld64-241.9-cc_md5.patch - epatch "${S}"/ld64-128.2-1010.patch - epatch "${S}"/ld64-128.2-ppc.patch - - # We used to use our own copy of lto.h, which doesn't require llvm - # build-env. Current versions of llvm provide - # $EPREFIX/usr/include/llvm-c/lto.h as well as - # $EPREFIX/usr/lib/libLTO.{so,dylib}, so we just use these. - - # provide missing headers from libunwind and dyld - mkdir -p include/{mach,mach-o/arm} || die - # never present because it's private - cp ../../${DYLD}/include/mach-o/dyld_priv.h include/mach-o || die - # missing on <= 10.5 - cp ../../${LIBUNWIND}/include/libunwind.h include/ || die - cp ../../${LIBUNWIND}/include/mach-o/compact_unwind_encoding.h include/mach-o || die - # missing on <= 10.4 - cp ../../${DYLD}/include/mach-o/dyld_images.h include/mach-o || die - cp ../../${CCTOOLS}/include/mach-o/loader.h include/mach-o || die - # use copies from cctools because they're otherwise hidden in some SDK - cp ../../${CCTOOLS}/include/mach-o/arm/reloc.h include/mach-o/arm || die - # provide all required CPU_TYPEs on all platforms - cp ../../${CCTOOLS}/include/mach/machine.h include/mach/machine.h - # add alias for newer identifiers, because ld64 uses both but cctools - # header only defines the older - epatch "${S}"/ld64-236.3-missing-cputypes.patch - - # mimic OS X Leopard-style Availability.h macros for libunwind.h on - # older systems - [[ ${CHOST} == *darwin* && ${CHOST#*-darwin} -le 8 ]] && \ - echo "#define __OSX_AVAILABLE_STARTING(x,y) " > include/Availability.h - - local VER_STR="\"@(#)PROGRAM:ld PROJECT:${LD64} (Gentoo ${PN}-${PVR})\\n\"" - echo "char ldVersionString[] = ${VER_STR};" > version.cpp - - epatch "${S}"/ld64-123.2-debug-backtrace.patch - if [[ ${CHOST} == powerpc*-darwin* ]] ; then - epatch "${S}"/ld64-123.2-darwin8-no-mlong-branch-warning.patch - epatch "${S}"/ld64-127.2-thread_state.patch - fi - - cd "${S}"/${CCTOOLS} - epatch "${S}"/${PN}-4.0-as.patch - epatch "${S}"/${PN}-4.2-as-dir.patch - epatch "${S}"/${PN}-3.2.3-ranlib.patch - epatch "${S}"/${PN}-3.1.1-libtool-ranlib.patch - epatch "${S}"/${PN}-3.1.1-nmedit.patch - epatch "${S}"/${PN}-3.1.1-no-headers.patch - epatch "${S}"/${PN}-4.0-no-oss-dir.patch - epatch "${S}"/${PN}-4.2-lto.patch - epatch "${S}"/${PN}-5.1-extraneous-includes.patch - epatch "${S}"/${PN}-5.1-thread-state-redefined.patch - epatch "${S}"/${PN}-4.3-makefile-target-warning.patch - epatch "${S}"/${PN}-4.3-lto-prefix.patch - cp ../${LD64}/src/other/prune_trie.h include/mach-o/ || die - # __darwin_i386_float_state missing on <= 10.4 - cp -a ../${CCTOOLS_HEADERS}/include/mach/i386 include/mach - - # do not build profileable libstuff to save compile time - sed -i -e "/^all:/s, profile , ," libstuff/Makefile - - # cctools version is provided to make via RC_ProjectSourceVersion which - # generates and compiles it as apple_version[] into libstuff. From - # there it's picked up by the individual tools. Since - # RC_ProjectSourceVersion is also used as library version, we can't - # just append our local version info. So we hack the libstuff Makefile - # to include our Gentoo version. - sed -i -e "/cctools-.*(RC_ProjectSourceVersion).*OFILE_DIR/s,Version),Version) (Gentoo ${PN}-${PVR})," \ - libstuff/Makefile - - # clean up test suite - cd "${S}"/${LD64}/unit-tests/test-cases - local c - - # we don't have llvm - ((++c)); rm -rf llvm-integration; - - # we don't have dtrace - ((++c)); rm -rf dtrace-static-probes-coalescing; - ((++c)); rm -rf dtrace-static-probes; - - # a file is missing - ((++c)); rm -rf eh-coalescing-r - - # we don't do universal binaries - ((++c)); rm -rf blank-stubs; - - # looks like a problem with apple's result-filter.pl - ((++c)); rm -rf implicit-common3; - ((++c)); rm -rf order_file-ans; - - # TODO no idea what goes wrong here - ((++c)); rm -rf dwarf-debug-notes; - - einfo "Deleted $c tests that were bound to fail" - - cd "${S}" - ebegin "cleaning Makefiles from unwanted CFLAGS" - find . -name "Makefile" -print0 | xargs -0 sed \ - -i \ - -e 's/ -g / /g' \ - -e 's/^G =.*$/G =/' \ - -e 's/^OFLAG =.*$/OFLAG =/' \ - -e 's/install -c -s/install/g' - eend $? -} - -src_configure() { - ENABLE_LTO=0 - use lto && ENABLE_LTO=1 - - export CTARGET=${CTARGET:-${CHOST}} - if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi - fi - - LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV} - INCPATH=${LIBPATH}/include - DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV} - if is_cross ; then - BINPATH=/usr/${CHOST}/${CTARGET}/binutils-bin/${PV} - else - BINPATH=/usr/${CTARGET}/binutils-bin/${PV} - fi - - # CPPFLAGS only affects ld64, cctools don't use 'em (which currently is - # what we want) - append-cppflags -DNDEBUG - - CCTOOLS_OFLAG= - if [[ ${CHOST} == *darwin* && ${CHOST#*-darwin} -le 8 ]] ; then - # cctools expect to use UNIX03 struct member names. - # This is default on > 10.4. Activate it on <= 10.4 by defining - # __DARWIN_UNIX03 explicitly. - CCTOOLS_OFLAG="-D__DARWIN_UNIX03=1" - fi - - cat < ${LD64}/src/configure.h -#define DEFAULT_MACOSX_MIN_VERSION "${MACOSX_DEPLOYMENT_TARGET}" -#define SUPPORT_ARCH_arm_any 1 -EOF - - use multitarget && cat <> ${LD64}/src/configure.h -#define SUPPORT_ARCH_ppc 1 -EOF -#define SUPPORT_ARCH_ppc64 1 -} - -compile_ld64() { - einfo "building ${LD64}" - cd "${S}"/${LD64}/src - emake \ - LTO=${ENABLE_LTO} - - use test && emake build_test -} - -compile_cctools() { - einfo "building ${CCTOOLS}" - cd "${S}"/${CCTOOLS} - # -j1 because it fails too often with weird errors - emake \ - LIB_PRUNETRIE="-L../../${LD64}/src -lprunetrie" \ - EFITOOLS= \ - ENABLE_LTO="${ENABLE_LTO}" \ - COMMON_SUBDIRS='libstuff ar misc otool' \ - SUBDIRS_32= \ - LEGACY= \ - RC_ProjectSourceVersion=${CCTOOLS_VERSION} \ - RC_CFLAGS="${CFLAGS}" \ - OFLAG="${CCTOOLS_OFLAG}" \ - -j1 - - cd "${S}"/${CCTOOLS}/as - emake \ - BUILD_OBSOLETE_ARCH= \ - RC_ProjectSourceVersion=${CCTOOLS_VERSION} \ - RC_CFLAGS="-DASLIBEXECDIR=\"\\\"${EPREFIX}${LIBPATH}/\\\"\" ${CFLAGS}" \ - OFLAG="${CCTOOLS_OFLAG}" -} - -src_compile() { - compile_ld64 - compile_cctools -} - -install_ld64() { - exeinto ${BINPATH} - doexe "${S}"/${LD64}/src/{ld64,rebase,dyldinfo,unwinddump,ObjectDump} - dosym ld64 ${BINPATH}/ld - insinto ${DATAPATH}/man/man1 - doins "${S}"/${LD64}/doc/man/man1/{ld,ld64,rebase}.1 -} - -install_cctools() { - cd "${S}"/${CCTOOLS} - emake install_all_but_headers \ - EFITOOLS= \ - COMMON_SUBDIRS='ar misc otool' \ - SUBDIRS_32= \ - DSTROOT=\"${D}\" \ - BINDIR=\"${EPREFIX}\"${BINPATH} \ - LOCBINDIR=\"${EPREFIX}\"${BINPATH} \ - USRBINDIR=\"${EPREFIX}\"${BINPATH} \ - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} \ - MANDIR=\"${EPREFIX}\"${DATAPATH}/man/ - cd "${S}"/${CCTOOLS}/as - emake install \ - BUILD_OBSOLETE_ARCH= \ - DSTROOT=\"${D}\" \ - USRBINDIR=\"${EPREFIX}\"${BINPATH} \ - LIBDIR=\"${EPREFIX}\"${LIBPATH} \ - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} - - cd "${ED}"${BINPATH} - insinto ${DATAPATH}/man/man1 - local skips manpage - # ar brings an up-to-date manpage with it - skips=( ar ) - for bin in *; do - for skip in ${skips[@]}; do - if [[ ${bin} == ${skip} ]]; then - continue 2; - fi - done - manpage=${S}/${CCTOOLS}/man/${bin}.1 - if [[ -f "${manpage}" ]]; then - doins "${manpage}" - fi - done - insinto ${DATAPATH}/man/man5 - doins "${S}"/${CCTOOLS}/man/*.5 -} - -src_test() { - if ! [ "${EPREFIX}"/usr/bin/clang ] ; then - einfo "Test suite only works properly with clang - please install" - return - fi - - einfo "Running unit tests" - cd "${S}"/${LD64}/unit-tests/test-cases - # provide the new ld as a symlink to clang so that -ccc-install-dir - # will pick it up - ln -sfn ../../src/ld64 ld - # use our arch command because the System's will report i386 even for an - # x86_64 prefix - perl ../bin/make-recursive.pl \ - BUILT_PRODUCTS_DIR="${S}"/${LD64}/src \ - ARCH="$(arch)" \ - LD="${S}"/${LD64}/src/ld64 \ - CC="clang -ccc-install-dir $PWD" \ - CXX="clang++ -ccc-install-dir $PWD" \ - OTOOL="${S}"/${CCTOOLS}/otool/otool.NEW \ - | perl ../bin/result-filter.pl -} - -src_install() { - install_ld64 - install_cctools - - cd "${S}" - insinto /etc/env.d/binutils - cat <<-EOF > env.d - TARGET="${CHOST}" - VER="${PV}" - FAKE_TARGETS="${CHOST}" - EOF - newins env.d ${CHOST}-${PV} -} - -pkg_postinst() { - binutils-config ${CHOST}-${PV} -} diff --git a/sys-devel/binutils-apple/binutils-apple-5.1-r1.ebuild b/sys-devel/binutils-apple/binutils-apple-5.1-r1.ebuild deleted file mode 100644 index 73ec964cbefc..000000000000 --- a/sys-devel/binutils-apple/binutils-apple-5.1-r1.ebuild +++ /dev/null @@ -1,384 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="5" - -inherit eutils flag-o-matic toolchain-funcs - -LD64=ld64-236.3 -CCTOOLS_VERSION=855 -CCTOOLS=cctools-${CCTOOLS_VERSION} -LIBUNWIND=libunwind-35.3 -DYLD=dyld-353.2.1 - -DESCRIPTION="Darwin assembler as(1) and static linker ld(1), Xcode Tools ${PV}" -HOMEPAGE="http://www.opensource.apple.com/" -SRC_URI="http://www.opensource.apple.com/tarballs/ld64/${LD64}.tar.gz - http://www.opensource.apple.com/tarballs/cctools/${CCTOOLS}.tar.gz - http://www.opensource.apple.com/tarballs/dyld/${DYLD}.tar.gz - http://www.opensource.apple.com/tarballs/libunwind/${LIBUNWIND}.tar.gz - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-4.3-r1.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-5.1-r2.tar.bz2" - -LICENSE="APSL-2" -KEYWORDS="~ppc-macos ~x64-macos ~x86-macos" -IUSE="lto test libcxx multitarget" -RESTRICT="!test? ( test )" - -RDEPEND="sys-devel/binutils-config - lto? ( sys-devel/llvm:* ) - libcxx? ( sys-libs/libcxx )" -DEPEND="${RDEPEND} - test? ( >=dev-lang/perl-5.8.8 ) - || ( >=sys-devel/gcc-apple-4.2.1 sys-devel/llvm:* ) - libcxx? ( sys-devel/llvm:* )" - -SLOT="5" - -S=${WORKDIR} - -is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } - -src_prepare() { - if use multitarget ; then - ewarn "You have enabled support for non-standard target architectures" - ewarn "using USE=multitarget. This includes experimental support for" - ewarn "ppc and ppc64 which is a community forward-port from the last" - ewarn "version of ld64 to officially support PPC." - - if [[ ${CHOST} == powerpc*-darwin* ]] ; then - ewarn "HERE BE DRAGONS! Your system seems to be PPC which means that" - ewarn "the actual usability of your Gentoo programs will depend on the" - ewarn "above-mentioned experimental PPC support in the linker. Be" - ewarn "sure to keep a known-to-work version like ${PN}-3.2.6 around!" - fi - fi - - cd "${S}"/${LD64}/src - cp "${S}"/ld64-136-compile_stubs.h ld/compile_stubs.h - cp "${S}"/ld64-236.3-Makefile-2 Makefile - - epatch "${S}"/ld64-236.3-nolto.patch - epatch "${S}"/ld64-241.9-extraneous-includes.patch - epatch "${S}"/ld64-241.9-osatomic.patch - epatch "${S}"/ld64-236.3-arm64-fixup.patch - epatch "${S}"/ld64-241.9-arm64-cputype.patch - epatch "${S}"/ld64-236.3-crashreporter.patch - epatch "${S}"/ld64-236.3-nosnapshots.patch - epatch "${S}"/ld64-236.3-ppc.patch - epatch "${S}"/ld64-236.3-constant-types-2.patch - epatch "${S}"/ld64-236.3-gcc-2.patch - epatch "${S}"/ld64-241.9-register-names.patch - epatch "${S}"/ld64-241.9-get-comm-align.patch - epatch "${S}"/ld64-241.9-cc_md5.patch - epatch "${S}"/ld64-253.3-delete-warning.patch - - # We used to use our own copy of lto.h, which doesn't require llvm - # build-env. Current versions of llvm provide - # $EPREFIX/usr/include/llvm-c/lto.h as well as - # $EPREFIX/usr/lib/libLTO.{so,dylib}, so we just use these. - - # provide missing headers from libunwind and dyld - mkdir -p include/{mach,mach-o/arm} || die - # never present because it's private - cp ../../${DYLD}/include/mach-o/dyld_priv.h include/mach-o || die - # missing on <= 10.5 - cp ../../${LIBUNWIND}/include/libunwind.h include/ || die - cp ../../${LIBUNWIND}/include/mach-o/compact_unwind_encoding.h include/mach-o || die - # missing on <= 10.4 - cp ../../${DYLD}/include/mach-o/dyld_images.h include/mach-o || die - cp ../../${CCTOOLS}/include/mach-o/loader.h include/mach-o || die - # use copies from cctools because they're otherwise hidden in some SDK - cp ../../${CCTOOLS}/include/mach-o/arm/reloc.h include/mach-o/arm || die - # provide all required CPU_TYPEs on all platforms - cp ../../${CCTOOLS}/include/mach/machine.h include/mach/machine.h - # add alias for newer identifiers, because ld64 uses both but cctools - # header only defines the older - epatch "${S}"/ld64-236.3-missing-cputypes.patch - - # mimic OS X Leopard-style Availability.h macros for libunwind.h on - # older systems - [[ ${CHOST} == *darwin* && ${CHOST#*-darwin} -le 8 ]] && \ - echo "#define __OSX_AVAILABLE_STARTING(x,y) " > include/Availability.h - - local VER_STR="\"@(#)PROGRAM:ld PROJECT:${LD64} (Gentoo ${PN}-${PVR})\\n\"" - echo "char ldVersionString[] = ${VER_STR};" > version.cpp - - epatch "${S}"/ld64-123.2-debug-backtrace.patch - if [[ ${CHOST} == powerpc*-darwin* ]] ; then - epatch "${S}"/ld64-123.2-darwin8-no-mlong-branch-warning.patch - epatch "${S}"/ld64-127.2-thread_state.patch - fi - - cd "${S}"/${CCTOOLS} - epatch "${S}"/${PN}-4.5-as.patch - epatch "${S}"/${PN}-5.1-as-dir.patch - epatch "${S}"/${PN}-5.1-ranlib.patch - epatch "${S}"/${PN}-3.1.1-libtool-ranlib.patch - epatch "${S}"/${PN}-3.1.1-no-headers.patch - epatch "${S}"/${PN}-4.0-no-oss-dir.patch - epatch "${S}"/${PN}-5.1-nolto.patch - epatch "${S}"/cctools-839-intel-retf.patch - epatch "${S}"/${PN}-5.1-extraneous-includes.patch - epatch "${S}"/${PN}-5.1-otool-stdc.patch - epatch "${S}"/${PN}-5.1-constant-types.patch - epatch "${S}"/${PN}-5.1-strnlen.patch - epatch "${S}"/${PN}-5.1-ppc.patch - epatch "${S}"/${PN}-5.1-thread-state-redefined.patch - epatch "${S}"/${PN}-5.1-makefile-target-warning.patch - epatch "${S}"/${PN}-5.1-lto-prefix.patch - cp ../${LD64}/src/other/prune_trie.h include/mach-o/ || die - - # do not build profileable libstuff to save compile time - sed -i -e "/^all:/s, profile , ," libstuff/Makefile - - # cctools version is provided to make via RC_ProjectSourceVersion which - # generates and compiles it as apple_version[] into libstuff. From - # there it's picked up by the individual tools. Since - # RC_ProjectSourceVersion is also used as library version, we can't - # just append our local version info. So we hack the libstuff Makefile - # to include our Gentoo version. - sed -i -e "/cctools-.*(RC_ProjectSourceVersion).*OFILE_DIR/s,Version),Version) (Gentoo ${PN}-${PVR})," \ - libstuff/Makefile - - # clean up test suite - cd "${S}"/${LD64}/unit-tests/test-cases - local c - - # we don't have llvm - ((++c)); rm -rf llvm-integration; - - # we don't have dtrace - ((++c)); rm -rf dtrace-static-probes-coalescing; - ((++c)); rm -rf dtrace-static-probes; - - # a file is missing - ((++c)); rm -rf eh-coalescing-r - - # we don't do universal binaries - ((++c)); rm -rf blank-stubs; - - # looks like a problem with apple's result-filter.pl - ((++c)); rm -rf implicit-common3; - ((++c)); rm -rf order_file-ans; - - # TODO no idea what goes wrong here - ((++c)); rm -rf dwarf-debug-notes; - - einfo "Deleted $c tests that were bound to fail" - - cd "${S}" - ebegin "cleaning Makefiles from unwanted CFLAGS" - find . -name "Makefile" -print0 | xargs -0 sed \ - -i \ - -e 's/ -g / /g' \ - -e 's/^G =.*$/G =/' \ - -e 's/^OFLAG =.*$/OFLAG =/' \ - -e 's/install -c -s/install/g' - eend $? -} - -src_configure() { - ENABLE_LTO=0 - use lto && ENABLE_LTO=1 - - export CTARGET=${CTARGET:-${CHOST}} - if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi - fi - - LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV} - INCPATH=${LIBPATH}/include - DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV} - if is_cross ; then - BINPATH=/usr/${CHOST}/${CTARGET}/binutils-bin/${PV} - else - BINPATH=/usr/${CTARGET}/binutils-bin/${PV} - fi - - if [ "${CXX/*clang*/yes}" = "yes" ] ; then - if use libcxx ; then - append-cxxflags -stdlib=libc++ - CXXLIB=-stdlib=libc++ - else - # force libstdc++ for systems where libc++ is default (OS X 10.9+?) - append-cxxflags -stdlib=libstdc++ - CXXLIB=-stdlib=libstdc++ - fi - else - use libcxx && \ - ewarn "libcxx only available with clang and your C++ compiler ($CXX) does not seem to be clang" - fi - - # CPPFLAGS only affects ld64, cctools don't use 'em (which currently is - # what we want) - append-cppflags -DNDEBUG - - # Block API and thus snapshots supported on >= 10.6 - [[ ${CHOST} == *darwin* && ${CHOST#*-darwin} -ge 10 ]] && \ - append-cppflags -DSUPPORT_SNAPSHOTS - - CCTOOLS_OFLAG= - if [[ ${CHOST} == *darwin* && ${CHOST#*-darwin} -le 8 ]] ; then - # cctools expect to use UNIX03 struct member names. - # This is default on > 10.4. Activate it on <= 10.4 by defining - # __DARWIN_UNIX03 explicitly. - CCTOOLS_OFLAG="-D__DARWIN_UNIX03=1" - fi - - # if compiling with USE multitarget, extract all the known arches from - # create_configure and pass them back to it - creco=${LD64}/src/create_configure - ARCHS_TO_SUPPORT="" - if use multitarget ; then - ARCHS_TO_SUPPORT="$(grep KNOWN_ARCHS= $creco | \ - cut -d\" -f2 | tr ',' ' ')" - fi - - # Create configure.h for ld64 with SUPPORT_ARCH_ defines in it. - DERIVED_FILE_DIR=${LD64}/src \ - RC_SUPPORTED_ARCHS="$ARCHS_TO_SUPPORT" \ - $creco - - # do not depend on MachOFileAbstraction.hpp to define - # SUPPORT_ARCH_arm_any because that's not included by every file where - # our ppc/arm-optional patch uses it, ld.hpp in particular - grep "SUPPORT_ARCH_armv[0-9]" ${LD64}/src/configure.h >/dev/null && \ - echo "#define SUPPORT_ARCH_arm_any 1" >> ${LD64}/src/configure.h -} - -compile_ld64() { - einfo "building ${LD64}" - cd "${S}"/${LD64}/src - emake \ - LTO=${ENABLE_LTO} - - use test && emake build_test -} - -compile_cctools() { - einfo "building ${CCTOOLS}" - cd "${S}"/${CCTOOLS} - # -j1 because it fails too often with weird errors - # Suppress running dsymutil because it will warn about missing debug - # info which is expected when compiling without -g as we normally do. - # This might need some more thought if anyone ever wanted to build us - # for debugging with Apple's tools. - emake \ - LIB_PRUNETRIE="-L../../${LD64}/src -lprunetrie" \ - EFITOOLS= \ - ENABLE_LTO=${ENABLE_LTO} \ - COMMON_SUBDIRS='libstuff ar misc otool' \ - SUBDIRS_32= \ - LEGACY= \ - RC_ProjectSourceVersion=${CCTOOLS_VERSION} \ - RC_CFLAGS="${CFLAGS}" \ - OFLAG="${CCTOOLS_OFLAG}" \ - CXXLIB="${CXXLIB}" \ - DSYMUTIL=": disabled: dsymutil" \ - -j1 - - cd "${S}"/${CCTOOLS}/as - emake \ - BUILD_OBSOLETE_ARCH= \ - RC_ProjectSourceVersion=${CCTOOLS_VERSION} \ - RC_CFLAGS="-DASLIBEXECDIR=\"\\\"${EPREFIX}${LIBPATH}/\\\"\" ${CFLAGS}" \ - OFLAG="${CCTOOLS_OFLAG}" \ - DSYMUTIL=": disabled: dsymutil" -} - -src_compile() { - compile_ld64 - compile_cctools -} - -install_ld64() { - exeinto ${BINPATH} - doexe "${S}"/${LD64}/src/{ld64,rebase,dyldinfo,unwinddump,ObjectDump} - dosym ld64 ${BINPATH}/ld - insinto ${DATAPATH}/man/man1 - doins "${S}"/${LD64}/doc/man/man1/{ld,ld64,rebase}.1 -} - -install_cctools() { - cd "${S}"/${CCTOOLS} - emake install_all_but_headers \ - EFITOOLS= \ - COMMON_SUBDIRS='ar misc otool' \ - SUBDIRS_32= \ - DSTROOT=\"${D}\" \ - BINDIR=\"${EPREFIX}\"${BINPATH} \ - LOCBINDIR=\"${EPREFIX}\"${BINPATH} \ - USRBINDIR=\"${EPREFIX}\"${BINPATH} \ - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} \ - MANDIR=\"${EPREFIX}\"${DATAPATH}/man/ - cd "${S}"/${CCTOOLS}/as - emake install \ - BUILD_OBSOLETE_ARCH= \ - DSTROOT=\"${D}\" \ - USRBINDIR=\"${EPREFIX}\"${BINPATH} \ - LIBDIR=\"${EPREFIX}\"${LIBPATH} \ - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} - - cd "${ED}"${BINPATH} - insinto ${DATAPATH}/man/man1 - local skips manpage - # ar brings an up-to-date manpage with it - skips=( ar ) - for bin in *; do - for skip in ${skips[@]}; do - if [[ ${bin} == ${skip} ]]; then - continue 2; - fi - done - manpage=${S}/${CCTOOLS}/man/${bin}.1 - if [[ -f "${manpage}" ]]; then - doins "${manpage}" - fi - done - insinto ${DATAPATH}/man/man5 - doins "${S}"/${CCTOOLS}/man/*.5 -} - -src_test() { - if ! [ "${EPREFIX}"/usr/bin/clang ] ; then - einfo "Test suite only works properly with clang - please install" - return - fi - - einfo "Running unit tests" - cd "${S}"/${LD64}/unit-tests/test-cases - # provide the new ld as a symlink to clang so that -ccc-install-dir - # will pick it up - ln -sfn ../../src/ld64 ld - # use our arch command because the System's will report i386 even for an - # x86_64 prefix - perl ../bin/make-recursive.pl \ - BUILT_PRODUCTS_DIR="${S}"/${LD64}/src \ - ARCH="$(arch)" \ - LD="${S}"/${LD64}/src/ld64 \ - CC="clang -ccc-install-dir $PWD" \ - CXX="clang++ -ccc-install-dir $PWD" \ - OTOOL="${S}"/${CCTOOLS}/otool/otool.NEW \ - | perl ../bin/result-filter.pl -} - -src_install() { - install_ld64 - install_cctools - - cd "${S}" - insinto /etc/env.d/binutils - cat <<-EOF > env.d - TARGET="${CHOST}" - VER="${PV}" - FAKE_TARGETS="${CHOST}" - EOF - newins env.d ${CHOST}-${PV} -} - -pkg_postinst() { - binutils-config ${CHOST}-${PV} -} diff --git a/sys-devel/binutils-apple/binutils-apple-6.1-r1.ebuild b/sys-devel/binutils-apple/binutils-apple-6.1-r1.ebuild deleted file mode 100644 index 041d9a329ada..000000000000 --- a/sys-devel/binutils-apple/binutils-apple-6.1-r1.ebuild +++ /dev/null @@ -1,385 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="5" - -inherit eutils flag-o-matic toolchain-funcs - -LD64=ld64-241.9 -CCTOOLS_VERSION=862 -CCTOOLS=cctools-${CCTOOLS_VERSION} -LIBUNWIND=libunwind-35.3 -DYLD=dyld-353.2.1 - -DESCRIPTION="Darwin assembler as(1) and static linker ld(1), Xcode Tools ${PV}" -HOMEPAGE="http://www.opensource.apple.com/" -SRC_URI="http://www.opensource.apple.com/tarballs/ld64/${LD64}.tar.gz - http://www.opensource.apple.com/tarballs/cctools/${CCTOOLS}.tar.gz - http://www.opensource.apple.com/tarballs/dyld/${DYLD}.tar.gz - http://www.opensource.apple.com/tarballs/libunwind/${LIBUNWIND}.tar.gz - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-4.3-r1.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-5.1-r2.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-6.1-r1.tar.bz2" - -LICENSE="APSL-2" -KEYWORDS="~ppc-macos ~x64-macos ~x86-macos" -IUSE="lto test libcxx multitarget" -RESTRICT="!test? ( test )" - -RDEPEND="sys-devel/binutils-config - lto? ( sys-devel/llvm:* ) - libcxx? ( sys-libs/libcxx )" -DEPEND="${RDEPEND} - test? ( >=dev-lang/perl-5.8.8 ) - || ( >=sys-devel/gcc-apple-4.2.1 sys-devel/llvm:* ) - libcxx? ( sys-devel/llvm:* )" - -SLOT="6" - -S=${WORKDIR} - -is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } - -src_prepare() { - if use multitarget ; then - ewarn "You have enabled support for non-standard target architectures" - ewarn "using USE=multitarget. This includes experimental support for" - ewarn "ppc and ppc64 which is a community forward-port from the last" - ewarn "version of ld64 to officially support PPC." - - if [[ ${CHOST} == powerpc*-darwin* ]] ; then - ewarn "HERE BE DRAGONS! Your system seems to be PPC which means that" - ewarn "the actual usability of your Gentoo programs will depend on the" - ewarn "above-mentioned experimental PPC support in the linker. Be" - ewarn "sure to keep a known-to-work version like ${PN}-3.2.6 around!" - fi - fi - - cd "${S}"/${LD64}/src - cp "${S}"/ld64-136-compile_stubs.h ld/compile_stubs.h - cp "${S}"/ld64-236.3-Makefile-2 Makefile - - epatch "${S}"/ld64-236.3-nolto.patch - epatch "${S}"/ld64-241.9-extraneous-includes.patch - epatch "${S}"/ld64-241.9-osatomic.patch - epatch "${S}"/ld64-241.9-arm64-cputype.patch - epatch "${S}"/ld64-236.3-crashreporter.patch - epatch "${S}"/ld64-241.9-nosnapshots.patch - epatch "${S}"/ld64-241.9-ppc.patch - epatch "${S}"/ld64-236.3-constant-types-2.patch - epatch "${S}"/ld64-241.9-gcc-2.patch - epatch "${S}"/ld64-241.9-register-names.patch - epatch "${S}"/ld64-241.9-get-comm-align.patch - epatch "${S}"/ld64-241.9-cc_md5.patch - epatch "${S}"/ld64-241.9-lto-noremarks.patch - epatch "${S}"/ld64-253.3-delete-warning.patch - - # We used to use our own copy of lto.h, which doesn't require llvm - # build-env. Current versions of llvm provide - # $EPREFIX/usr/include/llvm-c/lto.h as well as - # $EPREFIX/usr/lib/libLTO.{so,dylib}, so we just use these. - - # provide missing headers from libunwind and dyld - mkdir -p include/{mach,mach-o/arm} || die - # never present because it's private - cp ../../${DYLD}/include/mach-o/dyld_priv.h include/mach-o || die - # missing on <= 10.5 - cp ../../${LIBUNWIND}/include/libunwind.h include/ || die - cp ../../${LIBUNWIND}/include/mach-o/compact_unwind_encoding.h include/mach-o || die - # missing on <= 10.4 - cp ../../${DYLD}/include/mach-o/dyld_images.h include/mach-o || die - cp ../../${CCTOOLS}/include/mach-o/loader.h include/mach-o || die - # use copies from cctools because they're otherwise hidden in some SDK - cp ../../${CCTOOLS}/include/mach-o/arm/reloc.h include/mach-o/arm || die - # provide all required CPU_TYPEs on all platforms - cp ../../${CCTOOLS}/include/mach/machine.h include/mach/machine.h - # add alias for newer identifiers, because ld64 uses both but cctools - # header only defines the older - epatch "${S}"/ld64-236.3-missing-cputypes.patch - - # mimic OS X Leopard-style Availability.h macros for libunwind.h on - # older systems - [[ ${CHOST} == *darwin* && ${CHOST#*-darwin} -le 8 ]] && \ - echo "#define __OSX_AVAILABLE_STARTING(x,y) " > include/Availability.h - - local VER_STR="\"@(#)PROGRAM:ld PROJECT:${LD64} (Gentoo ${PN}-${PVR})\\n\"" - echo "char ldVersionString[] = ${VER_STR};" > version.cpp - - epatch "${S}"/ld64-123.2-debug-backtrace.patch - if [[ ${CHOST} == powerpc*-darwin* ]] ; then - epatch "${S}"/ld64-123.2-darwin8-no-mlong-branch-warning.patch - epatch "${S}"/ld64-127.2-thread_state.patch - fi - - cd "${S}"/${CCTOOLS} - epatch "${S}"/${PN}-4.5-as.patch - epatch "${S}"/${PN}-5.1-as-dir.patch - epatch "${S}"/${PN}-5.1-ranlib.patch - epatch "${S}"/${PN}-3.1.1-libtool-ranlib.patch - epatch "${S}"/${PN}-3.1.1-no-headers.patch - epatch "${S}"/${PN}-4.0-no-oss-dir.patch - epatch "${S}"/${PN}-5.1-nolto.patch - epatch "${S}"/cctools-839-intel-retf.patch - epatch "${S}"/${PN}-5.1-extraneous-includes.patch - epatch "${S}"/${PN}-5.1-otool-stdc.patch - epatch "${S}"/${PN}-5.1-constant-types.patch - epatch "${S}"/${PN}-5.1-strnlen.patch - epatch "${S}"/${PN}-5.1-ppc.patch - epatch "${S}"/${PN}-5.1-thread-state-redefined.patch - epatch "${S}"/${PN}-5.1-makefile-target-warning.patch - epatch "${S}"/${PN}-6.3-lto-prefix.patch - cp ../${LD64}/src/other/prune_trie.h include/mach-o/ || die - - # do not build profileable libstuff to save compile time - sed -i -e "/^all:/s, profile , ," libstuff/Makefile - - # cctools version is provided to make via RC_ProjectSourceVersion which - # generates and compiles it as apple_version[] into libstuff. From - # there it's picked up by the individual tools. Since - # RC_ProjectSourceVersion is also used as library version, we can't - # just append our local version info. So we hack the libstuff Makefile - # to include our Gentoo version. - sed -i -e "/cctools-.*(RC_ProjectSourceVersion).*OFILE_DIR/s,Version),Version) (Gentoo ${PN}-${PVR})," \ - libstuff/Makefile - - # clean up test suite - cd "${S}"/${LD64}/unit-tests/test-cases - local c - - # we don't have llvm - ((++c)); rm -rf llvm-integration; - - # we don't have dtrace - ((++c)); rm -rf dtrace-static-probes-coalescing; - ((++c)); rm -rf dtrace-static-probes; - - # a file is missing - ((++c)); rm -rf eh-coalescing-r - - # we don't do universal binaries - ((++c)); rm -rf blank-stubs; - - # looks like a problem with apple's result-filter.pl - ((++c)); rm -rf implicit-common3; - ((++c)); rm -rf order_file-ans; - - # TODO no idea what goes wrong here - ((++c)); rm -rf dwarf-debug-notes; - - einfo "Deleted $c tests that were bound to fail" - - cd "${S}" - ebegin "cleaning Makefiles from unwanted CFLAGS" - find . -name "Makefile" -print0 | xargs -0 sed \ - -i \ - -e 's/ -g / /g' \ - -e 's/^G =.*$/G =/' \ - -e 's/^OFLAG =.*$/OFLAG =/' \ - -e 's/install -c -s/install/g' - eend $? -} - -src_configure() { - ENABLE_LTO=0 - use lto && ENABLE_LTO=1 - - export CTARGET=${CTARGET:-${CHOST}} - if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi - fi - - LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV} - INCPATH=${LIBPATH}/include - DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV} - if is_cross ; then - BINPATH=/usr/${CHOST}/${CTARGET}/binutils-bin/${PV} - else - BINPATH=/usr/${CTARGET}/binutils-bin/${PV} - fi - - if [ "${CXX/*clang*/yes}" = "yes" ] ; then - if use libcxx ; then - append-cxxflags -stdlib=libc++ - CXXLIB=-stdlib=libc++ - else - # force libstdc++ for systems where libc++ is default (OS X 10.9+?) - append-cxxflags -stdlib=libstdc++ - CXXLIB=-stdlib=libstdc++ - fi - else - use libcxx && \ - ewarn "libcxx only available with clang and your C++ compiler ($CXX) does not seem to be clang" - fi - - # CPPFLAGS only affects ld64, cctools don't use 'em (which currently is - # what we want) - append-cppflags -DNDEBUG - - # Block API and thus snapshots supported on >= 10.6 - [[ ${CHOST} == *darwin* && ${CHOST#*-darwin} -ge 10 ]] && \ - append-cppflags -DSUPPORT_SNAPSHOTS - - CCTOOLS_OFLAG= - if [[ ${CHOST} == *darwin* && ${CHOST#*-darwin} -le 8 ]] ; then - # cctools expect to use UNIX03 struct member names. - # This is default on > 10.4. Activate it on <= 10.4 by defining - # __DARWIN_UNIX03 explicitly. - CCTOOLS_OFLAG="-D__DARWIN_UNIX03=1" - fi - - # if compiling with USE multitarget, extract all the known arches from - # create_configure and pass them back to it - creco=${LD64}/src/create_configure - ARCHS_TO_SUPPORT="" - if use multitarget ; then - ARCHS_TO_SUPPORT="$(grep KNOWN_ARCHS= $creco | \ - cut -d\" -f2 | tr ',' ' ')" - fi - - # Create configure.h for ld64 with SUPPORT_ARCH_ defines in it. - DERIVED_FILE_DIR=${LD64}/src \ - RC_SUPPORTED_ARCHS="$ARCHS_TO_SUPPORT" \ - $creco - - # do not depend on MachOFileAbstraction.hpp to define - # SUPPORT_ARCH_arm_any because that's not included by every file where - # our ppc/arm-optional patch uses it, ld.hpp in particular - grep "SUPPORT_ARCH_armv[0-9]" ${LD64}/src/configure.h >/dev/null && \ - echo "#define SUPPORT_ARCH_arm_any 1" >> ${LD64}/src/configure.h -} - -compile_ld64() { - einfo "building ${LD64}" - cd "${S}"/${LD64}/src - emake \ - LTO=${ENABLE_LTO} - - use test && emake build_test -} - -compile_cctools() { - einfo "building ${CCTOOLS}" - cd "${S}"/${CCTOOLS} - # -j1 because it fails too often with weird errors - # Suppress running dsymutil because it will warn about missing debug - # info which is expected when compiling without -g as we normally do. - # This might need some more thought if anyone ever wanted to build us - # for debugging with Apple's tools. - emake \ - LIB_PRUNETRIE="-L../../${LD64}/src -lprunetrie" \ - EFITOOLS= \ - ENABLE_LTO=${ENABLE_LTO} \ - COMMON_SUBDIRS='libstuff ar misc otool' \ - SUBDIRS_32= \ - LEGACY= \ - RC_ProjectSourceVersion=${CCTOOLS_VERSION} \ - RC_CFLAGS="${CFLAGS}" \ - OFLAG="${CCTOOLS_OFLAG}" \ - CXXLIB="${CXXLIB}" \ - DSYMUTIL=": disabled: dsymutil" \ - -j1 - - cd "${S}"/${CCTOOLS}/as - emake \ - BUILD_OBSOLETE_ARCH= \ - RC_ProjectSourceVersion=${CCTOOLS_VERSION} \ - RC_CFLAGS="-DASLIBEXECDIR=\"\\\"${EPREFIX}${LIBPATH}/\\\"\" ${CFLAGS}" \ - OFLAG="${CCTOOLS_OFLAG}" \ - DSYMUTIL=": disabled: dsymutil" -} - -src_compile() { - compile_ld64 - compile_cctools -} - -install_ld64() { - exeinto ${BINPATH} - doexe "${S}"/${LD64}/src/{ld64,rebase,dyldinfo,unwinddump,ObjectDump} - dosym ld64 ${BINPATH}/ld - insinto ${DATAPATH}/man/man1 - doins "${S}"/${LD64}/doc/man/man1/{ld,ld64,rebase}.1 -} - -install_cctools() { - cd "${S}"/${CCTOOLS} - emake install_all_but_headers \ - EFITOOLS= \ - COMMON_SUBDIRS='ar misc otool' \ - SUBDIRS_32= \ - DSTROOT=\"${D}\" \ - BINDIR=\"${EPREFIX}\"${BINPATH} \ - LOCBINDIR=\"${EPREFIX}\"${BINPATH} \ - USRBINDIR=\"${EPREFIX}\"${BINPATH} \ - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} \ - MANDIR=\"${EPREFIX}\"${DATAPATH}/man/ - cd "${S}"/${CCTOOLS}/as - emake install \ - BUILD_OBSOLETE_ARCH= \ - DSTROOT=\"${D}\" \ - USRBINDIR=\"${EPREFIX}\"${BINPATH} \ - LIBDIR=\"${EPREFIX}\"${LIBPATH} \ - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} - - cd "${ED}"${BINPATH} - insinto ${DATAPATH}/man/man1 - local skips manpage - # ar brings an up-to-date manpage with it - skips=( ar ) - for bin in *; do - for skip in ${skips[@]}; do - if [[ ${bin} == ${skip} ]]; then - continue 2; - fi - done - manpage=${S}/${CCTOOLS}/man/${bin}.1 - if [[ -f "${manpage}" ]]; then - doins "${manpage}" - fi - done - insinto ${DATAPATH}/man/man5 - doins "${S}"/${CCTOOLS}/man/*.5 -} - -src_test() { - if ! [ "${EPREFIX}"/usr/bin/clang ] ; then - einfo "Test suite only works properly with clang - please install" - return - fi - - einfo "Running unit tests" - cd "${S}"/${LD64}/unit-tests/test-cases - # provide the new ld as a symlink to clang so that -ccc-install-dir - # will pick it up - ln -sfn ../../src/ld64 ld - # use our arch command because the System's will report i386 even for an - # x86_64 prefix - perl ../bin/make-recursive.pl \ - BUILT_PRODUCTS_DIR="${S}"/${LD64}/src \ - ARCH="$(arch)" \ - LD="${S}"/${LD64}/src/ld64 \ - CC="clang -ccc-install-dir $PWD" \ - CXX="clang++ -ccc-install-dir $PWD" \ - OTOOL="${S}"/${CCTOOLS}/otool/otool.NEW \ - | perl ../bin/result-filter.pl -} - -src_install() { - install_ld64 - install_cctools - - cd "${S}" - insinto /etc/env.d/binutils - cat <<-EOF > env.d - TARGET="${CHOST}" - VER="${PV}" - FAKE_TARGETS="${CHOST}" - EOF - newins env.d ${CHOST}-${PV} -} - -pkg_postinst() { - binutils-config ${CHOST}-${PV} -} diff --git a/sys-devel/binutils-apple/binutils-apple-6.3-r2.ebuild b/sys-devel/binutils-apple/binutils-apple-6.3-r2.ebuild deleted file mode 100644 index b3af64fe16d6..000000000000 --- a/sys-devel/binutils-apple/binutils-apple-6.3-r2.ebuild +++ /dev/null @@ -1,386 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="5" - -inherit eutils flag-o-matic toolchain-funcs - -LD64=ld64-242 -CCTOOLS_VERSION=870 -CCTOOLS=cctools-${CCTOOLS_VERSION} -LIBUNWIND=libunwind-35.3 -DYLD=dyld-353.2.1 - -DESCRIPTION="Darwin assembler as(1) and static linker ld(1), Xcode Tools ${PV}" -HOMEPAGE="http://www.opensource.apple.com/" -SRC_URI="http://www.opensource.apple.com/tarballs/ld64/${LD64}.tar.gz - http://www.opensource.apple.com/tarballs/cctools/${CCTOOLS}.tar.gz - http://www.opensource.apple.com/tarballs/dyld/${DYLD}.tar.gz - http://www.opensource.apple.com/tarballs/libunwind/${LIBUNWIND}.tar.gz - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-4.3-r1.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-5.1-r2.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-6.1-r1.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-6.3-r2.tar.bz2" - -LICENSE="APSL-2" -KEYWORDS="~ppc-macos ~x64-macos ~x86-macos" -IUSE="lto test libcxx multitarget" -RESTRICT="!test? ( test )" - -RDEPEND="sys-devel/binutils-config - lto? ( sys-devel/llvm:* ) - libcxx? ( sys-libs/libcxx )" -DEPEND="${RDEPEND} - test? ( >=dev-lang/perl-5.8.8 ) - || ( >=sys-devel/gcc-apple-4.2.1 sys-devel/llvm:* ) - libcxx? ( sys-devel/llvm:* )" - -SLOT="6" - -S=${WORKDIR} - -is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } - -src_prepare() { - if use multitarget ; then - ewarn "You have enabled support for non-standard target architectures" - ewarn "using USE=multitarget. This includes experimental support for" - ewarn "ppc and ppc64 which is a community forward-port from the last" - ewarn "version of ld64 to officially support PPC." - - if [[ ${CHOST} == powerpc*-darwin* ]] ; then - ewarn "HERE BE DRAGONS! Your system seems to be PPC which means that" - ewarn "the actual usability of your Gentoo programs will depend on the" - ewarn "above-mentioned experimental PPC support in the linker. Be" - ewarn "sure to keep a known-to-work version like ${PN}-3.2.6 around!" - fi - fi - - cd "${S}"/${LD64}/src - cp "${S}"/ld64-136-compile_stubs.h ld/compile_stubs.h - cp "${S}"/ld64-236.3-Makefile-2 Makefile - - epatch "${S}"/ld64-236.3-nolto.patch - epatch "${S}"/ld64-241.9-extraneous-includes.patch - epatch "${S}"/ld64-241.9-osatomic.patch - epatch "${S}"/ld64-236.3-crashreporter.patch - epatch "${S}"/ld64-241.9-nosnapshots.patch - epatch "${S}"/ld64-242-ppc.patch - epatch "${S}"/ld64-236.3-constant-types-2.patch - epatch "${S}"/ld64-242-gcc-2.patch - epatch "${S}"/ld64-241.9-register-names.patch - epatch "${S}"/ld64-241.9-get-comm-align.patch - epatch "${S}"/ld64-241.9-cc_md5.patch - epatch "${S}"/ld64-253.3-delete-warning.patch - - # provide missing headers from libunwind and dyld - mkdir -p include/{mach,mach-o/arm} || die - # never present because it's private - cp ../../${DYLD}/include/mach-o/dyld_priv.h include/mach-o || die - # missing on <= 10.5 - cp ../../${LIBUNWIND}/include/libunwind.h include/ || die - cp ../../${LIBUNWIND}/include/mach-o/compact_unwind_encoding.h include/mach-o || die - # missing on <= 10.4 - cp ../../${DYLD}/include/mach-o/dyld_images.h include/mach-o || die - cp ../../${CCTOOLS}/include/mach-o/loader.h include/mach-o || die - # use copies from cctools because they're otherwise hidden in some SDK - cp ../../${CCTOOLS}/include/mach-o/arm/reloc.h include/mach-o/arm || die - # provide all required CPU_TYPEs on all platforms - cp ../../${CCTOOLS}/include/mach/machine.h include/mach/machine.h - # add alias for newer identifiers, because ld64 uses both but cctools - # header only defines the older - epatch "${S}"/ld64-236.3-missing-cputypes.patch - - # mimic OS X Leopard-style Availability.h macros for libunwind.h on - # older systems - [[ ${CHOST} == *darwin* && ${CHOST#*-darwin} -le 8 ]] && \ - echo "#define __OSX_AVAILABLE_STARTING(x,y) " > include/Availability.h - - local VER_STR="\"@(#)PROGRAM:ld PROJECT:${LD64} (Gentoo ${PN}-${PVR})\\n\"" - echo "char ldVersionString[] = ${VER_STR};" > version.cpp - - epatch "${S}"/ld64-123.2-debug-backtrace.patch - if [[ ${CHOST} == powerpc*-darwin* ]] ; then - epatch "${S}"/ld64-123.2-darwin8-no-mlong-branch-warning.patch - epatch "${S}"/ld64-127.2-thread_state.patch - fi - - cd "${S}"/${CCTOOLS} - epatch "${S}"/${PN}-4.5-as.patch - epatch "${S}"/${PN}-5.1-as-dir.patch - epatch "${S}"/${PN}-5.1-ranlib.patch - epatch "${S}"/${PN}-3.1.1-libtool-ranlib.patch - epatch "${S}"/${PN}-3.1.1-no-headers.patch - epatch "${S}"/${PN}-4.0-no-oss-dir.patch - epatch "${S}"/cctools-839-intel-retf.patch - epatch "${S}"/${PN}-5.1-extraneous-includes.patch - epatch "${S}"/${PN}-5.1-otool-stdc.patch - epatch "${S}"/${PN}-5.1-constant-types.patch - epatch "${S}"/${PN}-5.1-strnlen.patch - epatch "${S}"/${PN}-5.1-ppc.patch - epatch "${S}"/${PN}-5.1-thread-state-redefined.patch - epatch "${S}"/${PN}-5.1-makefile-target-warning.patch - epatch "${S}"/${PN}-6.3-lto-prefix.patch - cp ../${LD64}/src/other/prune_trie.h include/mach-o/ || die - - # do not build profileable libstuff to save compile time - sed -i -e "/^all:/s, profile , ," libstuff/Makefile - - # cctools version is provided to make via RC_ProjectSourceVersion which - # generates and compiles it as apple_version[] into libstuff. From - # there it's picked up by the individual tools. Since - # RC_ProjectSourceVersion is also used as library version, we can't - # just append our local version info. So we hack the libstuff Makefile - # to include our Gentoo version. - sed -i -e "/cctools-.*(RC_ProjectSourceVersion).*OFILE_DIR/s,Version),Version) (Gentoo ${PN}-${PVR})," \ - libstuff/Makefile - - # clean up test suite - cd "${S}"/${LD64}/unit-tests/test-cases - local c - - # we don't have llvm - ((++c)); rm -rf llvm-integration; - - # we don't have dtrace - ((++c)); rm -rf dtrace-static-probes-coalescing; - ((++c)); rm -rf dtrace-static-probes; - - # a file is missing - ((++c)); rm -rf eh-coalescing-r - - # we don't do universal binaries - ((++c)); rm -rf blank-stubs; - - # looks like a problem with apple's result-filter.pl - ((++c)); rm -rf implicit-common3; - ((++c)); rm -rf order_file-ans; - - # TODO no idea what goes wrong here - ((++c)); rm -rf dwarf-debug-notes; - - einfo "Deleted $c tests that were bound to fail" - - cd "${S}" - ebegin "cleaning Makefiles from unwanted CFLAGS" - find . -name "Makefile" -print0 | xargs -0 sed \ - -i \ - -e 's/ -g / /g' \ - -e 's/^G =.*$/G =/' \ - -e 's/^OFLAG =.*$/OFLAG =/' \ - -e 's/install -c -s/install/g' - eend $? -} - -src_configure() { - ENABLE_LTO=0 - use lto && ENABLE_LTO=1 - - export CTARGET=${CTARGET:-${CHOST}} - if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi - fi - - LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV} - INCPATH=${LIBPATH}/include - DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV} - if is_cross ; then - BINPATH=/usr/${CHOST}/${CTARGET}/binutils-bin/${PV} - else - BINPATH=/usr/${CTARGET}/binutils-bin/${PV} - fi - - if [[ ${CXX} == *clang* ]] ; then - if use libcxx ; then - append-cxxflags -stdlib=libc++ - CXXLIB=-stdlib=libc++ - else - # force libstdc++ for systems where libc++ is default (OS X 10.9+?) - append-cxxflags -stdlib=libstdc++ - CXXLIB=-stdlib=libstdc++ - fi - else - use libcxx && \ - ewarn "libcxx only available with clang and your C++ compiler ($CXX) does not seem to be clang" - - # force gcc-apple, FSF gcc doesn't grok this code - export CC=${CTARGET}-gcc-4.2.1 - export CXX=${CTARGET}-g++-4.2.1 - fi - - # CPPFLAGS only affects ld64, cctools don't use 'em (which currently is - # what we want) - append-cppflags -DNDEBUG - - # Block API and thus snapshots supported on >= 10.6 - [[ ${CHOST} == *darwin* && ${CHOST#*-darwin} -ge 10 ]] && \ - append-cppflags -DSUPPORT_SNAPSHOTS - - CCTOOLS_OFLAG= - if [[ ${CHOST} == *darwin* && ${CHOST#*-darwin} -le 8 ]] ; then - # cctools expect to use UNIX03 struct member names. - # This is default on > 10.4. Activate it on <= 10.4 by defining - # __DARWIN_UNIX03 explicitly. - CCTOOLS_OFLAG="-D__DARWIN_UNIX03=1" - fi - - # if compiling with USE multitarget, extract all the known arches from - # create_configure and pass them back to it - creco=${LD64}/src/create_configure - ARCHS_TO_SUPPORT="" - if use multitarget ; then - ARCHS_TO_SUPPORT="$(grep KNOWN_ARCHS= $creco | \ - cut -d\" -f2 | tr ',' ' ')" - elif use ppc-macos ; then - ARCHS_TO_SUPPORT="ppc ppc750 ppc7400 ppc7450 ppc970 ppc64 $(\ - grep RC_SUPPORTED_ARCHS= $creco | cut -d\" -f2)" - fi - - # Create configure.h for ld64 with SUPPORT_ARCH_ defines in it. - einfo "building support for: ${ARCHS_TO_SUPPORT}" - DERIVED_FILE_DIR=${LD64}/src \ - RC_SUPPORTED_ARCHS="$ARCHS_TO_SUPPORT" \ - $creco - - # do not depend on MachOFileAbstraction.hpp to define - # SUPPORT_ARCH_arm_any because that's not included by every file where - # our ppc/arm-optional patch uses it, ld.hpp in particular - grep "SUPPORT_ARCH_armv[0-9]" ${LD64}/src/configure.h >/dev/null && \ - echo "#define SUPPORT_ARCH_arm_any 1" >> ${LD64}/src/configure.h -} - -compile_ld64() { - einfo "building ${LD64}" - cd "${S}"/${LD64}/src - emake \ - LTO=${ENABLE_LTO} - - use test && emake build_test -} - -compile_cctools() { - einfo "building ${CCTOOLS}" - cd "${S}"/${CCTOOLS} - # -j1 because it fails too often with weird errors - # Suppress running dsymutil because it will warn about missing debug - # info which is expected when compiling without -g as we normally do. - # This might need some more thought if anyone ever wanted to build us - # for debugging with Apple's tools. - emake \ - LIB_PRUNETRIE="-L../../${LD64}/src -lprunetrie" \ - EFITOOLS= \ - ENABLE_LTO="${ENABLE_LTO}" \ - COMMON_SUBDIRS='libstuff ar misc otool' \ - SUBDIRS_32= \ - LEGACY= \ - RC_ProjectSourceVersion=${CCTOOLS_VERSION} \ - RC_CFLAGS="${CFLAGS}" \ - OFLAG="${CCTOOLS_OFLAG}" \ - CXXLIB="${CXXLIB}" \ - DSYMUTIL=": disabled: dsymutil" \ - -j1 - - cd "${S}"/${CCTOOLS}/as - emake \ - BUILD_OBSOLETE_ARCH= \ - RC_ProjectSourceVersion=${CCTOOLS_VERSION} \ - RC_CFLAGS="-DASLIBEXECDIR=\"\\\"${EPREFIX}${LIBPATH}/\\\"\" ${CFLAGS}" \ - OFLAG="${CCTOOLS_OFLAG}" \ - DSYMUTIL=": disabled: dsymutil" -} - -src_compile() { - compile_ld64 - compile_cctools -} - -install_ld64() { - exeinto ${BINPATH} - doexe "${S}"/${LD64}/src/{ld64,rebase,dyldinfo,unwinddump,ObjectDump} - dosym ld64 ${BINPATH}/ld - insinto ${DATAPATH}/man/man1 - doins "${S}"/${LD64}/doc/man/man1/{ld,ld64,rebase}.1 -} - -install_cctools() { - cd "${S}"/${CCTOOLS} - emake install_all_but_headers \ - EFITOOLS= \ - COMMON_SUBDIRS='ar misc otool' \ - SUBDIRS_32= \ - DSTROOT=\"${D}\" \ - BINDIR=\"${EPREFIX}\"${BINPATH} \ - LOCBINDIR=\"${EPREFIX}\"${BINPATH} \ - USRBINDIR=\"${EPREFIX}\"${BINPATH} \ - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} \ - MANDIR=\"${EPREFIX}\"${DATAPATH}/man/ - cd "${S}"/${CCTOOLS}/as - emake install \ - BUILD_OBSOLETE_ARCH= \ - DSTROOT=\"${D}\" \ - USRBINDIR=\"${EPREFIX}\"${BINPATH} \ - LIBDIR=\"${EPREFIX}\"${LIBPATH} \ - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} - - cd "${ED}"${BINPATH} - insinto ${DATAPATH}/man/man1 - local skips manpage - # ar brings an up-to-date manpage with it - skips=( ar ) - for bin in *; do - for skip in ${skips[@]}; do - if [[ ${bin} == ${skip} ]]; then - continue 2; - fi - done - manpage=${S}/${CCTOOLS}/man/${bin}.1 - if [[ -f "${manpage}" ]]; then - doins "${manpage}" - fi - done - insinto ${DATAPATH}/man/man5 - doins "${S}"/${CCTOOLS}/man/*.5 -} - -src_test() { - if ! [ "${EPREFIX}"/usr/bin/clang ] ; then - einfo "Test suite only works properly with clang - please install" - return - fi - - einfo "Running unit tests" - cd "${S}"/${LD64}/unit-tests/test-cases - # provide the new ld as a symlink to clang so that -ccc-install-dir - # will pick it up - ln -sfn ../../src/ld64 ld - # use our arch command because the System's will report i386 even for an - # x86_64 prefix - perl ../bin/make-recursive.pl \ - BUILT_PRODUCTS_DIR="${S}"/${LD64}/src \ - ARCH="$(arch)" \ - LD="${S}"/${LD64}/src/ld64 \ - CC="clang -ccc-install-dir $PWD" \ - CXX="clang++ -ccc-install-dir $PWD" \ - OTOOL="${S}"/${CCTOOLS}/otool/otool.NEW \ - | perl ../bin/result-filter.pl -} - -src_install() { - install_ld64 - install_cctools - - cd "${S}" - insinto /etc/env.d/binutils - cat <<-EOF > env.d - TARGET="${CHOST}" - VER="${PV}" - FAKE_TARGETS="${CHOST}" - EOF - newins env.d ${CHOST}-${PV} -} - -pkg_postinst() { - binutils-config ${CHOST}-${PV} -} diff --git a/sys-devel/binutils-apple/binutils-apple-7.0-r1.ebuild b/sys-devel/binutils-apple/binutils-apple-7.0-r1.ebuild deleted file mode 100644 index 7607b1e4624c..000000000000 --- a/sys-devel/binutils-apple/binutils-apple-7.0-r1.ebuild +++ /dev/null @@ -1,369 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="5" - -inherit eutils flag-o-matic toolchain-funcs - -LD64=ld64-253.3 -CCTOOLS_VERSION=877.5 -CCTOOLS=cctools-${CCTOOLS_VERSION} -LIBUNWIND=libunwind-35.3 -DYLD=dyld-360.14 - -DESCRIPTION="Darwin assembler as(1) and static linker ld(1), Xcode Tools ${PV}" -HOMEPAGE="http://www.opensource.apple.com/" -SRC_URI="http://www.opensource.apple.com/tarballs/ld64/${LD64}.tar.gz - http://www.opensource.apple.com/tarballs/cctools/${CCTOOLS}.tar.gz - http://www.opensource.apple.com/tarballs/dyld/${DYLD}.tar.gz - http://www.opensource.apple.com/tarballs/libunwind/${LIBUNWIND}.tar.gz - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-4.3-r1.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-5.1-r2.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-6.1-r1.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-6.3-r2.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-7.0-r3.tar.bz2" - -LICENSE="APSL-2" -KEYWORDS="~ppc-macos ~x64-macos ~x86-macos" -IUSE="lto test multitarget" -RESTRICT="!test? ( test )" - -# ld64 can now only be compiled using llvm and libc++ since it massivley uses -# C++11 language fatures. *But additionally* the as driver now defaults to -# calling clang as the assembler on many platforms. This can be disabled using -# -Wa,-Q but since it's default we make llvm a static runtime dependency. -RDEPEND="sys-devel/binutils-config - lto? ( app-arch/xar ) - sys-devel/llvm:* - sys-libs/libcxx" -DEPEND="${RDEPEND} - test? ( >=dev-lang/perl-5.8.8 )" - -SLOT="7" - -S=${WORKDIR} - -is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } - -src_prepare() { - if use multitarget ; then - ewarn "You have enabled support for non-standard target architectures" - ewarn "using USE=multitarget. This includes experimental support for" - ewarn "ppc and ppc64 which is a community forward-port from the last" - ewarn "version of ld64 to officially support PPC." - - if [[ ${CHOST} == powerpc*-darwin* ]] ; then - ewarn "HERE BE DRAGONS! Your system seems to be PPC which means that" - ewarn "the actual usability of your Gentoo programs will depend on the" - ewarn "above-mentioned experimental PPC support in the linker. Be" - ewarn "sure to keep a known-to-work version like ${PN}-3.2.6 around!" - fi - fi - - cd "${S}"/${LD64}/src - cp "${S}"/ld64-136-compile_stubs.h ld/compile_stubs.h - cp "${S}"/ld64-253.3-Makefile-3 Makefile - - epatch "${S}"/ld64-253.3-nolto.patch - epatch "${S}"/ld64-241.9-extraneous-includes.patch - epatch "${S}"/ld64-241.9-osatomic.patch - epatch "${S}"/ld64-236.3-crashreporter.patch - epatch "${S}"/ld64-253.3-nosnapshots.patch - epatch "${S}"/ld64-253.3-ppc.patch - epatch "${S}"/ld64-236.3-constant-types-2.patch - epatch "${S}"/ld64-241.9-register-names.patch - epatch "${S}"/ld64-241.9-get-comm-align.patch - epatch "${S}"/ld64-241.9-cc_md5.patch - epatch "${S}"/ld64-253.3-make_pair.patch - epatch "${S}"/ld64-253.3-delete-warning.patch - - # provide missing headers from libunwind and dyld - mkdir -p include/{mach,mach-o/arm} || die - # never present because it's private - cp ../../${DYLD}/include/mach-o/dyld_priv.h include/mach-o || die - # missing on <= 10.5 - cp ../../${LIBUNWIND}/include/libunwind.h include/ || die - cp ../../${LIBUNWIND}/include/mach-o/compact_unwind_encoding.h include/mach-o || die - # missing on <= 10.4 - cp ../../${DYLD}/include/mach-o/dyld_images.h include/mach-o || die - cp ../../${CCTOOLS}/include/mach-o/loader.h include/mach-o || die - # use copies from cctools because they're otherwise hidden in some SDK - cp ../../${CCTOOLS}/include/mach-o/arm/reloc.h include/mach-o/arm || die - # provide all required CPU_TYPEs on all platforms - cp ../../${CCTOOLS}/include/mach/machine.h include/mach/machine.h - # add alias for newer identifiers, because ld64 uses both but cctools - # header only defines the older - epatch "${S}"/ld64-236.3-missing-cputypes.patch - - # mimic OS X Leopard-style Availability.h macros for libunwind.h on - # older systems - [[ ${CHOST} == *darwin* && ${CHOST#*-darwin} -le 8 ]] && \ - echo "#define __OSX_AVAILABLE_STARTING(x,y) " > include/Availability.h - - local VER_STR="\"@(#)PROGRAM:ld PROJECT:${LD64} (Gentoo ${PN}-${PVR})\\n\"" - echo "char ldVersionString[] = ${VER_STR};" > version.cpp - - epatch "${S}"/ld64-123.2-debug-backtrace.patch - if [[ ${CHOST} == powerpc*-darwin* ]] ; then - epatch "${S}"/ld64-123.2-darwin8-no-mlong-branch-warning.patch - epatch "${S}"/ld64-127.2-thread_state.patch - fi - - cd "${S}"/${CCTOOLS} - epatch "${S}"/${PN}-4.5-as.patch - epatch "${S}"/${PN}-5.1-as-dir.patch - epatch "${S}"/${PN}-5.1-ranlib.patch - epatch "${S}"/${PN}-3.1.1-libtool-ranlib.patch - epatch "${S}"/${PN}-3.1.1-no-headers.patch - epatch "${S}"/${PN}-4.0-no-oss-dir.patch - epatch "${S}"/cctools-839-intel-retf.patch - epatch "${S}"/${PN}-5.1-extraneous-includes.patch - #epatch "${S}"/${PN}-5.1-otool-stdc.patch - epatch "${S}"/${PN}-5.1-constant-types.patch - epatch "${S}"/${PN}-5.1-strnlen.patch - epatch "${S}"/${PN}-5.1-ppc.patch - epatch "${S}"/${PN}-5.1-thread-state-redefined.patch - epatch "${S}"/${PN}-7.0-make-j.patch - epatch "${S}"/${PN}-7.0-lto-prefix-2.patch - epatch "${S}"/${PN}-7.0-clang-as.patch - epatch "${S}"/${PN}-7.0-nolto.patch - epatch "${S}"/${PN}-7.0-nollvm.patch - cp ../${LD64}/src/other/prune_trie.h include/mach-o/ || die - - # do not build profileable libstuff to save compile time - sed -i -e "/^all:/s, profile , ," libstuff/Makefile - - # cctools version is provided to make via RC_ProjectSourceVersion which - # generates and compiles it as apple_version[] into libstuff. From - # there it's picked up by the individual tools. Since - # RC_ProjectSourceVersion is also used as library version, we can't - # just append our local version info. So we hack the libstuff Makefile - # to include our Gentoo version. - sed -i -e "/cctools-.*(RC_ProjectSourceVersion).*OFILE_DIR/s,Version),Version) (Gentoo ${PN}-${PVR})," \ - libstuff/Makefile - - # clean up test suite - cd "${S}"/${LD64}/unit-tests/test-cases - local c - - # we don't have llvm - ((++c)); rm -rf llvm-integration; - - # we don't have dtrace - ((++c)); rm -rf dtrace-static-probes-coalescing; - ((++c)); rm -rf dtrace-static-probes; - - # a file is missing - ((++c)); rm -rf eh-coalescing-r - - # we don't do universal binaries - ((++c)); rm -rf blank-stubs; - - # looks like a problem with apple's result-filter.pl - ((++c)); rm -rf implicit-common3; - ((++c)); rm -rf order_file-ans; - - # TODO no idea what goes wrong here - ((++c)); rm -rf dwarf-debug-notes; - - einfo "Deleted $c tests that were bound to fail" - - cd "${S}" - ebegin "cleaning Makefiles from unwanted CFLAGS" - find . -name "Makefile" -print0 | xargs -0 sed \ - -i \ - -e 's/ -g / /g' \ - -e 's/^G =.*$/G =/' \ - -e 's/^OFLAG =.*$/OFLAG =/' \ - -e 's/install -c -s/install/g' - eend $? -} - -src_configure() { - ENABLE_LTO=0 - use lto && ENABLE_LTO=1 - - export CTARGET=${CTARGET:-${CHOST}} - if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi - fi - - LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV} - INCPATH=${LIBPATH}/include - DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV} - if is_cross ; then - BINPATH=/usr/${CHOST}/${CTARGET}/binutils-bin/${PV} - else - BINPATH=/usr/${CTARGET}/binutils-bin/${PV} - fi - - # CPPFLAGS only affects ld64, cctools don't use 'em (which currently is - # what we want) - append-cppflags -DNDEBUG - - # Block API and thus snapshots supported on >= 10.6 - [[ ${CHOST} == *darwin* && ${CHOST#*-darwin} -ge 10 ]] && \ - append-cppflags -DSUPPORT_SNAPSHOTS - - CCTOOLS_OFLAG= - if [[ ${CHOST} == *darwin* && ${CHOST#*-darwin} -le 8 ]] ; then - # cctools expect to use UNIX03 struct member names. - # This is default on > 10.4. Activate it on <= 10.4 by defining - # __DARWIN_UNIX03 explicitly. - CCTOOLS_OFLAG="-D__DARWIN_UNIX03=1" - fi - - # if compiling with USE multitarget, extract all the known arches from - # create_configure and pass them back to it - creco=${LD64}/src/create_configure - ARCHS_TO_SUPPORT="" - if use multitarget ; then - ARCHS_TO_SUPPORT="$(grep KNOWN_ARCHS= $creco | \ - cut -d\" -f2 | tr ',' ' ')" - fi - - # Create configure.h for ld64 with SUPPORT_ARCH_ defines in it. - DERIVED_FILE_DIR=${LD64}/src \ - RC_SUPPORTED_ARCHS="$ARCHS_TO_SUPPORT" \ - $creco - - # do not depend on MachOFileAbstraction.hpp to define - # SUPPORT_ARCH_arm_any because that's not included by every file where - # our ppc/arm-optional patch uses it, ld.hpp in particular - grep "SUPPORT_ARCH_armv[0-9]" ${LD64}/src/configure.h >/dev/null && \ - echo "#define SUPPORT_ARCH_arm_any 1" >> ${LD64}/src/configure.h -} - -compile_ld64() { - einfo "building ${LD64}" - cd "${S}"/${LD64}/src - emake \ - LTO=${ENABLE_LTO} - - use test && emake build_test -} - -compile_cctools() { - einfo "building ${CCTOOLS}" - cd "${S}"/${CCTOOLS} - # Suppress running dsymutil because it will warn about missing debug - # info which is expected when compiling without -g as we normally do. - # This might need some more thought if anyone ever wanted to build us - # for debugging with Apple's tools. - emake \ - LIB_PRUNETRIE="-L../../${LD64}/src -lprunetrie" \ - EFITOOLS= \ - LTO="${ENABLE_LTO}" \ - LTO_LIBDIR=../../../lib \ - COMMON_SUBDIRS='libstuff ar misc otool' \ - SUBDIRS_32= \ - LEGACY= \ - RC_ProjectSourceVersion=${CCTOOLS_VERSION} \ - RC_CFLAGS="${CFLAGS}" \ - OFLAG="${CCTOOLS_OFLAG}" \ - DSYMUTIL=": disabled: dsymutil" - - cd "${S}"/${CCTOOLS}/as - emake \ - BUILD_OBSOLETE_ARCH= \ - RC_ProjectSourceVersion=${CCTOOLS_VERSION} \ - RC_CFLAGS="-DASLIBEXECDIR=\"\\\"${EPREFIX}${LIBPATH}/\\\"\" -DCLANGDIR=\"\\\"${EPREFIX}/usr/bin/\\\"\" ${CFLAGS}" \ - OFLAG="${CCTOOLS_OFLAG}" \ - DSYMUTIL=": disabled: dsymutil" -} - -src_compile() { - compile_ld64 - compile_cctools -} - -install_ld64() { - exeinto ${BINPATH} - doexe "${S}"/${LD64}/src/{ld64,rebase,dyldinfo,unwinddump,ObjectDump} - dosym ld64 ${BINPATH}/ld - insinto ${DATAPATH}/man/man1 - doins "${S}"/${LD64}/doc/man/man1/{ld,ld64,rebase}.1 -} - -install_cctools() { - cd "${S}"/${CCTOOLS} - emake install_all_but_headers \ - EFITOOLS= \ - COMMON_SUBDIRS='ar misc otool' \ - SUBDIRS_32= \ - DSTROOT=\"${D}\" \ - BINDIR=\"${EPREFIX}\"${BINPATH} \ - LOCBINDIR=\"${EPREFIX}\"${BINPATH} \ - USRBINDIR=\"${EPREFIX}\"${BINPATH} \ - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} \ - MANDIR=\"${EPREFIX}\"${DATAPATH}/man/ - cd "${S}"/${CCTOOLS}/as - emake install \ - BUILD_OBSOLETE_ARCH= \ - DSTROOT=\"${D}\" \ - USRBINDIR=\"${EPREFIX}\"${BINPATH} \ - LIBDIR=\"${EPREFIX}\"${LIBPATH} \ - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} - - cd "${ED}"${BINPATH} - insinto ${DATAPATH}/man/man1 - local skips manpage - # ar brings an up-to-date manpage with it - skips=( ar ) - for bin in *; do - for skip in ${skips[@]}; do - if [[ ${bin} == ${skip} ]]; then - continue 2; - fi - done - manpage=${S}/${CCTOOLS}/man/${bin}.1 - if [[ -f "${manpage}" ]]; then - doins "${manpage}" - fi - done - insinto ${DATAPATH}/man/man5 - doins "${S}"/${CCTOOLS}/man/*.5 -} - -src_test() { - if ! [ "${EPREFIX}"/usr/bin/clang ] ; then - einfo "Test suite only works properly with clang - please install" - return - fi - - einfo "Running unit tests" - cd "${S}"/${LD64}/unit-tests/test-cases - # provide the new ld as a symlink to clang so that -ccc-install-dir - # will pick it up - ln -sfn ../../src/ld64 ld - # use our arch command because the System's will report i386 even for an - # x86_64 prefix - perl ../bin/make-recursive.pl \ - BUILT_PRODUCTS_DIR="${S}"/${LD64}/src \ - ARCH="$(arch)" \ - LD="${S}"/${LD64}/src/ld64 \ - CC="${CC} -ccc-install-dir $PWD" \ - CXX="${CXX} -ccc-install-dir $PWD" \ - OTOOL="${S}"/${CCTOOLS}/otool/otool.NEW \ - | perl ../bin/result-filter.pl -} - -src_install() { - install_ld64 - install_cctools - - cd "${S}" - insinto /etc/env.d/binutils - cat <<-EOF > env.d - TARGET="${CHOST}" - VER="${PV}" - FAKE_TARGETS="${CHOST}" - EOF - newins env.d ${CHOST}-${PV} -} - -pkg_postinst() { - binutils-config ${CHOST}-${PV} -} diff --git a/sys-devel/binutils-apple/binutils-apple-7.1-r1.ebuild b/sys-devel/binutils-apple/binutils-apple-7.1-r1.ebuild deleted file mode 100644 index 46382b1d6785..000000000000 --- a/sys-devel/binutils-apple/binutils-apple-7.1-r1.ebuild +++ /dev/null @@ -1,369 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="5" - -inherit eutils flag-o-matic toolchain-funcs - -LD64=ld64-253.6 -CCTOOLS_VERSION=877.7 -CCTOOLS=cctools-${CCTOOLS_VERSION} -LIBUNWIND=libunwind-35.3 -DYLD=dyld-360.17 - -DESCRIPTION="Darwin assembler as(1) and static linker ld(1), Xcode Tools ${PV}" -HOMEPAGE="http://www.opensource.apple.com/" -SRC_URI="http://www.opensource.apple.com/tarballs/ld64/${LD64}.tar.gz - http://www.opensource.apple.com/tarballs/cctools/${CCTOOLS}.tar.gz - http://www.opensource.apple.com/tarballs/dyld/${DYLD}.tar.gz - http://www.opensource.apple.com/tarballs/libunwind/${LIBUNWIND}.tar.gz - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-4.3-r1.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-5.1-r2.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-6.1-r1.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-6.3-r2.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-7.0-r3.tar.bz2" - -LICENSE="APSL-2" -KEYWORDS="~ppc-macos ~x64-macos ~x86-macos" -IUSE="lto test multitarget" -RESTRICT="!test? ( test )" - -# ld64 can now only be compiled using llvm and libc++ since it massivley uses -# C++11 language fatures. *But additionally* the as driver now defaults to -# calling clang as the assembler on many platforms. This can be disabled using -# -Wa,-Q but since it's default we make llvm a static runtime dependency. -RDEPEND="sys-devel/binutils-config - lto? ( app-arch/xar ) - sys-devel/llvm:* - sys-libs/libcxx" -DEPEND="${RDEPEND} - test? ( >=dev-lang/perl-5.8.8 )" - -SLOT="7" - -S=${WORKDIR} - -is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } - -src_prepare() { - if use multitarget ; then - ewarn "You have enabled support for non-standard target architectures" - ewarn "using USE=multitarget. This includes experimental support for" - ewarn "ppc and ppc64 which is a community forward-port from the last" - ewarn "version of ld64 to officially support PPC." - - if [[ ${CHOST} == powerpc*-darwin* ]] ; then - ewarn "HERE BE DRAGONS! Your system seems to be PPC which means that" - ewarn "the actual usability of your Gentoo programs will depend on the" - ewarn "above-mentioned experimental PPC support in the linker. Be" - ewarn "sure to keep a known-to-work version like ${PN}-3.2.6 around!" - fi - fi - - cd "${S}"/${LD64}/src - cp "${S}"/ld64-136-compile_stubs.h ld/compile_stubs.h - cp "${S}"/ld64-253.3-Makefile-3 Makefile - - epatch "${S}"/ld64-253.3-nolto.patch - epatch "${S}"/ld64-241.9-extraneous-includes.patch - epatch "${S}"/ld64-241.9-osatomic.patch - epatch "${S}"/ld64-236.3-crashreporter.patch - epatch "${S}"/ld64-253.3-nosnapshots.patch - epatch "${S}"/ld64-253.3-ppc.patch - epatch "${S}"/ld64-236.3-constant-types-2.patch - epatch "${S}"/ld64-241.9-register-names.patch - epatch "${S}"/ld64-241.9-get-comm-align.patch - epatch "${S}"/ld64-241.9-cc_md5.patch - epatch "${S}"/ld64-253.3-make_pair.patch - epatch "${S}"/ld64-253.3-delete-warning.patch - - # provide missing headers from libunwind and dyld - mkdir -p include/{mach,mach-o/arm} || die - # never present because it's private - cp ../../${DYLD}/include/mach-o/dyld_priv.h include/mach-o || die - # missing on <= 10.5 - cp ../../${LIBUNWIND}/include/libunwind.h include/ || die - cp ../../${LIBUNWIND}/include/mach-o/compact_unwind_encoding.h include/mach-o || die - # missing on <= 10.4 - cp ../../${DYLD}/include/mach-o/dyld_images.h include/mach-o || die - cp ../../${CCTOOLS}/include/mach-o/loader.h include/mach-o || die - # use copies from cctools because they're otherwise hidden in some SDK - cp ../../${CCTOOLS}/include/mach-o/arm/reloc.h include/mach-o/arm || die - # provide all required CPU_TYPEs on all platforms - cp ../../${CCTOOLS}/include/mach/machine.h include/mach/machine.h - # add alias for newer identifiers, because ld64 uses both but cctools - # header only defines the older - epatch "${S}"/ld64-236.3-missing-cputypes.patch - - # mimic OS X Leopard-style Availability.h macros for libunwind.h on - # older systems - [[ ${CHOST} == *darwin* && ${CHOST#*-darwin} -le 8 ]] && \ - echo "#define __OSX_AVAILABLE_STARTING(x,y) " > include/Availability.h - - local VER_STR="\"@(#)PROGRAM:ld PROJECT:${LD64} (Gentoo ${PN}-${PVR})\\n\"" - echo "char ldVersionString[] = ${VER_STR};" > version.cpp - - epatch "${S}"/ld64-123.2-debug-backtrace.patch - if [[ ${CHOST} == powerpc*-darwin* ]] ; then - epatch "${S}"/ld64-123.2-darwin8-no-mlong-branch-warning.patch - epatch "${S}"/ld64-127.2-thread_state.patch - fi - - cd "${S}"/${CCTOOLS} - epatch "${S}"/${PN}-4.5-as.patch - epatch "${S}"/${PN}-5.1-as-dir.patch - epatch "${S}"/${PN}-5.1-ranlib.patch - epatch "${S}"/${PN}-3.1.1-libtool-ranlib.patch - epatch "${S}"/${PN}-3.1.1-no-headers.patch - epatch "${S}"/${PN}-4.0-no-oss-dir.patch - epatch "${S}"/cctools-839-intel-retf.patch - epatch "${S}"/${PN}-5.1-extraneous-includes.patch - #epatch "${S}"/${PN}-5.1-otool-stdc.patch - epatch "${S}"/${PN}-5.1-constant-types.patch - epatch "${S}"/${PN}-5.1-strnlen.patch - epatch "${S}"/${PN}-5.1-ppc.patch - epatch "${S}"/${PN}-5.1-thread-state-redefined.patch - epatch "${S}"/${PN}-7.0-make-j.patch - epatch "${S}"/${PN}-7.0-lto-prefix-2.patch - epatch "${S}"/${PN}-7.0-clang-as.patch - epatch "${S}"/${PN}-7.0-nolto.patch - epatch "${S}"/${PN}-7.0-nollvm.patch - cp ../${LD64}/src/other/prune_trie.h include/mach-o/ || die - - # do not build profileable libstuff to save compile time - sed -i -e "/^all:/s, profile , ," libstuff/Makefile - - # cctools version is provided to make via RC_ProjectSourceVersion which - # generates and compiles it as apple_version[] into libstuff. From - # there it's picked up by the individual tools. Since - # RC_ProjectSourceVersion is also used as library version, we can't - # just append our local version info. So we hack the libstuff Makefile - # to include our Gentoo version. - sed -i -e "/cctools-.*(RC_ProjectSourceVersion).*OFILE_DIR/s,Version),Version) (Gentoo ${PN}-${PVR})," \ - libstuff/Makefile - - # clean up test suite - cd "${S}"/${LD64}/unit-tests/test-cases - local c - - # we don't have llvm - ((++c)); rm -rf llvm-integration; - - # we don't have dtrace - ((++c)); rm -rf dtrace-static-probes-coalescing; - ((++c)); rm -rf dtrace-static-probes; - - # a file is missing - ((++c)); rm -rf eh-coalescing-r - - # we don't do universal binaries - ((++c)); rm -rf blank-stubs; - - # looks like a problem with apple's result-filter.pl - ((++c)); rm -rf implicit-common3; - ((++c)); rm -rf order_file-ans; - - # TODO no idea what goes wrong here - ((++c)); rm -rf dwarf-debug-notes; - - einfo "Deleted $c tests that were bound to fail" - - cd "${S}" - ebegin "cleaning Makefiles from unwanted CFLAGS" - find . -name "Makefile" -print0 | xargs -0 sed \ - -i \ - -e 's/ -g / /g' \ - -e 's/^G =.*$/G =/' \ - -e 's/^OFLAG =.*$/OFLAG =/' \ - -e 's/install -c -s/install/g' - eend $? -} - -src_configure() { - ENABLE_LTO=0 - use lto && ENABLE_LTO=1 - - export CTARGET=${CTARGET:-${CHOST}} - if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi - fi - - LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV} - INCPATH=${LIBPATH}/include - DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV} - if is_cross ; then - BINPATH=/usr/${CHOST}/${CTARGET}/binutils-bin/${PV} - else - BINPATH=/usr/${CTARGET}/binutils-bin/${PV} - fi - - # CPPFLAGS only affects ld64, cctools don't use 'em (which currently is - # what we want) - append-cppflags -DNDEBUG - - # Block API and thus snapshots supported on >= 10.6 - [[ ${CHOST} == *darwin* && ${CHOST#*-darwin} -ge 10 ]] && \ - append-cppflags -DSUPPORT_SNAPSHOTS - - CCTOOLS_OFLAG= - if [[ ${CHOST} == *darwin* && ${CHOST#*-darwin} -le 8 ]] ; then - # cctools expect to use UNIX03 struct member names. - # This is default on > 10.4. Activate it on <= 10.4 by defining - # __DARWIN_UNIX03 explicitly. - CCTOOLS_OFLAG="-D__DARWIN_UNIX03=1" - fi - - # if compiling with USE multitarget, extract all the known arches from - # create_configure and pass them back to it - creco=${LD64}/src/create_configure - ARCHS_TO_SUPPORT="" - if use multitarget ; then - ARCHS_TO_SUPPORT="$(grep KNOWN_ARCHS= $creco | \ - cut -d\" -f2 | tr ',' ' ')" - fi - - # Create configure.h for ld64 with SUPPORT_ARCH_ defines in it. - DERIVED_FILE_DIR=${LD64}/src \ - RC_SUPPORTED_ARCHS="$ARCHS_TO_SUPPORT" \ - $creco - - # do not depend on MachOFileAbstraction.hpp to define - # SUPPORT_ARCH_arm_any because that's not included by every file where - # our ppc/arm-optional patch uses it, ld.hpp in particular - grep "SUPPORT_ARCH_armv[0-9]" ${LD64}/src/configure.h >/dev/null && \ - echo "#define SUPPORT_ARCH_arm_any 1" >> ${LD64}/src/configure.h -} - -compile_ld64() { - einfo "building ${LD64}" - cd "${S}"/${LD64}/src - emake \ - LTO=${ENABLE_LTO} - - use test && emake build_test -} - -compile_cctools() { - einfo "building ${CCTOOLS}" - cd "${S}"/${CCTOOLS} - # Suppress running dsymutil because it will warn about missing debug - # info which is expected when compiling without -g as we normally do. - # This might need some more thought if anyone ever wanted to build us - # for debugging with Apple's tools. - emake \ - LIB_PRUNETRIE="-L../../${LD64}/src -lprunetrie" \ - EFITOOLS= \ - LTO="${ENABLE_LTO}" \ - LTO_LIBDIR=../../../lib \ - COMMON_SUBDIRS='libstuff ar misc otool' \ - SUBDIRS_32= \ - LEGACY= \ - RC_ProjectSourceVersion=${CCTOOLS_VERSION} \ - RC_CFLAGS="${CFLAGS}" \ - OFLAG="${CCTOOLS_OFLAG}" \ - DSYMUTIL=": disabled: dsymutil" - - cd "${S}"/${CCTOOLS}/as - emake \ - BUILD_OBSOLETE_ARCH= \ - RC_ProjectSourceVersion=${CCTOOLS_VERSION} \ - RC_CFLAGS="-DASLIBEXECDIR=\"\\\"${EPREFIX}${LIBPATH}/\\\"\" -DCLANGDIR=\"\\\"${EPREFIX}/usr/bin/\\\"\" ${CFLAGS}" \ - OFLAG="${CCTOOLS_OFLAG}" \ - DSYMUTIL=": disabled: dsymutil" -} - -src_compile() { - compile_ld64 - compile_cctools -} - -install_ld64() { - exeinto ${BINPATH} - doexe "${S}"/${LD64}/src/{ld64,rebase,dyldinfo,unwinddump,ObjectDump} - dosym ld64 ${BINPATH}/ld - insinto ${DATAPATH}/man/man1 - doins "${S}"/${LD64}/doc/man/man1/{ld,ld64,rebase}.1 -} - -install_cctools() { - cd "${S}"/${CCTOOLS} - emake install_all_but_headers \ - EFITOOLS= \ - COMMON_SUBDIRS='ar misc otool' \ - SUBDIRS_32= \ - DSTROOT=\"${D}\" \ - BINDIR=\"${EPREFIX}\"${BINPATH} \ - LOCBINDIR=\"${EPREFIX}\"${BINPATH} \ - USRBINDIR=\"${EPREFIX}\"${BINPATH} \ - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} \ - MANDIR=\"${EPREFIX}\"${DATAPATH}/man/ - cd "${S}"/${CCTOOLS}/as - emake install \ - BUILD_OBSOLETE_ARCH= \ - DSTROOT=\"${D}\" \ - USRBINDIR=\"${EPREFIX}\"${BINPATH} \ - LIBDIR=\"${EPREFIX}\"${LIBPATH} \ - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} - - cd "${ED}"${BINPATH} - insinto ${DATAPATH}/man/man1 - local skips manpage - # ar brings an up-to-date manpage with it - skips=( ar ) - for bin in *; do - for skip in ${skips[@]}; do - if [[ ${bin} == ${skip} ]]; then - continue 2; - fi - done - manpage=${S}/${CCTOOLS}/man/${bin}.1 - if [[ -f "${manpage}" ]]; then - doins "${manpage}" - fi - done - insinto ${DATAPATH}/man/man5 - doins "${S}"/${CCTOOLS}/man/*.5 -} - -src_test() { - if ! [ "${EPREFIX}"/usr/bin/clang ] ; then - einfo "Test suite only works properly with clang - please install" - return - fi - - einfo "Running unit tests" - cd "${S}"/${LD64}/unit-tests/test-cases - # provide the new ld as a symlink to clang so that -ccc-install-dir - # will pick it up - ln -sfn ../../src/ld64 ld - # use our arch command because the System's will report i386 even for an - # x86_64 prefix - perl ../bin/make-recursive.pl \ - BUILT_PRODUCTS_DIR="${S}"/${LD64}/src \ - ARCH="$(arch)" \ - LD="${S}"/${LD64}/src/ld64 \ - CC="${CC} -ccc-install-dir $PWD" \ - CXX="${CXX} -ccc-install-dir $PWD" \ - OTOOL="${S}"/${CCTOOLS}/otool/otool.NEW \ - | perl ../bin/result-filter.pl -} - -src_install() { - install_ld64 - install_cctools - - cd "${S}" - insinto /etc/env.d/binutils - cat <<-EOF > env.d - TARGET="${CHOST}" - VER="${PV}" - FAKE_TARGETS="${CHOST}" - EOF - newins env.d ${CHOST}-${PV} -} - -pkg_postinst() { - binutils-config ${CHOST}-${PV} -} diff --git a/sys-devel/binutils-apple/binutils-apple-7.2-r1.ebuild b/sys-devel/binutils-apple/binutils-apple-7.2-r1.ebuild deleted file mode 100644 index e7e593598c92..000000000000 --- a/sys-devel/binutils-apple/binutils-apple-7.2-r1.ebuild +++ /dev/null @@ -1,370 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="5" - -inherit eutils flag-o-matic toolchain-funcs - -LD64=ld64-253.9 -CCTOOLS_VERSION=877.8 -CCTOOLS=cctools-${CCTOOLS_VERSION} -LIBUNWIND=libunwind-35.3 -DYLD=dyld-360.18 - -DESCRIPTION="Darwin assembler as(1) and static linker ld(1), Xcode Tools ${PV}" -HOMEPAGE="http://www.opensource.apple.com/" -SRC_URI="http://www.opensource.apple.com/tarballs/ld64/${LD64}.tar.gz - http://www.opensource.apple.com/tarballs/cctools/${CCTOOLS}.tar.gz - http://www.opensource.apple.com/tarballs/dyld/${DYLD}.tar.gz - http://www.opensource.apple.com/tarballs/libunwind/${LIBUNWIND}.tar.gz - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-4.3-r1.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-5.1-r2.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-6.1-r1.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-6.3-r2.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-7.0-r3.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-7.2-r1.tar.bz2" - -LICENSE="APSL-2" -KEYWORDS="~ppc-macos ~x64-macos ~x86-macos" -IUSE="lto test multitarget" -RESTRICT="!test? ( test )" - -# ld64 can now only be compiled using llvm and libc++ since it massivley uses -# C++11 language fatures. *But additionally* the as driver now defaults to -# calling clang as the assembler on many platforms. This can be disabled using -# -Wa,-Q but since it's default we make llvm a static runtime dependency. -RDEPEND="sys-devel/binutils-config - lto? ( app-arch/xar ) - sys-devel/llvm:* - sys-libs/libcxx" -DEPEND="${RDEPEND} - test? ( >=dev-lang/perl-5.8.8 )" - -SLOT="7" - -S=${WORKDIR} - -is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } - -src_prepare() { - if use multitarget ; then - ewarn "You have enabled support for non-standard target architectures" - ewarn "using USE=multitarget. This includes experimental support for" - ewarn "ppc and ppc64 which is a community forward-port from the last" - ewarn "version of ld64 to officially support PPC." - - if [[ ${CHOST} == powerpc*-darwin* ]] ; then - ewarn "HERE BE DRAGONS! Your system seems to be PPC which means that" - ewarn "the actual usability of your Gentoo programs will depend on the" - ewarn "above-mentioned experimental PPC support in the linker. Be" - ewarn "sure to keep a known-to-work version like ${PN}-3.2.6 around!" - fi - fi - - cd "${S}"/${LD64}/src - cp "${S}"/ld64-136-compile_stubs.h ld/compile_stubs.h - cp "${S}"/ld64-253.3-Makefile-3 Makefile - - epatch "${S}"/ld64-253.9-nolto.patch - epatch "${S}"/ld64-241.9-extraneous-includes.patch - epatch "${S}"/ld64-241.9-osatomic.patch - epatch "${S}"/ld64-236.3-crashreporter.patch - epatch "${S}"/ld64-253.3-nosnapshots.patch - epatch "${S}"/ld64-253.3-ppc.patch - epatch "${S}"/ld64-236.3-constant-types-2.patch - epatch "${S}"/ld64-241.9-register-names.patch - epatch "${S}"/ld64-241.9-get-comm-align.patch - epatch "${S}"/ld64-241.9-cc_md5.patch - epatch "${S}"/ld64-253.3-make_pair.patch - epatch "${S}"/ld64-253.3-delete-warning.patch - - # provide missing headers from libunwind and dyld - mkdir -p include/{mach,mach-o/arm} || die - # never present because it's private - cp ../../${DYLD}/include/mach-o/dyld_priv.h include/mach-o || die - # missing on <= 10.5 - cp ../../${LIBUNWIND}/include/libunwind.h include/ || die - cp ../../${LIBUNWIND}/include/mach-o/compact_unwind_encoding.h include/mach-o || die - # missing on <= 10.4 - cp ../../${DYLD}/include/mach-o/dyld_images.h include/mach-o || die - cp ../../${CCTOOLS}/include/mach-o/loader.h include/mach-o || die - # use copies from cctools because they're otherwise hidden in some SDK - cp ../../${CCTOOLS}/include/mach-o/arm/reloc.h include/mach-o/arm || die - # provide all required CPU_TYPEs on all platforms - cp ../../${CCTOOLS}/include/mach/machine.h include/mach/machine.h - # add alias for newer identifiers, because ld64 uses both but cctools - # header only defines the older - epatch "${S}"/ld64-236.3-missing-cputypes.patch - - # mimic OS X Leopard-style Availability.h macros for libunwind.h on - # older systems - [[ ${CHOST} == *darwin* && ${CHOST#*-darwin} -le 8 ]] && \ - echo "#define __OSX_AVAILABLE_STARTING(x,y) " > include/Availability.h - - local VER_STR="\"@(#)PROGRAM:ld PROJECT:${LD64} (Gentoo ${PN}-${PVR})\\n\"" - echo "char ldVersionString[] = ${VER_STR};" > version.cpp - - epatch "${S}"/ld64-123.2-debug-backtrace.patch - if [[ ${CHOST} == powerpc*-darwin* ]] ; then - epatch "${S}"/ld64-123.2-darwin8-no-mlong-branch-warning.patch - epatch "${S}"/ld64-127.2-thread_state.patch - fi - - cd "${S}"/${CCTOOLS} - epatch "${S}"/${PN}-4.5-as.patch - epatch "${S}"/${PN}-5.1-as-dir.patch - epatch "${S}"/${PN}-5.1-ranlib.patch - epatch "${S}"/${PN}-3.1.1-libtool-ranlib.patch - epatch "${S}"/${PN}-3.1.1-no-headers.patch - epatch "${S}"/${PN}-4.0-no-oss-dir.patch - epatch "${S}"/cctools-839-intel-retf.patch - epatch "${S}"/${PN}-5.1-extraneous-includes.patch - #epatch "${S}"/${PN}-5.1-otool-stdc.patch - epatch "${S}"/${PN}-5.1-constant-types.patch - epatch "${S}"/${PN}-5.1-strnlen.patch - epatch "${S}"/${PN}-5.1-ppc.patch - epatch "${S}"/${PN}-5.1-thread-state-redefined.patch - epatch "${S}"/${PN}-7.0-make-j.patch - epatch "${S}"/${PN}-7.0-lto-prefix-2.patch - epatch "${S}"/${PN}-7.0-clang-as.patch - epatch "${S}"/${PN}-7.0-nolto.patch - epatch "${S}"/${PN}-7.0-nollvm.patch - cp ../${LD64}/src/other/prune_trie.h include/mach-o/ || die - - # do not build profileable libstuff to save compile time - sed -i -e "/^all:/s, profile , ," libstuff/Makefile - - # cctools version is provided to make via RC_ProjectSourceVersion which - # generates and compiles it as apple_version[] into libstuff. From - # there it's picked up by the individual tools. Since - # RC_ProjectSourceVersion is also used as library version, we can't - # just append our local version info. So we hack the libstuff Makefile - # to include our Gentoo version. - sed -i -e "/cctools-.*(RC_ProjectSourceVersion).*OFILE_DIR/s,Version),Version) (Gentoo ${PN}-${PVR})," \ - libstuff/Makefile - - # clean up test suite - cd "${S}"/${LD64}/unit-tests/test-cases - local c - - # we don't have llvm - ((++c)); rm -rf llvm-integration; - - # we don't have dtrace - ((++c)); rm -rf dtrace-static-probes-coalescing; - ((++c)); rm -rf dtrace-static-probes; - - # a file is missing - ((++c)); rm -rf eh-coalescing-r - - # we don't do universal binaries - ((++c)); rm -rf blank-stubs; - - # looks like a problem with apple's result-filter.pl - ((++c)); rm -rf implicit-common3; - ((++c)); rm -rf order_file-ans; - - # TODO no idea what goes wrong here - ((++c)); rm -rf dwarf-debug-notes; - - einfo "Deleted $c tests that were bound to fail" - - cd "${S}" - ebegin "cleaning Makefiles from unwanted CFLAGS" - find . -name "Makefile" -print0 | xargs -0 sed \ - -i \ - -e 's/ -g / /g' \ - -e 's/^G =.*$/G =/' \ - -e 's/^OFLAG =.*$/OFLAG =/' \ - -e 's/install -c -s/install/g' - eend $? -} - -src_configure() { - ENABLE_LTO=0 - use lto && ENABLE_LTO=1 - - export CTARGET=${CTARGET:-${CHOST}} - if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi - fi - - LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV} - INCPATH=${LIBPATH}/include - DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV} - if is_cross ; then - BINPATH=/usr/${CHOST}/${CTARGET}/binutils-bin/${PV} - else - BINPATH=/usr/${CTARGET}/binutils-bin/${PV} - fi - - # CPPFLAGS only affects ld64, cctools don't use 'em (which currently is - # what we want) - append-cppflags -DNDEBUG - - # Block API and thus snapshots supported on >= 10.6 - [[ ${CHOST} == *darwin* && ${CHOST#*-darwin} -ge 10 ]] && \ - append-cppflags -DSUPPORT_SNAPSHOTS - - CCTOOLS_OFLAG= - if [[ ${CHOST} == *darwin* && ${CHOST#*-darwin} -le 8 ]] ; then - # cctools expect to use UNIX03 struct member names. - # This is default on > 10.4. Activate it on <= 10.4 by defining - # __DARWIN_UNIX03 explicitly. - CCTOOLS_OFLAG="-D__DARWIN_UNIX03=1" - fi - - # if compiling with USE multitarget, extract all the known arches from - # create_configure and pass them back to it - creco=${LD64}/src/create_configure - ARCHS_TO_SUPPORT="" - if use multitarget ; then - ARCHS_TO_SUPPORT="$(grep KNOWN_ARCHS= $creco | \ - cut -d\" -f2 | tr ',' ' ')" - fi - - # Create configure.h for ld64 with SUPPORT_ARCH_ defines in it. - DERIVED_FILE_DIR=${LD64}/src \ - RC_SUPPORTED_ARCHS="$ARCHS_TO_SUPPORT" \ - $creco - - # do not depend on MachOFileAbstraction.hpp to define - # SUPPORT_ARCH_arm_any because that's not included by every file where - # our ppc/arm-optional patch uses it, ld.hpp in particular - grep "SUPPORT_ARCH_armv[0-9]" ${LD64}/src/configure.h >/dev/null && \ - echo "#define SUPPORT_ARCH_arm_any 1" >> ${LD64}/src/configure.h -} - -compile_ld64() { - einfo "building ${LD64}" - cd "${S}"/${LD64}/src - emake \ - LTO=${ENABLE_LTO} - - use test && emake build_test -} - -compile_cctools() { - einfo "building ${CCTOOLS}" - cd "${S}"/${CCTOOLS} - # Suppress running dsymutil because it will warn about missing debug - # info which is expected when compiling without -g as we normally do. - # This might need some more thought if anyone ever wanted to build us - # for debugging with Apple's tools. - emake \ - LIB_PRUNETRIE="-L../../${LD64}/src -lprunetrie" \ - EFITOOLS= \ - LTO="${ENABLE_LTO}" \ - LTO_LIBDIR=../../../lib \ - COMMON_SUBDIRS='libstuff ar misc otool' \ - SUBDIRS_32= \ - LEGACY= \ - RC_ProjectSourceVersion=${CCTOOLS_VERSION} \ - RC_CFLAGS="${CFLAGS}" \ - OFLAG="${CCTOOLS_OFLAG}" \ - DSYMUTIL=": disabled: dsymutil" - - cd "${S}"/${CCTOOLS}/as - emake \ - BUILD_OBSOLETE_ARCH= \ - RC_ProjectSourceVersion=${CCTOOLS_VERSION} \ - RC_CFLAGS="-DASLIBEXECDIR=\"\\\"${EPREFIX}${LIBPATH}/\\\"\" -DCLANGDIR=\"\\\"${EPREFIX}/usr/bin/\\\"\" ${CFLAGS}" \ - OFLAG="${CCTOOLS_OFLAG}" \ - DSYMUTIL=": disabled: dsymutil" -} - -src_compile() { - compile_ld64 - compile_cctools -} - -install_ld64() { - exeinto ${BINPATH} - doexe "${S}"/${LD64}/src/{ld64,rebase,dyldinfo,unwinddump,ObjectDump} - dosym ld64 ${BINPATH}/ld - insinto ${DATAPATH}/man/man1 - doins "${S}"/${LD64}/doc/man/man1/{ld,ld64,rebase}.1 -} - -install_cctools() { - cd "${S}"/${CCTOOLS} - emake install_all_but_headers \ - EFITOOLS= \ - COMMON_SUBDIRS='ar misc otool' \ - SUBDIRS_32= \ - DSTROOT=\"${D}\" \ - BINDIR=\"${EPREFIX}\"${BINPATH} \ - LOCBINDIR=\"${EPREFIX}\"${BINPATH} \ - USRBINDIR=\"${EPREFIX}\"${BINPATH} \ - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} \ - MANDIR=\"${EPREFIX}\"${DATAPATH}/man/ - cd "${S}"/${CCTOOLS}/as - emake install \ - BUILD_OBSOLETE_ARCH= \ - DSTROOT=\"${D}\" \ - USRBINDIR=\"${EPREFIX}\"${BINPATH} \ - LIBDIR=\"${EPREFIX}\"${LIBPATH} \ - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} - - cd "${ED}"${BINPATH} - insinto ${DATAPATH}/man/man1 - local skips manpage - # ar brings an up-to-date manpage with it - skips=( ar ) - for bin in *; do - for skip in ${skips[@]}; do - if [[ ${bin} == ${skip} ]]; then - continue 2; - fi - done - manpage=${S}/${CCTOOLS}/man/${bin}.1 - if [[ -f "${manpage}" ]]; then - doins "${manpage}" - fi - done - insinto ${DATAPATH}/man/man5 - doins "${S}"/${CCTOOLS}/man/*.5 -} - -src_test() { - if ! [ "${EPREFIX}"/usr/bin/clang ] ; then - einfo "Test suite only works properly with clang - please install" - return - fi - - einfo "Running unit tests" - cd "${S}"/${LD64}/unit-tests/test-cases - # provide the new ld as a symlink to clang so that -ccc-install-dir - # will pick it up - ln -sfn ../../src/ld64 ld - # use our arch command because the System's will report i386 even for an - # x86_64 prefix - perl ../bin/make-recursive.pl \ - BUILT_PRODUCTS_DIR="${S}"/${LD64}/src \ - ARCH="$(arch)" \ - LD="${S}"/${LD64}/src/ld64 \ - CC="${CC} -ccc-install-dir $PWD" \ - CXX="${CXX} -ccc-install-dir $PWD" \ - OTOOL="${S}"/${CCTOOLS}/otool/otool.NEW \ - | perl ../bin/result-filter.pl -} - -src_install() { - install_ld64 - install_cctools - - cd "${S}" - insinto /etc/env.d/binutils - cat <<-EOF > env.d - TARGET="${CHOST}" - VER="${PV}" - FAKE_TARGETS="${CHOST}" - EOF - newins env.d ${CHOST}-${PV} -} - -pkg_postinst() { - binutils-config ${CHOST}-${PV} -} diff --git a/sys-devel/binutils-apple/binutils-apple-7.3.1.ebuild b/sys-devel/binutils-apple/binutils-apple-7.3.1.ebuild deleted file mode 100644 index 9497b6024a8e..000000000000 --- a/sys-devel/binutils-apple/binutils-apple-7.3.1.ebuild +++ /dev/null @@ -1,393 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="5" - -inherit eutils flag-o-matic toolchain-funcs - -LD64=ld64-264.3.102 -CCTOOLS_VERSION=886 -CCTOOLS=cctools-${CCTOOLS_VERSION} -LIBUNWIND=libunwind-35.3 -DYLD=dyld-360.18 - -DESCRIPTION="Darwin assembler as(1) and static linker ld(1), Xcode Tools ${PV}" -HOMEPAGE="http://www.opensource.apple.com/" -SRC_URI="http://www.opensource.apple.com/tarballs/ld64/${LD64}.tar.gz - http://www.opensource.apple.com/tarballs/cctools/${CCTOOLS}.tar.gz - http://www.opensource.apple.com/tarballs/dyld/${DYLD}.tar.gz - http://www.opensource.apple.com/tarballs/libunwind/${LIBUNWIND}.tar.gz - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-4.3-r1.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-5.1-r2.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-6.1-r1.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-6.3-r2.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-7.0-r3.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-7.2-r1.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-7.3-r2.tar.bz2" - -LICENSE="APSL-2" -KEYWORDS="~ppc-macos ~x64-macos ~x86-macos" -IUSE="lto test multitarget" -RESTRICT="!test? ( test )" - -# ld64 can now only be compiled using llvm and libc++ since it massively uses -# C++11 language features. *But additionally* the as driver now defaults to -# calling clang as the assembler on many platforms. This can be disabled using -# -Wa,-Q but since it's default we make llvm a static runtime dependency. -RDEPEND="sys-devel/binutils-config - lto? ( app-arch/xar ) - sys-devel/llvm:* - sys-libs/libcxx" -DEPEND="${RDEPEND} - test? ( >=dev-lang/perl-5.8.8 )" - -SLOT="7" - -S=${WORKDIR} - -is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } - -src_prepare() { - if use multitarget ; then - ewarn "You have enabled support for non-standard target architectures" - ewarn "using USE=multitarget. This includes experimental support for" - ewarn "ppc and ppc64 which is a community forward-port from the last" - ewarn "version of ld64 to officially support PPC." - - if [[ ${CHOST} == powerpc*-darwin* ]] ; then - ewarn "HERE BE DRAGONS! Your system seems to be PPC which means that" - ewarn "the actual usability of your Gentoo programs will depend on the" - ewarn "above-mentioned experimental PPC support in the linker. Be" - ewarn "sure to keep a known-to-work version like ${PN}-3.2.6 around!" - fi - fi - - cd "${S}"/${LD64}/src - cp "${S}"/ld64-136-compile_stubs.h ld/compile_stubs.h - cp "${S}"/ld64-264.3.101-Makefile Makefile - - epatch "${S}"/ld64-264.3.101-nolto.patch - epatch "${S}"/ld64-241.9-extraneous-includes.patch - epatch "${S}"/ld64-241.9-osatomic.patch - epatch "${S}"/ld64-236.3-crashreporter.patch - epatch "${S}"/ld64-264.3.101-nosnapshots.patch - epatch "${S}"/ld64-264.3.102-ppc.patch - epatch "${S}"/ld64-264.3.101-constant-types.patch - epatch "${S}"/ld64-241.9-register-names.patch - epatch "${S}"/ld64-241.9-get-comm-align.patch - epatch "${S}"/ld64-241.9-cc_md5.patch - epatch "${S}"/ld64-264.3.102-bitcode-case.patch - - # workound llvm-3.9.{0,1} issue - # https://bugs.gentoo.org/show_bug.cgi?id=603580 - # https://groups.google.com/forum/#!topic/llvm-dev/JY6nuKE__sU - # http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20160829/169553.html - sed -i -e '/COMPILE_TIME_ASSERT/d' ld/parsers/libunwind/*.hpp || die - - # provide missing headers from libunwind and dyld - mkdir -p include/{mach,mach-o/arm} || die - # never present because it's private - cp ../../${DYLD}/include/mach-o/dyld_priv.h include/mach-o || die - # missing on <= 10.5 - cp ../../${LIBUNWIND}/include/libunwind.h include/ || die - cp ../../${LIBUNWIND}/include/mach-o/compact_unwind_encoding.h include/mach-o || die - # missing on <= 10.4 - cp ../../${DYLD}/include/mach-o/dyld_images.h include/mach-o || die - cp ../../${CCTOOLS}/include/mach-o/loader.h include/mach-o || die - # use copies from cctools because they're otherwise hidden in some SDK - cp ../../${CCTOOLS}/include/mach-o/arm/reloc.h include/mach-o/arm || die - # provide all required CPU_TYPEs on all platforms - cp ../../${CCTOOLS}/include/mach/machine.h include/mach/machine.h - # add alias for newer identifiers, because ld64 uses both but cctools - # header only defines the older - epatch "${S}"/ld64-236.3-missing-cputypes.patch - - # mimic OS X Leopard-style Availability.h macros for libunwind.h on - # older systems - [[ ${CHOST} == *darwin* && ${CHOST#*-darwin} -le 8 ]] && \ - echo "#define __OSX_AVAILABLE_STARTING(x,y) " > include/Availability.h - - local VER_STR="\"@(#)PROGRAM:ld PROJECT:${LD64} (Gentoo ${PN}-${PVR})\\n\"" - echo "char ldVersionString[] = ${VER_STR};" > version.cpp - - epatch "${S}"/ld64-123.2-debug-backtrace.patch - if [[ ${CHOST} == powerpc*-darwin* ]] ; then - epatch "${S}"/ld64-123.2-darwin8-no-mlong-branch-warning.patch - epatch "${S}"/ld64-127.2-thread_state.patch - fi - - cd "${S}"/${CCTOOLS} - epatch "${S}"/${PN}-4.5-as.patch - epatch "${S}"/${PN}-5.1-as-dir.patch - epatch "${S}"/${PN}-5.1-ranlib.patch - epatch "${S}"/${PN}-3.1.1-libtool-ranlib.patch - epatch "${S}"/${PN}-3.1.1-no-headers.patch - epatch "${S}"/${PN}-4.0-no-oss-dir.patch - epatch "${S}"/cctools-839-intel-retf.patch - epatch "${S}"/${PN}-5.1-extraneous-includes.patch - #epatch "${S}"/${PN}-5.1-otool-stdc.patch - epatch "${S}"/${PN}-5.1-constant-types.patch - epatch "${S}"/${PN}-5.1-strnlen.patch - epatch "${S}"/${PN}-5.1-ppc.patch - epatch "${S}"/${PN}-5.1-thread-state-redefined.patch - epatch "${S}"/${PN}-7.3-make-j.patch - epatch "${S}"/${PN}-7.0-lto-prefix-2.patch - epatch "${S}"/${PN}-7.0-clang-as.patch - epatch "${S}"/${PN}-7.3-nolto.patch - epatch "${S}"/${PN}-7.3-nollvm.patch - epatch "${S}"/${PN}-7.3-no-developertools-dir.patch - cp ../${LD64}/src/other/prune_trie.h include/mach-o/ || die - - # do not build profileable libstuff to save compile time - sed -i -e "/^all:/s, profile , ," libstuff/Makefile - - # cctools version is provided to make via RC_ProjectSourceVersion which - # generates and compiles it as apple_version[] into libstuff. From - # there it's picked up by the individual tools. Since - # RC_ProjectSourceVersion is also used as library version, we can't - # just append our local version info. So we hack the libstuff Makefile - # to include our Gentoo version. - sed -i -e "/cctools-.*(RC_ProjectSourceVersion).*OFILE_DIR/s,Version),Version) (Gentoo ${PN}-${PVR})," \ - libstuff/Makefile - - # clean up test suite - cd "${S}"/${LD64}/unit-tests/test-cases - local c - - # we don't have llvm - ((++c)); rm -rf llvm-integration; - - # we don't have dtrace - ((++c)); rm -rf dtrace-static-probes-coalescing; - ((++c)); rm -rf dtrace-static-probes; - - # a file is missing - ((++c)); rm -rf eh-coalescing-r - - # we don't do universal binaries - ((++c)); rm -rf blank-stubs; - - # looks like a problem with apple's result-filter.pl - ((++c)); rm -rf implicit-common3; - ((++c)); rm -rf order_file-ans; - - # TODO no idea what goes wrong here - ((++c)); rm -rf dwarf-debug-notes; - - einfo "Deleted $c tests that were bound to fail" - - cd "${S}" - ebegin "cleaning Makefiles from unwanted CFLAGS" - find . -name "Makefile" -print0 | xargs -0 sed \ - -i \ - -e 's/ -g / /g' \ - -e 's/^G =.*$/G =/' \ - -e 's/^OFLAG =.*$/OFLAG =/' \ - -e 's/install -c -s/install/g' - eend $? -} - -src_configure() { - ENABLE_LTO=0 - use lto && ENABLE_LTO=1 - - export CTARGET=${CTARGET:-${CHOST}} - if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi - fi - - LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV} - INCPATH=${LIBPATH}/include - DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV} - if is_cross ; then - BINPATH=/usr/${CHOST}/${CTARGET}/binutils-bin/${PV} - else - BINPATH=/usr/${CTARGET}/binutils-bin/${PV} - fi - - # CPPFLAGS only affects ld64, cctools don't use 'em (which currently is - # what we want) - append-cppflags -DNDEBUG - - # Block API and thus snapshots supported on >= 10.6 - [[ ${CHOST} == *darwin* && ${CHOST#*-darwin} -ge 10 ]] && \ - append-cppflags -DSUPPORT_SNAPSHOTS - - CCTOOLS_OFLAG= - if [[ ${CHOST} == *darwin* && ${CHOST#*-darwin} -le 8 ]] ; then - # cctools expect to use UNIX03 struct member names. - # This is default on > 10.4. Activate it on <= 10.4 by defining - # __DARWIN_UNIX03 explicitly. - CCTOOLS_OFLAG="-D__DARWIN_UNIX03=1" - fi - - # if compiling with USE multitarget, extract all the known arches from - # create_configure and pass them back to it - creco=${LD64}/src/create_configure - ARCHS_TO_SUPPORT="" - if use multitarget ; then - ARCHS_TO_SUPPORT="$(grep KNOWN_ARCHS= $creco | \ - cut -d\" -f2 | tr ',' ' ')" - fi - - # Create configure.h for ld64 with SUPPORT_ARCH_ defines in it. - DERIVED_FILE_DIR=${LD64}/src \ - RC_SUPPORTED_ARCHS="$ARCHS_TO_SUPPORT" \ - $creco - - # do not depend on MachOFileAbstraction.hpp to define - # SUPPORT_ARCH_arm_any because that's not included by every file where - # our ppc/arm-optional patch uses it, ld.hpp in particular - grep "SUPPORT_ARCH_armv[0-9]" ${LD64}/src/configure.h >/dev/null && \ - echo "#define SUPPORT_ARCH_arm_any 1" >> ${LD64}/src/configure.h -} - -compile_ld64() { - einfo "building ${LD64}" - cd "${S}"/${LD64}/src - emake \ - LTO=${ENABLE_LTO} - - use test && emake build_test -} - -compile_cctools() { - einfo "building ${CCTOOLS}" - cd "${S}"/${CCTOOLS} - # Suppress running dsymutil because it will warn about missing debug - # info which is expected when compiling without -g as we normally do. - # This might need some more thought if anyone ever wanted to build us - # for debugging with Apple's tools. - emake \ - LIB_PRUNETRIE="-L../../${LD64}/src -lprunetrie" \ - EFITOOLS= \ - LTO="${ENABLE_LTO}" \ - LTO_LIBDIR=../../../lib \ - COMMON_SUBDIRS='libstuff ar misc otool' \ - SUBDIRS_32= \ - LEGACY= \ - RC_ProjectSourceVersion=${CCTOOLS_VERSION} \ - RC_CFLAGS="${CFLAGS}" \ - OFLAG="${CCTOOLS_OFLAG}" \ - DSYMUTIL=": disabled: dsymutil" - - cd "${S}"/${CCTOOLS}/as - emake \ - BUILD_OBSOLETE_ARCH= \ - RC_ProjectSourceVersion=${CCTOOLS_VERSION} \ - RC_CFLAGS="-DASLIBEXECDIR=\"\\\"${EPREFIX}${LIBPATH}/\\\"\" -DCLANGDIR=\"\\\"${EPREFIX}/usr/bin/\\\"\" ${CFLAGS}" \ - OFLAG="${CCTOOLS_OFLAG}" \ - DSYMUTIL=": disabled: dsymutil" -} - -src_compile() { - compile_ld64 - compile_cctools -} - -install_ld64() { - exeinto ${BINPATH} - doexe "${S}"/${LD64}/src/{ld64,rebase,dyldinfo,unwinddump,ObjectDump} - dosym ld64 ${BINPATH}/ld - insinto ${DATAPATH}/man/man1 - doins "${S}"/${LD64}/doc/man/man1/{ld,ld64,rebase}.1 -} - -install_cctools() { - cd "${S}"/${CCTOOLS} - emake install_all_but_headers \ - EFITOOLS= \ - COMMON_SUBDIRS='ar misc otool' \ - SUBDIRS_32= \ - DSTROOT=\"${D}\" \ - BINDIR=\"${EPREFIX}\"${BINPATH} \ - LOCBINDIR=\"${EPREFIX}\"${BINPATH} \ - USRBINDIR=\"${EPREFIX}\"${BINPATH} \ - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} \ - MANDIR=\"${EPREFIX}\"${DATAPATH}/man/ - cd "${S}"/${CCTOOLS}/as - emake install \ - BUILD_OBSOLETE_ARCH= \ - DSTROOT=\"${D}\" \ - USRBINDIR=\"${EPREFIX}\"${BINPATH} \ - LIBDIR=\"${EPREFIX}\"${LIBPATH} \ - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} - - # upstream is starting to replace classic binutils with llvm-integrated - # ones. nm and size are now symlinks to llvm-{nm,size} while the classic - # version is preserved as {nm,size}-classic. (BTW: otool is a symlink to - # otool-classic for now but a wrapper llvm-otool that is calling - # llvm-objdump is present already.) - # Since our binutils do not live in the same directory as the llvm - # installation, we have to rewrite the symlinks to the llvm tools. - # This also means, that these tools still appear to be versioned via - # binutils-config but actually always run the currently installed llvm - # tool. - for tool in nm size ; do - # ${EPREFIX}/usr/x86_64-apple-darwin15/binutils-bin/7.3/$tool - # -> ${EPREFIX}/bin/llvm-$tool - ln -sfn ../../../bin/llvm-$tool "${D}/${EPREFIX}/${BINPATH}/$tool" - done - - cd "${ED}"${BINPATH} - insinto ${DATAPATH}/man/man1 - local skips manpage - # ar brings an up-to-date manpage with it - skips=( ar ) - for bin in *; do - for skip in ${skips[@]}; do - if [[ ${bin} == ${skip} ]]; then - continue 2; - fi - done - manpage=${S}/${CCTOOLS}/man/${bin}.1 - if [[ -f "${manpage}" ]]; then - doins "${manpage}" - fi - done - insinto ${DATAPATH}/man/man5 - doins "${S}"/${CCTOOLS}/man/*.5 -} - -src_test() { - if ! [ "${EPREFIX}"/usr/bin/clang ] ; then - einfo "Test suite only works properly with clang - please install" - return - fi - - einfo "Running unit tests" - cd "${S}"/${LD64}/unit-tests/test-cases - # provide the new ld as a symlink to clang so that -ccc-install-dir - # will pick it up - ln -sfn ../../src/ld64 ld - # use our arch command because the System's will report i386 even for an - # x86_64 prefix - perl ../bin/make-recursive.pl \ - BUILT_PRODUCTS_DIR="${S}"/${LD64}/src \ - ARCH="$(arch)" \ - LD="${S}"/${LD64}/src/ld64 \ - CC="${CC} -ccc-install-dir $PWD" \ - CXX="${CXX} -ccc-install-dir $PWD" \ - OTOOL="${S}"/${CCTOOLS}/otool/otool.NEW \ - | perl ../bin/result-filter.pl -} - -src_install() { - install_ld64 - install_cctools - - cd "${S}" - insinto /etc/env.d/binutils - cat <<-EOF > env.d - TARGET="${CHOST}" - VER="${PV}" - FAKE_TARGETS="${CHOST}" - EOF - newins env.d ${CHOST}-${PV} -} - -pkg_postinst() { - binutils-config ${CHOST}-${PV} -} diff --git a/sys-devel/binutils-apple/binutils-apple-8.1.ebuild b/sys-devel/binutils-apple/binutils-apple-8.1.ebuild deleted file mode 100644 index 945873754651..000000000000 --- a/sys-devel/binutils-apple/binutils-apple-8.1.ebuild +++ /dev/null @@ -1,334 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="6" - -inherit eutils flag-o-matic toolchain-funcs - -LD64=ld64-274.1 -CCTOOLS_VERSION=895 -CCTOOLS=cctools-${CCTOOLS_VERSION} -DYLD=dyld-421.2 - -DESCRIPTION="Darwin assembler as(1) and static linker ld(1), Xcode Tools ${PV}" -HOMEPAGE="http://www.opensource.apple.com/" -SRC_URI="http://www.opensource.apple.com/tarballs/ld64/${LD64}.tar.gz - http://www.opensource.apple.com/tarballs/cctools/${CCTOOLS}.tar.gz - http://www.opensource.apple.com/tarballs/dyld/${DYLD}.tar.gz - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-4.3-r1.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-5.1-r2.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-7.0-r3.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-7.3-r2.tar.bz2 - https://dev.gentoo.org/~grobian/distfiles/${PN}-patches-8.2-r1.tar.bz2" - -LICENSE="APSL-2" -KEYWORDS="~x64-macos ~x86-macos" -IUSE="lto tapi classic test" -RESTRICT="!test? ( test )" - -# ld64 can now only be compiled using llvm and libc++ since it massively uses -# C++11 language features. *But additionally* the as driver now defaults to -# calling clang as the assembler on many platforms. This can be disabled using -# -Wa,-Q but since it's default we make llvm a static runtime dependency. -RDEPEND="sys-devel/binutils-config - lto? ( app-arch/xar ) - tapi? ( sys-libs/tapi ) - sys-devel/llvm:* - sys-libs/libcxx" -DEPEND="${RDEPEND} - test? ( >=dev-lang/perl-5.8.8 )" - -SLOT="8" - -S=${WORKDIR} - -is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } - -src_prepare() { - cd "${S}"/${LD64}/src - cp "${S}"/ld64-136-compile_stubs.h ld/compile_stubs.h - cp "${S}"/ld64-274.1-Makefile Makefile - - epatch "${S}"/ld64-274.1-nolto.patch - epatch "${S}"/ld64-236.3-crashreporter.patch - epatch "${S}"/ld64-264.3.102-bitcode-case.patch - epatch "${S}"/ld64-274.1-unknown-fixup.patch - epatch "${S}"/ld64-274.1-notapi.patch - - # workound llvm-3.9.{0,1} issue - # https://bugs.gentoo.org/show_bug.cgi?id=603580 - # https://groups.google.com/forum/#!topic/llvm-dev/JY6nuKE__sU - # http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20160829/169553.html - sed -i -e '/COMPILE_TIME_ASSERT/d' ld/parsers/libunwind/*.hpp || die - - # provide missing headers from libunwind and dyld - mkdir -p include/{mach,mach-o/arm} || die - # never present because it's private - cp ../../${DYLD}/include/mach-o/dyld_priv.h include/mach-o || die - # use copies from cctools because they're otherwise hidden in some SDK - cp ../../${CCTOOLS}/include/mach-o/arm/reloc.h include/mach-o/arm || die - # provide all required CPU_TYPEs on all platforms - cp ../../${CCTOOLS}/include/mach/machine.h include/mach/machine.h - # add alias for newer identifiers, because ld64 uses both but cctools - # header only defines the older - epatch "${S}"/ld64-236.3-missing-cputypes.patch - - local VER_STR="\"@(#)PROGRAM:ld PROJECT:${LD64} (Gentoo ${PN}-${PVR})\\n\"" - echo "char ldVersionString[] = ${VER_STR};" > version.cpp - - epatch "${S}"/ld64-123.2-debug-backtrace.patch - - cd "${S}"/${CCTOOLS} - epatch "${S}"/${PN}-4.5-as.patch - epatch "${S}"/${PN}-5.1-as-dir.patch - epatch "${S}"/${PN}-5.1-ranlib.patch - epatch "${S}"/${PN}-3.1.1-libtool-ranlib.patch - epatch "${S}"/${PN}-3.1.1-no-headers.patch - epatch "${S}"/${PN}-4.0-no-oss-dir.patch - epatch "${S}"/cctools-839-intel-retf.patch - epatch "${S}"/${PN}-5.1-extraneous-includes.patch - epatch "${S}"/${PN}-5.1-strnlen.patch - epatch "${S}"/${PN}-7.3-make-j.patch - epatch "${S}"/${PN}-7.0-lto-prefix-2.patch - epatch "${S}"/${PN}-7.0-clang-as.patch - epatch "${S}"/${PN}-8.1-nolto.patch - epatch "${S}"/${PN}-7.3-nollvm.patch - epatch "${S}"/${PN}-7.3-no-developertools-dir.patch - epatch "${S}"/${PN}-8.1-llvm-tools.patch - cp ../${LD64}/src/other/prune_trie.h include/mach-o/ || die - - # do not build profileable libstuff to save compile time - sed -i -e "/^all:/s, profile , ," libstuff/Makefile - - # cctools version is provided to make via RC_ProjectSourceVersion which - # generates and compiles it as apple_version[] into libstuff. From - # there it's picked up by the individual tools. Since - # RC_ProjectSourceVersion is also used as library version, we can't - # just append our local version info. So we hack the libstuff Makefile - # to include our Gentoo version. - sed -i -e "/cctools-.*(RC_ProjectSourceVersion).*OFILE_DIR/s,Version),Version) (Gentoo ${PN}-${PVR})," \ - libstuff/Makefile - - eapply_user - - # clean up test suite - cd "${S}"/${LD64}/unit-tests/test-cases - local c - - # we don't have llvm - ((++c)); rm -rf llvm-integration; - - # we don't have dtrace - ((++c)); rm -rf dtrace-static-probes-coalescing; - ((++c)); rm -rf dtrace-static-probes; - - # a file is missing - ((++c)); rm -rf eh-coalescing-r - - # we don't do universal binaries - ((++c)); rm -rf blank-stubs; - - # looks like a problem with apple's result-filter.pl - ((++c)); rm -rf implicit-common3; - ((++c)); rm -rf order_file-ans; - - # TODO no idea what goes wrong here - ((++c)); rm -rf dwarf-debug-notes; - - einfo "Deleted $c tests that were bound to fail" - - cd "${S}" - ebegin "cleaning Makefiles from unwanted CFLAGS" - find . -name "Makefile" -print0 | xargs -0 sed \ - -i \ - -e 's/ -g / /g' \ - -e 's/^G =.*$/G =/' \ - -e 's/^OFLAG =.*$/OFLAG =/' \ - -e 's/install -c -s/install/g' - eend $? -} - -src_configure() { - ENABLE_LTO=0 - use lto && ENABLE_LTO=1 - - export CTARGET=${CTARGET:-${CHOST}} - if [[ ${CTARGET} == ${CHOST} ]] ; then - if [[ ${CATEGORY} == cross-* ]] ; then - export CTARGET=${CATEGORY#cross-} - fi - fi - - LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/${PV} - INCPATH=${LIBPATH}/include - DATAPATH=/usr/share/binutils-data/${CTARGET}/${PV} - if is_cross ; then - BINPATH=/usr/${CHOST}/${CTARGET}/binutils-bin/${PV} - else - BINPATH=/usr/${CTARGET}/binutils-bin/${PV} - fi - - # CPPFLAGS only affects ld64, cctools don't use 'em (which currently is - # what we want) - append-cppflags -DNDEBUG - - # Create configure.h for ld64 with SUPPORT_ARCH_ defines in it. - DERIVED_FILE_DIR=${LD64}/src \ - ${LD64}/src/create_configure -} - -compile_ld64() { - einfo "building ${LD64}" - cd "${S}"/${LD64}/src - emake \ - LTO=${ENABLE_LTO} \ - TAPI=$(use tapi && echo 1 || echo 0) - - use test && emake build_test -} - -compile_cctools() { - einfo "building ${CCTOOLS}" - cd "${S}"/${CCTOOLS} - # Suppress running dsymutil because it will warn about missing debug - # info which is expected when compiling without -g as we normally do. - # This might need some more thought if anyone ever wanted to build us - # for debugging with Apple's tools. - emake \ - LIB_PRUNETRIE="-L../../${LD64}/src -lprunetrie" \ - EFITOOLS= \ - LTO="${ENABLE_LTO}" \ - LTO_LIBDIR=../../../lib \ - COMMON_SUBDIRS='libstuff ar misc otool' \ - SUBDIRS_32= \ - LEGACY= \ - RC_ProjectSourceVersion=${CCTOOLS_VERSION} \ - RC_CFLAGS="${CFLAGS}" \ - OFLAG="${CCTOOLS_OFLAG}" \ - DSYMUTIL=": disabled: dsymutil" - - cd "${S}"/${CCTOOLS}/as - emake \ - BUILD_OBSOLETE_ARCH= \ - RC_ProjectSourceVersion=${CCTOOLS_VERSION} \ - RC_CFLAGS="-DASLIBEXECDIR=\"\\\"${EPREFIX}${LIBPATH}/\\\"\" -DCLANGDIR=\"\\\"${EPREFIX}/usr/bin/\\\"\" ${CFLAGS}" \ - OFLAG="${CCTOOLS_OFLAG}" \ - DSYMUTIL=": disabled: dsymutil" -} - -src_compile() { - compile_ld64 - compile_cctools -} - -install_ld64() { - exeinto ${BINPATH} - doexe "${S}"/${LD64}/src/{ld64,rebase,dyldinfo,unwinddump,ObjectDump} - dosym ld64 ${BINPATH}/ld - insinto ${DATAPATH}/man/man1 - doins "${S}"/${LD64}/doc/man/man1/{ld,ld64,rebase}.1 -} - -install_cctools() { - cd "${S}"/${CCTOOLS} - emake install_all_but_headers \ - EFITOOLS= \ - COMMON_SUBDIRS='ar misc otool' \ - SUBDIRS_32= \ - DSTROOT=\"${D}\" \ - BINDIR=\"${EPREFIX}\"${BINPATH} \ - LOCBINDIR=\"${EPREFIX}\"${BINPATH} \ - USRBINDIR=\"${EPREFIX}\"${BINPATH} \ - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} \ - MANDIR=\"${EPREFIX}\"${DATAPATH}/man/ - cd "${S}"/${CCTOOLS}/as - emake install \ - BUILD_OBSOLETE_ARCH= \ - DSTROOT=\"${D}\" \ - USRBINDIR=\"${EPREFIX}\"${BINPATH} \ - LIBDIR=\"${EPREFIX}\"${LIBPATH} \ - LOCLIBDIR=\"${EPREFIX}\"${LIBPATH} - - # upstream is starting to replace classic binutils with llvm-integrated - # ones. nm and size are now symlinks to llvm-{nm,size} while the classic - # version is preserved as {nm,size}-classic. - # Since our binutils do not live in the same directory as the llvm - # installation, we have to rewrite the symlinks to the llvm tools. - # This also means, that these tools still appear to be versioned via - # binutils-config but actually always run the currently installed llvm - # tool. - budir=${D}/${EPREFIX}/${BINPATH} - for tool in nm size ; do - # ${EPREFIX}/usr/x86_64-apple-darwin15/binutils-bin/7.3/$tool - # -> ${EPREFIX}/bin/llvm-$tool - use classic && \ - ln -sfn ${tool}-classic "${budir}/${tool}" || \ - ln -sfn ../../../bin/llvm-${tool} "${budir}/${tool}" - done - - # Also, otool is now based on llvm-objdump. But a small wrapper installed - # as llvm-otool remains, providing command line compatibility. - use classic && \ - ln -sfn otool-classic "${budir}/otool" || \ - ln -sfn llvm-otool "${budir}/otool" - - cd "${ED}"${BINPATH} - insinto ${DATAPATH}/man/man1 - local skips manpage - # ar brings an up-to-date manpage with it - skips=( ar ) - for bin in *; do - for skip in ${skips[@]}; do - if [[ ${bin} == ${skip} ]]; then - continue 2; - fi - done - manpage=${S}/${CCTOOLS}/man/${bin}.1 - if [[ -f "${manpage}" ]]; then - doins "${manpage}" - fi - done - insinto ${DATAPATH}/man/man5 - doins "${S}"/${CCTOOLS}/man/*.5 -} - -src_test() { - if ! [ "${EPREFIX}"/usr/bin/clang ] ; then - einfo "Test suite only works properly with clang - please install" - return - fi - - einfo "Running unit tests" - cd "${S}"/${LD64}/unit-tests/test-cases - # provide the new ld as a symlink to clang so that -ccc-install-dir - # will pick it up - ln -sfn ../../src/ld64 ld - # use our arch command because the System's will report i386 even for an - # x86_64 prefix - perl ../bin/make-recursive.pl \ - BUILT_PRODUCTS_DIR="${S}"/${LD64}/src \ - ARCH="$(arch)" \ - LD="${S}"/${LD64}/src/ld64 \ - CC="${CC} -ccc-install-dir $PWD" \ - CXX="${CXX} -ccc-install-dir $PWD" \ - OTOOL="${S}"/${CCTOOLS}/otool/otool.NEW \ - | perl ../bin/result-filter.pl -} - -src_install() { - install_ld64 - install_cctools - - cd "${S}" - insinto /etc/env.d/binutils - cat <<-EOF > env.d - TARGET="${CHOST}" - VER="${PV}" - FAKE_TARGETS="${CHOST}" - EOF - newins env.d ${CHOST}-${PV} -} - -pkg_postinst() { - binutils-config ${CHOST}-${PV} -} diff --git a/sys-devel/binutils-apple/binutils-apple-8.2.1-r100.ebuild b/sys-devel/binutils-apple/binutils-apple-8.2.1-r100.ebuild new file mode 100644 index 000000000000..247ce794be10 --- /dev/null +++ b/sys-devel/binutils-apple/binutils-apple-8.2.1-r100.ebuild @@ -0,0 +1,100 @@ +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_MAKEFILE_GENERATOR=emake # keep dependencies down + +inherit cmake toolchain-funcs + +DESCRIPTION="Darwin Xtools matching Xcode Tools ${PN}" +HOMEPAGE="https://github.com/iains/darwin-xtools" +SRC_URI="https://github.com/grobian/darwin-xtools/archive/gentoo-${PVR}.tar.gz -> darwin-xtools-${PVR}.tar.gz" + +LICENSE="APSL-2" +SLOT="8" +KEYWORDS="~ppc-macos ~x64-macos ~x86-macos" +IUSE="tapi" + +DEPEND="sys-devel/binutils-config + app-arch/xar + tapi? ( sys-libs/tapi )" +RDEPEND="${DEPEND}" +BDEPEND="" + +S="${WORKDIR}/darwin-xtools-gentoo-${PVR}" + +src_prepare() { + cmake_src_prepare + + # make prunetrie a static archive, because the dynamic libs aren't + # installed, for there really are no consumers + # fixed for next release + sed -i -e '/add_library/s/prunetrie/& STATIC/' \ + ld64/src/CMakeLists.txt || die +} + +src_configure() { + CTARGET=${CTARGET:-${CHOST}} + if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi + fi + + LIBPATH=/usr/$(get_libdir)/binutils/${CTARGET}/xtools-${PV} + DATAPATH=/usr/share/binutils-data/${CTARGET}/xtools-${PV} + if [[ ${CHOST} != ${CTARGET} ]] ; then + BINPATH=/usr/${CHOST}/${CTARGET}/binutils-bin/xtools-${PV} + else + BINPATH=/usr/${CTARGET}/binutils-bin/xtools-${PV} + fi + + is-host-64bit() { + case ${CTARGET} in + x86_64-*|powerpc64*) echo YES ;; + *) echo NO ;; + esac + } + + local mycmakeargs=( + -DCMAKE_OSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} + -DPACKAGE_VERSION="Gentoo ${PN}-${PVR}" + -DCMAKE_INSTALL_PREFIX=${EPREFIX}${BINPATH%/*} # cmake insists on /bin + -DCCTOOLS_LD_CLASSIC=NO # fails to link, and is useless anyway + -DXTOOLS_LTO_SUPPORT=NO + -DXTOOLS_HAS_LIBPRUNETRIE=YES + -DXTOOLS_TAPI_SUPPORT=$(use tapi && echo ON || echo OFF) + -DXTOOLS_HOST_IS_64B=$(is-host-64bit) + -DXTOOLS_BUGURL="https://bugs.gentoo.org/" + ) + + cmake_src_configure +} + +src_install() { + cmake_src_install + + # cmake insists on installing in /bin, so move bins to the place we + # want them + mv "${ED}${BINPATH%/*}/bin" "${ED}${BINPATH}" || die + + keepdir "${LIBPATH}" + + doman ld64/doc/man/man*/* cctools/man/*.[135] + dodir "${DATAPATH}" + mv "${ED}"/usr/share/man "${ED}/${DATAPATH}/" || die + + cd "${S}" + insinto /etc/env.d/binutils + cat <<-EOF > env.d + TARGET="${CHOST}" + VER="xtools-${PV}" + FAKE_TARGETS="${CHOST}" + EOF + newins env.d ${CHOST}-xtools-${PV} +} + +pkg_postinst() { + binutils-config ${CHOST}-xtools-${PV} +} diff --git a/sys-devel/binutils-apple/metadata.xml b/sys-devel/binutils-apple/metadata.xml index b6fa3676524c..93df0e9db7f7 100644 --- a/sys-devel/binutils-apple/metadata.xml +++ b/sys-devel/binutils-apple/metadata.xml @@ -7,10 +7,6 @@ Add support for Link-Time Optimization with LLVM - Add support for libcxx - Compile for non-standard target - architectures (ppc and ppc64) -- experimental, Gentoo - only Use nm, otool, etc. from this ebuild instead of llvm-based tools Build against sys-libs/tapi -- cgit v1.2.3