summaryrefslogtreecommitdiff
path: root/sys-devel/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'sys-devel/llvm')
-rw-r--r--sys-devel/llvm/Manifest26
-rw-r--r--sys-devel/llvm/llvm-17.0.6-r2.ebuild (renamed from sys-devel/llvm/llvm-19.0.0.9999.ebuild)35
-rw-r--r--sys-devel/llvm/llvm-18.1.8-r1.ebuild (renamed from sys-devel/llvm/llvm-18.1.5-r1.ebuild)4
-rw-r--r--sys-devel/llvm/llvm-18.1.8-r4.ebuild (renamed from sys-devel/llvm/llvm-18.1.6.ebuild)5
-rw-r--r--sys-devel/llvm/llvm-19.1.0_rc2.ebuild (renamed from sys-devel/llvm/llvm-19.0.0_pre20240518.ebuild)17
-rw-r--r--sys-devel/llvm/llvm-20.0.0.9999.ebuild (renamed from sys-devel/llvm/llvm-19.0.0_pre20240509.ebuild)42
-rw-r--r--sys-devel/llvm/llvm-20.0.0_pre20240808.ebuild553
7 files changed, 620 insertions, 62 deletions
diff --git a/sys-devel/llvm/Manifest b/sys-devel/llvm/Manifest
index c45d2f470947..cb1a5c25ed5f 100644
--- a/sys-devel/llvm/Manifest
+++ b/sys-devel/llvm/Manifest
@@ -4,26 +4,28 @@ DIST llvm-17.0.1-manpages.tar.bz2 263148 BLAKE2B 6485a261e356eacc4a274f9b8d329b5
DIST llvm-18.1.0-manpages.tar.bz2 270429 BLAKE2B d85d6e23197184dc512019c25805af0aa145eefb4c36215807c1ba70ad47943c05c06dbaafd84a7e6487bdd83814e03277374e095d97b129e3fc8d468c10741c SHA512 5f492c85fad4e04e0148ea509f4b6520de9e2765c51e617363a11aa8e47c2d847f6b0897958ca1d93bccf0f6a9150868b7e04c728bd430c05bf2da30bdeba6cc
DIST llvm-gentoo-patchset-15.0.7-r3.tar.xz 24268 BLAKE2B 6531ae385ecea87bc26dba8ce19b4cde8ff224c80fd81f04c6ded131e305ecfdeb8d29ebd3b68a641d240805dc83eb0ebc7cc85124f02ad0ee66e0f201b91d7e SHA512 66cb33f8b423736b990fb75d4f2d1e5f14c0b03308f403297204dd1a352d72f85f34220fd66d3de5d6df328cdf2ffce03c2a111cb0bb57791cf68a88069ac7df
DIST llvm-gentoo-patchset-16.0.6.tar.xz 17340 BLAKE2B 37cdf4b38367b4256d4f7a25d1b4f41758e5f81be8e20a1c94a10d6c5e36642e9672121b455e73a0bac2eb40467ef2db4b43789b2912a6790593d97b8b5c27e3 SHA512 2c02b9d8a4c5af9fddcd26c95dc66fffae32cb5b7f85c65a1aa4ed00dd8cd5b01cc1975a711aee63c0b8b11e9dc20f2bc05ea753904eb516892b820f02aff825
+DIST llvm-gentoo-patchset-17.0.6-r2.tar.xz 3664 BLAKE2B b3d61090bec41469027115f1a7b9c51ff2cd720a5363c755da7c87c120e4c85b5a2b4d65b95e418f15d947e580824d267a5ee86336f2d9272e58ec24fa2acaf7 SHA512 4be3d2fefce3f5b6b8f64632ff47a53d4de8a20b276e538527ba01a1a663c2846e1eba28fdd70364e583884618d94ee774791b1ca03fdda1fef8110b664e506c
DIST llvm-gentoo-patchset-17.0.6.tar.xz 1792 BLAKE2B 21b34b436333c0b37522d4340cccc84a572701f6e267cf7c6adfa9be419913f5a6c9ee40a6be5c62d12fbd868912801d30381573c4459c05676e05785cccaefe SHA512 2d90b5e7fcbb950249ef7133fac1ed3dcb758a4d92732119049526cea0b291bd4e9738c4c0d806d70e7d769e1906f8ef3930066c206c00b6ec7d3509ed0fed19
-DIST llvm-gentoo-patchset-18.1.5.tar.xz 868 BLAKE2B 3ce290a904248cfbb0e2c6d659974147d55cc196429e3c371a4350c0fc8070ea72de7456977336af3b9abd00c3bfa8201e3f1053fd396e260c773b6c05402758 SHA512 9e9941b2e666313dfda1907110aed4cfb184f6e2bab07eac6cef974d6078268ac6d75bb36f3698bb6cb19862fecc1658a4db4448ab619b58c51d10c83158ebe3
+DIST llvm-gentoo-patchset-18.1.8-r4.tar.xz 15912 BLAKE2B 7300128244aafe42fcf5863e3aad2beb0c96c3df527e6d35fe571369bad520ba4aa397a329287da17eb33dca902057da5cd5193ec560ea7f5767ba2d00a45818 SHA512 b32633db387d4adb3bb2d067f824ae4e8e8a24a25aaa4888520f6e61a4bb1f8f70ad5f44057fbc0892c6f93c803e360612b0fc02c4ec068470b546a55f246cba
+DIST llvm-gentoo-patchset-18.1.8.tar.xz 7444 BLAKE2B ed41325f7e2efc257c03b3500f9ba49a29333f617ff9914705f9df660bbc1e1b3aafada6f2a68a316d2ee47cf628a35f3495f74c9f0ca00c120079e8e93bd4db SHA512 a6bb4313d2635d38f36a3fdb343b2b7f117129ec62f92ead0bbf7010ae73055cb757958975cd9d1677f2c4b1554819a16a918bef9e9e0d982f8025ce49b9a8ef
DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5 SHA512 4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52
DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
DIST llvm-project-16.0.6.src.tar.xz 118013488 BLAKE2B 95192d39cbd2914e5609db365965f1c00bfea6c2d653b3996bd2acef8a2b37e37f6fc8a9d2b65711ad72657e0ef52c42f733053cf65051e7822f27396c30406d SHA512 89a67ebfbbc764cc456e8825ecfa90707741f8835b1b2adffae0b227ab1fe5ca9cce75b0efaffc9ca8431cae528dc54fd838867a56a2b645344d9e82d19ab1b7
DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30
DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
-DIST llvm-project-18.1.5.src.tar.xz 132061072 BLAKE2B bfdd987d5992a4d94ae8b14792df3be67a8e8fdf1daef9834cdaa2132df1b7ddb72ba0aabbb34b171a73d0f3b2b0f61e7160f0b278a67fd4850e3f501fd21531 SHA512 9e2f1e251b3754a24a0b39676d78c98692887c05c85cf0bee50fd44d9635290019930d4dabd1ff4ba3c9c1067e7e0e09aa1bbcd3d76687f919a1d44ba85eee20
-DIST llvm-project-18.1.5.src.tar.xz.sig 566 BLAKE2B ad935db71ec3b9fc885d696af440764a71fe7cafc5b3ca0b25a2963100d9cb3790392daebcac1341716c95a8da3c6243f5a8667fea1ed18b93fc8baa495414c9 SHA512 3cbca1059d940f3bd7bd72d68f2828039b66304980cc5f43769649e5494fc7d71117bf8aba5cc7f7a2ffca52f60ba30fadf3b28f984fd49ddb14300e30b45237
-DIST llvm-project-18.1.6.src.tar.xz 132064976 BLAKE2B d38d8026068de371dc4bc288c68c8e441a126cf8e89e55a965f3b9e3a629a37d5743fd7859a60bedaddf27ff2da1e0f08c81806871ef542cb7c3f40b23b22cf5 SHA512 89ec276aa41bb2d76cfc3a72d8e728a9ce9176e02c085338b704790524fe329904cf311381805814faa8a6c79637620c01627bf122a51f89e0f3adb47e5df34c
-DIST llvm-project-18.1.6.src.tar.xz.sig 566 BLAKE2B 4b4a1ec2f084b0728134b9c04775db5938e571f1d7c7aa45b985bed490dcfd2cceab2069a43d4ce7766faec703310a376b83565af317e5f60bf10bc06a732395 SHA512 fbae037d39f4f1c13babafd42dee719f3d79f0e2142cc319f59fb319361a1db8ce65fa736a0e2a5e702ac49e3b8323374be6cfa1003f96b0887fa1894e2b6dee
-DIST llvm-project-702198fc9ac5dba392f9d9ba7c56467996343c0a.tar.gz 211764675 BLAKE2B b28203faf5c4e51236da3e3abac969cffe6f93ce6757a81b5a577187ec236fc0b124fe6a370d1f4e803deab781606a7caf0b411780cc84ee08a8de942c4fc479 SHA512 b4217403abf4166eb8eccfd304bcaa2e15d5b67c4f996d51e0745d197e4b9eda1dd5a5b1d7c384effc25f53bb1229edda9618e172abe3be1a94a9569f7c5b0b7
-DIST llvm-project-a7ee81e8279e0bf6e05617a4a638e5f2f8e45022.tar.gz 210384692 BLAKE2B 28b85b08a42c173e1c3bf530483112b1629c7e6684a83a016fbe9f132774f7b864d793581873a6529defeabb4479ad9a3d7c025b781b2fa4952c239b6d567b11 SHA512 1d593818347452f96611a62fa3aa22ce4355a4ee5d5dcfcb54a286a1aa980e9531d5fb6cbee3b0ee5943c6d0f4e2ba2245e13262fe7859e5b114f9c5d5cf1417
+DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffef86468169ba2f211a9733ec2d4cf30040f7f277ef00f048bb44dee9f97d7d762f0f241f19e5a2a7b0b49217d3821ddfc8c354f SHA512 25eeee9984c8b4d0fbc240df90f33cbb000d3b0414baff5c8982beafcc5e59e7ef18f6f85d95b3a5f60cb3d4cd4f877c80487b5768bc21bc833f107698ad93db
+DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
+DIST llvm-project-19.1.0-rc2.src.tar.xz 141264388 BLAKE2B 690b4912d9e4a8019b7990934dd6486362337ccb303dca119c0e75aa1063ad452222be1ee965e43b160dfcea20e491a20c289344152666b618712a1d76dc4780 SHA512 508a401e8433b1ac9a399246eb1a3c18faed7c3d41d8c118e77cefbb64cc6d6e171bd41a3e5584f6c84df141ba6819f1a1cce75b5c1ef33e3d2ac239e662d07c
+DIST llvm-project-19.1.0-rc2.src.tar.xz.sig 438 BLAKE2B 1eaf10a1419ecf009c033a8f6ecb6eec86107d81621d5b4665c8d929b05f4845ce0c432017343d7b06f33e6ff6384df9e1d8fc7b9c6efe7f10ef69798891b7e5 SHA512 b46e9a1d40f891c5f3544d8cc6295900bff5dda9a4a526b8db55a42a37ae90deb216b316d2117984e82f4e918d15343e75b3b9e6d6c773866707c3398e032826
+DIST llvm-project-fd7d7882e7fa5a38d4bfde426120d4663718beb4.tar.gz 218217769 BLAKE2B a6c2aa012c342e31527b7e9f85e8fea3549d52530d8f87cd699e094a0aa768d099f9fd2631161ff7f53b4a5011937ed6d1f52b8fa1d23aa34183be1f487d4277 SHA512 c4863fab1a3c03f7f9c42f3501d3a75cebb491343515d77d30b26e5cbd720fc3fd628052099d87ed638e8c424bcbe7a1d066ed857f73da6f243d3d5a76b0e6c5
EBUILD llvm-15.0.7-r3.ebuild 12592 BLAKE2B 81cd473990810203c4e8a47ceb0189ed399c869b85fab3181724dbd1429063cdaad1f6b6cb1ab5b392f531b0b4907cc61f266558b873b236f9a3ff439045aa37 SHA512 2321f9e6da93af22d5f074175a6a92b7dcd271e2b9b92128d268dd777a9c3bdd876010740153734e2593b90d26a58d4f784b2256a6b1e18160d13b3c10441fb3
EBUILD llvm-16.0.6.ebuild 12822 BLAKE2B fe0a8bca0506827f09ea9edc18e8574443af644540cec84126fa3668ca8fa538a103c76315ee7c61b0af67a1391168ae7b04201e7825958a46fe8642a327e93b SHA512 a1a861d11791cb583dc33b9c71a86bd50690ffb8b743a6bccf8b4600976f48e96a2b4171cc9b449c17c8b0516ef440cee89df8cff97a3c691968b3431a149612
+EBUILD llvm-17.0.6-r2.ebuild 13303 BLAKE2B 292bff5aa3489c685c2a89ba55a6e4d0c06123cfcf6986c934494b1bc28a93f8768f8cac04f86eca44595167b6ce8b0c84548db45c4e810bdbbfb3f42660048a SHA512 2a7c8fb5a691acc9293c7bd39b2c7e0354420556ae7d9a02df35e550f2668063d690e9f8453da22f76cfe1e39132ba4af8e95112f4de8e8486521d8c5e81dfd6
EBUILD llvm-17.0.6.ebuild 13293 BLAKE2B 50e4212c63f1561f4fc8397a831f83bd3ea370349fa3b6239dfe2f9212757f6e8d5bb1921b8714680fe94d0f02ca523d289447b1396124aa94f91b539aabb17a SHA512 5b2b1d2293cf00d0c547a06111a0af706b2cad1f7cb5f2cc421f54a129c165560adbba4342d9bea486d5b2474a1eed066f1ae955a89133cd94b61a62313980bb
-EBUILD llvm-18.1.5-r1.ebuild 13373 BLAKE2B ad825b3b6973cfad6129f8668331ad960e9dce384bacac9ae8d67ac9add0e5b88bb9f51fa42ebf47020ce4d610721ed1b52fe08fe46d52d64870b4d7bbab6043 SHA512 cf58744c05912019b8dbe1cbb393923f82e3354b74db2e87e455e2fa5e89e8610beb5e193c740713458e1dbdcae3ed998437c28e3cc6299b61deeee6787368e9
-EBUILD llvm-18.1.6.ebuild 13353 BLAKE2B 876a80da23376e127e1196a427a50771f5410e697a724dd8f704b018aa6677cb08c6a1819f56918e1bcc7a293701afb01afe86aa3baf363b7383247939863d9f SHA512 f8831179105275eff18ef19f777c6286efc64249376a274a3a5521d310610d99af5fb7e6741d3321ccf1d3c27e89a7caa2520c6c56c24f534e7f04db5f777f1f
-EBUILD llvm-19.0.0.9999.ebuild 13238 BLAKE2B cd2c461147c5f02904c3fb693d4a47367dc986bb9a6f127761f7dc4cc1a32b2a95da8fedea345dec7ab8afabe5dac94dd0eecd84a963dbbdf3ef12fc4eaa8e8c SHA512 a800a86ea3636eb3dd971d4782e93a0d98c6928a5bb9603d7b9ad95ce675cd1fbe0e5b4f9aa2a6c961b8d172003320f38fd980ca032219e9e6a0cf142c459ec4
-EBUILD llvm-19.0.0_pre20240509.ebuild 13238 BLAKE2B cd2c461147c5f02904c3fb693d4a47367dc986bb9a6f127761f7dc4cc1a32b2a95da8fedea345dec7ab8afabe5dac94dd0eecd84a963dbbdf3ef12fc4eaa8e8c SHA512 a800a86ea3636eb3dd971d4782e93a0d98c6928a5bb9603d7b9ad95ce675cd1fbe0e5b4f9aa2a6c961b8d172003320f38fd980ca032219e9e6a0cf142c459ec4
-EBUILD llvm-19.0.0_pre20240518.ebuild 13238 BLAKE2B cd2c461147c5f02904c3fb693d4a47367dc986bb9a6f127761f7dc4cc1a32b2a95da8fedea345dec7ab8afabe5dac94dd0eecd84a963dbbdf3ef12fc4eaa8e8c SHA512 a800a86ea3636eb3dd971d4782e93a0d98c6928a5bb9603d7b9ad95ce675cd1fbe0e5b4f9aa2a6c961b8d172003320f38fd980ca032219e9e6a0cf142c459ec4
+EBUILD llvm-18.1.8-r1.ebuild 13372 BLAKE2B cb78f1c21e29ec1987c52edeebdc3d0200ec0b6f5d4b6443b2fd62eda6e3cafcc4bf849cd0bd1112f899904f3816970f5f4672f9c7a51f400bb39ce924d023d4 SHA512 9246e225b934b64e982c3d4399faea476871845616f979fa6d7eed832a75f879d611f85a29e04ca768bd6690945f24a3e7eebdbe8b81f156299b37965944ec91
+EBUILD llvm-18.1.8-r4.ebuild 13382 BLAKE2B 2d52ad708ed578868b700b97cc581ea732147219b9b71d4ced6dbe2553054e2524ba0971e051934b610d5aaa4e6a164e14c56be9961637349b37d9bafa97916b SHA512 4e67d7e9ceb174d8b9135e330ff5371e385d0253f6d8f6c7058840de7dc7819a5711670fa6ca0b487d9f4985de20987c0d69ee1809e131fbea029029643da475
+EBUILD llvm-19.1.0_rc2.ebuild 13056 BLAKE2B 58a31e7b71687262ab0d6a7b194dbd8fdca492af1402f56d6fd638fd2cee7139faa686a08bf1b33b4c1c7721f1312d2aa1d7e0ce5ba452b9bf571ec49c4e127e SHA512 2cf4583ef22f45b7edb666d665b7d06728873ce724fe851d0cd974dd5f3ecc1e473ed6aa16111f5a6382d2f09088595be4b41fa4d5bf2e316048de0ff250cfbc
+EBUILD llvm-20.0.0.9999.ebuild 13137 BLAKE2B a7e19b19f8caa7fc54e74971f5525c580a9ac93cc26f55eeebe3f77401e588f658c8114549531458ec6f8166918396b77f03180309f2e0406c25a4dcb63c264c SHA512 3e77439099120b69390aca71f834ca60953860496ebc8e31086b3cc4e8b9a84350d1bac16e7cad00a53b68837eb3717c6669ba785d8f607301916f04f390c41d
+EBUILD llvm-20.0.0_pre20240808.ebuild 13137 BLAKE2B a7e19b19f8caa7fc54e74971f5525c580a9ac93cc26f55eeebe3f77401e588f658c8114549531458ec6f8166918396b77f03180309f2e0406c25a4dcb63c264c SHA512 3e77439099120b69390aca71f834ca60953860496ebc8e31086b3cc4e8b9a84350d1bac16e7cad00a53b68837eb3717c6669ba785d8f607301916f04f390c41d
MISC metadata.xml 2835 BLAKE2B 07816d714509d62c0e0a443cc4af1f1f049497de75431f80a981f662b4f2281a16655be3e733a26099d0d814d5ce26d80cee13aa7a4e8d079168846a8e02670f SHA512 292ccb0a05a0239b5b00c6a84be11b4b385900d6467a6a139af03588c61aff9ac0e4bbcd23e89b2a7d7947f7d8cf8ba9323f2539a6c563a338b73f5ac6ffd00f
diff --git a/sys-devel/llvm/llvm-19.0.0.9999.ebuild b/sys-devel/llvm/llvm-17.0.6-r2.ebuild
index 8624219a7e20..d65897481029 100644
--- a/sys-devel/llvm/llvm-19.0.0.9999.ebuild
+++ b/sys-devel/llvm/llvm-17.0.6-r2.ebuild
@@ -19,9 +19,10 @@ HOMEPAGE="https://llvm.org/"
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc"
SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos"
IUSE="
- +binutils-plugin +debug debuginfod doc exegesis libedit +libffi
- ncurses test xml z3 zstd
+ +binutils-plugin debug debuginfod doc exegesis libedit +libffi
+ ncurses test xar xml z3 zstd
"
RESTRICT="!test? ( test )"
@@ -35,6 +36,7 @@ RDEPEND="
libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] )
+ xar? ( app-arch/xar )
xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )
zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )
@@ -50,6 +52,10 @@ BDEPEND="
kernel_Darwin? (
<sys-libs/libcxx-${LLVM_VERSION}.9999
)
+ doc? ( $(python_gen_any_dep '
+ dev-python/recommonmark[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ ') )
libffi? ( virtual/pkgconfig )
"
# There are no file collisions between these versions but having :0
@@ -66,22 +72,14 @@ PDEPEND="
LLVM_COMPONENTS=( llvm cmake third-party )
LLVM_MANPAGES=1
+LLVM_PATCHSET=${PV}-r2
LLVM_USE_TARGETS=provide
llvm.org_set_globals
-[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" doc? ( "
-BDEPEND+="
- $(python_gen_any_dep '
- dev-python/myst-parser[${PYTHON_USEDEP}]
- dev-python/sphinx[${PYTHON_USEDEP}]
- ')
-"
-[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" ) "
-
python_check_deps() {
- llvm_are_manpages_built || return 0
+ use doc || return 0
- python_has_version -b "dev-python/myst-parser[${PYTHON_USEDEP}]" &&
+ python_has_version -b "dev-python/recommonmark[${PYTHON_USEDEP}]" &&
python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]"
}
@@ -132,9 +130,6 @@ check_distribution_components() {
# TableGen lib + deps
LLVMDemangle|LLVMSupport|LLVMTableGen)
;;
- # used by lldb
- LLVMDebuginfod)
- ;;
# testing libraries
LLVMTestingAnnotations|LLVMTestingSupport)
;;
@@ -224,9 +219,6 @@ get_distribution_components() {
if multilib_is_native_abi; then
out+=(
- # library used by lldb
- LLVMDebuginfod
-
# utilities
llvm-tblgen
FileCheck
@@ -294,8 +286,8 @@ get_distribution_components() {
llvm-rc
llvm-readelf
llvm-readobj
- llvm-readtapi
llvm-reduce
+ llvm-remark-size-diff
llvm-remarkutil
llvm-rtdyld
llvm-sim
@@ -305,6 +297,7 @@ get_distribution_components() {
llvm-strings
llvm-strip
llvm-symbolizer
+ llvm-tapi-diff
llvm-tli-checker
llvm-undname
llvm-windres
@@ -401,6 +394,8 @@ multilib_src_configure() {
-DFFI_INCLUDE_DIR="${ffi_cflags#-I}"
-DFFI_LIBRARY_DIR="${ffi_ldflags#-L}"
+ # used only for llvm-objdump tool
+ -DLLVM_HAVE_LIBXAR=$(multilib_native_usex xar 1 0)
-DPython3_EXECUTABLE="${PYTHON}"
diff --git a/sys-devel/llvm/llvm-18.1.5-r1.ebuild b/sys-devel/llvm/llvm-18.1.8-r1.ebuild
index 19cd3d9278d8..30440d3d4cb5 100644
--- a/sys-devel/llvm/llvm-18.1.5-r1.ebuild
+++ b/sys-devel/llvm/llvm-18.1.8-r1.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_COMPAT=( python3_{10..13} )
inherit cmake flag-o-matic llvm.org multilib-minimal pax-utils python-any-r1
inherit toolchain-funcs
@@ -19,7 +19,7 @@ HOMEPAGE="https://llvm.org/"
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc"
SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos"
IUSE="
+binutils-plugin debug debuginfod doc exegesis libedit +libffi
ncurses test xml z3 zstd
diff --git a/sys-devel/llvm/llvm-18.1.6.ebuild b/sys-devel/llvm/llvm-18.1.8-r4.ebuild
index 8c3d70f01423..0fe41451404e 100644
--- a/sys-devel/llvm/llvm-18.1.6.ebuild
+++ b/sys-devel/llvm/llvm-18.1.8-r4.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_COMPAT=( python3_{10..13} )
inherit cmake flag-o-matic llvm.org multilib-minimal pax-utils python-any-r1
inherit toolchain-funcs
@@ -19,7 +19,7 @@ HOMEPAGE="https://llvm.org/"
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc"
SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos"
IUSE="
+binutils-plugin debug debuginfod doc exegesis libedit +libffi
ncurses test xml z3 zstd
@@ -67,6 +67,7 @@ PDEPEND="
LLVM_COMPONENTS=( llvm cmake third-party )
LLVM_MANPAGES=1
+LLVM_PATCHSET=${PV}-r4
LLVM_USE_TARGETS=provide
llvm.org_set_globals
diff --git a/sys-devel/llvm/llvm-19.0.0_pre20240518.ebuild b/sys-devel/llvm/llvm-19.1.0_rc2.ebuild
index 8624219a7e20..bf837e6c1b30 100644
--- a/sys-devel/llvm/llvm-19.0.0_pre20240518.ebuild
+++ b/sys-devel/llvm/llvm-19.1.0_rc2.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_COMPAT=( python3_{10..13} )
inherit cmake flag-o-matic llvm.org multilib-minimal pax-utils python-any-r1
inherit toolchain-funcs
@@ -21,7 +21,7 @@ LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc"
SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
IUSE="
+binutils-plugin +debug debuginfod doc exegesis libedit +libffi
- ncurses test xml z3 zstd
+ test xml z3 zstd
"
RESTRICT="!test? ( test )"
@@ -34,7 +34,6 @@ RDEPEND="
exegesis? ( dev-libs/libpfm:= )
libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
- ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] )
xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )
zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )
@@ -192,6 +191,11 @@ src_prepare() {
check_uptodate
llvm.org_src_prepare
+
+ if has_version ">=sys-libs/glibc-2.40"; then
+ # https://github.com/llvm/llvm-project/issues/100791
+ rm -r test/tools/llvm-exegesis/X86/latency || die
+ fi
}
get_distribution_components() {
@@ -250,6 +254,7 @@ get_distribution_components() {
llvm-c-test
llvm-cat
llvm-cfi-verify
+ llvm-cgdata
llvm-config
llvm-cov
llvm-cvtres
@@ -311,6 +316,7 @@ get_distribution_components() {
llvm-xray
obj2yaml
opt
+ reduce-chunk-list
sancov
sanstats
split-file
@@ -385,7 +391,6 @@ multilib_src_configure() {
-DLLVM_ENABLE_FFI=$(usex libffi)
-DLLVM_ENABLE_LIBEDIT=$(usex libedit)
- -DLLVM_ENABLE_TERMINFO=$(usex ncurses)
-DLLVM_ENABLE_LIBXML2=$(usex xml)
-DLLVM_ENABLE_ASSERTIONS=$(usex debug)
-DLLVM_ENABLE_LIBPFM=$(usex exegesis)
@@ -455,10 +460,6 @@ multilib_src_configure() {
fi
use kernel_Darwin && mycmakeargs+=(
- # On Macos prefix, Gentoo doesn't split sys-libs/ncurses to libtinfo and
- # libncurses, but llvm tries to use libtinfo before libncurses, and ends up
- # using libtinfo (actually, libncurses.dylib) from system instead of prefix
- -DTerminfo_LIBRARIES=-lncurses
# Use our libtool instead of looking it up with xcrun
-DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool"
)
diff --git a/sys-devel/llvm/llvm-19.0.0_pre20240509.ebuild b/sys-devel/llvm/llvm-20.0.0.9999.ebuild
index 8624219a7e20..8401f1a55543 100644
--- a/sys-devel/llvm/llvm-19.0.0_pre20240509.ebuild
+++ b/sys-devel/llvm/llvm-20.0.0.9999.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_COMPAT=( python3_{10..13} )
inherit cmake flag-o-matic llvm.org multilib-minimal pax-utils python-any-r1
inherit toolchain-funcs
@@ -21,7 +21,7 @@ LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc"
SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
IUSE="
+binutils-plugin +debug debuginfod doc exegesis libedit +libffi
- ncurses test xml z3 zstd
+ test xml z3 zstd
"
RESTRICT="!test? ( test )"
@@ -34,7 +34,6 @@ RDEPEND="
exegesis? ( dev-libs/libpfm:= )
libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
- ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] )
xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )
zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )
@@ -101,18 +100,23 @@ check_uptodate() {
has "${i}" "${prod_targets[@]}" || exp_targets+=( "${i}" )
done
+ local outdated
if [[ ${exp_targets[*]} != ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]} ]]; then
- eqawarn "ALL_LLVM_EXPERIMENTAL_TARGETS is outdated!"
- eqawarn " Have: ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]}"
- eqawarn "Expected: ${exp_targets[*]}"
- eqawarn
+ eerror "ALL_LLVM_EXPERIMENTAL_TARGETS are outdated!"
+ eerror " Have: ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]}"
+ eerror "Expected: ${exp_targets[*]}"
+ eerror
+ outdated=1
fi
if [[ ${prod_targets[*]} != ${ALL_LLVM_PRODUCTION_TARGETS[*]} ]]; then
- eqawarn "ALL_LLVM_PRODUCTION_TARGETS is outdated!"
- eqawarn " Have: ${ALL_LLVM_PRODUCTION_TARGETS[*]}"
- eqawarn "Expected: ${prod_targets[*]}"
+ eerror "ALL_LLVM_PRODUCTION_TARGETS are outdated!"
+ eerror " Have: ${ALL_LLVM_PRODUCTION_TARGETS[*]}"
+ eerror "Expected: ${prod_targets[*]}"
+ outdated=1
fi
+
+ [[ ${outdated} ]] && die "Update ALL_LLVM*_TARGETS"
}
check_distribution_components() {
@@ -150,6 +154,10 @@ check_distribution_components() {
docs-llvm-html)
use doc || continue
;;
+ # used only w/ USE=debuginfd
+ llvm-debuginfod)
+ use debuginfod || continue
+ ;;
esac
all_targets+=( "${l}" )
@@ -173,9 +181,10 @@ check_distribution_components() {
done
if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
- eqawarn "get_distribution_components() is outdated!"
- eqawarn " Add: ${add[*]}"
- eqawarn "Remove: ${remove[*]}"
+ eerror "get_distribution_components() is outdated!"
+ eerror " Add: ${add[*]}"
+ eerror "Remove: ${remove[*]}"
+ die "Update get_distribution_components()!"
fi
cd - >/dev/null || die
fi
@@ -252,6 +261,7 @@ get_distribution_components() {
llvm-cfi-verify
llvm-config
llvm-cov
+ llvm-ctxprof-util
llvm-cvtres
llvm-cxxdump
llvm-cxxfilt
@@ -311,6 +321,7 @@ get_distribution_components() {
llvm-xray
obj2yaml
opt
+ reduce-chunk-list
sancov
sanstats
split-file
@@ -385,7 +396,6 @@ multilib_src_configure() {
-DLLVM_ENABLE_FFI=$(usex libffi)
-DLLVM_ENABLE_LIBEDIT=$(usex libedit)
- -DLLVM_ENABLE_TERMINFO=$(usex ncurses)
-DLLVM_ENABLE_LIBXML2=$(usex xml)
-DLLVM_ENABLE_ASSERTIONS=$(usex debug)
-DLLVM_ENABLE_LIBPFM=$(usex exegesis)
@@ -455,10 +465,6 @@ multilib_src_configure() {
fi
use kernel_Darwin && mycmakeargs+=(
- # On Macos prefix, Gentoo doesn't split sys-libs/ncurses to libtinfo and
- # libncurses, but llvm tries to use libtinfo before libncurses, and ends up
- # using libtinfo (actually, libncurses.dylib) from system instead of prefix
- -DTerminfo_LIBRARIES=-lncurses
# Use our libtool instead of looking it up with xcrun
-DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool"
)
diff --git a/sys-devel/llvm/llvm-20.0.0_pre20240808.ebuild b/sys-devel/llvm/llvm-20.0.0_pre20240808.ebuild
new file mode 100644
index 000000000000..8401f1a55543
--- /dev/null
+++ b/sys-devel/llvm/llvm-20.0.0_pre20240808.ebuild
@@ -0,0 +1,553 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+
+inherit cmake flag-o-matic llvm.org multilib-minimal pax-utils python-any-r1
+inherit toolchain-funcs
+
+DESCRIPTION="Low Level Virtual Machine"
+HOMEPAGE="https://llvm.org/"
+
+# Additional licenses:
+# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD.
+# 2. xxhash: BSD.
+# 3. MD5 code: public-domain.
+# 4. ConvertUTF.h: TODO.
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc"
+SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+IUSE="
+ +binutils-plugin +debug debuginfod doc exegesis libedit +libffi
+ test xml z3 zstd
+"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ sys-libs/zlib:0=[${MULTILIB_USEDEP}]
+ debuginfod? (
+ net-misc/curl:=
+ dev-cpp/cpp-httplib:=
+ )
+ exegesis? ( dev-libs/libpfm:= )
+ libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
+ libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
+ xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
+ z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )
+ zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )
+"
+DEPEND="
+ ${RDEPEND}
+ binutils-plugin? ( sys-libs/binutils-libs )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-lang/perl
+ sys-devel/gnuconfig
+ kernel_Darwin? (
+ <sys-libs/libcxx-${LLVM_VERSION}.9999
+ )
+ libffi? ( virtual/pkgconfig )
+"
+# There are no file collisions between these versions but having :0
+# installed means llvm-config there will take precedence.
+RDEPEND="
+ ${RDEPEND}
+ !sys-devel/llvm:0
+"
+PDEPEND="
+ sys-devel/llvm-common
+ sys-devel/llvm-toolchain-symlinks:${LLVM_MAJOR}
+ binutils-plugin? ( >=sys-devel/llvmgold-${LLVM_MAJOR} )
+"
+
+LLVM_COMPONENTS=( llvm cmake third-party )
+LLVM_MANPAGES=1
+LLVM_USE_TARGETS=provide
+llvm.org_set_globals
+
+[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" doc? ( "
+BDEPEND+="
+ $(python_gen_any_dep '
+ dev-python/myst-parser[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ ')
+"
+[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" ) "
+
+python_check_deps() {
+ llvm_are_manpages_built || return 0
+
+ python_has_version -b "dev-python/myst-parser[${PYTHON_USEDEP}]" &&
+ python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]"
+}
+
+check_uptodate() {
+ local prod_targets=(
+ $(sed -n -e '/set(LLVM_ALL_TARGETS/,/)/p' CMakeLists.txt \
+ | tail -n +2 | head -n -1)
+ )
+ local all_targets=(
+ lib/Target/*/
+ )
+ all_targets=( "${all_targets[@]#lib/Target/}" )
+ all_targets=( "${all_targets[@]%/}" )
+
+ local exp_targets=() i
+ for i in "${all_targets[@]}"; do
+ has "${i}" "${prod_targets[@]}" || exp_targets+=( "${i}" )
+ done
+
+ local outdated
+ if [[ ${exp_targets[*]} != ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]} ]]; then
+ eerror "ALL_LLVM_EXPERIMENTAL_TARGETS are outdated!"
+ eerror " Have: ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]}"
+ eerror "Expected: ${exp_targets[*]}"
+ eerror
+ outdated=1
+ fi
+
+ if [[ ${prod_targets[*]} != ${ALL_LLVM_PRODUCTION_TARGETS[*]} ]]; then
+ eerror "ALL_LLVM_PRODUCTION_TARGETS are outdated!"
+ eerror " Have: ${ALL_LLVM_PRODUCTION_TARGETS[*]}"
+ eerror "Expected: ${prod_targets[*]}"
+ outdated=1
+ fi
+
+ [[ ${outdated} ]] && die "Update ALL_LLVM*_TARGETS"
+}
+
+check_distribution_components() {
+ if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
+ local all_targets=() my_targets=() l
+ cd "${BUILD_DIR}" || die
+
+ while read -r l; do
+ if [[ ${l} == install-*-stripped:* ]]; then
+ l=${l#install-}
+ l=${l%%-stripped*}
+
+ case ${l} in
+ # shared libs
+ LLVM|LLVMgold)
+ ;;
+ # TableGen lib + deps
+ LLVMDemangle|LLVMSupport|LLVMTableGen)
+ ;;
+ # used by lldb
+ LLVMDebuginfod)
+ ;;
+ # testing libraries
+ LLVMTestingAnnotations|LLVMTestingSupport)
+ ;;
+ # static libs
+ LLVM*)
+ continue
+ ;;
+ # meta-targets
+ distribution|llvm-libraries)
+ continue
+ ;;
+ # used only w/ USE=doc
+ docs-llvm-html)
+ use doc || continue
+ ;;
+ # used only w/ USE=debuginfd
+ llvm-debuginfod)
+ use debuginfod || continue
+ ;;
+ esac
+
+ all_targets+=( "${l}" )
+ fi
+ done < <(${NINJA} -t targets all)
+
+ while read -r l; do
+ my_targets+=( "${l}" )
+ done < <(get_distribution_components $"\n")
+
+ local add=() remove=()
+ for l in "${all_targets[@]}"; do
+ if ! has "${l}" "${my_targets[@]}"; then
+ add+=( "${l}" )
+ fi
+ done
+ for l in "${my_targets[@]}"; do
+ if ! has "${l}" "${all_targets[@]}"; then
+ remove+=( "${l}" )
+ fi
+ done
+
+ if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
+ eerror "get_distribution_components() is outdated!"
+ eerror " Add: ${add[*]}"
+ eerror "Remove: ${remove[*]}"
+ die "Update get_distribution_components()!"
+ fi
+ cd - >/dev/null || die
+ fi
+}
+
+src_prepare() {
+ # disable use of SDK on OSX, bug #568758
+ sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die
+
+ # Update config.guess to support more systems
+ cp "${BROOT}/usr/share/gnuconfig/config.guess" cmake/ || die
+
+ # Verify that the ebuild is up-to-date
+ check_uptodate
+
+ llvm.org_src_prepare
+}
+
+get_distribution_components() {
+ local sep=${1-;}
+
+ local out=(
+ # shared libs
+ LLVM
+ LTO
+ Remarks
+
+ # tools
+ llvm-config
+
+ # common stuff
+ cmake-exports
+ llvm-headers
+
+ # libraries needed for clang-tblgen
+ LLVMDemangle
+ LLVMSupport
+ LLVMTableGen
+
+ # testing libraries
+ llvm_gtest
+ llvm_gtest_main
+ LLVMTestingAnnotations
+ LLVMTestingSupport
+ )
+
+ if multilib_is_native_abi; then
+ out+=(
+ # library used by lldb
+ LLVMDebuginfod
+
+ # utilities
+ llvm-tblgen
+ FileCheck
+ llvm-PerfectShuffle
+ count
+ not
+ yaml-bench
+ UnicodeNameMappingGenerator
+
+ # tools
+ bugpoint
+ dsymutil
+ llc
+ lli
+ lli-child-target
+ llvm-addr2line
+ llvm-ar
+ llvm-as
+ llvm-bcanalyzer
+ llvm-bitcode-strip
+ llvm-c-test
+ llvm-cat
+ llvm-cfi-verify
+ llvm-config
+ llvm-cov
+ llvm-ctxprof-util
+ llvm-cvtres
+ llvm-cxxdump
+ llvm-cxxfilt
+ llvm-cxxmap
+ llvm-debuginfo-analyzer
+ llvm-debuginfod-find
+ llvm-diff
+ llvm-dis
+ llvm-dlltool
+ llvm-dwarfdump
+ llvm-dwarfutil
+ llvm-dwp
+ llvm-exegesis
+ llvm-extract
+ llvm-gsymutil
+ llvm-ifs
+ llvm-install-name-tool
+ llvm-jitlink
+ llvm-jitlink-executor
+ llvm-lib
+ llvm-libtool-darwin
+ llvm-link
+ llvm-lipo
+ llvm-lto
+ llvm-lto2
+ llvm-mc
+ llvm-mca
+ llvm-ml
+ llvm-modextract
+ llvm-mt
+ llvm-nm
+ llvm-objcopy
+ llvm-objdump
+ llvm-opt-report
+ llvm-otool
+ llvm-pdbutil
+ llvm-profdata
+ llvm-profgen
+ llvm-ranlib
+ llvm-rc
+ llvm-readelf
+ llvm-readobj
+ llvm-readtapi
+ llvm-reduce
+ llvm-remarkutil
+ llvm-rtdyld
+ llvm-sim
+ llvm-size
+ llvm-split
+ llvm-stress
+ llvm-strings
+ llvm-strip
+ llvm-symbolizer
+ llvm-tli-checker
+ llvm-undname
+ llvm-windres
+ llvm-xray
+ obj2yaml
+ opt
+ reduce-chunk-list
+ sancov
+ sanstats
+ split-file
+ verify-uselistorder
+ yaml2obj
+
+ # python modules
+ opt-viewer
+ )
+
+ if llvm_are_manpages_built; then
+ out+=(
+ # manpages
+ docs-dsymutil-man
+ docs-llvm-dwarfdump-man
+ docs-llvm-man
+ )
+ fi
+ use doc && out+=(
+ docs-llvm-html
+ )
+
+ use binutils-plugin && out+=(
+ LLVMgold
+ )
+ use debuginfod && out+=(
+ llvm-debuginfod
+ )
+ fi
+
+ printf "%s${sep}" "${out[@]}"
+}
+
+multilib_src_configure() {
+ if use ppc && tc-is-gcc && [[ $(gcc-major-version) -lt 14 ]]; then
+ # Workaround for bug #880677
+ append-flags $(test-flags-CXX -fno-ipa-sra -fno-ipa-modref -fno-ipa-icf)
+ fi
+
+ # ODR violations (bug #917536, bug #926529). Just do it for GCC for now
+ # to avoid people grumbling. GCC is, anecdotally, more likely to miscompile
+ # LLVM with LTO anyway (which is not necessarily its fault).
+ tc-is-gcc && filter-lto
+
+ local ffi_cflags ffi_ldflags
+ if use libffi; then
+ ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi)
+ ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi)
+ fi
+
+ local libdir=$(get_libdir)
+ local mycmakeargs=(
+ # disable appending VCS revision to the version to improve
+ # direct cache hit ratio
+ -DLLVM_APPEND_VC_REV=OFF
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
+
+ -DBUILD_SHARED_LIBS=OFF
+ -DLLVM_BUILD_LLVM_DYLIB=ON
+ -DLLVM_LINK_LLVM_DYLIB=ON
+ -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
+
+ # cheap hack: LLVM combines both anyway, and the only difference
+ # is that the former list is explicitly verified at cmake time
+ -DLLVM_TARGETS_TO_BUILD=""
+ -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
+ -DLLVM_INCLUDE_BENCHMARKS=OFF
+ -DLLVM_INCLUDE_TESTS=ON
+ -DLLVM_BUILD_TESTS=$(usex test)
+ -DLLVM_INSTALL_GTEST=ON
+
+ -DLLVM_ENABLE_FFI=$(usex libffi)
+ -DLLVM_ENABLE_LIBEDIT=$(usex libedit)
+ -DLLVM_ENABLE_LIBXML2=$(usex xml)
+ -DLLVM_ENABLE_ASSERTIONS=$(usex debug)
+ -DLLVM_ENABLE_LIBPFM=$(usex exegesis)
+ -DLLVM_ENABLE_EH=ON
+ -DLLVM_ENABLE_RTTI=ON
+ -DLLVM_ENABLE_Z3_SOLVER=$(usex z3)
+ -DLLVM_ENABLE_ZLIB=FORCE_ON
+ -DLLVM_ENABLE_ZSTD=$(usex zstd FORCE_ON OFF)
+ -DLLVM_ENABLE_CURL=$(usex debuginfod)
+ -DLLVM_ENABLE_HTTPLIB=$(usex debuginfod)
+
+ -DLLVM_HOST_TRIPLE="${CHOST}"
+
+ -DFFI_INCLUDE_DIR="${ffi_cflags#-I}"
+ -DFFI_LIBRARY_DIR="${ffi_ldflags#-L}"
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+
+ # disable OCaml bindings (now in dev-ml/llvm-ocaml)
+ -DOCAMLFIND=NO
+ )
+
+ local suffix=
+ if [[ -n ${EGIT_VERSION} && ${EGIT_BRANCH} != release/* ]]; then
+ # the ABI of the main branch is not stable, so let's include
+ # the commit id in the SOVERSION to contain the breakage
+ suffix+="git${EGIT_VERSION::8}"
+ fi
+ if [[ $(tc-get-cxx-stdlib) == libc++ ]]; then
+ # Smart hack: alter version suffix -> SOVERSION when linking
+ # against libc++. This way we won't end up mixing LLVM libc++
+ # libraries with libstdc++ clang, and the other way around.
+ suffix+="+libcxx"
+ mycmakeargs+=(
+ -DLLVM_ENABLE_LIBCXX=ON
+ )
+ fi
+ mycmakeargs+=(
+ -DLLVM_VERSION_SUFFIX="${suffix}"
+ )
+
+ use test && mycmakeargs+=(
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ )
+
+ if multilib_is_native_abi; then
+ local build_docs=OFF
+ if llvm_are_manpages_built; then
+ build_docs=ON
+ mycmakeargs+=(
+ -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
+ -DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
+ -DSPHINX_WARNINGS_AS_ERRORS=OFF
+ )
+ fi
+
+ mycmakeargs+=(
+ -DLLVM_BUILD_DOCS=${build_docs}
+ -DLLVM_ENABLE_OCAMLDOC=OFF
+ -DLLVM_ENABLE_SPHINX=${build_docs}
+ -DLLVM_ENABLE_DOXYGEN=OFF
+ -DLLVM_INSTALL_UTILS=ON
+ )
+ use binutils-plugin && mycmakeargs+=(
+ -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include
+ )
+ fi
+
+ use kernel_Darwin && mycmakeargs+=(
+ # Use our libtool instead of looking it up with xcrun
+ -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool"
+ )
+
+ # LLVM can have very high memory consumption while linking,
+ # exhausting the limit on 32-bit linker executable
+ use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory"
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+ cmake_src_configure
+
+ grep -q -E "^CMAKE_PROJECT_VERSION_MAJOR(:.*)?=${LLVM_MAJOR}$" \
+ CMakeCache.txt ||
+ die "Incorrect version, did you update _LLVM_MAIN_MAJOR?"
+ multilib_is_native_abi && check_distribution_components
+}
+
+multilib_src_compile() {
+ tc-env_build cmake_build distribution
+
+ pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld
+ pax-mark m "${BUILD_DIR}"/bin/lli
+ pax-mark m "${BUILD_DIR}"/bin/lli-child-target
+
+ if use test; then
+ pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests
+ pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests
+ pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests
+ fi
+}
+
+multilib_src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check
+}
+
+src_install() {
+ local MULTILIB_CHOST_TOOLS=(
+ /usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-config
+ )
+
+ local MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/llvm/Config/llvm-config.h
+ )
+
+ local LLVM_LDPATHS=()
+ multilib-minimal_src_install
+
+ # move wrapped headers back
+ mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die
+}
+
+multilib_src_install() {
+ DESTDIR=${D} cmake_build install-distribution
+
+ # move headers to /usr/include for wrapping
+ rm -rf "${ED}"/usr/include || die
+ mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die
+
+ LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)" )
+}
+
+multilib_src_install_all() {
+ local revord=$(( 9999 - ${LLVM_MAJOR} ))
+ newenvd - "60llvm-${revord}" <<-_EOF_
+ PATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin"
+ # we need to duplicate it in ROOTPATH for Portage to respect...
+ ROOTPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin"
+ MANPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
+ LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )"
+ _EOF_
+
+ docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man"
+ llvm_install_manpages
+}
+
+pkg_postinst() {
+ elog "You can find additional opt-viewer utility scripts in:"
+ elog " ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/opt-viewer"
+ elog "To use these scripts, you will need Python along with the following"
+ elog "packages:"
+ elog " dev-python/pygments (for opt-viewer)"
+ elog " dev-python/pyyaml (for all of them)"
+}