mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-11-09 06:37:10 -08:00
sys-devel/llvm: clean unused versions
Package-Manager: portage-2.2.23
This commit is contained in:
@@ -1,27 +1,18 @@
|
||||
DIST cfe-3.3.src.tar.gz 9425539 SHA256 b1b55de4ab3a57d3e0331a83e0284610191c77d924e3446498d9113d08dfb996 SHA512 06773f43f7d3529f06edb029f7de398f06a700a0f2476e00c4727e70c291028221bfac23625dfd2c220d6ac91a21670848187a934b99a21801c695127371afcc WHIRLPOOL 8b97b527f19015dd3283b9e174615170e639793f64c635ccc4ee4d8216f8de759fd0121a8ef3513fa1c6ad19b31aa3529091ffb44a01ee858edfef400881596a
|
||||
DIST cfe-3.4.2.src.tar.gz 10612313 SHA256 5ba6f5772f8d00f445209356a7daf83c5bca2da5acd10de517ad2359ae95bc10 SHA512 e01fa8e312e9b3b7b3cb572ac21349161aaa50078ecfe7bded273b75db4a0c44acde524f8fdfcbeec54c61eeeb8339e9917d1f205a8fda18e34fe7ccbe89c36d WHIRLPOOL 153208b1a60bb5fbe92a7162cb26bbe70d591e7db9dcf06fcd54efc539bbff0403ec88e64236969c9f256e5586bc333840bd6178fd158577d6fe228d9edd4dcd
|
||||
DIST cfe-3.5.0.src.tar.xz 8233432 SHA256 fc80992e004b06f6c7afb612de1cdaa9ac9d25811c55f94fcf7331d9b81cdb8b SHA512 b26a5e2cd81c150607c23b22fafc0d9c7f12b83b45e476b8e75bf5e99d42be7c98ffeac7349df664f01b00900864a01429860b298e48961861377a4b2daf3e49 WHIRLPOOL 5dd8b6fe97933b74f1668b1d753c16cd3bcd05ccf72aac1283aa449caf93f5ba88ae79e7668f7e79b554e1421549a87af21c86cf92657c1b4d77744165718ce7
|
||||
DIST cfe-3.5.1.src.tar.xz 8268140 SHA256 6773f3f9cf815631cc7e779ec134ddd228dc8e9a250e1ea3a910610c59eb8f5c SHA512 bd904586f6155c05d2f7ddd05b86c28feae883cdc60e2cb3b48d4ae0ce55916064bcea414a46518d0fb73618f18a3f3fca6cc4cad81083428a2221299f5c5c7f WHIRLPOOL eca619b84ae6dfbca4b3d46601419d2c5a0cd77d643336c560d4bc358f4a2b0f7123d3e87248119c3e447143859da20b9b2e94721ebb14053627f0a158d843f5
|
||||
DIST cfe-3.5.2.src.tar.xz 8268008 SHA256 4feb575f74fb3a74b6245400460230141bf610f235ef3a25008cfe6137828620 SHA512 2ad9a7daa8e62cdbf47b001aa6b937a06ae7e6396dcd1832797e2d98036522443ccfca9f1253e16d531a99d1edf237fcd2b457c55491ff68ca4534a2396ca52f WHIRLPOOL 51789ba2a3193d404b26d26b999fc47f1bc4b56b45048078cc51e4ff5c31d834d360ee0c2d16096c060f85acab6de9055dc375569348ae3307e4b280406f2d9e
|
||||
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 clang-tools-extra-3.4.src.tar.gz 230729 SHA256 ba85187551ae97fe1c8ab569903beae5ff0900e21233e5eb5389f6ceab1028b4 SHA512 9656678acea490fd5674b2d47ad30ec69e5aedb450924e566a90418c94ce6483faa254e7dde0d5163cb0643153113d27b6b000fea7bba08f0ba55741b35873b1 WHIRLPOOL c41ec11d0b88678c56d77d285c4383a39cabab16aae8a4457666014e0927aa4b04cf77e73af0275e6bfc603a9531598eca98ab61d5d81288e2920682088d9eaf
|
||||
DIST clang-tools-extra-3.5.0.src.tar.xz 216256 SHA256 2981beb378afb5aa5c50ed017720a42a33e77e902c7086ad2d412ef4fa931f69 SHA512 5ff2cc5d143b78fbe6645486f02e50f738a92aaf6b8e85cfc6f91e659684686b12e61fc8f00b814b4372c5ed2c2b1be5eca61ea696fbe074b815877b799534ee WHIRLPOOL 10b5afc550fa6a8c33739fbf9268e934732b2892842d398152676e66ab90aed3c6e1bae02bc1b8aa0a9a917b6b450f60950317a9eda3f9e377971cbe00164b11
|
||||
DIST clang-tools-extra-3.5.1.src.tar.xz 215776 SHA256 e8d011250389cfc36eb51557ca25ae66ab08173e8d53536a0747356105d72906 SHA512 eefacd6857584c9a3186815a7d015a595f32cd926f6c221245d388b8cb9266c52e0980a8e94f01f49c452510fdd42e659b02f116619d3d0e35170566f0704712 WHIRLPOOL a3d14e21f201cc02649833edd67ba04f17c88486fbf399327dbb76d21e151b956a4f58cd7446b8563f72fa1cee06a8bd4abbc53234761a3a69fc1afc99ced87d
|
||||
DIST clang-tools-extra-3.5.2.src.tar.xz 215804 SHA256 f21a374d74b194d8c984546266491b518859b5f12ed9abd49337b8060d3fc004 SHA512 6a8e662d2704147296c13626fbc5885911c646c67404f12eacc67ee2995221445bf4f6122b271b9cb3a56b716f550a651024822f72358d400b9052bf50423669 WHIRLPOOL 088d2725a88a439a1a2c4048e0eaf540587078078bd1c9823a4804200265cab4d32606abf5e72be76da45ea4aa6e7a7201a2bdbddc78d5f9e0024b0d7b59e222
|
||||
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 compiler-rt-3.3.src.tar.gz 1568034 SHA256 0e2f3180d6316e6c43f064fdd406c5c6515e682c5f31c57c28335b68c7525423 SHA512 3e86aa8ab9810b4fbac54a40fc93a717a55c642520858c0db215a5324c1e495b4d8fcec9620251cca8e4e5f9afa34bc14364d7f785880a0700469d0201827929 WHIRLPOOL fcfd06bc860dfd901a7576cd4309f863e9d4363e36ab4c67e9e08fe3c8a37d627ee95eb96b9ed53eb6047dec06e73181b3c3e1555b1b49f1e893e6382f21ddc1
|
||||
DIST compiler-rt-3.4.src.tar.gz 1858593 SHA256 f37c89b1383ce462d47537a0245ac798600887a9be9f63073e16b79ed536ab5c SHA512 70efffaf12ff7c15befa87ce808489c6f6b6eb421d0ab5d8ecd525239efc8aab850c7ed34b31a993ff5e499657b72598619945cc4461fe3e5359e9a94aaac0c8 WHIRLPOOL ad558b5877a01e476d30d2757959ab04be0c385b2fe3442bcc578bf36c6f3214cd78b4adda24fcb1f3b2b84353db213b82e8d7d4c40e66c3f57aed3a49322dbc
|
||||
DIST compiler-rt-3.5.0.src.tar.xz 1088352 SHA256 a4b3e655832bf8d9a357ea2c771db347237460e131988cbb96cda40ff39a8136 SHA512 862cce2d6b398bd1a8399496a547e6ab976a31f676528beebfbea5fd7dc54aa72e1c25deefa12f6167096521eba74090565b0168806451da02ddac04e922fc48 WHIRLPOOL 248acf997d70d7904aa79bf83e0c02ba4e5f8c2812c03f44a8e1e31b845a654f250c09ec6a123f9245d0db8713e8cc5a4087b9ce785af4f5eb7e55d9dbd362a2
|
||||
DIST compiler-rt-3.5.1.src.tar.xz 1092452 SHA256 adf4b526f33e681aff5961f0821f5b514d3fc375410008842640b56a2e6a837a SHA512 3a4f093972b080f439c81c8b08793c311cea71afeda7ba7b4e32f19378b1cb420da7b594fa9f6a6f7826570438f67d42d3243c4b3503e1cf8a7dcedf52e8e590 WHIRLPOOL edbf11837139b48207fc6f82ecad39fbc6983cf5bd1441cbe6d50e5e484566b63c5afa2fc64cd29fb8560f07015a98c00b58c926ca7e9af47b7eea92133d0db4
|
||||
DIST compiler-rt-3.5.2.src.tar.xz 1093000 SHA256 542d7aadd21e7fe35bea0a7912bc965f08a1a566746cebcca76f96dcfeb74dc3 SHA512 319a8a1dbe07eb4f1fcccfe79a1fa445f348fb854a441500e89fa0a128e45716b65d06347f19a63de32e9294cd2331e914ae0d5fe8224f0b2452c39b79ac96ff WHIRLPOOL 6e9286c56a60a515006c8232ca01622ae844185a5f31fb49bce632868862c5e560619f1c45da66878b5322a764f91a284cd296e9f13105d6f74e055a17321d93
|
||||
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 lldb-3.7.0.src.tar.xz 10649660 SHA256 f4d7505bc111044eaa4033af012221e492938405b62522b8e3e354c20c4b71e9 SHA512 52157782ef13e2c8b7b35ff3ccc05887195fe46ddb6bafcf0707a3c46c1e034734b55342b8dbfc46cae7a8c3cb1012345284e4bedb2344c5016b8d19a12e90df WHIRLPOOL 8c0803a51820ec67944e27061c858e95a92aefa38a1540241fead2b63c5b065c1268cf958b14d8841f62fc8aea5da1e20204704426598bfc2c4e61bcda135c43
|
||||
@@ -37,12 +28,8 @@ DIST llvm-3.4-manpages.tar.bz2 33753 SHA256 dc2616104cf333dd9ef56b2d31f9a36e8130
|
||||
DIST llvm-3.4.2.src.tar.gz 15938155 SHA256 17038d47069ad0700c063caed76f0c7259628b0e79651ce2b540d506f2f1efd7 SHA512 6c1453f7d9d9110257db3574cc4f6227fed8938705cbb09851ac09a868089b48f1556a1b6e758aff6d97520b08b5605d3ed20411ad9dd22cdc573d62176905f0 WHIRLPOOL f8b4d5167469e6f350ec41aede04e7b756e18f3d8e78b3270beb5791310a7b9b13c69e57c8bcfefbd0a78efc0c40e3b75a9a158eac72c025b7c77146e8dfaf7c
|
||||
DIST llvm-3.5.0-manpages.tar.bz2 35314 SHA256 724e752a60016dce8cc536658906d3646c600e977374e0ea692a5d0fe2d4a021 SHA512 d99d6096d7f21a81923297584fe5eeb23e0d83d4538fe376615c92fffc8aff3189999f7ab3c537b5aa5d6bc2c22c53eb05717d48c7ab99c42315b8665bac62c3 WHIRLPOOL 68ced06ee6678c5333c662eb1cc0da744c5a184b12dd059c1b77ec200b1d3cc231f270b9d9b6e177d728776894277b3f9061338aa55620c90474eb97915b7819
|
||||
DIST llvm-3.5.0.src.tar.xz 11735940 SHA256 28e199f368ef0a4666708f31c7991ad3bcc3a578342b0306526dd35f07595c03 SHA512 b4d0f325dbdb0a8f10e5fd031954ef4b1971d8f99f4e4b53834801a2b74a7acde3f77c655c8355b407424b363edfb10f71d85fc370356dc52af5c636a1bba197 WHIRLPOOL 561520823468b61c63df8e13f876b7ac586eb1e52c256e9a36370e5d46e8cef3937655c36fbb51eebd3680fab67412e7c777479477fc728e7a8f35420e573ef1
|
||||
DIST llvm-3.5.1.src.tar.xz 11869356 SHA256 bf3275d2d7890015c8d8f5e6f4f882f8cf3bf51967297ebe74111d6d8b53be15 SHA512 a643ff173627e813b26077829b1af801b75daa5dcea540c4f05366ed57ef6aeafaf8b3fe4208d4c1b303a048a90ddac48a23488480c165637ae9218de140ae55 WHIRLPOOL 798ad46bc21570d8e5b0caadf2c0b434382fd78bfea5a08097fa001019b749b828e56ffe330435e5f3556700e8b0bee29e4139a7ff6b2824bb83dcc8caba2606
|
||||
DIST llvm-3.5.2.src.tar.xz 11876128 SHA256 44196156d5749eb4b4224fe471a29cc3984df92570a4a89fa859f7394fc0c575 SHA512 0f6a83cc61a385387e7baf8fb8f0d9f18e3fd00d2d389a3c7e2c3792be7d82ed095506cac52c24e65ae3c1f94456a441d39440feef6125e25ef18447ec9dd406 WHIRLPOOL b41de51907d6d2c2d04a4c498b44f0ed560cc710e6e2d8678f5ef93a9009d140bc7c2406f4b25d5b901fd026689d48edce77a2e435687b489b835156a512e256
|
||||
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 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
|
||||
|
||||
@@ -1,530 +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/${PN}-3.5.0-manpages.tar.bz2 )"
|
||||
|
||||
LICENSE="UoI-NCSA"
|
||||
SLOT="0/3.5"
|
||||
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= )"
|
||||
# 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
|
||||
${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.5-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.5-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}"/${PN}-3.5.0-manpages/clang.1 || die
|
||||
fi
|
||||
doman "${WORKDIR}"/${PN}-3.5.0-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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -1,499 +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=[${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
|
||||
|
||||
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
|
||||
)
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user