summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenda Xu <heroxbd@gentoo.org>2016-07-21 00:07:14 +0900
committerBenda Xu <heroxbd@gentoo.org>2016-07-21 00:07:14 +0900
commit6722df94a7fdb3db5145890475f49ad4c379ac36 (patch)
tree75594c7965b9b7b226a87f86e59ed8afe11470d6
parentprefix.eclass: split the heuristics into hprefixify. (diff)
downloadheroxbd-6722df94a7fdb3db5145890475f49ad4c379ac36.tar.gz
heroxbd-6722df94a7fdb3db5145890475f49ad4c379ac36.tar.bz2
heroxbd-6722df94a7fdb3db5145890475f49ad4c379ac36.zip
sys-devel/llvm: remove old and track new ebuilds.
-rw-r--r--sys-devel/llvm/Manifest34
-rw-r--r--sys-devel/llvm/files/clang-3.8-compiler-rt-fbsd.patch20
-rw-r--r--sys-devel/llvm/files/clang-3.8-gcc4.9-search-path.patch70
-rw-r--r--sys-devel/llvm/llvm-3.6.0.ebuild534
-rw-r--r--sys-devel/llvm/llvm-3.6.1.ebuild541
-rw-r--r--sys-devel/llvm/llvm-3.6.2.ebuild547
-rw-r--r--sys-devel/llvm/llvm-3.7.0-r1.ebuild513
-rw-r--r--sys-devel/llvm/llvm-3.7.0.ebuild492
-rw-r--r--sys-devel/llvm/llvm-3.8.0-r3.ebuild (renamed from sys-devel/llvm/llvm-9999.ebuild)127
9 files changed, 185 insertions, 2693 deletions
diff --git a/sys-devel/llvm/Manifest b/sys-devel/llvm/Manifest
index ed193fa..9c3f328 100644
--- a/sys-devel/llvm/Manifest
+++ b/sys-devel/llvm/Manifest
@@ -11,6 +11,8 @@ AUX clang-3.5-gentoo-runtime-gcc-detection-v3.patch 1694 SHA256 24691db819d08f87
AUX clang-3.6-fbsd-gcc49.patch 1016 SHA256 550862df82d47bd54e8adad7b8ee5bc8eaf14ed4bc100d09ba01d5416ac624b5 SHA512 4d9fcb9626774ea1a06494ee55efb5d6232a33874996a90fa29003ac53f9b9dad2885281a9f9bc15fdf0f0817c351cb6d8a4151e5f6ea12e28d383ded1429018 WHIRLPOOL c0140413a4944989efc5ef9c6ba33d10f43add5e1d8c7a8438cb04c18e764c3db26d65330d6a1570940a93cf4d43de6bb1f5a5640384faed3ea43abfa52b3d5d
AUX clang-3.6-gentoo-install.patch 1660 SHA256 74cce23945897ce2cfd3931b08695d534973e32a0d104ff942b2f5c500ec4ad7 SHA512 77e2a2dd82fd13292edced8c9bba911579f2b4984a64223e8c80f41b5605220f1433beb6f40e0746163d894d4405296e1f40584eb069f960866df97e6057b569 WHIRLPOOL 4784e8da4e04406a1261c9a539280c90936141b6061e567c70f9e4b566d45e0275b2513d66c03a5473fee6f434e0cf0242e7ac21eafe59a8c26c7c6bf7040876
AUX clang-3.7-strip_doc_refs.patch 2213 SHA256 5b1e7cc9264d55d3c8213cbf4c6701ad01652da1159ba0bf620cbe7a3382cfdd SHA512 dbe382a64e01c148b6e33734c1b423148584a15037c651cc56691146a1419559006a605c9bfb4ae72d23702ea48f1f40903bd0faf95c1d0ac3c8bd68c4238cdf WHIRLPOOL 5c884f67413af976f1146a2705c1096a7425ca90d13686b9f71f2230447ebe1d1bd39a93e32ef01b4ec6178fbd199b05bcf8d0a6780637914f3bac86955409c3
+AUX clang-3.8-compiler-rt-fbsd.patch 1101 SHA256 1490f7343a7ba632057e7e38e5885b5f2a0c212243673bf06e0ffa5eeac69253 SHA512 f1c23ce15090e2c75f43796dbdb0fef113f55aa633aebf041ab894638221f13dea195409063db663033cfef8963793b2578e16c42b8237bc342107e6d73f22dc WHIRLPOOL bc8b078dca18c5b31abbd45b08b4e17383a007620f730a5331ab7e6dd5d937686d3875589375cfb7280d18e5d327c86fcf9e8cf82f25f91ffa1b9779e8822df5
+AUX clang-3.8-gcc4.9-search-path.patch 4800 SHA256 bc0d359d971811a1d4fdf4444e72987f7defcc5309af48f2410a410d6e781625 SHA512 8104fe788344718a68e65db5bdee1ba317c6fb9c0c5fab255b6987790e0c4ac6e24abbe10d6ac340176fa4b726cc38c3e8bd282fc993e2155fa96aa98a72e4be WHIRLPOOL b43138f34f3dff9a1841d6476abb312471dda5dfa58732a4cedcbe1a5df576aac5617d44e58202d32c8b11498a8cc1da1913487b866d18556bde93cc7566e7c5
AUX cmake/0002-cmake-Support-overriding-Sphinx-HTML-doc-install-dir.patch 1404 SHA256 c9692562264ee6a25c3a2f25c990fab763aee36014de3ef95aa1d35a89aa0c0b SHA512 41dfe489adc0a45e4ffd5961c973fe94934d542b1474bb2dba4320b75ed6ff22ce0ac4b590ff20e626ea7c14617c9703ce1fd4d8d6bf1bd3b26ab0adeea373f0 WHIRLPOOL a9d84dc513118cab6310ea46c7b2e67654c81cd3c783d5db8e9ea3657fc1658e80fe4663399d4e35f99294ea9a98fb422e9077a6c8b73a3a98bbc8b282d1e9ad
AUX cmake/0003-cmake-Add-an-ordering-dep-between-HTML-man-Sphinx-ta.patch 954 SHA256 6518c1a1fdce0371aa1a9dab790c0999440e7971ab2613f6d348250ace9310d2 SHA512 e4721c13add5f65126a3d84b9b66ce7086f435c9d2a729edca7bfc3c6f185afb2b5422c7f5045c1a3a4f82c5e3d5616b647bfad9975bb73ecf228235f1d9f588 WHIRLPOOL f35f09b2d29de42dba9c28825af5feec562860f25206589b0a9dcd1daea27c317da1385bdaa5c562b2f4c0613071c3bc1fbfcddece97cd13debaddd14324d552
AUX cmake/0004-cmake-Do-not-install-libgtest.patch 835 SHA256 ed1531681603507fc674babd1f117063dcceb856151c20fd967d667d0dd83f2d SHA512 156f3b56e1bfe17804d3543a109567dcc10bac7a77f440d97bb900cc61f1e7bfe195ea3cf97bffbae7b132ebe31ad9d1acf5aca462a4aa01575909971ffdcf06 WHIRLPOOL d8bdc2032cec631c89d77a8fd231a0c22eeb5f9c99b8fda1068fb0e9fc10c81dc2d1bc71e8254ebea6392cfe3700427879841f7a6fcca3cd4c72ec1f1cdd56b0
@@ -68,36 +70,18 @@ AUX llvm-3.8-lldb_six.patch 766 SHA256 fbd732d0f2a5fe0b2d0b5507525cff250efe86838
AUX llvm-3.8-llvm-config.patch 4899 SHA256 2c3f1924652351c4e1f0eb59c560a94d333b2719ffe7e25891de9bd4efa203a6 SHA512 48e64847a7d767e67c3eb46342db5336bba96b9359becb0420f244a363968d9c5a856a46f9706c6475b8dcf50884f4257632faddd4ec6a66c8986cdb474ebdb5 WHIRLPOOL b5cb5d66f94c7167fa8d9f2fc7a4f9b41453fb282783200068710ebb3bc6bf9a8e7c892154f31bead88030e9880ad8a2986c93226b80aa17580e6aa7c720b73f
AUX llvm-3.8-soversion.patch 854 SHA256 faf88664d7adae8d1db834d177250279060c9e1dd59b47c3d2fae071d6b85b6c SHA512 201858f3ef2f14c98ed5647a1cfea76a455ef79482d32b7e191a11b28f3a3517f792b05e11655850245c5ac3d0c6fb0796a4f1dc5a2c72ddfc055b57f35c4538 WHIRLPOOL d817361a427b53c3daf8270a3cc9e202b3dc19b5937042ee4d68572b1fa3086c64b63d6255f2021c18cd927cf419374369ed21e980d6a200a07bcdb0fac965b5
AUX llvm-3.9-llvm-config.patch 3160 SHA256 aaed834ab50d19a910e471415edc240e02da9029b0ab54f33bf1657770322fd3 SHA512 6d9dbba89425955f7f804b1042b131e9b221394a1422425e66e2f46b6249d8cb1a9d28210924d9ae9c054bc2808303abbec48a8b1d23a1419c793acbc366cf68 WHIRLPOOL cbcb0a32ded8bff3a7d44a559787319ba662b452401b52f707272ded101de4b132987d671d1208693a7e831576c7427adc5d7b45da4e33194ecb5b8268869eae
-DIST cfe-3.6.0.src.tar.xz 8640776 SHA256 be0e69378119fe26f0f2f74cffe82b7c26da840c9733fe522ed3c1b66b11082d SHA512 dc137bdf9c2c5adb25498c995f0b944016699267156a595cc1fe6127f6961d45162275023d194db42691d80fa8fc74f56abad9c145ef1ff492881f547ca76cfe WHIRLPOOL 0df122c9d32dba5a00a97bec4a54b7b7bd8241ef625357bcf9997e3670e7c4775becec971f572073f3ffad86c7ccf616a94c06926ef9b0528248e34958e9b43f
-DIST cfe-3.6.1.src.tar.xz 8616132 SHA256 74f92d0c93b86678b015e87655f59474b2f657769680efdeb3c0524ffbd2dad7 SHA512 a96944bccfd9341be7adafdcc40367d458e85e7e74b0d2f3a7ea18edf1454d04a232c2d0003d6449c52f81d1e235b434acc1bb63eb5f7d16f8f4a43b70826743 WHIRLPOOL 1b4b8bb33fc7dbaeb03f32ba3544580bf0424889705b9d5130127be4d514c6d2aae5e224d71e20595a31441fc4bdd7bbf647e99e57d2c1e17fff3cff9022faa1
-DIST cfe-3.6.2.src.tar.xz 8617576 SHA256 ae9180466a23acb426d12444d866b266ff2289b266064d362462e44f8d4699f3 SHA512 ed837c48f38d8998efd675b56477c8681dcedfcf3f71bba65930f145501289bebb6fe6a6d9de336548f94c381d016b99f10c58e046b885449755d44ac782de03 WHIRLPOOL a17419cea329999c8662c0008dbd0391ed5f52045d0175488979e7620f6a9a21b08e451a5e21d3bf944597bb37934a8228fa89c09d773882359822d59bd447a8
-DIST cfe-3.7.0.src.tar.xz 9147204 SHA256 4ed740c5a91df1c90a4118c5154851d6a475f39a91346bdf268c1c29c13aa1cc SHA512 099d34cb019ea548c6ee85efd22b150beba0aa92061394fa3e423b1ebfe4a5c98c0586e5d56fc5c39e2b1606d36db59f442c056cc59473e32df76c8790c9d0ae WHIRLPOOL 1078d962edfb1b90044f19921f64a28c32259e34d983ddf9f9c198d13c8cd0679778a640d7a06c0bf1224d982602294c79a510034276216e3a6de21c739e6c39
DIST cfe-3.7.1.src.tar.xz 9110616 SHA256 56e2164c7c2a1772d5ed2a3e57485ff73ff06c97dff12edbeea1acc4412b0674 SHA512 8e3285a32ad0fd4721fa77c4fb9709f31bb4e4f7cb5245357aaf57b0767b6ef18a30d902b59d1437a6febffb6c2128214f9ce5aa913bb298743221a28c4f9de5 WHIRLPOOL ce300f5023bddda59ee055e4dccdca8bf459fae5d4e91c44262d2830c406b798d697d1bf3c6326ff41b969a8439f94a3c83570f1d0151a7f0223eb0d8f324f7b
-DIST clang-tools-extra-3.6.0.src.tar.xz 248688 SHA256 3aa949ba82913490a75697287d9ee8598c619fae0aa6bb8fddf0095ff51bc812 SHA512 52e0cd3cce3047bb98d52e5c03ac4a8c549fcdc628f57492727f3e7659b2d4bd29ad98ab4ebab387233911fbb098861ec020b28c051e6b2c17d73dd490beebf3 WHIRLPOOL 423f018a2943d16ac605d36bece61046423974c2ffbcc7e4a9aebc5efbb2444ecead70e46bc05f51f4fedbfef338d177b5b16969e8fb0df0bbc911200ce483ae
-DIST clang-tools-extra-3.6.1.src.tar.xz 248592 SHA256 f4ee70d870d550a9147ac6a548ce7daf7d9e6897348bf411f43c572966fb92b6 SHA512 3273f8c1fa1683de231d0c0b9371d4b7537381e939fe38996e70a8005a1e6185da459ace2f260fad41df4840b459448ed1498c2fd576dd560005117a54e2ccb9 WHIRLPOOL b35c2118efff758358ed9945384218327767a48ae18acdaf2233a5b97e1dc5a682023ddf78d989d1278119c277aecec596c37c5dab8ea2b16a1c9348eb40d9e6
-DIST clang-tools-extra-3.6.2.src.tar.xz 248624 SHA256 6a0ec627d398f501ddf347060f7a2ccea4802b2494f1d4fd7bda3e0442d04feb SHA512 1b7710a7deee30cefb6a3b4edb026a96d8935a0c6f3056ccdb7a45564d10baf01a4f6722ae853ad9a3bad17e8de32a3c0ec99c5cf6144647a5e182809d403f7a WHIRLPOOL 3dc8888c302bac84f53b673784dec092a2c59ea2985d9983e87f057b9aa7b5d3e34cf13d2b0f1f60ea44f342b8167377204a510036872a087037cf02335c19cd
-DIST clang-tools-extra-3.7.0.src.tar.xz 276628 SHA256 8ae8a0a3a96b7a700412d67df0af172cb2fc1326beec575fcc0f71d2e72709cd SHA512 c266eb327e2f50767b7d37c9d5713d6c70f590b59e4fe09d997f2eba0d54c9229ef6c8a2a903196380f67dffa7e35ebb47a9e5f2f097fd2a3c363481b72202eb WHIRLPOOL 681a5c14301990bb945e26375d0d31fa22b795101f342bcaaeb9d3e015c0f0f6b260b913388d086cb3054fc357845b34a6813e34614cdfa0de2c58fc6db7c64c
+DIST cfe-3.8.0.src.tar.xz 9627228 SHA256 04149236de03cf05232d68eb7cb9c50f03062e339b68f4f8a03b650a11536cf9 SHA512 fef431d63f95a394d53e3857fb6a6bde7a7b27f40ef5111b4353bcb63ac26febec8a9eb84780187c49699ab099834f13f996f085d02c365676b3fa5bbcc03dcd WHIRLPOOL 10fd94f75f645318ed3436454ccffd570a88cafe35e870563b5f4d89c37b9bdbe282d8793301ca53db6774cc223b2ff7ab0af99293413cac3deefcf5150fcca3
DIST clang-tools-extra-3.7.1.src.tar.xz 277476 SHA256 4a91edaccad1ce984c7c49a4a87db186b7f7b21267b2b03bcf4bd7820715bc6b SHA512 06e2db8af75f1e6ee82da6ee723b5256b9e3f6ba196428f18944ec02d07df26d04329ca8824a083c5f25274ce7e3469aa75e3a29ccfbdb6375524841d65e3ad7 WHIRLPOOL 2c1a459d6aff6bc24d5c8d38120ab665adbef61394050781a9707d50e83dae1b4997ed19459086e9bd7f6dd38a09c295d135e33515c947d64a7f1ab714ad8beb
-DIST compiler-rt-3.6.0.src.tar.xz 1140616 SHA256 7f49fb79e5adcdce7dddaf973f1db130228dfb19e37a99a7f5365a6948b26b11 SHA512 2758bc2b78dcfb9b6509b83ebc4ebc86907ca3dc2a5f151f580771c674b934432cae055e342ed73096a08331b2f7b129ff65629b27932458b1877aeb554b6328 WHIRLPOOL 1836b59c2369457aac79dc113b9a76623da30195a460afd0e25997aa21855991cdee78d5aec12b45d05d7d14e42d5fc7678f1c169b5a7fd500681a34d02d4468
-DIST compiler-rt-3.6.1.src.tar.xz 1128460 SHA256 fcbf610c77be6047f11ca10c4725610417beba832565115a9e2fcfe2897b649f SHA512 121c048fe60bccccd4a188a18613c94e1e1d9abd8fbae6405d23418f0c9b3562fff72fe77aea9bc0f8632ec9ad89503b9c67fcab5bf378001f90ad7492a1845a WHIRLPOOL fabbf5a63734f879d1698cd65846beb1cfa8559009b37bf5b5f4e239e62c9a9014d484233674cf357fb7aabb04ac8df840e832c764caf4b4a3b662ff0a51115e
-DIST compiler-rt-3.6.2.src.tar.xz 1128080 SHA256 0f2ff37d80a64575fecd8cf0d5c50f7ac1f837ddf700d1855412bb7547431d87 SHA512 7dafcc5bd4822475de649d8a84ae51af3c4ed4d0958f76b1b55ba79219638f3e78eb94a1986c6e9ba0e7f1ccf3ec834d546b5ca60e8b08083fea5880ecdf17a3 WHIRLPOOL dd77e7df43c9028a6873ed903da67560fdb04968013016a7f0ad2d2e9a81b3a3d890b95e4f49a6bdef349806d6507defcd80a0a9fb50c1c9f778e7eff42dbc5d
-DIST compiler-rt-3.7.0.src.tar.xz 1192832 SHA256 227fa998520bc94974a428dc8e7654d9bdf277e5bc70d4064ebc05691bd62b0b SHA512 2ba6abb3d6ec7f1469cfe1d48fde2069e9a767d19144f80f05516ac63f353ace90a9df3e9d1c1f708f3c397aba0ec61b12e4f105b25a2e1cd26b25b0dd252bc9 WHIRLPOOL 8bb535b667a7fdc1710d32e0912daee3798049f78cf70a03abc409157f02602b77f290b66185a35c464e512e55d57aab0125be6ae4843f6233f4017228afb579
+DIST clang-tools-extra-3.8.0.src.tar.xz 334072 SHA256 afbda810106a6e64444bc164b921be928af46829117c95b996f2678ce4cb1ec4 SHA512 f0e593a76df5485f403079bd2fbb4e51c3d1c3fc4e63e2c2910894e8f2a7c14b47265435f3c52f035fb3fe2f595812d0f9869235296157a39c071a23e6a8b178 WHIRLPOOL 4928669a3c019eebe0a98ee72e25ef70ddf3c1d29e6a4aa18e408276b2a870069460c39e0e8fbe960d8d56127bb6951433d1fd89015d192951004e527b065ec9
DIST compiler-rt-3.7.1.src.tar.xz 1181772 SHA256 9d4769e4a927d3824bcb7a9c82b01e307c68588e6de4e7f04ab82d82c5af8181 SHA512 bf434519ea0838264c30de1e1e8681320aa868df0ecc825a45c659077b963a4120c18216946558cbf8aea24a8ac8ec39af2066dab906bc7cabc0894d51d61325 WHIRLPOOL 0bea047e48622884a6fc6bb3826046e9de5b3192006cc41c0ccd9d6c611674869c3c15988b531a0f7d9fea2cf951b90ecef385b85db765c6f99a48692fdcf223
-DIST lldb-3.7.0.src.tar.xz 10649660 SHA256 f4d7505bc111044eaa4033af012221e492938405b62522b8e3e354c20c4b71e9 SHA512 52157782ef13e2c8b7b35ff3ccc05887195fe46ddb6bafcf0707a3c46c1e034734b55342b8dbfc46cae7a8c3cb1012345284e4bedb2344c5016b8d19a12e90df WHIRLPOOL 8c0803a51820ec67944e27061c858e95a92aefa38a1540241fead2b63c5b065c1268cf958b14d8841f62fc8aea5da1e20204704426598bfc2c4e61bcda135c43
+DIST compiler-rt-3.8.0.src.tar.xz 1270128 SHA256 c8d3387e55f229543dac1941769120f24dc50183150bf19d1b070d53d29d56b0 SHA512 21ba548b6b35a79aa291adba7f83db14c33855fa3cf376f2ad75bd22bb454501b74f0ea4f71bc03a864135862c800b101d3cd790e54e687c2a3459c64218b9c3 WHIRLPOOL 63ceb498fbc4083afda4f4aa12e44b8a6d2b58408edacd7d578d3cd6a63f0c1074e453b950fae4fee51690b3f79700e7752b6ceb3e6980c88541314993ce71a5
DIST lldb-3.7.1.src.tar.xz 10650524 SHA256 9a0bc315ef55f44c98cdf92d064df0847f453ed156dd0ef6a87e04f5fd6a0e01 SHA512 d2d3e1052026edd6ef9113ff5362acb4a32cef598098b4031c35e389301130ef2e1bda594f30de4d65c9fdc0beaecdd35afcf36676eb540baad34015aca294d1 WHIRLPOOL bba9c700788f0cf86ac1de51383a223e1c92f724719cdd327d83189cb77714c1e10fb78569aeed3b3c639062a3410bb114f646a271fd0d9e8c9a8e45d090330a
-DIST llvm-3.6.0-manpages.tar.bz2 35140 SHA256 53b14a7896f6db547fa692b43fb5b08898b251699ec505a2b9d9c9c3b632eed7 SHA512 2efe21ecaf10ced3e078e7675918f5b7fe6cfa3ba6371906f832690858024c57f4868a3af54b6de18c980d6008992d08ae21bc2a678ef12652a0a0eabad52a15 WHIRLPOOL f6bfc9ec0432566b70ab16aa99628a64e0d9f325db72a37cb1b04d6a3521625b37b858770ac1c9e313612d9475d7832f683fbbc2c3acad97c99daeb39383df45
-DIST llvm-3.6.0.src.tar.xz 12750908 SHA256 b39a69e501b49e8f73ff75c9ad72313681ee58d6f430bfad4d81846fe92eb9ce SHA512 ca492b7d86333f05930dc849c7a8beff981da51ca174cd844650b516d0a592a2c3837d5a8a9b62713c0f29292b845f27ef0ec361809e325c6b60cbbcd3f20357 WHIRLPOOL 4f9de6b8dd2514e7b55e8c6e6af2ab9d355ebf49f1bd113a652f71809d74060792a95f6cee5b8b3bd64d92586b46e7778f616027702c98eb726ee84375e4eea6
-DIST llvm-3.6.1-manpages.tar.bz2 38338 SHA256 b27c6198e09b11421841a7184d4e8a0f8878d4f1313405da28d643134a55688a SHA512 a47aeb0b4632329eaaa1d6c774446fea5822d7692d81533a9a5c5de1c6a3b37fdd6b7c1fc6433339649f4d3a53a753065e73afb30fd84f253ad31d5fb3d48662 WHIRLPOOL 022b214b6340365490915b5c873e515bf16be90d04cd32f09024a3607c23edc2c2e241d295102f045bd08a442c4e5aaf134ac89f7e59a027ec1633330a95989b
-DIST llvm-3.6.1.src.tar.xz 12798852 SHA256 2f00c615913aa0b56607ee1548936e60ad2aa89e6d56f23fb032a4463366fc7a SHA512 fa07d0fe6c527d86c0b91b1b62597f949d777e3609e4e8ca2ea5e07931e1ebc7a363273cc705cf4a13b45e7ab00716b76de26688d077c1b51341d9dd2972de3f WHIRLPOOL c6340956e9935c0e4a986f1a8da9458ca3b3a7bdff376d33c7a3c60bc5154fb5820bfaf43fb4118f28ab9b0f356f436672fd2f984bc629eeee01233b703030fb
-DIST llvm-3.6.2.src.tar.xz 12802380 SHA256 f60dc158bfda6822de167e87275848969f0558b3134892ff54fced87e4667b94 SHA512 42b44ce69cfb96e2dc12dc2246f0de8ff983a99741206e2c46ccf074b3248aaab9c0f22c6baad802de851d06f202f40db9dd62fe38aab4479b3f70026c936b36 WHIRLPOOL 1a15e16793fe4120f1c14a5334362c36db26745c493e7289281351b7c18c523d781ff9425dddfe1a2add9ea1e8aebb92f2313787da5f286259b55b0884b3039f
+DIST lldb-3.8.0.src.tar.xz 10929768 SHA256 e3f68f44147df0433e7989bf6ed1c58ff28d7c68b9c47553cb9915f744785a35 SHA512 a491209ae12b0c7d938ebd94362396a50922326ed24ed11f71b1f19b61274a34a92d2bd46857b44081e7fa3e6d0a641d148bd4022f8edf71f80ff2aa7a55ebef WHIRLPOOL c498c22acab867419143745ce0212c70bdfc141dbae19ab53221908eba7961aae6a029cbad01b8409e6fbc187550141ed87f32366dd847ac57754891fbbc4049
DIST llvm-3.7.0-manpages.tar.bz2 38095 SHA256 8597fa532464c6336aefbbef0b1ce452aaa98d474fa58108c6a6f57a9ccd6785 SHA512 ea70ac15dbaef3740b31f66aa798338f7f9b82484586582aa62e0364f9d74bf175be2f4f29721df253b8157c1cbc146ab9045c0656c42a6375434e994786b643 WHIRLPOOL 743b339b0df7c52d270a5197e9e765dfd92d4b5acee94cf9d9d7713e1a75aa9d987b3f5adab0952e7267febf88b318d0f31cb45847e2b0b42c7c7373b2358358
-DIST llvm-3.7.0.src.tar.xz 14636252 SHA256 ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153 SHA512 fe3bfefd3d49423831ad12b89f944ac9f469aaaaafdea1dd94fc7fb6d5cc9fbe66b6463796aeaabfc145ae474ec3ad68da41c4a011e8aa4bc650f1835af75388 WHIRLPOOL 4787fc417042cbb4470887358225c367c6617ccd6cb90f1e4f226ec1565b302e4d70458fc13ceedca5b3ac270523637398bb7503c8c423c81fd9682a41c0289f
DIST llvm-3.7.1.src.tar.xz 14592544 SHA256 be7794ed0cec42d6c682ca8e3517535b54555a3defabec83554dbc74db545ad5 SHA512 ac521debc02f6deba96ef975d6a546b0c5c77299c1dbf5e1b87a7974ff5e7fd715bd7e384b92d9adf572ce47130bdbf6d3c648eb0d7f72f16f976292e4909e90 WHIRLPOOL 788ce0907b906ebee595c766713bec5067563c8aba7460211f5830e116df7c830de84704834c0df2f2f2c90354d75521e4a4aff57e769a2d8ab590778c1e4a70
-EBUILD llvm-3.6.0.ebuild 15285 SHA256 f9dc886bcd3163182f9366952e2ba6efc55c2b798b615ea33620912260dd922f SHA512 7e372b0fdd2ddce4ad4f1814c593a6e47e1d962fa24e983d8db101251662e64ed723edee83b27d11a35de71bd7c3170ad6992ad44c770533b845d77b3ebc9272 WHIRLPOOL 7d67c7bc55c0734bee38ed3fc2dfa3677eac1a11df8d0e533f62afc5f32c55a08931fe1371b86e3774b704ba26cf08c15eed7efd5620bd387c077391e5bbbcfa
-EBUILD llvm-3.6.1.ebuild 15554 SHA256 f1f007fa874bc33f5c1cdc9622ba17badc64d03fa91f3d4b690cb8faaddfcfd8 SHA512 5f18a894cfd0f8687f8ddc0fdca4de85ddeff1f06a662e0830cfe36c6adb2add2a2871059fd78354ece0b527638e4ba08e73e22cfc05e8738feca10002bacaf5 WHIRLPOOL d851589c993b8711e62b1fe7317f31bc009561fa541da68259d812ecb3202e2649b21333fb86fba74c410fea5d1233d6be5fc010497f588f42fdcd50493fe6b6
-EBUILD llvm-3.6.2.ebuild 15791 SHA256 91585a09b6955349b227f94a71c6ac564b7e9a3701dc151745967ca2248b96c0 SHA512 8b52a8b2f321f9508398368194710db12545904fbc5ef01e3f3ad16800644f67609916a09aa2753fa23f3c1add7997b2d9e4bb1cc95a2cb87fd5ed01cb957b46 WHIRLPOOL 1c58a81dba8c63b0d92f29eaf309780548f34c730c181107625e04f60831387986089c42e49c0f284faf781cf0bb00368d24e043e4800caa03b34430f5d55a09
-EBUILD llvm-3.7.0-r1.ebuild 14656 SHA256 fe5040ed23d8d368e812be09f200767e914849fd300edfc1c80bd7bba10d99a4 SHA512 0d1c09b05f9e6b57f13f6ca1a6f26f523f25e2b57d56e8199c78706a670be489fe9e6b4da0e7c473bcb79bfc60e9daf6e90673e6445fa8da79341e9644a7ae32 WHIRLPOOL 84ddcc6c94f51e59d8b6444e89bdd2d72d4411a3bb5c38d010a0560993e0ed36235b67209d389e361e9e645c2c151337414eb3db634aba4851372c15320268d8
-EBUILD llvm-3.7.0.ebuild 14056 SHA256 12f9a4b1a178b193a5cab94c00f448eb538d31056d5e34915a173caf52ea0b87 SHA512 1951a8ab684aaa9de60a2a1b86534cc57ea56bf4d3deb82a8638685f09b0ff3b01c86fafeb8514d4df24892119eba1a69cf2bf99ca12d584f9eb455f3a74448f WHIRLPOOL 9ebf4aa05d6fdaf3e5fb690d75a3996229214197f057dd4695dff0e7dac49492b4b292ce0497dcd8dcd64bdc2975b08540cbc3f458350b1f412f040a6505e7b8
+DIST llvm-3.8.0-manpages.tar.bz2 37889 SHA256 4dda7f69f9412e0fb50d32631df34d6ea7f93c945c9a59cb050a99f1d2d0508b SHA512 a93ed7a25b75c237a0967ba7a501c71af3e7e9292ebabf69733bc637e9a4534dcaee539c6b1f6b2df7a87103c2371b1cf130fac05b88047100988c814e89ab0f WHIRLPOOL 9790a576fd4db798c2339bb4ea1dc973f1057177364770a104be7916998a1ad824e6b4eee296066ddd32eb5e6c57ffd5716457cecbd8ca9fe1b317d0d5ed2676
+DIST llvm-3.8.0.src.tar.xz 16580932 SHA256 555b028e9ee0f6445ff8f949ea10e9cd8be0d084840e21fbbe1d31d51fc06e46 SHA512 2c76e79d803768ed20af6ca1801cf2518071bf9835c54580ea3eb6219a66cdcf8b4c575f192c15082cc18d2468b7611dacb57950b605813a2317125c2d33c138 WHIRLPOOL f7219f3324080f22158b08eb23b5b545d303090d0bb8cde6ee971da829dd52837832a127792b153006568e0c7c0163c1095d1e258600f4359df347148e965b94
EBUILD llvm-3.7.1-r1.ebuild 16167 SHA256 c7d895327deea82d9067a787823615bb3d4d169f938a68e0670caeae98f1ca7e SHA512 88bbcd62b02aa9a0039a94e28aa67980e62ce8f42d9e99627a3821a82ed9cd1bd7632bc28a2202473c91c051978fbc0cb5dbd107a7c5d520174e8483c2c58ca0 WHIRLPOOL 6bf31fc553129989eadb64dd391d1f60c023280bdc134bbd934d2a418827d677700b6ec847a41d61c85a5e58c9033558613351fd4c66baddab85e312acaebeac
-EBUILD llvm-9999.ebuild 13970 SHA256 cbdb999ccbf7a8be6a986a23f3cb38de22bfdb0eb9fe05bc08dd72c84a4b75d9 SHA512 d7ccb82b1b3ddac2abd0aeaacf14717aa33f075d703aa993e8f3eae928a6aff4c67c00b7a194f8f365e3b225e4fde6391e8fe72daf34d4b2d84a4d78fe6533c2 WHIRLPOOL 50a961dea8e4fd2956d47cf9345a8c4944895dd60fe87cdce3371019c04f19783ed3e84d059dabd8b26b1486f10e8df51cc027e8f15e70e21fc71db25248829c
+EBUILD llvm-3.8.0-r3.ebuild 15763 SHA256 492c4f96e6a0aa17a3be9d40c01a1df7445647d4d898c7447506bf782fa744e6 SHA512 a9651a1c38ee0c31e5beca63002b7b638af9c6c4fed31ff8a640c552d7a818180a0025ff994e66f94e4ce2e06f0235855549fde9b069b4c3273760a72eb8c05c WHIRLPOOL b165cb4bcf2f36ec138337b85c448862cdeab5067753148675a78e597dad0c5340072de2ced943c71ff3b2e4eb0e76c982e4185c51f17699ad3862302ec31ec9
MISC metadata.xml 2785 SHA256 7329cb36d95ea94ccabceb9d228eb77cb3186e53b360dc27717393338d4147fc SHA512 3acac76248322ac92fae2a4cde7fa113b356f43bafabd5bd99d6937b4f9a39f74676de65c17cd8df634b65052a0777f6336aed598ccc1dd17a97a564096ae9d5 WHIRLPOOL 87d38e5091fc1ea70282a637864a268a928acb40b3b4c962cca543a48adf78ad035f391bba4099983fa1384854052966bcf1d839bdfa72c9081f876d5478c800
diff --git a/sys-devel/llvm/files/clang-3.8-compiler-rt-fbsd.patch b/sys-devel/llvm/files/clang-3.8-compiler-rt-fbsd.patch
new file mode 100644
index 0000000..297620b
--- /dev/null
+++ b/sys-devel/llvm/files/clang-3.8-compiler-rt-fbsd.patch
@@ -0,0 +1,20 @@
+https://llvm.org/bugs/show_bug.cgi?id=26651
+https://github.com/llvm-mirror/compiler-rt/commit/6606c7b50cbb4ec7eab4ecbebbbaaa049734bbd3
+
+diff --git a/projects/compiler-rt/lib/tsan/CMakeLists.txt b/projects/compiler-rt/lib/tsan/CMakeLists.txt
+index c185cfa..a151c6c 100644
+--- a/projects/compiler-rt/lib/tsan/CMakeLists.txt
++++ b/projects/compiler-rt/lib/tsan/CMakeLists.txt
+@@ -192,7 +192,11 @@ endif()
+ add_dependencies(compiler-rt tsan)
+
+ # Make sure that non-platform-specific files don't include any system headers.
+-if(COMPILER_RT_HAS_SYSROOT_FLAG)
++# FreeBSD does not install a number of Clang-provided headers for the compiler
++# in the base system due to incompatibilities between FreeBSD's and Clang's
++# versions. As a workaround do not use --sysroot=. on FreeBSD until this is
++# addressed.
++if(COMPILER_RT_HAS_SYSROOT_FLAG AND NOT CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
+ file(GLOB _tsan_generic_sources rtl/tsan*)
+ file(GLOB _tsan_platform_sources rtl/tsan*posix* rtl/tsan*mac*
+ rtl/tsan*linux*)
diff --git a/sys-devel/llvm/files/clang-3.8-gcc4.9-search-path.patch b/sys-devel/llvm/files/clang-3.8-gcc4.9-search-path.patch
new file mode 100644
index 0000000..bafe218
--- /dev/null
+++ b/sys-devel/llvm/files/clang-3.8-gcc4.9-search-path.patch
@@ -0,0 +1,70 @@
+From af4db76e059c1a3f4a7f437001051ccebc8a50fe Mon Sep 17 00:00:00 2001
+From: Chandler Carruth <chandlerc@gmail.com>
+Date: Sun, 8 May 2016 07:59:56 +0000
+Subject: [PATCH] Teach header search about GCC 4.9 header search paths in
+ Gentoo, they now use the full GCC version in their weird suffix.
+
+git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268874 91177308-0d34-0410-b5e6-96231b3b80d8
+---
+ lib/Driver/ToolChains.cpp | 1 +
+ .../Inputs/gentoo_linux_gcc_4.9.3_tree/usr/include/.keep | 0
+ .../usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/crtbegin.o | 0
+ .../x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/.keep | 0
+ .../usr/x86_64-pc-linux-gnu/lib/.keep | 0
+ test/Driver/linux-header-search.cpp | 15 +++++++++++++++
+ 6 files changed, 16 insertions(+)
+ create mode 100644 test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/include/.keep
+ create mode 100644 test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/crtbegin.o
+ create mode 100644 test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/.keep
+ create mode 100644 test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/x86_64-pc-linux-gnu/lib/.keep
+
+diff --git a/tools/clang/lib/Driver/ToolChains.cpp b/tools/clang/lib/Driver/ToolChains.cpp
+index f905b5d..1bf17e4 100644
+--- a/tools/clang/lib/Driver/ToolChains.cpp
++++ b/tools/clang/lib/Driver/ToolChains.cpp
+@@ -4134,6 +4134,7 @@ void Linux::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
+ const std::string LibStdCXXIncludePathCandidates[] = {
+ // Gentoo is weird and places its headers inside the GCC install,
+ // so if the first attempt to find the headers fails, try these patterns.
++ InstallDir.str() + "/include/g++-v" + Version.Text,
+ InstallDir.str() + "/include/g++-v" + Version.MajorStr + "." +
+ Version.MinorStr,
+ InstallDir.str() + "/include/g++-v" + Version.MajorStr,
+diff --git a/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/include/.keep b/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/include/.keep
+new file mode 100644
+index 0000000..e69de29
+diff --git a/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/crtbegin.o b/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/crtbegin.o
+new file mode 100644
+index 0000000..e69de29
+diff --git a/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/.keep b/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/.keep
+new file mode 100644
+index 0000000..e69de29
+diff --git a/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/x86_64-pc-linux-gnu/lib/.keep b/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_4.9.3_tree/usr/x86_64-pc-linux-gnu/lib/.keep
+new file mode 100644
+index 0000000..e69de29
+diff --git a/tools/clang/test/Driver/linux-header-search.cpp b/tools/clang/test/Driver/linux-header-search.cpp
+index 9568bde..5f6ac50 100644
+--- a/tools/clang/test/Driver/linux-header-search.cpp
++++ b/tools/clang/test/Driver/linux-header-search.cpp
+@@ -285,6 +285,21 @@
+ // CHECK-GENTOO-4-6-4: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
+ // CHECK-GENTOO-4-6-4: "-internal-externc-isystem" "[[SYSROOT]]/include"
+ // CHECK-GENTOO-4-6-4: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
++// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
++// RUN: -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \
++// RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_4.9.3_tree \
++// RUN: --gcc-toolchain="" \
++// RUN: | FileCheck --check-prefix=CHECK-GENTOO-4-9-3 %s
++// CHECK-GENTOO-4-9-3: "{{.*}}clang{{.*}}" "-cc1"
++// CHECK-GENTOO-4-9-3: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]"
++// CHECK-GENTOO-4-9-3: "-isysroot" "[[SYSROOT:[^"]+]]"
++// CHECK-GENTOO-4-9-3: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3"
++// CHECK-GENTOO-4-9-3: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/x86_64-pc-linux-gnu"
++// CHECK-GENTOO-4-9-3: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/backward"
++// CHECK-GENTOO-4-9-3: "-internal-isystem" "[[SYSROOT]]/usr/local/include"
++// CHECK-GENTOO-4-9-3: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
++// CHECK-GENTOO-4-9-3: "-internal-externc-isystem" "[[SYSROOT]]/include"
++// CHECK-GENTOO-4-9-3: "-internal-externc-isystem" "[[SYSROOT]]/usr/include"
+ //
+ // Check header search on Debian 6 / MIPS64
+ // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \
diff --git a/sys-devel/llvm/llvm-3.6.0.ebuild b/sys-devel/llvm/llvm-3.6.0.ebuild
deleted file mode 100644
index b789793..0000000
--- a/sys-devel/llvm/llvm-3.6.0.ebuild
+++ /dev/null
@@ -1,534 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-PYTHON_COMPAT=( python2_7 pypy )
-
-inherit eutils flag-o-matic multibuild multilib \
- multilib-minimal python-r1 toolchain-funcs pax-utils check-reqs prefix
-
-DESCRIPTION="Low Level Virtual Machine"
-HOMEPAGE="http://llvm.org/"
-SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz
- clang? ( http://llvm.org/releases/${PV}/compiler-rt-${PV}.src.tar.xz
- http://llvm.org/releases/${PV}/cfe-${PV}.src.tar.xz
- http://llvm.org/releases/${PV}/clang-tools-extra-${PV}.src.tar.xz )
- !doc? ( https://dev.gentoo.org/~voyageur/distfiles/${P}-manpages.tar.bz2 )"
-
-LICENSE="UoI-NCSA"
-SLOT="0/3.6"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
-IUSE="clang debug doc gold libedit +libffi multitarget ncurses ocaml python
- +static-analyzer test xml video_cards_radeon
- kernel_Darwin kernel_FreeBSD"
-
-COMMON_DEPEND="
- sys-libs/zlib:0=
- clang? (
- python? ( ${PYTHON_DEPS} )
- static-analyzer? (
- dev-lang/perl:*
- ${PYTHON_DEPS}
- )
- xml? ( dev-libs/libxml2:2= )
- )
- gold? ( >=sys-devel/binutils-2.22:*[cxx] )
- libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
- libffi? ( >=virtual/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
- ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] )
- ocaml? (
- dev-lang/ocaml:0=
- dev-ml/findlib
- dev-ml/ocaml-ctypes )"
-# configparser-3.2 breaks the build (3.3 or none at all are fine)
-DEPEND="${COMMON_DEPEND}
- app-arch/xz-utils
- dev-lang/perl
- >=sys-devel/make-3.81
- >=sys-devel/flex-2.5.4
- >=sys-devel/bison-1.875d
- || ( >=sys-devel/gcc-3.0 >=sys-devel/gcc-apple-4.2.1
- ( >=sys-freebsd/freebsd-lib-9.1-r10 sys-libs/libcxx )
- )
- || ( >=sys-devel/binutils-2.18 >=sys-devel/binutils-apple-5.1 )
- clang? ( xml? ( virtual/pkgconfig ) )
- doc? ( dev-python/sphinx )
- libffi? ( virtual/pkgconfig )
- !!<dev-python/configparser-3.3.0.2
- ocaml? ( test? ( dev-ml/ounit ) )
- ${PYTHON_DEPS}"
-RDEPEND="${COMMON_DEPEND}
- clang? ( !<=sys-devel/clang-${PV}-r99
- !>=sys-devel/clang-9999 )
- abi_x86_32? ( !<=app-emulation/emul-linux-x86-baselibs-20130224-r2
- !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] )"
-PDEPEND="clang? ( =sys-devel/clang-${PV}-r100 )"
-
-# pypy gives me around 1700 unresolved tests due to open file limit
-# being exceeded. probably GC does not close them fast enough.
-REQUIRED_USE="${PYTHON_REQUIRED_USE}
- test? ( || ( $(python_gen_useflags 'python*') ) )"
-
-S=${WORKDIR}/${P/_}.src
-
-# Some people actually override that in make.conf. That sucks since
-# we need to run install per-directory, and ninja can't do that...
-# so why did it call itself ninja in the first place?
-CMAKE_MAKEFILE_GENERATOR=emake
-
-pkg_pretend() {
- # in megs
- # !clang !debug !multitarget -O2 400
- # !clang !debug multitarget -O2 550
- # clang !debug !multitarget -O2 950
- # clang !debug multitarget -O2 1200
- # !clang debug multitarget -O2 5G
- # clang !debug multitarget -O0 -g 12G
- # clang debug multitarget -O2 16G
- # clang debug multitarget -O0 -g 14G
-
- local build_size=550
- use clang && build_size=1200
-
- if use debug; then
- ewarn "USE=debug is known to increase the size of package considerably"
- ewarn "and cause the tests to fail."
- ewarn
-
- (( build_size *= 14 ))
- elif is-flagq '-g?(gdb)?([1-9])'; then
- ewarn "The C++ compiler -g option is known to increase the size of the package"
- ewarn "considerably. If you run out of space, please consider removing it."
- ewarn
-
- (( build_size *= 10 ))
- fi
-
- # Multiply by number of ABIs :).
- local abis=( $(multilib_get_enabled_abis) )
- (( build_size *= ${#abis[@]} ))
-
- local CHECKREQS_DISK_BUILD=${build_size}M
- check-reqs_pkg_pretend
-
- if [[ ${MERGE_TYPE} != binary ]]; then
- echo 'int main() {return 0;}' > "${T}"/test.cxx || die
- ebegin "Trying to build a C++11 test program"
- if ! $(tc-getCXX) -std=c++11 -o /dev/null "${T}"/test.cxx; then
- eerror "LLVM-${PV} requires C++11-capable C++ compiler. Your current compiler"
- eerror "does not seem to support -std=c++11 option. Please upgrade your compiler"
- eerror "to gcc-4.7 or an equivalent version supporting C++11."
- die "Currently active compiler does not support -std=c++11"
- fi
- eend ${?}
- fi
-}
-
-pkg_setup() {
- pkg_pretend
-}
-
-src_unpack() {
- default
-
- rm -f "${S}"/tools/clang "${S}"/projects/compiler-rt \
- || die "symlinks removal failed"
-
- if use clang; then
- mv "${WORKDIR}"/cfe-${PV/_}.src "${S}"/tools/clang \
- || die "clang source directory move failed"
- mv "${WORKDIR}"/compiler-rt-${PV/_}.src "${S}"/projects/compiler-rt \
- || die "compiler-rt source directory move failed"
- mv "${WORKDIR}"/clang-tools-extra-${PV/_}.src "${S}"/tools/clang/tools/extra \
- || die "clang-tools-extra source directory move failed"
- fi
-}
-
-src_prepare() {
- epatch "${FILESDIR}"/${PN}-3.2-nodoctargz.patch
- epatch "${FILESDIR}"/${PN}-3.5-gcc-4.9.patch
- epatch "${FILESDIR}"/${PN}-3.6-gentoo-install.patch
- # Make ocaml warnings non-fatal, bug #537308
- sed -e "/RUN/s/-warn-error A//" -i test/Bindings/OCaml/*ml || die
-
- if use clang; then
- # Automatically select active system GCC's libraries, bugs #406163 and #417913
- epatch "${FILESDIR}"/clang-3.5-gentoo-runtime-gcc-detection-v3.patch
-
- epatch "${FILESDIR}"/clang-3.6-gentoo-install.patch
- epatch "${FILESDIR}"/clang-3.4-darwin_prefix-include-paths.patch
- eprefixify tools/clang/lib/Frontend/InitHeaderSearch.cpp
- fi
-
- if use prefix && use clang; then
- sed -i -e "/^CFLAGS /s@-Werror@-I${EPREFIX}/usr/include@" \
- projects/compiler-rt/make/platform/clang_*.mk || die
- fi
-
- local sub_files=(
- Makefile.config.in
- Makefile.rules
- tools/llvm-config/llvm-config.cpp
- )
- use clang && sub_files+=(
- tools/clang/lib/Driver/Tools.cpp
- tools/clang/tools/scan-build/scan-build
- )
-
- # unfortunately ./configure won't listen to --mandir and the-like, so take
- # care of this.
- # note: we're setting the main libdir intentionally.
- # where per-ABI is appropriate, we use $(GENTOO_LIBDIR) make.
- einfo "Fixing install dirs"
- sed -e "s,@libdir@,$(get_libdir),g" \
- -e "s,@PF@,${PF},g" \
- -e "s,@EPREFIX@,${EPREFIX},g" \
- -i "${sub_files[@]}" \
- || die "install paths sed failed"
-
- if use clang; then
- # constantly fails for a long time, likely due to our patches
- rm tools/clang/test/Driver/cross-linux.c || die
- fi
-
- # User patches
- epatch_user
-
- python_setup
-}
-
-multilib_src_configure() {
- # disable timestamps since they confuse ccache
- local conf_flags=(
- --disable-timestamps
- --enable-keep-symbols
- --enable-shared
- --with-optimize-option=
- $(tc-is-static-only && echo --disable-shared)
- $(use_enable !debug optimized)
- $(use_enable debug assertions)
- $(use_enable debug expensive-checks)
- $(use_enable libedit)
- $(use_enable ncurses terminfo)
- $(use_enable libffi)
- )
-
- # well, it's used only by clang executable c-index-test
- if multilib_is_native_abi && use clang && use xml; then
- conf_flags+=( XML2CONFIG="$(tc-getPKG_CONFIG) libxml-2.0" )
- else
- conf_flags+=( ac_cv_prog_XML2CONFIG="" )
- fi
-
- local targets bindings
- if use multitarget; then
- targets='all'
- else
- targets='host,cpp'
- use video_cards_radeon && targets+=',r600'
- fi
- conf_flags+=( --enable-targets=${targets} )
-
- if multilib_is_native_abi; then
- use gold && conf_flags+=( --with-binutils-include="${EPREFIX}"/usr/include/ )
- # extra commas don't hurt
- use ocaml && bindings+=',ocaml'
- fi
-
- [[ ${bindings} ]] || bindings='none'
- conf_flags+=( --enable-bindings=${bindings} )
-
- if use libffi; then
- local CPPFLAGS=${CPPFLAGS}
- append-cppflags "$(pkg-config --cflags libffi)"
- fi
-
- # llvm prefers clang over gcc, so we may need to force that
- tc-export CC CXX
-
- ECONF_SOURCE=${S} \
- econf "${conf_flags[@]}"
-}
-
-set_makeargs() {
- MAKEARGS=(
- VERBOSE=1
- REQUIRES_RTTI=1
- GENTOO_LIBDIR=$(get_libdir)
- )
-
- # for tests, we want it all! otherwise, we may use a little filtering...
- # adding ONLY_TOOLS also disables unittest building...
- if [[ ${EBUILD_PHASE_FUNC} != src_test ]]; then
- local tools=( llvm-config )
- use clang && tools+=( clang )
-
- if multilib_is_native_abi; then
- tools+=(
- opt llvm-as llvm-dis llc llvm-ar llvm-nm llvm-link lli
- llvm-extract llvm-mc llvm-bcanalyzer llvm-diff macho-dump
- llvm-objdump llvm-readobj llvm-rtdyld llvm-dwarfdump llvm-cov
- llvm-size llvm-stress llvm-mcmarkup llvm-profdata
- llvm-symbolizer obj2yaml yaml2obj lto bugpoint
- )
-
- # the build system runs explicitly specified tools in parallel,
- # so we need to split it into two runs
- if [[ ${1} != -1 ]]; then
- # those require lto
- tools+=( llvm-lto )
- use gold && tools+=( gold )
-
- # those require clang :)
- # we need to explicitly specify all its tools
- # since we're passing BUILD_CLANG_ONLY
- use clang && tools+=(
- clang/tools/{clang-check,clang-format,extra}
- )
- fi
- fi
-
- MAKEARGS+=(
- # filter tools + disable unittests implicitly
- ONLY_TOOLS="${tools[*]}"
-
- # this disables unittests & docs from clang
- BUILD_CLANG_ONLY=YES
- )
- fi
-}
-
-multilib_src_compile() {
- local MAKEARGS
- set_makeargs -1
- emake "${MAKEARGS[@]}"
-
- if multilib_is_native_abi; then
- set_makeargs
- emake -C tools "${MAKEARGS[@]}"
-
- if use doc; then
- emake -C "${S}"/docs -f Makefile.sphinx man
- use clang && emake -C "${S}"/tools/clang/docs/tools \
- BUILD_FOR_WEBSITE=1 DST_MAN_DIR="${T}"/ man
- emake -C "${S}"/docs -f Makefile.sphinx html
- fi
- fi
-
- if use debug; then
- pax-mark m Debug+Asserts+Checks/bin/llvm-rtdyld
- pax-mark m Debug+Asserts+Checks/bin/lli
- pax-mark m Debug+Asserts+Checks/bin/lli-child-target
- else
- pax-mark m Release/bin/llvm-rtdyld
- pax-mark m Release/bin/lli
- pax-mark m Release/bin/lli-child-target
- fi
-}
-
-multilib_src_test() {
- local MAKEARGS
- set_makeargs
-
- # build the remaining tools & unittests
- emake "${MAKEARGS[@]}"
-
- pax-mark m unittests/ExecutionEngine/JIT/Release/JITTests
- pax-mark m unittests/ExecutionEngine/MCJIT/Release/MCJITTests
- pax-mark m unittests/Support/Release/SupportTests
-
- # respect TMPDIR!
- local -x LIT_PRESERVES_TMP=1
- emake "${MAKEARGS[@]}" check
- use clang && emake "${MAKEARGS[@]}" -C tools/clang test
-}
-
-src_install() {
- local MULTILIB_CHOST_TOOLS=(
- /usr/bin/llvm-config
- )
-
- local MULTILIB_WRAPPED_HEADERS=(
- /usr/include/llvm/Config/config.h
- /usr/include/llvm/Config/llvm-config.h
- )
-
- if use clang; then
- # note: magic applied below
- MULTILIB_CHOST_TOOLS+=(
- /usr/bin/clang
- /usr/bin/clang++
- /usr/bin/clang-${PV}
- /usr/bin/clang++-${PV}
- )
-
- MULTILIB_WRAPPED_HEADERS+=(
- /usr/include/clang/Config/config.h
- )
- fi
-
- multilib-minimal_src_install
-
- # Remove unnecessary headers on FreeBSD, bug #417171
- use kernel_FreeBSD && use clang && rm "${ED}"usr/lib/clang/${PV}/include/{std,float,iso,limits,tgmath,varargs}*.h
-}
-
-multilib_src_install() {
- local MAKEARGS
- set_makeargs
-
- local root=${D}/_${ABI}
-
- emake "${MAKEARGS[@]}" DESTDIR="${root}" install
- multibuild_merge_root "${root}" "${D}"
-
- if ! multilib_is_native_abi; then
- # Backwards compat, will be happily removed someday.
- dosym "${CHOST}"-llvm-config /usr/bin/llvm-config.${ABI}
- else
- # Install docs.
- if use doc; then
- doman "${S}"/docs/_build/man/*.1
- use clang && doman "${T}"/clang.1
- dohtml -r "${S}"/docs/_build/html/
- else
- if ! use clang; then
- rm "${WORKDIR}"/${P}-manpages/clang.1 || die
- fi
- doman "${WORKDIR}"/${P}-manpages/*.1
- fi
-
- # Symlink the gold plugin.
- if use gold; then
- dodir /usr/${CHOST}/binutils-bin/lib/bfd-plugins
- dosym ../../../../$(get_libdir)/LLVMgold.so \
- /usr/${CHOST}/binutils-bin/lib/bfd-plugins/LLVMgold.so
- fi
- fi
-
- # apply CHOST and PV to clang executables
- # they're statically linked so we don't have to worry about the lib
- if use clang; then
- local clang_tools=( clang clang++ )
- local i
-
- # append ${PV} and symlink back
- # TODO: use alternatives.eclass? does that make any sense?
- # maybe with USE=-clang on :0 and USE=clang on older
- for i in "${clang_tools[@]}"; do
- mv "${ED%/}/usr/bin/${i}"{,-${PV}} || die
- dosym "${i}"-${PV} /usr/bin/${i}
- done
-
- # now prepend ${CHOST} and let the multilib-build.eclass symlink it
- if ! multilib_is_native_abi; then
- # non-native? let's replace it with a simple wrapper
- for i in "${clang_tools[@]}"; do
- rm "${ED%/}/usr/bin/${i}-${PV}" || die
- cat > "${T}"/wrapper.tmp <<-_EOF_
- #!${EPREFIX}/bin/sh
- exec "${i}-${PV}" $(get_abi_CFLAGS) "\${@}"
- _EOF_
- newbin "${T}"/wrapper.tmp "${i}-${PV}"
- done
- fi
- fi
-
- # Fix install_names on Darwin. The build system is too complicated
- # to just fix this, so we correct it post-install
- local lib= f= odylib= ndylib= libpv=${PV}
- if [[ ${CHOST} == *-darwin* ]] ; then
- eval $(grep PACKAGE_VERSION= configure)
- [[ -n ${PACKAGE_VERSION} ]] && libpv=${PACKAGE_VERSION}
- libpvminor=${libpv%.[0-9]*}
- for lib in lib{EnhancedDisassembly,LLVM-${libpv},LTO,profile_rt,clang}.dylib LLVMHello.dylib clang/${libpv}/lib/darwin/libclang_rt.asan_{osx,iossim}_dynamic.dylib; do
- # libEnhancedDisassembly is Darwin10 only, so non-fatal
- # + omit clang libs if not enabled
- [[ -f ${ED}/usr/lib/${lib} ]] || continue
-
- ebegin "fixing install_name of $lib"
- install_name_tool \
- -id "${EPREFIX}"/usr/lib/${lib} \
- "${ED}"/usr/lib/${lib}
- eend $?
- done
- for f in "${ED}"/usr/bin/* "${ED}"/usr/lib/lib*.dylib "${ED}"/usr/lib/clang/${libpv}/lib/darwin/*.dylib ; do
- # omit clang libs if not enabled
- [[ -f "${f}" ]] || continue
-
- scanmacho -BF'%n#f' "${f}" | tr ',' '\n' | \
- while read odylib ; do
- ndylib=
- case ${odylib} in
- */libclang.dylib)
- ndylib="${EPREFIX}"/usr/lib/libclang.dylib
- ;;
- */libLLVM-${libpv}.dylib)
- ndylib="${EPREFIX}"/usr/lib/libLLVM-${libpv}.dylib
- ;;
- */libLLVM-${libpvminor}.dylib)
- ndylib="${EPREFIX}"/usr/lib/libLLVM-${libpvminor}.dylib
- ;;
- */libLTO.dylib)
- ndylib="${EPREFIX}"/usr/lib/libLTO.dylib
- ;;
- esac
- if [[ -n ${ndylib} ]] ; then
- ebegin "fixing install_name reference to ${odylib} of ${f##*/}"
- install_name_tool \
- -change "${odylib}" "${ndylib}" \
- "${f}"
- eend $?
- fi
- done
- done
- fi
-}
-
-multilib_src_install_all() {
- insinto /usr/share/vim/vimfiles/syntax
- doins utils/vim/*.vim
-
- if use clang; then
- cd tools/clang || die
-
- if use static-analyzer ; then
- dobin tools/scan-build/ccc-analyzer
- dosym ccc-analyzer /usr/bin/c++-analyzer
- dobin tools/scan-build/scan-build
-
- insinto /usr/share/${PN}
- doins tools/scan-build/scanview.css
- doins tools/scan-build/sorttable.js
- fi
-
- python_inst() {
- if use static-analyzer ; then
- pushd tools/scan-view >/dev/null || die
-
- python_doscript scan-view
-
- touch __init__.py || die
- python_moduleinto clang
- python_domodule __init__.py Reporter.py Resources ScanView.py startfile.py
-
- popd >/dev/null || die
- fi
-
- if use python ; then
- pushd bindings/python/clang >/dev/null || die
-
- python_moduleinto clang
- python_domodule __init__.py cindex.py enumerations.py
-
- popd >/dev/null || die
- fi
-
- # AddressSanitizer symbolizer (currently separate)
- python_doscript "${S}"/projects/compiler-rt/lib/asan/scripts/asan_symbolize.py
- }
- python_foreach_impl python_inst
- fi
-}
diff --git a/sys-devel/llvm/llvm-3.6.1.ebuild b/sys-devel/llvm/llvm-3.6.1.ebuild
deleted file mode 100644
index 6cc8a46..0000000
--- a/sys-devel/llvm/llvm-3.6.1.ebuild
+++ /dev/null
@@ -1,541 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-PYTHON_COMPAT=( python2_7 pypy )
-
-inherit eutils flag-o-matic multibuild multilib \
- multilib-minimal python-r1 toolchain-funcs pax-utils check-reqs prefix
-
-DESCRIPTION="Low Level Virtual Machine"
-HOMEPAGE="http://llvm.org/"
-SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz
- clang? ( http://llvm.org/releases/${PV}/compiler-rt-${PV}.src.tar.xz
- http://llvm.org/releases/${PV}/cfe-${PV}.src.tar.xz
- http://llvm.org/releases/${PV}/clang-tools-extra-${PV}.src.tar.xz )
- !doc? ( https://dev.gentoo.org/~voyageur/distfiles/${P}-manpages.tar.bz2 )"
-
-LICENSE="UoI-NCSA"
-SLOT="0/3.6"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
-IUSE="clang debug doc gold libedit +libffi multitarget ncurses ocaml python
- +static-analyzer test xml video_cards_radeon
- kernel_Darwin kernel_FreeBSD"
-
-COMMON_DEPEND="
- sys-libs/zlib:0=
- clang? (
- python? ( ${PYTHON_DEPS} )
- static-analyzer? (
- dev-lang/perl:*
- ${PYTHON_DEPS}
- )
- xml? ( dev-libs/libxml2:2= )
- )
- gold? ( >=sys-devel/binutils-2.22:*[cxx] )
- libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
- libffi? ( >=virtual/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
- ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] )
- ocaml? (
- dev-lang/ocaml:0=
- dev-ml/findlib
- dev-ml/ocaml-ctypes )"
-# configparser-3.2 breaks the build (3.3 or none at all are fine)
-DEPEND="${COMMON_DEPEND}
- app-arch/xz-utils
- dev-lang/perl
- >=sys-devel/make-3.81
- >=sys-devel/flex-2.5.4
- >=sys-devel/bison-1.875d
- || ( >=sys-devel/gcc-3.0 >=sys-devel/llvm-3.5
- ( >=sys-freebsd/freebsd-lib-9.1-r10 sys-libs/libcxx )
- )
- || ( >=sys-devel/binutils-2.18 >=sys-devel/binutils-apple-5.1 )
- kernel_Darwin? ( sys-libs/libcxx )
- clang? ( xml? ( virtual/pkgconfig ) )
- doc? ( dev-python/sphinx )
- libffi? ( virtual/pkgconfig )
- !!<dev-python/configparser-3.3.0.2
- ocaml? ( test? ( dev-ml/ounit ) )
- ${PYTHON_DEPS}"
-RDEPEND="${COMMON_DEPEND}
- clang? ( !<=sys-devel/clang-${PV}-r99
- !>=sys-devel/clang-9999 )
- abi_x86_32? ( !<=app-emulation/emul-linux-x86-baselibs-20130224-r2
- !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] )"
-PDEPEND="clang? ( =sys-devel/clang-${PV}-r100 )"
-
-# pypy gives me around 1700 unresolved tests due to open file limit
-# being exceeded. probably GC does not close them fast enough.
-REQUIRED_USE="${PYTHON_REQUIRED_USE}
- test? ( || ( $(python_gen_useflags 'python*') ) )"
-
-S=${WORKDIR}/${P/_}.src
-
-# Some people actually override that in make.conf. That sucks since
-# we need to run install per-directory, and ninja can't do that...
-# so why did it call itself ninja in the first place?
-CMAKE_MAKEFILE_GENERATOR=emake
-
-pkg_pretend() {
- # in megs
- # !clang !debug !multitarget -O2 400
- # !clang !debug multitarget -O2 550
- # clang !debug !multitarget -O2 950
- # clang !debug multitarget -O2 1200
- # !clang debug multitarget -O2 5G
- # clang !debug multitarget -O0 -g 12G
- # clang debug multitarget -O2 16G
- # clang debug multitarget -O0 -g 14G
-
- local build_size=550
- use clang && build_size=1200
-
- if use debug; then
- ewarn "USE=debug is known to increase the size of package considerably"
- ewarn "and cause the tests to fail."
- ewarn
-
- (( build_size *= 14 ))
- elif is-flagq '-g?(gdb)?([1-9])'; then
- ewarn "The C++ compiler -g option is known to increase the size of the package"
- ewarn "considerably. If you run out of space, please consider removing it."
- ewarn
-
- (( build_size *= 10 ))
- fi
-
- # Multiply by number of ABIs :).
- local abis=( $(multilib_get_enabled_abis) )
- (( build_size *= ${#abis[@]} ))
-
- local CHECKREQS_DISK_BUILD=${build_size}M
- check-reqs_pkg_pretend
-
- if [[ ${MERGE_TYPE} != binary ]]; then
- echo 'int main() {return 0;}' > "${T}"/test.cxx || die
- ebegin "Trying to build a C++11 test program"
- if ! $(tc-getCXX) -std=c++11 -o /dev/null "${T}"/test.cxx; then
- eerror "LLVM-${PV} requires C++11-capable C++ compiler. Your current compiler"
- eerror "does not seem to support -std=c++11 option. Please upgrade your compiler"
- eerror "to gcc-4.7 or an equivalent version supporting C++11."
- die "Currently active compiler does not support -std=c++11"
- fi
- eend ${?}
- fi
-}
-
-pkg_setup() {
- pkg_pretend
-}
-
-src_unpack() {
- default
-
- rm -f "${S}"/tools/clang "${S}"/projects/compiler-rt \
- || die "symlinks removal failed"
-
- if use clang; then
- mv "${WORKDIR}"/cfe-${PV/_}.src "${S}"/tools/clang \
- || die "clang source directory move failed"
- mv "${WORKDIR}"/compiler-rt-${PV/_}.src "${S}"/projects/compiler-rt \
- || die "compiler-rt source directory move failed"
- mv "${WORKDIR}"/clang-tools-extra-${PV/_}.src "${S}"/tools/clang/tools/extra \
- || die "clang-tools-extra source directory move failed"
- fi
-}
-
-src_prepare() {
- epatch "${FILESDIR}"/${PN}-3.2-nodoctargz.patch
- epatch "${FILESDIR}"/${PN}-3.5-gcc-4.9.patch
- epatch "${FILESDIR}"/${PN}-3.6-gentoo-install.patch
- epatch "${FILESDIR}"/${PN}-3.6.0-ocaml-ctypes-0.4.0.patch
- # Make ocaml warnings non-fatal, bug #537308
- sed -e "/RUN/s/-warn-error A//" -i test/Bindings/OCaml/*ml || die
-
- if use clang; then
- # Automatically select active system GCC's libraries, bugs #406163 and #417913
- epatch "${FILESDIR}"/clang-3.5-gentoo-runtime-gcc-detection-v3.patch
-
- epatch "${FILESDIR}"/clang-3.6-gentoo-install.patch
- epatch "${FILESDIR}"/clang-3.4-darwin_prefix-include-paths.patch
- eprefixify tools/clang/lib/Frontend/InitHeaderSearch.cpp
-
- # Fix build fails with using gcc-4.9 on Gentoo/FreeBSD, bug #548444
- epatch "${FILESDIR}"/clang-3.6-fbsd-gcc49.patch
- fi
-
- if use prefix && use clang; then
- sed -i -e "/^CFLAGS /s@-Werror@-I${EPREFIX}/usr/include@" \
- projects/compiler-rt/make/platform/clang_*.mk || die
- fi
-
- local sub_files=(
- Makefile.config.in
- Makefile.rules
- tools/llvm-config/llvm-config.cpp
- )
- use clang && sub_files+=(
- tools/clang/lib/Driver/Tools.cpp
- tools/clang/tools/scan-build/scan-build
- )
-
- # unfortunately ./configure won't listen to --mandir and the-like, so take
- # care of this.
- # note: we're setting the main libdir intentionally.
- # where per-ABI is appropriate, we use $(GENTOO_LIBDIR) make.
- einfo "Fixing install dirs"
- sed -e "s,@libdir@,$(get_libdir),g" \
- -e "s,@PF@,${PF},g" \
- -e "s,@EPREFIX@,${EPREFIX},g" \
- -i "${sub_files[@]}" \
- || die "install paths sed failed"
-
- if use clang; then
- # constantly fails for a long time, likely due to our patches
- rm tools/clang/test/Driver/cross-linux.c || die
- fi
-
- # User patches
- epatch_user
-
- python_setup
-}
-
-multilib_src_configure() {
- # disable timestamps since they confuse ccache
- local conf_flags=(
- --disable-timestamps
- --enable-keep-symbols
- --enable-shared
- --with-optimize-option=
- $(tc-is-static-only && echo --disable-shared)
- $(use_enable !debug optimized)
- $(use_enable debug assertions)
- $(use_enable debug expensive-checks)
- $(use_enable libedit)
- $(use_enable ncurses terminfo)
- $(use_enable libffi)
- )
-
- # well, it's used only by clang executable c-index-test
- if multilib_is_native_abi && use clang && use xml; then
- conf_flags+=( XML2CONFIG="$(tc-getPKG_CONFIG) libxml-2.0" )
- else
- conf_flags+=( ac_cv_prog_XML2CONFIG="" )
- fi
-
- local targets bindings
- if use multitarget; then
- targets='all'
- else
- targets='host,cpp'
- use video_cards_radeon && targets+=',r600'
- fi
- conf_flags+=( --enable-targets=${targets} )
-
- if multilib_is_native_abi; then
- use gold && conf_flags+=( --with-binutils-include="${EPREFIX}"/usr/include/ )
- # extra commas don't hurt
- use ocaml && bindings+=',ocaml'
- fi
-
- [[ ${bindings} ]] || bindings='none'
- conf_flags+=( --enable-bindings=${bindings} )
-
- if use libffi; then
- local CPPFLAGS=${CPPFLAGS}
- append-cppflags "$(pkg-config --cflags libffi)"
- fi
-
- # Enable large file support, bug #550708
- append-lfs-flags
- # llvm prefers clang over gcc, so we may need to force that
- tc-export CC CXX
-
- ECONF_SOURCE=${S} \
- econf "${conf_flags[@]}"
-}
-
-set_makeargs() {
- MAKEARGS=(
- VERBOSE=1
- REQUIRES_RTTI=1
- GENTOO_LIBDIR=$(get_libdir)
- )
-
- # for tests, we want it all! otherwise, we may use a little filtering...
- # adding ONLY_TOOLS also disables unittest building...
- if [[ ${EBUILD_PHASE_FUNC} != src_test ]]; then
- local tools=( llvm-config )
- use clang && tools+=( clang )
-
- if multilib_is_native_abi; then
- tools+=(
- opt llvm-as llvm-dis llc llvm-ar llvm-nm llvm-link lli
- llvm-extract llvm-mc llvm-bcanalyzer llvm-diff macho-dump
- llvm-objdump llvm-readobj llvm-rtdyld llvm-dwarfdump llvm-cov
- llvm-size llvm-stress llvm-mcmarkup llvm-profdata
- llvm-symbolizer obj2yaml yaml2obj lto bugpoint
- )
-
- # the build system runs explicitly specified tools in parallel,
- # so we need to split it into two runs
- if [[ ${1} != -1 ]]; then
- # those require lto
- tools+=( llvm-lto )
- use gold && tools+=( gold )
-
- # those require clang :)
- # we need to explicitly specify all its tools
- # since we're passing BUILD_CLANG_ONLY
- use clang && tools+=(
- clang/tools/{clang-check,clang-format,extra}
- )
- fi
- fi
-
- MAKEARGS+=(
- # filter tools + disable unittests implicitly
- ONLY_TOOLS="${tools[*]}"
-
- # this disables unittests & docs from clang
- BUILD_CLANG_ONLY=YES
- )
- fi
-}
-
-multilib_src_compile() {
- local MAKEARGS
- set_makeargs -1
- emake "${MAKEARGS[@]}"
-
- if multilib_is_native_abi; then
- set_makeargs
- emake -C tools "${MAKEARGS[@]}"
-
- if use doc; then
- emake -C "${S}"/docs -f Makefile.sphinx man
- use clang && emake -C "${S}"/tools/clang/docs/tools \
- BUILD_FOR_WEBSITE=1 DST_MAN_DIR="${T}"/ man
- emake -C "${S}"/docs -f Makefile.sphinx html
- fi
- fi
-
- if use debug; then
- pax-mark m Debug+Asserts+Checks/bin/llvm-rtdyld
- pax-mark m Debug+Asserts+Checks/bin/lli
- pax-mark m Debug+Asserts+Checks/bin/lli-child-target
- else
- pax-mark m Release/bin/llvm-rtdyld
- pax-mark m Release/bin/lli
- pax-mark m Release/bin/lli-child-target
- fi
-}
-
-multilib_src_test() {
- local MAKEARGS
- set_makeargs
-
- # build the remaining tools & unittests
- emake "${MAKEARGS[@]}"
-
- pax-mark m unittests/ExecutionEngine/JIT/Release/JITTests
- pax-mark m unittests/ExecutionEngine/MCJIT/Release/MCJITTests
- pax-mark m unittests/Support/Release/SupportTests
-
- # respect TMPDIR!
- local -x LIT_PRESERVES_TMP=1
- emake "${MAKEARGS[@]}" check
- use clang && emake "${MAKEARGS[@]}" -C tools/clang test
-}
-
-src_install() {
- local MULTILIB_CHOST_TOOLS=(
- /usr/bin/llvm-config
- )
-
- local MULTILIB_WRAPPED_HEADERS=(
- /usr/include/llvm/Config/config.h
- /usr/include/llvm/Config/llvm-config.h
- )
-
- if use clang; then
- # note: magic applied below
- MULTILIB_CHOST_TOOLS+=(
- /usr/bin/clang
- /usr/bin/clang++
- /usr/bin/clang-${PV}
- /usr/bin/clang++-${PV}
- )
-
- MULTILIB_WRAPPED_HEADERS+=(
- /usr/include/clang/Config/config.h
- )
- fi
-
- multilib-minimal_src_install
-
- # Remove unnecessary headers on FreeBSD, bug #417171
- use kernel_FreeBSD && use clang && rm "${ED}"usr/lib/clang/${PV}/include/{std,float,iso,limits,tgmath,varargs}*.h
-}
-
-multilib_src_install() {
- local MAKEARGS
- set_makeargs
-
- local root=${D}/_${ABI}
-
- emake "${MAKEARGS[@]}" DESTDIR="${root}" install
- multibuild_merge_root "${root}" "${D}"
-
- if ! multilib_is_native_abi; then
- # Backwards compat, will be happily removed someday.
- dosym "${CHOST}"-llvm-config /usr/bin/llvm-config.${ABI}
- else
- # Install docs.
- if use doc; then
- doman "${S}"/docs/_build/man/*.1
- use clang && doman "${T}"/clang.1
- dohtml -r "${S}"/docs/_build/html/
- else
- if ! use clang; then
- rm "${WORKDIR}"/${P}-manpages/clang.1 || die
- fi
- doman "${WORKDIR}"/${P}-manpages/*.1
- fi
-
- # Symlink the gold plugin.
- if use gold; then
- dodir /usr/${CHOST}/binutils-bin/lib/bfd-plugins
- dosym ../../../../$(get_libdir)/LLVMgold.so \
- /usr/${CHOST}/binutils-bin/lib/bfd-plugins/LLVMgold.so
- fi
- fi
-
- # apply CHOST and PV to clang executables
- # they're statically linked so we don't have to worry about the lib
- if use clang; then
- local clang_tools=( clang clang++ )
- local i
-
- # append ${PV} and symlink back
- # TODO: use alternatives.eclass? does that make any sense?
- # maybe with USE=-clang on :0 and USE=clang on older
- for i in "${clang_tools[@]}"; do
- mv "${ED%/}/usr/bin/${i}"{,-${PV}} || die
- dosym "${i}"-${PV} /usr/bin/${i}
- done
-
- # now prepend ${CHOST} and let the multilib-build.eclass symlink it
- if ! multilib_is_native_abi; then
- # non-native? let's replace it with a simple wrapper
- for i in "${clang_tools[@]}"; do
- rm "${ED%/}/usr/bin/${i}-${PV}" || die
- cat > "${T}"/wrapper.tmp <<-_EOF_
- #!${EPREFIX}/bin/sh
- exec "${i}-${PV}" $(get_abi_CFLAGS) "\${@}"
- _EOF_
- newbin "${T}"/wrapper.tmp "${i}-${PV}"
- done
- fi
- fi
-
- # Fix install_names on Darwin. The build system is too complicated
- # to just fix this, so we correct it post-install
- local lib= f= odylib= ndylib= libpv=${PV}
- if [[ ${CHOST} == *-darwin* ]] ; then
- eval $(grep PACKAGE_VERSION= configure)
- [[ -n ${PACKAGE_VERSION} ]] && libpv=${PACKAGE_VERSION}
- libpvminor=${libpv%.[0-9]*}
- for lib in lib{EnhancedDisassembly,LLVM-${libpv},LTO,profile_rt,clang}.dylib LLVMHello.dylib clang/${libpv}/lib/darwin/libclang_rt.asan_{osx,iossim}_dynamic.dylib; do
- # libEnhancedDisassembly is Darwin10 only, so non-fatal
- # + omit clang libs if not enabled
- [[ -f ${ED}/usr/lib/${lib} ]] || continue
-
- ebegin "fixing install_name of $lib"
- install_name_tool \
- -id "${EPREFIX}"/usr/lib/${lib} \
- "${ED}"/usr/lib/${lib}
- eend $?
- done
- for f in "${ED}"/usr/bin/* "${ED}"/usr/lib/lib*.dylib "${ED}"/usr/lib/clang/${libpv}/lib/darwin/*.dylib ; do
- # omit clang libs if not enabled
- [[ -f "${f}" ]] || continue
-
- scanmacho -BF'%n#f' "${f}" | tr ',' '\n' | \
- while read odylib ; do
- ndylib=
- case ${odylib} in
- */libclang.dylib)
- ndylib="${EPREFIX}"/usr/lib/libclang.dylib
- ;;
- */libLLVM-${libpv}.dylib)
- ndylib="${EPREFIX}"/usr/lib/libLLVM-${libpv}.dylib
- ;;
- */libLLVM-${libpvminor}.dylib)
- ndylib="${EPREFIX}"/usr/lib/libLLVM-${libpvminor}.dylib
- ;;
- */libLTO.dylib)
- ndylib="${EPREFIX}"/usr/lib/libLTO.dylib
- ;;
- esac
- if [[ -n ${ndylib} ]] ; then
- ebegin "fixing install_name reference to ${odylib} of ${f##*/}"
- install_name_tool \
- -change "${odylib}" "${ndylib}" \
- "${f}"
- eend $?
- fi
- done
- done
- fi
-}
-
-multilib_src_install_all() {
- insinto /usr/share/vim/vimfiles/syntax
- doins utils/vim/*.vim
-
- if use clang; then
- cd tools/clang || die
-
- if use static-analyzer ; then
- dobin tools/scan-build/ccc-analyzer
- dosym ccc-analyzer /usr/bin/c++-analyzer
- dobin tools/scan-build/scan-build
-
- insinto /usr/share/${PN}
- doins tools/scan-build/scanview.css
- doins tools/scan-build/sorttable.js
- fi
-
- python_inst() {
- if use static-analyzer ; then
- pushd tools/scan-view >/dev/null || die
-
- python_doscript scan-view
-
- touch __init__.py || die
- python_moduleinto clang
- python_domodule __init__.py Reporter.py Resources ScanView.py startfile.py
-
- popd >/dev/null || die
- fi
-
- if use python ; then
- pushd bindings/python/clang >/dev/null || die
-
- python_moduleinto clang
- python_domodule __init__.py cindex.py enumerations.py
-
- popd >/dev/null || die
- fi
-
- # AddressSanitizer symbolizer (currently separate)
- python_doscript "${S}"/projects/compiler-rt/lib/asan/scripts/asan_symbolize.py
- }
- python_foreach_impl python_inst
- fi
-}
diff --git a/sys-devel/llvm/llvm-3.6.2.ebuild b/sys-devel/llvm/llvm-3.6.2.ebuild
deleted file mode 100644
index 0a75817..0000000
--- a/sys-devel/llvm/llvm-3.6.2.ebuild
+++ /dev/null
@@ -1,547 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-PYTHON_COMPAT=( python2_7 pypy )
-
-inherit eutils flag-o-matic multibuild multilib linux-info \
- multilib-minimal python-r1 toolchain-funcs pax-utils check-reqs prefix \
-
-DESCRIPTION="Low Level Virtual Machine"
-HOMEPAGE="http://llvm.org/"
-SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz
- clang? ( http://llvm.org/releases/${PV}/compiler-rt-${PV}.src.tar.xz
- http://llvm.org/releases/${PV}/cfe-${PV}.src.tar.xz
- http://llvm.org/releases/${PV}/clang-tools-extra-${PV}.src.tar.xz )
- !doc? ( https://dev.gentoo.org/~voyageur/distfiles/${PN}-3.6.1-manpages.tar.bz2 )"
-
-LICENSE="UoI-NCSA"
-SLOT="0/3.6"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
-IUSE="clang debug doc gold libedit +libffi multitarget ncurses ocaml python
- +static-analyzer test xml video_cards_radeon
- kernel_Darwin kernel_FreeBSD rap"
-
-COMMON_DEPEND="
- sys-libs/zlib:0=
- clang? (
- python? ( ${PYTHON_DEPS} )
- static-analyzer? (
- dev-lang/perl:*
- ${PYTHON_DEPS}
- )
- xml? ( dev-libs/libxml2:2= )
- )
- gold? ( >=sys-devel/binutils-2.22:*[cxx] )
- libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
- libffi? ( >=virtual/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
- ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] )
- ocaml? (
- dev-lang/ocaml:0=
- dev-ml/findlib
- dev-ml/ocaml-ctypes )"
-# configparser-3.2 breaks the build (3.3 or none at all are fine)
-DEPEND="${COMMON_DEPEND}
- app-arch/xz-utils
- dev-lang/perl
- >=sys-devel/make-3.81
- >=sys-devel/flex-2.5.4
- >=sys-devel/bison-1.875d
- || ( >=sys-devel/gcc-3.0 >=sys-devel/llvm-3.5
- ( >=sys-freebsd/freebsd-lib-9.1-r10 sys-libs/libcxx )
- )
- || ( >=sys-devel/binutils-2.18 >=sys-devel/binutils-apple-5.1 )
- kernel_Darwin? ( sys-libs/libcxx )
- clang? ( xml? ( virtual/pkgconfig ) )
- doc? ( dev-python/sphinx )
- libffi? ( virtual/pkgconfig )
- !!<dev-python/configparser-3.3.0.2
- ocaml? ( test? ( dev-ml/ounit ) )
- ${PYTHON_DEPS}"
-RDEPEND="${COMMON_DEPEND}
- clang? ( !<=sys-devel/clang-${PV}-r99
- !>=sys-devel/clang-9999 )
- abi_x86_32? ( !<=app-emulation/emul-linux-x86-baselibs-20130224-r2
- !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] )"
-PDEPEND="clang? ( =sys-devel/clang-${PV}-r100 )"
-
-# pypy gives me around 1700 unresolved tests due to open file limit
-# being exceeded. probably GC does not close them fast enough.
-REQUIRED_USE="${PYTHON_REQUIRED_USE}
- test? ( || ( $(python_gen_useflags 'python*') ) )"
-
-S=${WORKDIR}/${P/_}.src
-
-# Some people actually override that in make.conf. That sucks since
-# we need to run install per-directory, and ninja can't do that...
-# so why did it call itself ninja in the first place?
-CMAKE_MAKEFILE_GENERATOR=emake
-
-pkg_pretend() {
- # in megs
- # !clang !debug !multitarget -O2 400
- # !clang !debug multitarget -O2 550
- # clang !debug !multitarget -O2 950
- # clang !debug multitarget -O2 1200
- # !clang debug multitarget -O2 5G
- # clang !debug multitarget -O0 -g 12G
- # clang debug multitarget -O2 16G
- # clang debug multitarget -O0 -g 14G
-
- local build_size=550
- use clang && build_size=1200
-
- if use debug; then
- ewarn "USE=debug is known to increase the size of package considerably"
- ewarn "and cause the tests to fail."
- ewarn
-
- (( build_size *= 14 ))
- elif is-flagq '-g?(gdb)?([1-9])'; then
- ewarn "The C++ compiler -g option is known to increase the size of the package"
- ewarn "considerably. If you run out of space, please consider removing it."
- ewarn
-
- (( build_size *= 10 ))
- fi
-
- # Multiply by number of ABIs :).
- local abis=( $(multilib_get_enabled_abis) )
- (( build_size *= ${#abis[@]} ))
-
- local CHECKREQS_DISK_BUILD=${build_size}M
- check-reqs_pkg_pretend
-
- if [[ ${MERGE_TYPE} != binary ]]; then
- echo 'int main() {return 0;}' > "${T}"/test.cxx || die
- ebegin "Trying to build a C++11 test program"
- if ! $(tc-getCXX) -std=c++11 -o /dev/null "${T}"/test.cxx; then
- eerror "LLVM-${PV} requires C++11-capable C++ compiler. Your current compiler"
- eerror "does not seem to support -std=c++11 option. Please upgrade your compiler"
- eerror "to gcc-4.7 or an equivalent version supporting C++11."
- die "Currently active compiler does not support -std=c++11"
- fi
- eend ${?}
- fi
-}
-
-pkg_setup() {
- pkg_pretend
-}
-
-src_unpack() {
- default
-
- rm -f "${S}"/tools/clang "${S}"/projects/compiler-rt \
- || die "symlinks removal failed"
-
- if use clang; then
- mv "${WORKDIR}"/cfe-${PV/_}.src "${S}"/tools/clang \
- || die "clang source directory move failed"
- mv "${WORKDIR}"/compiler-rt-${PV/_}.src "${S}"/projects/compiler-rt \
- || die "compiler-rt source directory move failed"
- mv "${WORKDIR}"/clang-tools-extra-${PV/_}.src "${S}"/tools/clang/tools/extra \
- || die "clang-tools-extra source directory move failed"
- fi
-}
-
-src_prepare() {
- epatch "${FILESDIR}"/${PN}-3.2-nodoctargz.patch
- epatch "${FILESDIR}"/${PN}-3.5-gcc-4.9.patch
- epatch "${FILESDIR}"/${PN}-3.6-gentoo-install.patch
- epatch "${FILESDIR}"/${PN}-3.6.0-ocaml-ctypes-0.4.0.patch
- # Make ocaml warnings non-fatal, bug #537308
- sed -e "/RUN/s/-warn-error A//" -i test/Bindings/OCaml/*ml || die
-
- if use clang; then
- # Automatically select active system GCC's libraries, bugs #406163 and #417913
- epatch "${FILESDIR}"/clang-3.5-gentoo-runtime-gcc-detection-v3.patch
-
- epatch "${FILESDIR}"/clang-3.6-gentoo-install.patch
- epatch "${FILESDIR}"/clang-3.4-darwin_prefix-include-paths.patch
- eprefixify tools/clang/lib/Frontend/InitHeaderSearch.cpp
-
- # Fix build fails with using gcc-4.9 on Gentoo/FreeBSD, bug #548444
- epatch "${FILESDIR}"/clang-3.6-fbsd-gcc49.patch
- fi
-
- if use prefix && use clang; then
- sed -i -e "/^CFLAGS /s@-Werror@-I${EPREFIX}/usr/include@" \
- projects/compiler-rt/make/platform/clang_*.mk || die
- fi
-
- local sub_files=(
- Makefile.config.in
- Makefile.rules
- tools/llvm-config/llvm-config.cpp
- )
- use clang && sub_files+=(
- tools/clang/lib/Driver/Tools.cpp
- tools/clang/tools/scan-build/scan-build
- )
-
- # unfortunately ./configure won't listen to --mandir and the-like, so take
- # care of this.
- # note: we're setting the main libdir intentionally.
- # where per-ABI is appropriate, we use $(GENTOO_LIBDIR) make.
- einfo "Fixing install dirs"
- sed -e "s,@libdir@,$(get_libdir),g" \
- -e "s,@PF@,${PF},g" \
- -e "s,@EPREFIX@,${EPREFIX},g" \
- -i "${sub_files[@]}" \
- || die "install paths sed failed"
-
- if use clang; then
- # constantly fails for a long time, likely due to our patches
- rm tools/clang/test/Driver/cross-linux.c || die
- fi
-
- # User patches
- epatch_user
-
- if kernel_is -lt 2 6 32; then
- # on RHEL5, linux/perf_event.h (needing kernel >=2.6.32) is not available.
- # https://llvm.org/bugs/show_bug.cgi?id=17901
- elog "Removing compiler-rt on RHEL 5..."
- rm -r projects/compiler-rt || die "Removing compiler-rt failed."
- fi
-
- python_setup
-}
-
-multilib_src_configure() {
- # disable timestamps since they confuse ccache
- local conf_flags=(
- --disable-timestamps
- --enable-keep-symbols
- --enable-shared
- --with-optimize-option=
- $(tc-is-static-only && echo --disable-shared)
- $(use_enable !debug optimized)
- $(use_enable debug assertions)
- $(use_enable debug expensive-checks)
- $(use_enable libedit)
- $(use_enable ncurses terminfo)
- $(use_enable libffi)
- )
-
- # well, it's used only by clang executable c-index-test
- if multilib_is_native_abi && use clang && use xml; then
- conf_flags+=( XML2CONFIG="$(tc-getPKG_CONFIG) libxml-2.0" )
- else
- conf_flags+=( ac_cv_prog_XML2CONFIG="" )
- fi
-
- local targets bindings
- if use multitarget; then
- targets='all'
- else
- targets='host,cpp'
- use video_cards_radeon && targets+=',r600'
- fi
- conf_flags+=( --enable-targets=${targets} )
-
- use rap && conf_flags+=( --with-default-sysroot="${EPREFIX}" )
-
- if multilib_is_native_abi; then
- use gold && conf_flags+=( --with-binutils-include="${EPREFIX}"/usr/include/ )
- # extra commas don't hurt
- use ocaml && bindings+=',ocaml'
- fi
-
- [[ ${bindings} ]] || bindings='none'
- conf_flags+=( --enable-bindings=${bindings} )
-
- if use libffi; then
- local CPPFLAGS=${CPPFLAGS}
- append-cppflags "$(pkg-config --cflags libffi)"
- fi
-
- # Enable large file support, bug #550708
- append-lfs-flags
- # llvm prefers clang over gcc, so we may need to force that
- tc-export CC CXX
-
- ECONF_SOURCE=${S} \
- econf "${conf_flags[@]}"
-}
-
-set_makeargs() {
- MAKEARGS=(
- VERBOSE=1
- REQUIRES_RTTI=1
- GENTOO_LIBDIR=$(get_libdir)
- )
-
- # for tests, we want it all! otherwise, we may use a little filtering...
- # adding ONLY_TOOLS also disables unittest building...
- if [[ ${EBUILD_PHASE_FUNC} != src_test ]]; then
- local tools=( llvm-config )
- use clang && tools+=( clang )
-
- if multilib_is_native_abi; then
- tools+=(
- opt llvm-as llvm-dis llc llvm-ar llvm-nm llvm-link lli
- llvm-extract llvm-mc llvm-bcanalyzer llvm-diff macho-dump
- llvm-objdump llvm-readobj llvm-rtdyld llvm-dwarfdump llvm-cov
- llvm-size llvm-stress llvm-mcmarkup llvm-profdata
- llvm-symbolizer obj2yaml yaml2obj lto bugpoint
- )
-
- # the build system runs explicitly specified tools in parallel,
- # so we need to split it into two runs
- if [[ ${1} != -1 ]]; then
- # those require lto
- tools+=( llvm-lto )
- use gold && tools+=( gold )
-
- # those require clang :)
- # we need to explicitly specify all its tools
- # since we're passing BUILD_CLANG_ONLY
- use clang && tools+=(
- clang/tools/{clang-check,clang-format,extra}
- )
- fi
- fi
-
- MAKEARGS+=(
- # filter tools + disable unittests implicitly
- ONLY_TOOLS="${tools[*]}"
-
- # this disables unittests & docs from clang
- BUILD_CLANG_ONLY=YES
- )
- fi
-}
-
-multilib_src_compile() {
- local MAKEARGS
- set_makeargs -1
- emake "${MAKEARGS[@]}"
-
- if multilib_is_native_abi; then
- set_makeargs
- emake -C tools "${MAKEARGS[@]}"
-
- if use doc; then
- emake -C "${S}"/docs -f Makefile.sphinx man
- use clang && emake -C "${S}"/tools/clang/docs/tools \
- BUILD_FOR_WEBSITE=1 DST_MAN_DIR="${T}"/ man
- emake -C "${S}"/docs -f Makefile.sphinx html
- fi
- fi
-
- if use debug; then
- pax-mark m Debug+Asserts+Checks/bin/llvm-rtdyld
- pax-mark m Debug+Asserts+Checks/bin/lli
- pax-mark m Debug+Asserts+Checks/bin/lli-child-target
- else
- pax-mark m Release/bin/llvm-rtdyld
- pax-mark m Release/bin/lli
- pax-mark m Release/bin/lli-child-target
- fi
-}
-
-multilib_src_test() {
- local MAKEARGS
- set_makeargs
-
- # build the remaining tools & unittests
- emake "${MAKEARGS[@]}"
-
- pax-mark m unittests/ExecutionEngine/JIT/Release/JITTests
- pax-mark m unittests/ExecutionEngine/MCJIT/Release/MCJITTests
- pax-mark m unittests/Support/Release/SupportTests
-
- # respect TMPDIR!
- local -x LIT_PRESERVES_TMP=1
- emake "${MAKEARGS[@]}" check
- use clang && emake "${MAKEARGS[@]}" -C tools/clang test
-}
-
-src_install() {
- local MULTILIB_CHOST_TOOLS=(
- /usr/bin/llvm-config
- )
-
- local MULTILIB_WRAPPED_HEADERS=(
- /usr/include/llvm/Config/config.h
- /usr/include/llvm/Config/llvm-config.h
- )
-
- if use clang; then
- # note: magic applied below
- MULTILIB_CHOST_TOOLS+=(
- /usr/bin/clang
- /usr/bin/clang++
- /usr/bin/clang-${PV}
- /usr/bin/clang++-${PV}
- )
-
- MULTILIB_WRAPPED_HEADERS+=(
- /usr/include/clang/Config/config.h
- )
- fi
-
- multilib-minimal_src_install
-
- # Remove unnecessary headers on FreeBSD, bug #417171
- use kernel_FreeBSD && use clang && rm "${ED}"usr/lib/clang/${PV}/include/{std,float,iso,limits,tgmath,varargs}*.h
-}
-
-multilib_src_install() {
- local MAKEARGS
- set_makeargs
-
- local root=${D}/_${ABI}
-
- emake "${MAKEARGS[@]}" DESTDIR="${root}" install
- multibuild_merge_root "${root}" "${D}"
-
- if ! multilib_is_native_abi; then
- # Backwards compat, will be happily removed someday.
- dosym "${CHOST}"-llvm-config /usr/bin/llvm-config.${ABI}
- else
- # Install docs.
- if use doc; then
- doman "${S}"/docs/_build/man/*.1
- use clang && doman "${T}"/clang.1
- dohtml -r "${S}"/docs/_build/html/
- else
- if ! use clang; then
- rm "${WORKDIR}"/${PN}-3.6.1-manpages/clang.1 || die
- fi
- doman "${WORKDIR}"/${PN}-3.6.1-manpages/*.1
- fi
-
- # Symlink the gold plugin.
- if use gold; then
- dodir /usr/${CHOST}/binutils-bin/lib/bfd-plugins
- dosym ../../../../$(get_libdir)/LLVMgold.so \
- /usr/${CHOST}/binutils-bin/lib/bfd-plugins/LLVMgold.so
- fi
- fi
-
- # apply CHOST and PV to clang executables
- # they're statically linked so we don't have to worry about the lib
- if use clang; then
- local clang_tools=( clang clang++ )
- local i
-
- # append ${PV} and symlink back
- # TODO: use alternatives.eclass? does that make any sense?
- # maybe with USE=-clang on :0 and USE=clang on older
- for i in "${clang_tools[@]}"; do
- mv "${ED%/}/usr/bin/${i}"{,-${PV}} || die
- dosym "${i}"-${PV} /usr/bin/${i}
- done
-
- # now prepend ${CHOST} and let the multilib-build.eclass symlink it
- if ! multilib_is_native_abi; then
- # non-native? let's replace it with a simple wrapper
- for i in "${clang_tools[@]}"; do
- rm "${ED%/}/usr/bin/${i}-${PV}" || die
- cat > "${T}"/wrapper.tmp <<-_EOF_
- #!${EPREFIX}/bin/sh
- exec "${i}-${PV}" $(get_abi_CFLAGS) "\${@}"
- _EOF_
- newbin "${T}"/wrapper.tmp "${i}-${PV}"
- done
- fi
- fi
-
- # Fix install_names on Darwin. The build system is too complicated
- # to just fix this, so we correct it post-install
- local lib= f= odylib= ndylib= libpv=${PV}
- if [[ ${CHOST} == *-darwin* ]] ; then
- eval $(grep PACKAGE_VERSION= configure)
- [[ -n ${PACKAGE_VERSION} ]] && libpv=${PACKAGE_VERSION}
- libpvminor=${libpv%.[0-9]*}
- for lib in lib{EnhancedDisassembly,LLVM-${libpv},LTO,profile_rt,clang}.dylib LLVMHello.dylib clang/${libpv}/lib/darwin/libclang_rt.asan_{osx,iossim}_dynamic.dylib; do
- # libEnhancedDisassembly is Darwin10 only, so non-fatal
- # + omit clang libs if not enabled
- [[ -f ${ED}/usr/lib/${lib} ]] || continue
-
- ebegin "fixing install_name of $lib"
- install_name_tool \
- -id "${EPREFIX}"/usr/lib/${lib} \
- "${ED}"/usr/lib/${lib}
- eend $?
- done
- for f in "${ED}"/usr/bin/* "${ED}"/usr/lib/lib*.dylib "${ED}"/usr/lib/clang/${libpv}/lib/darwin/*.dylib ; do
- # omit clang libs if not enabled
- [[ -f "${f}" ]] || continue
-
- scanmacho -BF'%n#f' "${f}" | tr ',' '\n' | \
- while read odylib ; do
- ndylib=
- case ${odylib} in
- */libclang.dylib)
- ndylib="${EPREFIX}"/usr/lib/libclang.dylib
- ;;
- */libLLVM-${libpv}.dylib)
- ndylib="${EPREFIX}"/usr/lib/libLLVM-${libpv}.dylib
- ;;
- */libLLVM-${libpvminor}.dylib)
- ndylib="${EPREFIX}"/usr/lib/libLLVM-${libpvminor}.dylib
- ;;
- */libLTO.dylib)
- ndylib="${EPREFIX}"/usr/lib/libLTO.dylib
- ;;
- esac
- if [[ -n ${ndylib} ]] ; then
- ebegin "fixing install_name reference to ${odylib} of ${f##*/}"
- install_name_tool \
- -change "${odylib}" "${ndylib}" \
- "${f}"
- eend $?
- fi
- done
- done
- fi
-}
-
-multilib_src_install_all() {
- insinto /usr/share/vim/vimfiles/syntax
- doins utils/vim/*.vim
-
- if use clang; then
- cd tools/clang || die
-
- if use static-analyzer ; then
- dobin tools/scan-build/ccc-analyzer
- dosym ccc-analyzer /usr/bin/c++-analyzer
- dobin tools/scan-build/scan-build
-
- insinto /usr/share/${PN}
- doins tools/scan-build/scanview.css
- doins tools/scan-build/sorttable.js
- fi
-
- python_inst() {
- if use static-analyzer ; then
- pushd tools/scan-view >/dev/null || die
-
- python_doscript scan-view
-
- touch __init__.py || die
- python_moduleinto clang
- python_domodule __init__.py Reporter.py Resources ScanView.py startfile.py
-
- popd >/dev/null || die
- fi
-
- if use python ; then
- pushd bindings/python/clang >/dev/null || die
-
- python_moduleinto clang
- python_domodule __init__.py cindex.py enumerations.py
-
- popd >/dev/null || die
- fi
- }
- python_foreach_impl python_inst
- fi
-}
diff --git a/sys-devel/llvm/llvm-3.7.0-r1.ebuild b/sys-devel/llvm/llvm-3.7.0-r1.ebuild
deleted file mode 100644
index d894da0..0000000
--- a/sys-devel/llvm/llvm-3.7.0-r1.ebuild
+++ /dev/null
@@ -1,513 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-PYTHON_COMPAT=( python2_7 pypy )
-
-inherit check-reqs cmake-utils eutils flag-o-matic multilib \
- multilib-minimal python-r1 toolchain-funcs pax-utils \
- linux-info
-
-DESCRIPTION="Low Level Virtual Machine"
-HOMEPAGE="http://llvm.org/"
-SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz
- clang? ( http://llvm.org/releases/${PV}/compiler-rt-${PV}.src.tar.xz
- http://llvm.org/releases/${PV}/cfe-${PV}.src.tar.xz
- http://llvm.org/releases/${PV}/clang-tools-extra-${PV}.src.tar.xz )
- lldb? ( http://llvm.org/releases/${PV}/lldb-${PV}.src.tar.xz )
- !doc? ( http://dev.gentoo.org/~voyageur/distfiles/${P}-manpages.tar.bz2 )"
-
-LICENSE="UoI-NCSA"
-SLOT="0/${PV}"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
-IUSE="clang debug doc gold libedit +libffi lldb multitarget ncurses ocaml
- python +static-analyzer test xml video_cards_radeon kernel_Darwin rap"
-
-COMMON_DEPEND="
- sys-libs/zlib:0=
- clang? (
- python? ( ${PYTHON_DEPS} )
- static-analyzer? (
- dev-lang/perl:*
- ${PYTHON_DEPS}
- )
- xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
- )
- gold? ( >=sys-devel/binutils-2.22:*[cxx] )
- libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
- libffi? ( >=virtual/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
- ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] )
- ocaml? (
- dev-lang/ocaml:0=
- dev-ml/findlib
- dev-ml/ocaml-ctypes )"
-# configparser-3.2 breaks the build (3.3 or none at all are fine)
-DEPEND="${COMMON_DEPEND}
- dev-lang/perl
- >=sys-devel/make-3.81
- >=sys-devel/flex-2.5.4
- >=sys-devel/bison-1.875d
- || ( >=sys-devel/gcc-3.0 >=sys-devel/llvm-3.5
- ( >=sys-freebsd/freebsd-lib-9.1-r10 sys-libs/libcxx )
- )
- || ( >=sys-devel/binutils-2.18 >=sys-devel/binutils-apple-5.1 )
- kernel_Darwin? ( sys-libs/libcxx )
- clang? ( xml? ( virtual/pkgconfig ) )
- doc? ( dev-python/sphinx )
- gold? ( sys-libs/binutils-libs )
- libffi? ( virtual/pkgconfig )
- lldb? ( dev-lang/swig )
- !!<dev-python/configparser-3.3.0.2
- ocaml? ( test? ( dev-ml/ounit ) )
- ${PYTHON_DEPS}"
-RDEPEND="${COMMON_DEPEND}
- clang? ( !<=sys-devel/clang-${PV}-r99 )
- abi_x86_32? ( !<=app-emulation/emul-linux-x86-baselibs-20130224-r2
- !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] )"
-PDEPEND="clang? ( =sys-devel/clang-${PV}-r100 )"
-
-# pypy gives me around 1700 unresolved tests due to open file limit
-# being exceeded. probably GC does not close them fast enough.
-REQUIRED_USE="${PYTHON_REQUIRED_USE}
- lldb? ( clang )
- test? ( || ( $(python_gen_useflags 'python*') ) )"
-
-S=${WORKDIR}/${P/_}.src
-
-pkg_pretend() {
- # in megs
- # !clang !debug !multitarget -O2 400
- # !clang !debug multitarget -O2 550
- # clang !debug !multitarget -O2 950
- # clang !debug multitarget -O2 1200
- # !clang debug multitarget -O2 5G
- # clang !debug multitarget -O0 -g 12G
- # clang debug multitarget -O2 16G
- # clang debug multitarget -O0 -g 14G
-
- local build_size=550
- use clang && build_size=1200
-
- if use debug; then
- ewarn "USE=debug is known to increase the size of package considerably"
- ewarn "and cause the tests to fail."
- ewarn
-
- (( build_size *= 14 ))
- elif is-flagq '-g?(gdb)?([1-9])'; then
- ewarn "The C++ compiler -g option is known to increase the size of the package"
- ewarn "considerably. If you run out of space, please consider removing it."
- ewarn
-
- (( build_size *= 10 ))
- fi
-
- # Multiply by number of ABIs :).
- local abis=( $(multilib_get_enabled_abis) )
- (( build_size *= ${#abis[@]} ))
-
- local CHECKREQS_DISK_BUILD=${build_size}M
- check-reqs_pkg_pretend
-
- if [[ ${MERGE_TYPE} != binary ]]; then
- echo 'int main() {return 0;}' > "${T}"/test.cxx || die
- ebegin "Trying to build a C++11 test program"
- if ! $(tc-getCXX) -std=c++11 -o /dev/null "${T}"/test.cxx; then
- eerror "LLVM-${PV} requires C++11-capable C++ compiler. Your current compiler"
- eerror "does not seem to support -std=c++11 option. Please upgrade your compiler"
- eerror "to gcc-4.7 or an equivalent version supporting C++11."
- die "Currently active compiler does not support -std=c++11"
- fi
- eend ${?}
- fi
-}
-
-pkg_setup() {
- pkg_pretend
-}
-
-src_unpack() {
- default
-
- if use clang; then
- mv "${WORKDIR}"/cfe-${PV/_}.src "${S}"/tools/clang \
- || die "clang source directory move failed"
- mv "${WORKDIR}"/compiler-rt-${PV/_}.src "${S}"/projects/compiler-rt \
- || die "compiler-rt source directory move failed"
- mv "${WORKDIR}"/clang-tools-extra-${PV/_}.src "${S}"/tools/clang/tools/extra \
- || die "clang-tools-extra source directory move failed"
- fi
-
- if use lldb; then
- mv "${WORKDIR}"/lldb-${PV/_}.src "${S}"/tools/lldb \
- || die "lldb source directory move failed"
- fi
-}
-
-src_prepare() {
- # Make ocaml warnings non-fatal, bug #537308
- sed -e "/RUN/s/-warn-error A//" -i test/Bindings/OCaml/*ml || die
- # Fix libdir for ocaml bindings install, bug #559134
- epatch "${FILESDIR}"/cmake/${P}-ocaml-multilib.patch
-
- # Make it possible to override Sphinx HTML install dirs
- # https://llvm.org/bugs/show_bug.cgi?id=23780
- epatch "${FILESDIR}"/cmake/0002-cmake-Support-overriding-Sphinx-HTML-doc-install-dir.patch
-
- # Prevent race conditions with parallel Sphinx runs
- # https://llvm.org/bugs/show_bug.cgi?id=23781
- epatch "${FILESDIR}"/cmake/0003-cmake-Add-an-ordering-dep-between-HTML-man-Sphinx-ta.patch
-
- # Prevent installing libgtest
- # https://llvm.org/bugs/show_bug.cgi?id=18341
- epatch "${FILESDIR}"/cmake/0004-cmake-Do-not-install-libgtest.patch
-
- if use clang; then
- # Automatically select active system GCC's libraries, bugs #406163 and #417913
- epatch "${FILESDIR}"/clang-3.5-gentoo-runtime-gcc-detection-v3.patch
-
- epatch "${FILESDIR}"/clang-3.6-gentoo-install.patch
-
- sed -i -e "s^@EPREFIX@^${EPREFIX}^" \
- tools/clang/tools/scan-build/scan-build || die
-
- # Install clang runtime into /usr/lib/clang
- # https://llvm.org/bugs/show_bug.cgi?id=23792
- epatch "${FILESDIR}"/cmake/clang-0001-Install-clang-runtime-into-usr-lib-without-suffix.patch
- epatch "${FILESDIR}"/cmake/compiler-rt-0001-cmake-Install-compiler-rt-into-usr-lib-without-suffi.patch
-
- # Make it possible to override CLANG_LIBDIR_SUFFIX
- # (that is used only to find LLVMgold.so)
- # https://llvm.org/bugs/show_bug.cgi?id=23793
- epatch "${FILESDIR}"/cmake/clang-0002-cmake-Make-CLANG_LIBDIR_SUFFIX-overridable.patch
-
- # Fix WX sections, bug #421527
- find "${S}"/projects/compiler-rt/lib/builtins -type f -name \*.S -exec sed \
- -e '$a\\n#if defined(__linux__) && defined(__ELF__)\n.section .note.GNU-stack,"",%progbits\n#endif' \
- -i {} \; || die
- fi
-
- if use lldb; then
- # Do not install dummy readline.so module from
- # https://llvm.org/bugs/show_bug.cgi?id=18841
- sed -e 's/add_subdirectory(readline)/#&/' \
- -i tools/lldb/scripts/Python/modules/CMakeLists.txt || die
- fi
-
- # User patches
- epatch_user
- if kernel_is -lt 2 6 32; then
- # on RHEL5, linux/perf_event.h (needing kernel >=2.6.32) is not available.
- # https://llvm.org/bugs/show_bug.cgi?id=17901
- elog "Removing compiler-rt on RHEL 5..."
- rm -r projects/compiler-rt || die "Removing compiler-rt failed."
- fi
-
- python_setup
-
- # Native libdir is used to hold LLVMgold.so
- NATIVE_LIBDIR=$(get_libdir)
-}
-
-multilib_src_configure() {
- local targets
- if use multitarget; then
- targets=all
- else
- targets='host;CppBackend'
- use video_cards_radeon && targets+=';AMDGPU'
- fi
-
- local ffi_cflags ffi_ldflags
- if use libffi; then
- ffi_cflags=$(pkg-config --cflags-only-I libffi)
- ffi_ldflags=$(pkg-config --libs-only-L libffi)
- fi
-
- local libdir=$(get_libdir)
- local mycmakeargs=(
- "${mycmakeargs[@]}"
- -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
-
- -DBUILD_SHARED_LIBS=ON
- -DLLVM_ENABLE_TIMESTAMPS=OFF
- -DLLVM_TARGETS_TO_BUILD="${targets}"
- -DLLVM_BUILD_TESTS=$(usex test)
-
- -DLLVM_ENABLE_FFI=$(usex libffi)
- -DLLVM_ENABLE_TERMINFO=$(usex ncurses)
- -DLLVM_ENABLE_ASSERTIONS=$(usex debug)
- -DLLVM_ENABLE_EH=ON
- -DLLVM_ENABLE_RTTI=ON
-
- -DWITH_POLLY=OFF # TODO
-
- -DLLVM_HOST_TRIPLE="${CHOST}"
-
- -DFFI_INCLUDE_DIR="${ffi_cflags#-I}"
- -DFFI_LIBRARY_DIR="${ffi_ldflags#-L}"
-
- -DHAVE_HISTEDIT_H=$(usex libedit)
- )
-
- if use lldb; then
- mycmakeargs+=(
- -DLLDB_DISABLE_LIBEDIT=$(usex !libedit)
- -DLLDB_DISABLE_CURSES=$(usex !ncurses)
- -DLLDB_ENABLE_TERMINFO=$(usex ncurses)
- )
- fi
-
- if ! multilib_is_native_abi || ! use ocaml; then
- mycmakeargs+=(
- -DOCAMLFIND=NO
- )
- fi
-# Note: go bindings have no CMake rules at the moment
-# but let's kill the check in case they are introduced
-# if ! multilib_is_native_abi || ! use go; then
- mycmakeargs+=(
- -DGO_EXECUTABLE=GO_EXECUTABLE-NOTFOUND
- )
-# fi
-
- if multilib_is_native_abi; then
- mycmakeargs+=(
- -DLLVM_BUILD_DOCS=$(usex doc)
- -DLLVM_ENABLE_SPHINX=$(usex doc)
- -DLLVM_ENABLE_DOXYGEN=OFF
- -DLLVM_INSTALL_HTML="${EPREFIX}/usr/share/doc/${PF}/html"
- -DSPHINX_WARNINGS_AS_ERRORS=OFF
- -DLLVM_INSTALL_UTILS=ON
- )
-
- use rap && mycmakeargs+=(
- -DDEFAULT_SYSROOT="${EPREFIX}"
- )
-
- if use clang; then
- mycmakeargs+=(
- -DCLANG_INSTALL_HTML="${EPREFIX}/usr/share/doc/${PF}/clang"
- )
- fi
-
- if use gold; then
- mycmakeargs+=(
- -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include
- )
- fi
-
- if use lldb; then
- mycmakeargs+=(
- -DLLDB_DISABLE_PYTHON=$(usex !python)
- )
- fi
-
- else
- if use clang; then
- mycmakeargs+=(
- # disable compiler-rt on non-native ABI because:
- # 1. it fails to configure because of -m32
- # 2. it is shared between ABIs so no point building
- # it multiple times
- -DLLVM_EXTERNAL_COMPILER_RT_BUILD=OFF
- -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_BUILD=OFF
- )
- fi
- if use lldb; then
- mycmakeargs+=(
- # only run swig on native abi
- -DLLDB_DISABLE_PYTHON=ON
- )
- fi
- fi
-
- if use clang; then
- mycmakeargs+=(
- -DCLANG_ENABLE_ARCMT=$(usex static-analyzer)
- -DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer)
- -DCLANG_LIBDIR_SUFFIX="${NATIVE_LIBDIR#lib}"
- )
-
- # -- not needed when compiler-rt is built with host compiler --
- # cmake passes host C*FLAGS to compiler-rt build
- # which is performed using clang, so we need to filter out
- # some flags clang does not support
- # (if you know some more flags that don't work, let us know)
- #filter-flags -msahf -frecord-gcc-switches
- fi
-
- cmake-utils_src_configure
-}
-
-multilib_src_compile() {
- cmake-utils_src_compile
- # TODO: not sure why this target is not correctly called
- multilib_is_native_abi && use doc && use ocaml && cmake-utils_src_make docs/ocaml_doc
-
- 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
- local test_targets=( check )
- # clang tests won't work on non-native ABI because we skip compiler-rt
- multilib_is_native_abi && use clang && test_targets+=( check-clang )
- cmake-utils_src_make "${test_targets[@]}"
-}
-
-src_install() {
- local MULTILIB_CHOST_TOOLS=(
- /usr/bin/llvm-config
- )
-
- local MULTILIB_WRAPPED_HEADERS=(
- /usr/include/llvm/Config/config.h
- /usr/include/llvm/Config/llvm-config.h
- )
-
- if use clang; then
- # note: magic applied in multilib_src_install()!
- CLANG_VERSION=${PV%.*}
-
- MULTILIB_CHOST_TOOLS+=(
- /usr/bin/clang
- /usr/bin/clang++
- /usr/bin/clang-cl
- /usr/bin/clang-${CLANG_VERSION}
- /usr/bin/clang++-${CLANG_VERSION}
- /usr/bin/clang-cl-${CLANG_VERSION}
- )
-
- MULTILIB_WRAPPED_HEADERS+=(
- /usr/include/clang/Config/config.h
- )
- fi
-
- multilib-minimal_src_install
-}
-
-multilib_src_install() {
- cmake-utils_src_install
-
- if multilib_is_native_abi; then
- # Install man pages.
- use doc || doman "${WORKDIR}"/${P}-manpages/*.1
-
- # Symlink the gold plugin.
- if use gold; then
- dodir "/usr/${CHOST}/binutils-bin/lib/bfd-plugins"
- dosym "../../../../$(get_libdir)/LLVMgold.so" \
- "/usr/${CHOST}/binutils-bin/lib/bfd-plugins/LLVMgold.so"
- fi
- fi
-
- # apply CHOST and CLANG_VERSION to clang executables
- # they're statically linked so we don't have to worry about the lib
- if use clang; then
- local clang_tools=( clang clang++ clang-cl )
- local i
-
- # cmake gives us:
- # - clang-X.Y
- # - clang -> clang-X.Y
- # - clang++, clang-cl -> clang
- # we want to have:
- # - clang-X.Y
- # - clang++-X.Y, clang-cl-X.Y -> clang-X.Y
- # - clang, clang++, clang-cl -> clang*-X.Y
- # so we need to fix the two tools
- for i in "${clang_tools[@]:1}"; do
- rm "${ED%/}/usr/bin/${i}" || die
- dosym "clang-${CLANG_VERSION}" "/usr/bin/${i}-${CLANG_VERSION}"
- dosym "${i}-${CLANG_VERSION}" "/usr/bin/${i}"
- done
-
- # now prepend ${CHOST} and let the multilib-build.eclass symlink it
- if ! multilib_is_native_abi; then
- # non-native? let's replace it with a simple wrapper
- for i in "${clang_tools[@]}"; do
- rm "${ED%/}/usr/bin/${i}-${CLANG_VERSION}" || die
- cat > "${T}"/wrapper.tmp <<-_EOF_
- #!${EPREFIX}/bin/sh
- exec "${i}-${CLANG_VERSION}" $(get_abi_CFLAGS) "\${@}"
- _EOF_
- newbin "${T}"/wrapper.tmp "${i}-${CLANG_VERSION}"
- done
- fi
- fi
-}
-
-multilib_src_install_all() {
- insinto /usr/share/vim/vimfiles
- doins -r utils/vim/*/
- # some users may find it useful
- dodoc utils/vim/vimrc
-
- if use clang; then
- pushd tools/clang >/dev/null || die
-
- if use static-analyzer ; then
- pushd tools/scan-build >/dev/null || die
-
- dobin ccc-analyzer scan-build
- dosym ccc-analyzer /usr/bin/c++-analyzer
- doman scan-build.1
-
- insinto /usr/share/llvm
- doins scanview.css sorttable.js
-
- popd >/dev/null || die
- fi
-
- python_inst() {
- if use static-analyzer ; then
- pushd tools/scan-view >/dev/null || die
-
- python_doscript scan-view
-
- touch __init__.py || die
- python_moduleinto clang
- python_domodule *.py Resources
-
- popd >/dev/null || die
- fi
-
- if use python ; then
- pushd bindings/python/clang >/dev/null || die
-
- python_moduleinto clang
- python_domodule *.py
-
- popd >/dev/null || die
- fi
-
- # AddressSanitizer symbolizer (currently separate)
- # Removed for RHEL5.
- if kernel_is -ge 2 6 32; then
- python_doscript "${S}"/projects/compiler-rt/lib/asan/scripts/asan_symbolize.py
- fi
- }
- python_foreach_impl python_inst
- popd >/dev/null || die
- fi
-}
-
-pkg_postinst() {
- if use clang; then
- elog "To enable OpenMP support in clang, install sys-libs/libomp"
- elog "and use the '-fopenmp=libomp' command line option"
- fi
-}
diff --git a/sys-devel/llvm/llvm-3.7.0.ebuild b/sys-devel/llvm/llvm-3.7.0.ebuild
deleted file mode 100644
index 8da56ff..0000000
--- a/sys-devel/llvm/llvm-3.7.0.ebuild
+++ /dev/null
@@ -1,492 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
-PYTHON_COMPAT=( python2_7 pypy )
-
-inherit check-reqs cmake-utils eutils flag-o-matic multilib \
- multilib-minimal python-r1 toolchain-funcs pax-utils
-
-DESCRIPTION="Low Level Virtual Machine"
-HOMEPAGE="http://llvm.org/"
-SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz
- clang? ( http://llvm.org/releases/${PV}/compiler-rt-${PV}.src.tar.xz
- http://llvm.org/releases/${PV}/cfe-${PV}.src.tar.xz
- http://llvm.org/releases/${PV}/clang-tools-extra-${PV}.src.tar.xz )
- lldb? ( http://llvm.org/releases/${PV}/lldb-${PV}.src.tar.xz )
- !doc? ( http://dev.gentoo.org/~voyageur/distfiles/${P}-manpages.tar.bz2 )"
-
-LICENSE="UoI-NCSA"
-SLOT="0/${PV}"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
-IUSE="clang debug doc gold libedit +libffi lldb multitarget ncurses ocaml
- python +static-analyzer test xml video_cards_radeon kernel_Darwin"
-
-COMMON_DEPEND="
- sys-libs/zlib:0=
- clang? (
- python? ( ${PYTHON_DEPS} )
- static-analyzer? (
- dev-lang/perl:*
- ${PYTHON_DEPS}
- )
- xml? ( dev-libs/libxml2:2= )
- )
- gold? ( >=sys-devel/binutils-2.22:*[cxx] )
- libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
- libffi? ( >=virtual/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
- ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] )
- ocaml? (
- dev-lang/ocaml:0=
- dev-ml/findlib
- dev-ml/ocaml-ctypes )"
-# configparser-3.2 breaks the build (3.3 or none at all are fine)
-DEPEND="${COMMON_DEPEND}
- dev-lang/perl
- >=sys-devel/make-3.81
- >=sys-devel/flex-2.5.4
- >=sys-devel/bison-1.875d
- || ( >=sys-devel/gcc-3.0 >=sys-devel/llvm-3.5
- ( >=sys-freebsd/freebsd-lib-9.1-r10 sys-libs/libcxx )
- )
- || ( >=sys-devel/binutils-2.18 >=sys-devel/binutils-apple-5.1 )
- kernel_Darwin? ( sys-libs/libcxx )
- clang? ( xml? ( virtual/pkgconfig ) )
- doc? ( dev-python/sphinx )
- libffi? ( virtual/pkgconfig )
- lldb? ( dev-lang/swig )
- !!<dev-python/configparser-3.3.0.2
- ocaml? ( test? ( dev-ml/ounit ) )
- ${PYTHON_DEPS}"
-RDEPEND="${COMMON_DEPEND}
- clang? ( !<=sys-devel/clang-${PV}-r99 )
- abi_x86_32? ( !<=app-emulation/emul-linux-x86-baselibs-20130224-r2
- !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] )"
-PDEPEND="clang? ( =sys-devel/clang-${PV}-r100 )"
-
-# pypy gives me around 1700 unresolved tests due to open file limit
-# being exceeded. probably GC does not close them fast enough.
-REQUIRED_USE="${PYTHON_REQUIRED_USE}
- lldb? ( clang )
- test? ( || ( $(python_gen_useflags 'python*') ) )"
-
-S=${WORKDIR}/${P/_}.src
-
-pkg_pretend() {
- # in megs
- # !clang !debug !multitarget -O2 400
- # !clang !debug multitarget -O2 550
- # clang !debug !multitarget -O2 950
- # clang !debug multitarget -O2 1200
- # !clang debug multitarget -O2 5G
- # clang !debug multitarget -O0 -g 12G
- # clang debug multitarget -O2 16G
- # clang debug multitarget -O0 -g 14G
-
- local build_size=550
- use clang && build_size=1200
-
- if use debug; then
- ewarn "USE=debug is known to increase the size of package considerably"
- ewarn "and cause the tests to fail."
- ewarn
-
- (( build_size *= 14 ))
- elif is-flagq '-g?(gdb)?([1-9])'; then
- ewarn "The C++ compiler -g option is known to increase the size of the package"
- ewarn "considerably. If you run out of space, please consider removing it."
- ewarn
-
- (( build_size *= 10 ))
- fi
-
- # Multiply by number of ABIs :).
- local abis=( $(multilib_get_enabled_abis) )
- (( build_size *= ${#abis[@]} ))
-
- local CHECKREQS_DISK_BUILD=${build_size}M
- check-reqs_pkg_pretend
-
- if [[ ${MERGE_TYPE} != binary ]]; then
- echo 'int main() {return 0;}' > "${T}"/test.cxx || die
- ebegin "Trying to build a C++11 test program"
- if ! $(tc-getCXX) -std=c++11 -o /dev/null "${T}"/test.cxx; then
- eerror "LLVM-${PV} requires C++11-capable C++ compiler. Your current compiler"
- eerror "does not seem to support -std=c++11 option. Please upgrade your compiler"
- eerror "to gcc-4.7 or an equivalent version supporting C++11."
- die "Currently active compiler does not support -std=c++11"
- fi
- eend ${?}
- fi
-}
-
-pkg_setup() {
- pkg_pretend
-}
-
-src_unpack() {
- default
-
- if use clang; then
- mv "${WORKDIR}"/cfe-${PV/_}.src "${S}"/tools/clang \
- || die "clang source directory move failed"
- mv "${WORKDIR}"/compiler-rt-${PV/_}.src "${S}"/projects/compiler-rt \
- || die "compiler-rt source directory move failed"
- mv "${WORKDIR}"/clang-tools-extra-${PV/_}.src "${S}"/tools/clang/tools/extra \
- || die "clang-tools-extra source directory move failed"
- fi
-
- if use lldb; then
- mv "${WORKDIR}"/lldb-${PV/_}.src "${S}"/tools/lldb \
- || die "lldb source directory move failed"
- fi
-}
-
-src_prepare() {
- # Make ocaml warnings non-fatal, bug #537308
- sed -e "/RUN/s/-warn-error A//" -i test/Bindings/OCaml/*ml || die
- # Fix libdir for ocaml bindings install, bug #559134
- epatch "${FILESDIR}"/cmake/${P}-ocaml-multilib.patch
-
- # Make it possible to override Sphinx HTML install dirs
- # https://llvm.org/bugs/show_bug.cgi?id=23780
- epatch "${FILESDIR}"/cmake/0002-cmake-Support-overriding-Sphinx-HTML-doc-install-dir.patch
-
- # Prevent race conditions with parallel Sphinx runs
- # https://llvm.org/bugs/show_bug.cgi?id=23781
- epatch "${FILESDIR}"/cmake/0003-cmake-Add-an-ordering-dep-between-HTML-man-Sphinx-ta.patch
-
- # Prevent installing libgtest
- # https://llvm.org/bugs/show_bug.cgi?id=18341
- epatch "${FILESDIR}"/cmake/0004-cmake-Do-not-install-libgtest.patch
-
- if use clang; then
- # Automatically select active system GCC's libraries, bugs #406163 and #417913
- epatch "${FILESDIR}"/clang-3.5-gentoo-runtime-gcc-detection-v3.patch
-
- epatch "${FILESDIR}"/clang-3.6-gentoo-install.patch
-
- sed -i -e "s^@EPREFIX@^${EPREFIX}^" \
- tools/clang/tools/scan-build/scan-build || die
-
- # Install clang runtime into /usr/lib/clang
- # https://llvm.org/bugs/show_bug.cgi?id=23792
- epatch "${FILESDIR}"/cmake/clang-0001-Install-clang-runtime-into-usr-lib-without-suffix.patch
- epatch "${FILESDIR}"/cmake/compiler-rt-0001-cmake-Install-compiler-rt-into-usr-lib-without-suffi.patch
-
- # Make it possible to override CLANG_LIBDIR_SUFFIX
- # (that is used only to find LLVMgold.so)
- # https://llvm.org/bugs/show_bug.cgi?id=23793
- epatch "${FILESDIR}"/cmake/clang-0002-cmake-Make-CLANG_LIBDIR_SUFFIX-overridable.patch
-
- # Fix WX sections, bug #421527
- find "${S}"/projects/compiler-rt/lib/builtins -type f -name \*.S -exec sed \
- -e '$a\\n#if defined(__linux__) && defined(__ELF__)\n.section .note.GNU-stack,"",%progbits\n#endif' \
- -i {} \; || die
-
- # Workaround bug #553416 until upstream fixes it
- epatch "${FILESDIR}"/clang-3.7-strip_doc_refs.patch
- fi
-
- if use lldb; then
- # Do not install dummy readline.so module from
- # https://llvm.org/bugs/show_bug.cgi?id=18841
- sed -e 's/add_subdirectory(readline)/#&/' \
- -i tools/lldb/scripts/Python/modules/CMakeLists.txt || die
- fi
-
- # User patches
- epatch_user
-
- python_setup
-
- # Native libdir is used to hold LLVMgold.so
- NATIVE_LIBDIR=$(get_libdir)
-}
-
-multilib_src_configure() {
- local targets
- if use multitarget; then
- targets=all
- else
- targets='host;CppBackend'
- use video_cards_radeon && targets+=';AMDGPU'
- fi
-
- local ffi_cflags ffi_ldflags
- if use libffi; then
- ffi_cflags=$(pkg-config --cflags-only-I libffi)
- ffi_ldflags=$(pkg-config --libs-only-L libffi)
- fi
-
- local libdir=$(get_libdir)
- local mycmakeargs=(
- "${mycmakeargs[@]}"
- -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
-
- -DBUILD_SHARED_LIBS=ON
- -DLLVM_ENABLE_TIMESTAMPS=OFF
- -DLLVM_TARGETS_TO_BUILD="${targets}"
- -DLLVM_BUILD_TESTS=$(usex test)
-
- -DLLVM_ENABLE_FFI=$(usex libffi)
- -DLLVM_ENABLE_TERMINFO=$(usex ncurses)
- -DLLVM_ENABLE_ASSERTIONS=$(usex debug)
- -DLLVM_ENABLE_EH=ON
- -DLLVM_ENABLE_RTTI=ON
-
- -DWITH_POLLY=OFF # TODO
-
- -DLLVM_HOST_TRIPLE="${CHOST}"
-
- -DFFI_INCLUDE_DIR="${ffi_cflags#-I}"
- -DFFI_LIBRARY_DIR="${ffi_ldflags#-L}"
-
- -DHAVE_HISTEDIT_H=$(usex libedit)
- )
-
- if use lldb; then
- mycmakeargs+=(
- -DLLDB_DISABLE_LIBEDIT=$(usex !libedit)
- -DLLDB_DISABLE_CURSES=$(usex !ncurses)
- -DLLDB_ENABLE_TERMINFO=$(usex ncurses)
- )
- fi
-
- if ! multilib_is_native_abi || ! use ocaml; then
- mycmakeargs+=(
- -DOCAMLFIND=NO
- )
- fi
-# Note: go bindings have no CMake rules at the moment
-# but let's kill the check in case they are introduced
-# if ! multilib_is_native_abi || ! use go; then
- mycmakeargs+=(
- -DGO_EXECUTABLE=GO_EXECUTABLE-NOTFOUND
- )
-# fi
-
- if multilib_is_native_abi; then
- mycmakeargs+=(
- -DLLVM_BUILD_DOCS=$(usex doc)
- -DLLVM_ENABLE_SPHINX=$(usex doc)
- -DLLVM_ENABLE_DOXYGEN=OFF
- -DLLVM_INSTALL_HTML="${EPREFIX}/usr/share/doc/${PF}/html"
- )
-
- if use clang; then
- mycmakeargs+=(
- -DCLANG_INSTALL_HTML="${EPREFIX}/usr/share/doc/${PF}/clang"
- )
- fi
-
- if use gold; then
- mycmakeargs+=(
- -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include
- )
- fi
-
- if use lldb; then
- mycmakeargs+=(
- -DLLDB_DISABLE_PYTHON=$(usex !python)
- )
- fi
-
- else
- if use clang; then
- mycmakeargs+=(
- # disable compiler-rt on non-native ABI because:
- # 1. it fails to configure because of -m32
- # 2. it is shared between ABIs so no point building
- # it multiple times
- -DLLVM_EXTERNAL_COMPILER_RT_BUILD=OFF
- -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_BUILD=OFF
- )
- fi
- if use lldb; then
- mycmakeargs+=(
- # only run swig on native abi
- -DLLDB_DISABLE_PYTHON=ON
- )
- fi
- fi
-
- if use clang; then
- mycmakeargs+=(
- -DCLANG_ENABLE_ARCMT=$(usex static-analyzer)
- -DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer)
- -DCLANG_LIBDIR_SUFFIX="${NATIVE_LIBDIR#lib}"
- )
-
- # -- not needed when compiler-rt is built with host compiler --
- # cmake passes host C*FLAGS to compiler-rt build
- # which is performed using clang, so we need to filter out
- # some flags clang does not support
- # (if you know some more flags that don't work, let us know)
- #filter-flags -msahf -frecord-gcc-switches
- fi
-
- cmake-utils_src_configure
-}
-
-multilib_src_compile() {
- cmake-utils_src_compile
- # TODO: not sure why this target is not correctly called
- multilib_is_native_abi && use doc && use ocaml && cmake-utils_src_make docs/ocaml_doc
-
- 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
- local test_targets=( check )
- # clang tests won't work on non-native ABI because we skip compiler-rt
- multilib_is_native_abi && use clang && test_targets+=( check-clang )
- cmake-utils_src_make "${test_targets[@]}"
-}
-
-src_install() {
- local MULTILIB_CHOST_TOOLS=(
- /usr/bin/llvm-config
- )
-
- local MULTILIB_WRAPPED_HEADERS=(
- /usr/include/llvm/Config/config.h
- /usr/include/llvm/Config/llvm-config.h
- )
-
- if use clang; then
- # note: magic applied in multilib_src_install()!
- CLANG_VERSION=${PV%.*}
-
- MULTILIB_CHOST_TOOLS+=(
- /usr/bin/clang
- /usr/bin/clang++
- /usr/bin/clang-cl
- /usr/bin/clang-${CLANG_VERSION}
- /usr/bin/clang++-${CLANG_VERSION}
- /usr/bin/clang-cl-${CLANG_VERSION}
- )
-
- MULTILIB_WRAPPED_HEADERS+=(
- /usr/include/clang/Config/config.h
- )
- fi
-
- multilib-minimal_src_install
-}
-
-multilib_src_install() {
- cmake-utils_src_install
-
- if multilib_is_native_abi; then
- # Install man pages.
- use doc || doman "${WORKDIR}"/${P}-manpages/*.1
-
- # Symlink the gold plugin.
- if use gold; then
- dodir "/usr/${CHOST}/binutils-bin/lib/bfd-plugins"
- dosym "../../../../$(get_libdir)/LLVMgold.so" \
- "/usr/${CHOST}/binutils-bin/lib/bfd-plugins/LLVMgold.so"
- fi
- fi
-
- # apply CHOST and CLANG_VERSION to clang executables
- # they're statically linked so we don't have to worry about the lib
- if use clang; then
- local clang_tools=( clang clang++ clang-cl )
- local i
-
- # cmake gives us:
- # - clang-X.Y
- # - clang -> clang-X.Y
- # - clang++, clang-cl -> clang
- # we want to have:
- # - clang-X.Y
- # - clang++-X.Y, clang-cl-X.Y -> clang-X.Y
- # - clang, clang++, clang-cl -> clang*-X.Y
- # so we need to fix the two tools
- for i in "${clang_tools[@]:1}"; do
- rm "${ED%/}/usr/bin/${i}" || die
- dosym "clang-${CLANG_VERSION}" "/usr/bin/${i}-${CLANG_VERSION}"
- dosym "${i}-${CLANG_VERSION}" "/usr/bin/${i}"
- done
-
- # now prepend ${CHOST} and let the multilib-build.eclass symlink it
- if ! multilib_is_native_abi; then
- # non-native? let's replace it with a simple wrapper
- for i in "${clang_tools[@]}"; do
- rm "${ED%/}/usr/bin/${i}-${CLANG_VERSION}" || die
- cat > "${T}"/wrapper.tmp <<-_EOF_
- #!${EPREFIX}/bin/sh
- exec "${i}-${CLANG_VERSION}" $(get_abi_CFLAGS) "\${@}"
- _EOF_
- newbin "${T}"/wrapper.tmp "${i}-${CLANG_VERSION}"
- done
- fi
- fi
-}
-
-multilib_src_install_all() {
- insinto /usr/share/vim/vimfiles
- doins -r utils/vim/*/
- # some users may find it useful
- dodoc utils/vim/vimrc
-
- if use clang; then
- pushd tools/clang >/dev/null || die
-
- if use static-analyzer ; then
- pushd tools/scan-build >/dev/null || die
-
- dobin ccc-analyzer scan-build
- dosym ccc-analyzer /usr/bin/c++-analyzer
- doman scan-build.1
-
- insinto /usr/share/llvm
- doins scanview.css sorttable.js
-
- popd >/dev/null || die
- fi
-
- python_inst() {
- if use static-analyzer ; then
- pushd tools/scan-view >/dev/null || die
-
- python_doscript scan-view
-
- touch __init__.py || die
- python_moduleinto clang
- python_domodule *.py Resources
-
- popd >/dev/null || die
- fi
-
- if use python ; then
- pushd bindings/python/clang >/dev/null || die
-
- python_moduleinto clang
- python_domodule *.py
-
- popd >/dev/null || die
- fi
-
- # AddressSanitizer symbolizer (currently separate)
- python_doscript "${S}"/projects/compiler-rt/lib/asan/scripts/asan_symbolize.py
- }
- python_foreach_impl python_inst
- popd >/dev/null || die
- fi
-}
diff --git a/sys-devel/llvm/llvm-9999.ebuild b/sys-devel/llvm/llvm-3.8.0-r3.ebuild
index 80eef1b..98b01a8 100644
--- a/sys-devel/llvm/llvm-9999.ebuild
+++ b/sys-devel/llvm/llvm-3.8.0-r3.ebuild
@@ -7,37 +7,45 @@ EAPI=6
: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
PYTHON_COMPAT=( python2_7 )
-inherit check-reqs cmake-utils eutils flag-o-matic git-r3 multilib \
- multilib-minimal python-single-r1 toolchain-funcs pax-utils
+inherit check-reqs cmake-utils eutils flag-o-matic multilib \
+ multilib-minimal python-single-r1 toolchain-funcs pax-utils prefix
DESCRIPTION="Low Level Virtual Machine"
HOMEPAGE="http://llvm.org/"
-SRC_URI=""
-EGIT_REPO_URI="http://llvm.org/git/llvm.git
- https://github.com/llvm-mirror/llvm.git"
+SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz
+ clang? ( http://llvm.org/releases/${PV}/compiler-rt-${PV}.src.tar.xz
+ http://llvm.org/releases/${PV}/cfe-${PV}.src.tar.xz
+ http://llvm.org/releases/${PV}/clang-tools-extra-${PV}.src.tar.xz )
+ lldb? ( http://llvm.org/releases/${PV}/lldb-${PV}.src.tar.xz )
+ !doc? ( http://dev.gentoo.org/~voyageur/distfiles/${PN}-3.8.0-manpages.tar.bz2 )"
LICENSE="UoI-NCSA"
SLOT="0/${PV}"
-KEYWORDS=""
-IUSE="clang debug +doc gold libedit +libffi lldb multitarget ncurses ocaml
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="clang debug doc gold libedit +libffi lldb multitarget ncurses ocaml
python +static-analyzer test xml video_cards_radeon
kernel_Darwin kernel_FreeBSD"
COMMON_DEPEND="
sys-libs/zlib:0=
clang? (
- static-analyzer? ( dev-lang/perl:* )
+ python? ( ${PYTHON_DEPS} )
+ static-analyzer? (
+ dev-lang/perl:*
+ ${PYTHON_DEPS}
+ )
xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
- ${PYTHON_DEPS}
)
gold? ( >=sys-devel/binutils-2.22:*[cxx] )
libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
libffi? ( >=virtual/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
+ lldb? ( dev-python/six[${PYTHON_USEDEP}] )
ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] )
ocaml? (
>=dev-lang/ocaml-4.00.0:0=
dev-ml/findlib
- dev-ml/ocaml-ctypes )"
+ dev-ml/ocaml-ctypes
+ !!<=sys-devel/llvm-3.7.0-r1[ocaml] )"
# configparser-3.2 breaks the build (3.3 or none at all are fine)
DEPEND="${COMMON_DEPEND}
dev-lang/perl
@@ -68,6 +76,8 @@ PDEPEND="clang? ( =sys-devel/clang-${PV}-r100 )"
REQUIRED_USE="${PYTHON_REQUIRED_USE}
lldb? ( clang xml )"
+S=${WORKDIR}/${P/_}.src
+
pkg_pretend() {
# in megs
# !clang !debug !multitarget -O2 400
@@ -109,36 +119,26 @@ pkg_setup() {
}
src_unpack() {
- if use clang; then
- git-r3_fetch "http://llvm.org/git/compiler-rt.git
- https://github.com/llvm-mirror/compiler-rt.git"
- git-r3_fetch "http://llvm.org/git/clang.git
- https://github.com/llvm-mirror/clang.git"
- git-r3_fetch "http://llvm.org/git/clang-tools-extra.git
- https://github.com/llvm-mirror/clang-tools-extra.git"
- fi
- if use lldb; then
- git-r3_fetch "http://llvm.org/git/lldb.git
- https://github.com/llvm-mirror/lldb.git"
- fi
- git-r3_fetch
+ default
if use clang; then
- git-r3_checkout http://llvm.org/git/compiler-rt.git \
- "${S}"/projects/compiler-rt
- git-r3_checkout http://llvm.org/git/clang.git \
- "${S}"/tools/clang
- git-r3_checkout http://llvm.org/git/clang-tools-extra.git \
- "${S}"/tools/clang/tools/extra
+ mv "${WORKDIR}"/cfe-${PV/_}.src "${S}"/tools/clang \
+ || die "clang source directory move failed"
+ mv "${WORKDIR}"/compiler-rt-${PV/_}.src "${S}"/projects/compiler-rt \
+ || die "compiler-rt source directory move failed"
+ mv "${WORKDIR}"/clang-tools-extra-${PV/_}.src "${S}"/tools/clang/tools/extra \
+ || die "clang-tools-extra source directory move failed"
fi
+
if use lldb; then
- git-r3_checkout http://llvm.org/git/lldb.git \
- "${S}"/tools/lldb
+ mv "${WORKDIR}"/lldb-${PV/_}.src "${S}"/tools/lldb \
+ || die "lldb source directory move failed"
fi
- git-r3_checkout
}
src_prepare() {
+ python_setup
+
# Make ocaml warnings non-fatal, bug #537308
sed -e "/RUN/s/-warn-error A//" -i test/Bindings/OCaml/*ml || die
# Fix libdir for ocaml bindings install, bug #559134
@@ -163,7 +163,7 @@ src_prepare() {
# Fix llvm-config for shared linking and sane flags
# https://bugs.gentoo.org/show_bug.cgi?id=565358
- eapply "${FILESDIR}"/llvm-3.9-llvm-config.patch
+ eapply "${FILESDIR}"/llvm-3.8-llvm-config.patch
# Restore SOVERSIONs for shared libraries
# https://bugs.gentoo.org/show_bug.cgi?id=578392
@@ -172,24 +172,52 @@ src_prepare() {
# disable use of SDK on OSX, bug #568758
sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die
+ # Workaround, can be compiled with gcc on Gentoo/FreeBSD, bug #578064
+ use kernel_FreeBSD && tc-is-gcc && append-cppflags "-D_GLIBCXX_USE_C99"
+
if use clang; then
# Automatically select active system GCC's libraries, bugs #406163 and #417913
eapply "${FILESDIR}"/clang-3.5-gentoo-runtime-gcc-detection-v3.patch
+ # Support gcc4.9 search paths
+ # https://github.com/llvm-mirror/clang/commit/af4db76e059c1a3
+ eapply "${FILESDIR}"/clang-3.8-gcc4.9-search-path.patch
+
+ eapply "${FILESDIR}"/clang-3.4-darwin_prefix-include-paths.patch
+ eprefixify tools/clang/lib/Frontend/InitHeaderSearch.cpp
+
+ sed -i -e "s^@EPREFIX@^${EPREFIX}^" \
+ tools/clang/tools/scan-build/bin/scan-build || die
+
# Install clang runtime into /usr/lib/clang
# https://llvm.org/bugs/show_bug.cgi?id=23792
eapply "${FILESDIR}"/cmake/clang-0001-Install-clang-runtime-into-usr-lib-without-suffix-3.8.patch
eapply "${FILESDIR}"/cmake/compiler-rt-0001-cmake-Install-compiler-rt-into-usr-lib-without-suffi.patch
+ # Do not force -march flags on arm platforms
+ # https://bugs.gentoo.org/show_bug.cgi?id=562706
+ eapply "${FILESDIR}"/cmake/${PN}-3.8.0-compiler_rt_arm_march_flags.patch
+
# Make it possible to override CLANG_LIBDIR_SUFFIX
# (that is used only to find LLVMgold.so)
# https://llvm.org/bugs/show_bug.cgi?id=23793
eapply "${FILESDIR}"/cmake/clang-0002-cmake-Make-CLANG_LIBDIR_SUFFIX-overridable.patch
+ # Fix git-clang-format shebang, bug #562688
+ python_fix_shebang tools/clang/tools/clang-format/git-clang-format
+
+ # Fix 'stdarg.h' file not found on Gentoo/FreeBSD, bug #578064
+ # https://llvm.org/bugs/show_bug.cgi?id=26651
+ eapply "${FILESDIR}"/clang-3.8-compiler-rt-fbsd.patch
+
+ pushd projects/compiler-rt >/dev/null || die
+
# Fix WX sections, bug #421527
- find "${S}"/projects/compiler-rt/lib/builtins -type f -name \*.S -exec sed \
- -e '$a\\n#if defined(__linux__) && defined(__ELF__)\n.section .note.GNU-stack,"",%progbits\n#endif' \
- -i {} \; || die
+ find lib/builtins -type f -name '*.S' -exec sed \
+ -e '$a\\n#if defined(__linux__) && defined(__ELF__)\n.section .note.GNU-stack,"",%progbits\n#endif' \
+ -i {} + || die
+
+ popd >/dev/null || die
fi
if use lldb; then
@@ -197,13 +225,13 @@ src_prepare() {
# https://llvm.org/bugs/show_bug.cgi?id=18841
sed -e 's/add_subdirectory(readline)/#&/' \
-i tools/lldb/scripts/Python/modules/CMakeLists.txt || die
+ # Do not install bundled six module
+ eapply "${FILESDIR}"/${PN}-3.8-lldb_six.patch
fi
# User patches
eapply_user
- python_setup
-
# Native libdir is used to hold LLVMgold.so
NATIVE_LIBDIR=$(get_libdir)
}
@@ -340,6 +368,23 @@ multilib_src_configure() {
#filter-flags -msahf -frecord-gcc-switches
fi
+ if tc-is-cross-compiler; then
+ [[ -x "/usr/bin/llvm-tblgen" ]] \
+ || die "/usr/bin/llvm-tblgen not found or usable"
+ mycmakeargs+=(
+ -DCMAKE_CROSSCOMPILING=ON
+ -DLLVM_TABLEGEN=/usr/bin/llvm-tblgen
+ )
+
+ if use clang; then
+ [[ -x "/usr/bin/clang-tblgen" ]] \
+ || die "/usr/bin/clang-tblgen not found or usable"
+ mycmakeargs+=(
+ -DCLANG_TABLEGEN=/usr/bin/clang-tblgen
+ )
+ fi
+ fi
+
cmake-utils_src_configure
}
@@ -380,7 +425,7 @@ src_install() {
if use clang; then
# note: magic applied in multilib_src_install()!
- CLANG_VERSION=3.9
+ CLANG_VERSION=${PV%.*}
MULTILIB_CHOST_TOOLS+=(
/usr/bin/clang
@@ -408,8 +453,8 @@ multilib_src_install() {
cmake-utils_src_install
if multilib_is_native_abi; then
- # Install docs.
- #use doc && dohtml -r "${S}"/docs/_build/html/
+ # Install man pages.
+ use doc || doman "${WORKDIR}"/${PN}-3.8.0-manpages/*.1
# Symlink the gold plugin.
if use gold; then