From 4b19be30aa626b327c885dae62c559ec0e9fb935 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 13 Oct 2019 22:19:36 +0100 Subject: gentoo resync : 13.10.2019 --- sys-devel/llvm/Manifest | 18 +- ...Add-additional-headers-only-if-they-exist.patch | 41 --- sys-devel/llvm/llvm-10.0.0.9999.ebuild | 223 ++++++++++++++- sys-devel/llvm/llvm-6.0.1-r2.ebuild | 2 +- sys-devel/llvm/llvm-6.0.1.ebuild | 2 +- sys-devel/llvm/llvm-7.1.0.ebuild | 2 +- sys-devel/llvm/llvm-8.0.0.ebuild | 300 --------------------- sys-devel/llvm/llvm-8.0.1.ebuild | 2 +- sys-devel/llvm/llvm-9.0.0.9999.ebuild | 287 -------------------- sys-devel/llvm/llvm-9.0.0.ebuild | 2 +- sys-devel/llvm/llvm-9.0.1.9999.ebuild | 287 ++++++++++++++++++++ 11 files changed, 519 insertions(+), 647 deletions(-) delete mode 100644 sys-devel/llvm/files/8.0.0/0001-llvm-cmake-Add-additional-headers-only-if-they-exist.patch delete mode 100644 sys-devel/llvm/llvm-8.0.0.ebuild delete mode 100644 sys-devel/llvm/llvm-9.0.0.9999.ebuild create mode 100644 sys-devel/llvm/llvm-9.0.1.9999.ebuild (limited to 'sys-devel/llvm') diff --git a/sys-devel/llvm/Manifest b/sys-devel/llvm/Manifest index 2cbcdf5c340a..8fd8e3584de4 100644 --- a/sys-devel/llvm/Manifest +++ b/sys-devel/llvm/Manifest @@ -2,25 +2,21 @@ AUX 6.0.1/0001-cmake-Append-Wl-rpath-link-conditionally-to-GNULD.patch 1575 BLAK AUX 6.0.1/0002-llvm-mc-Produce-R_X86_64_PLT32-for-call-jmp-foo.patch 13865 BLAKE2B 03f677e386115c3c7333db39664f75b2b4c22e18c2e487e515dc2a55acaa1bf569d2945ae620420b4b4323fb2e4fb7d3c3313dcc7e648942afa25d055d36efc7 SHA512 2820793ef29f08b55b7d94ef700085dce02c6a029c5877a77c5296e9a05dfc9946d10ee66d2d3d8a150cd511e3346d2acf259b873aeed25c1b0aaefebe95790d AUX 6.0.1/0003-X86-Stop-X86DomainReassignment-from-creating-copies-.patch 4263 BLAKE2B f0b073f90968b008ce758a43f00a4268dad1037f949704f3d86741319b6972d1ad69bed0944152f21b837486404948c1f290babc90a4da5ac0c300f0d2a868ee SHA512 efcb4b4bf0320304df680e6b69d8db1e732539e6cde0d9f11566e00533ecf8383d1520edca0a69c96e1722b33dcc8bc33da23470faf59774724cedc9f522d9b1 AUX 7.1.0/0007-llvm-config-Clean-up-exported-values-update-for-shar.patch 2626 BLAKE2B 6c3afe6941568119b6bbce1c66be913a29a2ac7853a881804c1c22e981075f1677ca7e4744738ad858f58a58c1a7295aeb5f1d87b3a2b2adfb971a54d76c04fb SHA512 34a84427c34fa8886f55e05cf0ffce258cdee8e98190e070eb40dc555a30784c49ebe4f946f7ea51b7d00fceb8071fc745007250dc5b5a61c4d2bb9910672ec5 -AUX 8.0.0/0001-llvm-cmake-Add-additional-headers-only-if-they-exist.patch 1452 BLAKE2B d8b9b34b077bf33fd0fc6fb50937f5e9a8b90730fee3b6c08b5e0659fd37092ad073580ded506fbeba4fa3503f0ea6104d7adefa41f7eeef9a17a3189ba1212b SHA512 fa2aa9bde1b153f42037bb864b1a4dce0288f567c6a116a4005e45ca322808041562c2d2cecca5e3d84e44bf73bed600a05dfda85107c164415912ef60141dab AUX 9999/0007-llvm-config-Clean-up-exported-values-update-for-shar.patch 1188 BLAKE2B 72311a8da991b9f3b98523baefe6f5b31aa7f9101c388f35484dd5f384a08e838ea42a17447ca17a0dfe6b7d3c20abbdf0e8afee72e8ad5d46ec38b8d55307c8 SHA512 0ada997db2a0eb875105fb212dc3fc3077b9c4f7804d78c33c4b1f512bf1267295f325153ae14c00404c86e576ae1c78a6aeb0a57d1d4525aabd1169c21806ef AUX 9999/musl-fixes.patch 1258 BLAKE2B fe275412bc908884239ea71de9a9ddf1d2f64debaa1a9ada18170195a7775c41571600ed3666343bf967aff5f9117900f73155f60de5077bc4584cfc2f782f53 SHA512 314dcbe846a66312c9f1634f4ff3f4670b3db1d3210bb550f1d3877a423333ba042da2e90c8736918a36be4d4faf58dab8d3236d4f26df5af7f7f019b0e0ec8f DIST llvm-6.0.1-manpages.tar.bz2 102656 BLAKE2B 9088ca0bdda69f63354e61b7495df54505d5db2504bc61860a7260343722ec8cdd5e937d0843263a5bf5077b9cf386c337fa127039b996bab10d2ca5c2caeb59 SHA512 c468e97a2d5610aee9e72cb795e4e65375a079d733550f05380230fb44ba0ed67d407ad06e2340b66f13d19c06583b657e8d01fcdca2146ae43964cea309e0b3 DIST llvm-6.0.1.src.tar.xz 25306628 BLAKE2B 60232d4d22f8096b565cc8d81fea0639f24f14e8fc4f66ade69fa15479181f07f655f26dff3fa24bf105762b495da316c5c9352db234bd0af6b9c3fff6d4d881 SHA512 cbbb00eb99cfeb4aff623ee1a5ba075e7b5a76fc00c5f9f539ff28c108598f5708a0369d5bd92683def5a20c2fe60cab7827b42d628dbfcc79b57e0e91b84dd9 DIST llvm-7.1.0-manpages.tar.bz2 120786 BLAKE2B b52a7afe7c5c170894e910ef2c651a5f38f0bd41147a2c63dc5b8a92f0ec37512e913e68efce51e1643e8f20cf0f3f088d31d19c541d2ff361ecb7d89b234b6c SHA512 78a526d889a8e62accf422655acbb4d17e3c22b0f0830003db0068b3c01c367ac32ce4f4be4cbb2966274440865557c25795205af2a59a054a6f6964294d289f DIST llvm-7.1.0.src.tar.xz 28313784 BLAKE2B b78d9a7fc5ef6e352e77d339e5c4eef5ccedf67c05e7abd949e72619aa8a5ed65e7e5e2008354be8e7916d75581719b99f34227838fcc86c5d0080913c2fb22c SHA512 a7dbd5693d1f2dae6b6e52893a100f9349cbfcfb25c5fdcad46364acbff0dbd3573f8fbc026c68eb9fd56335198aa94b866cc3dd7ea0cbd2cbfb5f8fe3444a7a -DIST llvm-8.0.0-manpages.tar.bz2 140542 BLAKE2B e6c58865ace0b8848ffe825e931a639daa5b22099317b3263acf8df4b8d5e1e97ed54a85b9241e6874b112c67114bda5617c3014c3bc1430c179bdf389e77269 SHA512 198f5bde8c610aa7953b325fc29c2bebe5c3d81469af6273975ed32cd739a9936813fca7399acc49809c322cf73fbdaa77a834f889bd78fe4672024965ea47fb -DIST llvm-8.0.0.src.tar.xz 30503732 BLAKE2B d89bdeb0ec7d885e49cfe5ae025da84f00502d409710c0807a3cdd58dbd47c50cf6a635593569483150f7f2ecb0de0310bd6785cb7625219bf9f6224a0d68e1c SHA512 1602343b451b964f5d8c2d6b0654d89384c80d45883498c5f0e2f4196168dd4a1ed2a4dadb752076020243df42ffe46cb31d82ffc145d8e5874163cbb9686a1f DIST llvm-8.0.1-manpages.tar.bz2 140915 BLAKE2B 13ac9e172728d643dac1d12ac06909b6db3dd9a1a380a92a07867e3cb835f94b265da5d75c4712b5409405a65795d2cb6b32da4098e38cbb95d7023b56bcbbc1 SHA512 23994a2374659fbbf8d9b5160f4d77e9be7c4c9fc14963e8186bbede78b0ee9257f6b6a9c484bc75d72443d65bb24e598841e64af500336283de0f454d6a2073 DIST llvm-8.0.1.src.tar.xz 30477608 BLAKE2B 4319c837b36111401e3b0f9659b8d875c89463bcc7816df1aefe1e3ff989860bbaa92504718f8e15416cfd9f3491c13777cd5cb661877b237b342b0e515b93f5 SHA512 82e120be5cabdfd5111aebbea68a663fe229c8861d73802d6ab09a3bf48f60de333e07e61f8fb61beaa14ac2bea24fcd74fa6f761acaf62469f536b79fcb1e16 DIST llvm-9.0.0-manpages.tar.bz2 158546 BLAKE2B eed6235698a0b5993affe305f7fd22cd4cf444adf931275a1685f2049a5f17cf2933907577d9ce142348a3c579769b0436aa2b5a9a953958504125a8c3e83b7d SHA512 64c8d18061eb2870b379a1df485be0b61eac07cb10b3f97347b54b2ee326faa63437ca04466776be282e120dd3f6147e14fffdd38ca370db85748fe5eb54d764 DIST llvm-9.0.0.src.tar.xz 32994768 BLAKE2B 7f09bff9bcada95ab9c920c78aef92b57e665d9188bab39c734084ceb03a801c942fed48ea77fabeeb6110c648cb69363c659a6ce93ebf67dbba5c187219b13b SHA512 1bb3341e1d231559b948f1505b33c2e2e03989f9b8bbfef0e0cdaff5ac43f85574c9ec5ac53399b914f497d6899425d861411024e8d7e1d1a338c1c6951ac658 -EBUILD llvm-10.0.0.9999.ebuild 8589 BLAKE2B 7dfa447685c16a5bdc6483a9361f125b0f0a485250bd14d480ef6870cdb7cd235370c8e7864ff3f985b45a979c62c294dabef8a40c381f0559155c07c1185ecb SHA512 7e9d69f66d84b09f6d05fe845ed97be71f35fa7b2af6306daf6862c7d2836c0350f95cb5fe5fe8bd2042b9eaa46b9a78d0be1c1716e04f6691bab1915bcf340a -EBUILD llvm-6.0.1-r2.ebuild 8223 BLAKE2B c19ea8293cb393516560805dca29834a5ad57a9b9892c4f2d18d13b7031960624e411d32c64715cff1b0ea42c667d362d06c21f453258c8d7924abba61c566f6 SHA512 46f510c491a6ac5791f5d368d9d3ac0694d12a8c061158050ae3202d275cb1002f6b28fe38a0ef3d0d3f96e2d86b4f1bbe0412beb5bd9494376c9cb425bb0b7e -EBUILD llvm-6.0.1.ebuild 7878 BLAKE2B 2dccaac410eb5ca447df7ba22891b05ba4767037239a321ac8314cce46ca18306885b5b90b3ba52092972dfad9f11cbac4285c8cddf9645a7c3bb0d1b77509d6 SHA512 77117eecea99a8ee65b5fd4c7f0003186b777624af4d0eb4fab1b1f2c5c02708a30e5f9952371452b0da933247b75e18cf2154a8cd40ea2fbd65a0d7dea4c987 -EBUILD llvm-7.1.0.ebuild 7833 BLAKE2B 7e96495d3e0d4dfa095a1ed9bb1dc065c7ba6606550f205cde21c54b6513322d0d5de7430a84d52fac960bc86ace5b61a6818de72fea7dbd16f9478d487dd1f0 SHA512 384d5eb9b43a1b519c73d3992a97e9364ab86f00025cbbaecdd96439e77865d6b5f2327ca0fd6e524b4df9fd50f7709024093f0455c5048a1701495936ca5080 -EBUILD llvm-8.0.0.ebuild 8796 BLAKE2B a7761e6533e36d575ec859125fa4e1ea8d56a0b6b69d826100dac66f5fc7540ece7690f82a51b973bb34fdcb8585466fd040d20b7db3a843761b40a6e8dc0c49 SHA512 ed6ad22908ae370b98896e3e1a8e99fe78c22348fb1dbebbc7b49ee51b68cb0d80d8c87f83d285a48dc89a0486137178560cb1c495bb4e5f09d3e89241f5843e -EBUILD llvm-8.0.1.ebuild 8642 BLAKE2B c319238b85346e3bffaa8c4a2a6e373e59c28241682f6a27ad6207389472a918d396d016381ef3f4ecb45d6ec4695ff922560c5cb936d0ff6fa9776b33cb663f SHA512 aad2b70c31fb1af9a093488596a3601f139034a15fa3bed3040ab16a75772a94261589e0e465bbe73a7214d63a9eb467ab0c1cb2c42f8cd49fff1571368ed00c -EBUILD llvm-9.0.0.9999.ebuild 8289 BLAKE2B 4e63e11f29bd3b88382963ffa8c125308e101d946cd28d7493a2a2e4e7d6180514154310b007f808922d9ab821e9bec70c1cc4f7a3b78fe5354ddf17e21f6ec6 SHA512 49aacf1f630431bcefdaba3bdf34ceef5cf97f363b81937028608d6ee62ea6367309f7f4a3fe9663b5fba35bbc20945a6d8f822e22ec9bf7d518816eff67b8e6 -EBUILD llvm-9.0.0.ebuild 8603 BLAKE2B 585e551c372c7e380588c3d6d3353adbbca1cb16df45290a76830c257bce70bb7ecd21c371d48dc9d474f54ca64f18399c72683384fab1b1506a7d32379333b0 SHA512 63e555a79a8fe0416f49c7b8b03130fc662494b53e84213a0d16f4e7533750614d5cda76415ff8a2becc3f1abb6dd1767dac7d8169e2583b26143363df5d519a +EBUILD llvm-10.0.0.9999.ebuild 12638 BLAKE2B 4274d77376edb411eb9db36d2646ec33ac494447f8f6e1f601a9f91bbbd3c1788be32ca6fb088cd2690e7840ba941bdf5b4a76bea022be452f05c09278a88c20 SHA512 1edfcd2156e17af680f0f4be48bacaca1f5b8ea01fe5dbdb86702fb1cc574f2413df63bf59af8250348fc35386b90bed46e2e9dfcf2ef55b76afb85170d4fc3c +EBUILD llvm-6.0.1-r2.ebuild 8211 BLAKE2B 78c9a44c232d0522d52cb1901cda93ef5dcb5df1c8c4aa052122250f9460ca984219c41dfa311a15585637aac6d03e698e15fe6af5ff4273f9265f805e1faf01 SHA512 405bf67ea2457ad0df9f9476d58836685634f5b434cda584c913c1e37f2ba803c2995bf5538515b73bc991a1ff44dd28fa004a459ea86b7af7c2bc23564d0619 +EBUILD llvm-6.0.1.ebuild 7866 BLAKE2B dd6136d06da729413062835ecbc872a8b734ae680369180b19c179067f0cf93bdac82c56bc4954a6cd34c406adaa41376466e496d9fcc1321635de386fd11bc8 SHA512 c0592f651d2db40307bbe2dc499fdf0578b271df30162c5dedcc35ae2022e95efe75d8604a7e12dc2e24e9be937e12bb97004619832f0a2529ea82d78cb42179 +EBUILD llvm-7.1.0.ebuild 7821 BLAKE2B 39820b1dfafde7810aaa2e5851c6293cbe39ef4961a2219ee189d2e8ecbee73771c3f24d356c9506adfdca1ff66904ee394dc3c5ec06b394628a130c4d309b2a SHA512 df4c8f686f6cf0a54a733eb449e9def48bc4baafdea2a5feea2bbec78573ec070a7bf679ace0e27db3cb64babb8d5c9977ee56da67cb7328584d1128c4fe6329 +EBUILD llvm-8.0.1.ebuild 8630 BLAKE2B c0b2d7ea039431c047607492b6f9be8852bd472623e893d624905286b29344a6c5b774671d19a8a18cca9975a4337c218cfc6821cf338000d7985d88a44a6c5a SHA512 23bbfce6f6ed1547b0ca01eaef78f5f7795cd1c5e202e1d625373c36cfb02ee1479c5dd6113f77513e80154644f506581114c7b4544d533e7ed82eb289338415 +EBUILD llvm-9.0.0.ebuild 8591 BLAKE2B d45d52e88d1c7101c854379bf4cffe3cffe8ac617df961e96e9f9670e64f10eac7de21bd714401b89b52b4e27e6729892ac185ef5f78fb04ff9be21f3e694bc9 SHA512 7f99235ba3b502f2f0c444bc6805c2548025b1e1b807719b38f4bda390206cdfca57b0326ada624bc3079bb918a5b982f0961f48e9a4fccd739724a7709f02ba +EBUILD llvm-9.0.1.9999.ebuild 8289 BLAKE2B 4e63e11f29bd3b88382963ffa8c125308e101d946cd28d7493a2a2e4e7d6180514154310b007f808922d9ab821e9bec70c1cc4f7a3b78fe5354ddf17e21f6ec6 SHA512 49aacf1f630431bcefdaba3bdf34ceef5cf97f363b81937028608d6ee62ea6367309f7f4a3fe9663b5fba35bbc20945a6d8f822e22ec9bf7d518816eff67b8e6 MISC metadata.xml 2563 BLAKE2B ca85030788fb213fc891d895238fd75562cdd25cc5fe4271d709cb1c00ef56b0e8b367dc70cc18f7d185d6fbdb57333e219a984220b60141d28fb4784b2cb94a SHA512 8de68ee7f964e6eb2613bd2ff584f834e0f5a3ae8b303b5f2f10fda718a87af9b8ddfc19399950fe4eb8be515930124ced8018190af0f69da7ec5fe8180a68a2 diff --git a/sys-devel/llvm/files/8.0.0/0001-llvm-cmake-Add-additional-headers-only-if-they-exist.patch b/sys-devel/llvm/files/8.0.0/0001-llvm-cmake-Add-additional-headers-only-if-they-exist.patch deleted file mode 100644 index ed83244de53f..000000000000 --- a/sys-devel/llvm/files/8.0.0/0001-llvm-cmake-Add-additional-headers-only-if-they-exist.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 1f68002cb725c6a8fb5ca8425c1c86495a053f4f Mon Sep 17 00:00:00 2001 -From: Michal Gorny -Date: Thu, 4 Apr 2019 14:21:38 +0000 -Subject: [PATCH] [llvm] [cmake] Add additional headers only if they exist - -Modify the add_header_files_for_glob() function to only add files -that do exist, rather than all matches of the glob. This fixes CMake -error when one of the include directories (which happen to include -/usr/include) contain broken symlinks. - -Differential Revision: https://reviews.llvm.org/D59632 - -llvm-svn: 357701 ---- - llvm/cmake/modules/LLVMProcessSources.cmake | 10 +++++++++- - 1 file changed, 9 insertions(+), 1 deletion(-) - -diff --git a/cmake/modules/LLVMProcessSources.cmake b/cmake/modules/LLVMProcessSources.cmake -index 7cbd2863500..d0be0e8b3ba 100644 ---- a/cmake/modules/LLVMProcessSources.cmake -+++ b/cmake/modules/LLVMProcessSources.cmake -@@ -30,7 +30,15 @@ endmacro(add_td_sources) - - function(add_header_files_for_glob hdrs_out glob) - file(GLOB hds ${glob}) -- set(${hdrs_out} ${hds} PARENT_SCOPE) -+ set(filtered) -+ foreach(file ${hds}) -+ # Explicit existence check is necessary to filter dangling symlinks -+ # out. See https://bugs.gentoo.org/674662. -+ if(EXISTS ${file}) -+ list(APPEND filtered ${file}) -+ endif() -+ endforeach() -+ set(${hdrs_out} ${filtered} PARENT_SCOPE) - endfunction(add_header_files_for_glob) - - function(find_all_header_files hdrs_out additional_headerdirs) --- -2.21.0 - diff --git a/sys-devel/llvm/llvm-10.0.0.9999.ebuild b/sys-devel/llvm/llvm-10.0.0.9999.ebuild index e632d6c930c6..77a6c8423834 100644 --- a/sys-devel/llvm/llvm-10.0.0.9999.ebuild +++ b/sys-devel/llvm/llvm-10.0.0.9999.ebuild @@ -18,7 +18,7 @@ EGIT_REPO_URI="https://git.llvm.org/git/llvm.git https://github.com/llvm-mirror/llvm.git" # Those are in lib/Targets, without explicit CMakeLists.txt mention -ALL_LLVM_EXPERIMENTAL_TARGETS=( AVR Nios2 ) +ALL_LLVM_EXPERIMENTAL_TARGETS=( ARC AVR ) # Keep in sync with CMakeLists.txt ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore @@ -59,6 +59,7 @@ DEPEND="${RDEPEND} gold? ( sys-libs/binutils-libs )" BDEPEND=" dev-lang/perl + sys-devel/gnuconfig || ( >=sys-devel/gcc-3.0 >=sys-devel/llvm-3.5 ( >=sys-freebsd/freebsd-lib-9.1-r10 sys-libs/libcxx ) ) @@ -90,6 +91,94 @@ python_check_deps() { has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]" } +check_live_ebuild() { + local prod_targets=( + $(sed -n -e '/set(LLVM_ALL_TARGETS/,/)/p' CMakeLists.txt \ + | tail -n +2 | head -n -1) + ) + local all_targets=( + lib/Target/*/ + ) + all_targets=( "${all_targets[@]#lib/Target/}" ) + all_targets=( "${all_targets[@]%/}" ) + + local exp_targets=() i + for i in "${all_targets[@]}"; do + has "${i}" "${prod_targets[@]}" || exp_targets+=( "${i}" ) + done + # reorder + all_targets=( "${prod_targets[@]}" "${exp_targets[@]}" ) + + if [[ ${exp_targets[*]} != ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]} ]]; then + eqawarn "ALL_LLVM_EXPERIMENTAL_TARGETS is outdated!" + eqawarn " Have: ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]}" + eqawarn "Expected: ${exp_targets[*]}" + eqawarn + fi + + if [[ ${all_targets[*]} != ${ALL_LLVM_TARGETS[*]#llvm_targets_} ]]; then + eqawarn "ALL_LLVM_TARGETS is outdated!" + eqawarn " Have: ${ALL_LLVM_TARGETS[*]#llvm_targets_}" + eqawarn "Expected: ${all_targets[*]}" + fi +} + +check_distribution_components() { + if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then + local all_targets=() my_targets=() l + cd "${BUILD_DIR}" || die + + while read -r l; do + if [[ ${l} == install-*-stripped:* ]]; then + l=${l#install-} + l=${l%%-stripped*} + + case ${l} in + # shared libs + LLVM|LLVMgold) + ;; + # TableGen lib + deps + LLVMDemangle|LLVMSupport|LLVMTableGen) + ;; + # static libs + LLVM*) + continue + ;; + # meta-targets + distribution|llvm-libraries) + continue + ;; + esac + + all_targets+=( "${l}" ) + fi + done < <(ninja -t targets all) + + while read -r l; do + my_targets+=( "${l}" ) + done < <(get_distribution_components $"\n") + + local add=() remove=() + for l in "${all_targets[@]}"; do + if ! has "${l}" "${my_targets[@]}"; then + add+=( "${l}" ) + fi + done + for l in "${my_targets[@]}"; do + if ! has "${l}" "${all_targets[@]}"; then + remove+=( "${l}" ) + fi + done + + if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then + eqawarn "get_distribution_components() is outdated!" + eqawarn " Add: ${add[*]}" + eqawarn "Remove: ${remove[*]}" + fi + cd - >/dev/null || die + fi +} + src_prepare() { # Fix llvm-config for shared linking and sane flags # https://bugs.gentoo.org/show_bug.cgi?id=565358 @@ -98,8 +187,14 @@ src_prepare() { # disable use of SDK on OSX, bug #568758 sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die + # Update config.guess to support more systems + cp "${BROOT}/usr/share/gnuconfig/config.guess" cmake/ || die + # User patches + QA cmake-utils_src_prepare + + # Verify that the live ebuild is up-to-date + check_live_ebuild } # Is LLVM being linked against libc++? @@ -114,6 +209,122 @@ is_libcxx_linked() { [[ ${out} == *HAVE_LIBCXX* ]] } +get_distribution_components() { + local sep=${1-;} + + local out=( + # shared libs + LLVM + LTO + Remarks + + # tools + llvm-config + + # common stuff + cmake-exports + llvm-headers + + # libraries needed for clang-tblgen + LLVMDemangle + LLVMSupport + LLVMTableGen + ) + + if multilib_is_native_abi; then + out+=( + # utilities + llvm-tblgen + FileCheck + llvm-PerfectShuffle + count + not + yaml-bench + + # tools + bugpoint + dsymutil + llc + lli + lli-child-target + llvm-addr2line + llvm-ar + llvm-as + llvm-bcanalyzer + llvm-c-test + llvm-cat + llvm-cfi-verify + llvm-config + llvm-cov + llvm-cvtres + llvm-cxxdump + llvm-cxxfilt + llvm-cxxmap + llvm-diff + llvm-dis + llvm-dlltool + llvm-dwarfdump + llvm-dwp + llvm-elfabi + llvm-exegesis + llvm-extract + llvm-ifs + llvm-jitlink + llvm-lib + llvm-link + llvm-lipo + llvm-lto + llvm-lto2 + llvm-mc + llvm-mca + llvm-modextract + llvm-mt + llvm-nm + llvm-objcopy + llvm-objdump + llvm-opt-report + llvm-pdbutil + llvm-profdata + llvm-ranlib + llvm-rc + llvm-readelf + llvm-readobj + llvm-reduce + llvm-rtdyld + llvm-size + llvm-split + llvm-stress + llvm-strings + llvm-strip + llvm-symbolizer + llvm-undname + llvm-xray + obj2yaml + opt + sancov + sanstats + verify-uselistorder + yaml2obj + + # python modules + opt-viewer + ) + + use doc && out+=( + docs-dsymutil-man + docs-llvm-dwarfdump-man + docs-llvm-man + docs-llvm-html + ) + + use gold && out+=( + LLVMgold + ) + fi + + printf "%s${sep}" "${out[@]}" +} + multilib_src_configure() { local ffi_cflags ffi_ldflags if use libffi; then @@ -129,7 +340,11 @@ multilib_src_configure() { -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${SLOT}" -DLLVM_LIBDIR_SUFFIX=${libdir#lib} - -DBUILD_SHARED_LIBS=ON + -DBUILD_SHARED_LIBS=OFF + -DLLVM_BUILD_LLVM_DYLIB=ON + -DLLVM_LINK_LLVM_DYLIB=ON + -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components) + # cheap hack: LLVM combines both anyway, and the only difference # is that the former list is explicitly verified at cmake time -DLLVM_TARGETS_TO_BUILD="" @@ -221,6 +436,8 @@ multilib_src_configure() { # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" cmake-utils_src_configure + + multilib_is_native_abi && check_distribution_components } multilib_src_compile() { @@ -260,7 +477,7 @@ src_install() { } multilib_src_install() { - cmake-utils_src_install + DESTDIR=${D} cmake-utils_src_make install-distribution # move headers to /usr/include for wrapping rm -rf "${ED}"/usr/include || die diff --git a/sys-devel/llvm/llvm-6.0.1-r2.ebuild b/sys-devel/llvm/llvm-6.0.1-r2.ebuild index 45ab641dc664..01164ba7d20b 100644 --- a/sys-devel/llvm/llvm-6.0.1-r2.ebuild +++ b/sys-devel/llvm/llvm-6.0.1-r2.ebuild @@ -32,7 +32,7 @@ ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) LICENSE="UoI-NCSA rc BSD public-domain llvm_targets_ARM? ( LLVM-Grant )" SLOT="$(ver_cut 1)" -KEYWORDS="amd64 arm arm64 ~ppc64 x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" +KEYWORDS="amd64 arm arm64 ~ppc64 x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" IUSE="debug doc gold libedit +libffi ncurses test xar xml kernel_Darwin ${ALL_LLVM_TARGETS[*]}" RESTRICT="!test? ( test )" diff --git a/sys-devel/llvm/llvm-6.0.1.ebuild b/sys-devel/llvm/llvm-6.0.1.ebuild index 395441ba7a47..ddb059014c50 100644 --- a/sys-devel/llvm/llvm-6.0.1.ebuild +++ b/sys-devel/llvm/llvm-6.0.1.ebuild @@ -32,7 +32,7 @@ ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) LICENSE="UoI-NCSA rc BSD public-domain llvm_targets_ARM? ( LLVM-Grant )" SLOT="$(ver_cut 1)" -KEYWORDS="amd64 arm arm64 ~ppc64 x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" +KEYWORDS="amd64 arm arm64 ~ppc64 x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" IUSE="debug doc gold libedit +libffi ncurses test xar xml kernel_Darwin ${ALL_LLVM_TARGETS[*]}" RESTRICT="!test? ( test )" diff --git a/sys-devel/llvm/llvm-7.1.0.ebuild b/sys-devel/llvm/llvm-7.1.0.ebuild index e785407ad282..b6ac1a5fb260 100644 --- a/sys-devel/llvm/llvm-7.1.0.ebuild +++ b/sys-devel/llvm/llvm-7.1.0.ebuild @@ -32,7 +32,7 @@ ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) LICENSE="UoI-NCSA rc BSD public-domain llvm_targets_ARM? ( LLVM-Grant )" SLOT="$(ver_cut 1)/$(ver_cut 1-2)" -KEYWORDS="amd64 arm arm64 ~ppc64 x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" +KEYWORDS="amd64 arm arm64 ~ppc64 x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" IUSE="debug doc exegesis gold libedit +libffi ncurses test xar xml kernel_Darwin ${ALL_LLVM_TARGETS[*]}" RESTRICT="!test? ( test )" diff --git a/sys-devel/llvm/llvm-8.0.0.ebuild b/sys-devel/llvm/llvm-8.0.0.ebuild deleted file mode 100644 index 598c0b679199..000000000000 --- a/sys-devel/llvm/llvm-8.0.0.ebuild +++ /dev/null @@ -1,300 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -: ${CMAKE_MAKEFILE_GENERATOR:=ninja} -# (needed due to CMAKE_BUILD_TYPE != Gentoo) -CMAKE_MIN_VERSION=3.7.0-r1 -PYTHON_COMPAT=( python2_7 ) - -inherit cmake-utils eapi7-ver flag-o-matic multilib-minimal \ - multiprocessing pax-utils python-any-r1 toolchain-funcs - -DESCRIPTION="Low Level Virtual Machine" -HOMEPAGE="https://llvm.org/" -SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz - !doc? ( https://dev.gentoo.org/~mgorny/dist/llvm/${P}-manpages.tar.bz2 )" - -# Keep in sync with CMakeLists.txt -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 - NVPTX PowerPC Sparc SystemZ WebAssembly X86 XCore ) -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) - -# Additional licenses: -# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD. -# 2. ARM backend: LLVM Software Grant by ARM. -# 3. MD5 code: public-domain. -# 4. Tests (not installed): -# a. gtest: BSD. -# b. YAML tests: MIT. - -LICENSE="UoI-NCSA rc BSD public-domain - llvm_targets_ARM? ( LLVM-Grant )" -SLOT="$(ver_cut 1)" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" -IUSE="debug doc exegesis gold libedit +libffi ncurses test xar xml - kernel_Darwin ${ALL_LLVM_TARGETS[*]}" -RESTRICT="!test? ( test )" - -RDEPEND=" - sys-libs/zlib:0=[${MULTILIB_USEDEP}] - exegesis? ( dev-libs/libpfm:= ) - gold? ( - || ( - >=sys-devel/binutils-2.31.1-r4:*[plugins] - =virtual/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] ) - ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] ) - xar? ( app-arch/xar ) - xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )" -# configparser-3.2 breaks the build (3.3 or none at all are fine) -DEPEND="${RDEPEND} - dev-lang/perl - || ( >=sys-devel/gcc-3.0 >=sys-devel/llvm-3.5 - ( >=sys-freebsd/freebsd-lib-9.1-r10 sys-libs/libcxx ) - ) - kernel_Darwin? ( - =sys-devel/binutils-apple-5.1 - ) - doc? ( $(python_gen_any_dep ' - dev-python/recommonmark[${PYTHON_USEDEP}] - dev-python/sphinx[${PYTHON_USEDEP}] - ') ) - !doc? ( ${PYTHON_DEPS} ) - gold? ( sys-libs/binutils-libs ) - libffi? ( virtual/pkgconfig ) - !! SOVERSION when linking - # against libc++. This way we won't end up mixing LLVM libc++ - # libraries with libstdc++ clang, and the other way around. - mycmakeargs+=( - -DLLVM_VERSION_SUFFIX="libcxx" - ) - 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 - - use test && mycmakeargs+=( - -DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}" - ) - - if multilib_is_native_abi; then - mycmakeargs+=( - -DLLVM_BUILD_DOCS=$(usex doc) - -DLLVM_ENABLE_OCAMLDOC=OFF - -DLLVM_ENABLE_SPHINX=$(usex doc) - -DLLVM_ENABLE_DOXYGEN=OFF - -DLLVM_INSTALL_UTILS=ON - ) - use doc && mycmakeargs+=( - -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man" - -DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" - -DSPHINX_WARNINGS_AS_ERRORS=OFF - ) - use gold && mycmakeargs+=( - -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include - ) - fi - - if tc-is-cross-compiler; then - local tblgen="${EPREFIX}/usr/lib/llvm/${SLOT}/bin/llvm-tblgen" - [[ -x "${tblgen}" ]] \ - || die "${tblgen} not found or usable" - mycmakeargs+=( - -DCMAKE_CROSSCOMPILING=ON - -DLLVM_TABLEGEN="${tblgen}" - ) - fi - - # workaround BMI bug in gcc-7 (fixed in 7.4) - # https://bugs.gentoo.org/649880 - # apply only to x86, https://bugs.gentoo.org/650506 - if tc-is-gcc && [[ ${MULTILIB_ABI_FLAG} == abi_x86* ]] && - [[ $(gcc-major-version) -eq 7 && $(gcc-minor-version) -lt 4 ]] - then - local CFLAGS="${CFLAGS} -mno-bmi" - local CXXFLAGS="${CXXFLAGS} -mno-bmi" - fi - - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" - cmake-utils_src_configure -} - -multilib_src_compile() { - cmake-utils_src_compile - - pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld - pax-mark m "${BUILD_DIR}"/bin/lli - pax-mark m "${BUILD_DIR}"/bin/lli-child-target - - if use test; then - pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests - pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests - pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests - fi -} - -multilib_src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - cmake-utils_src_make check -} - -src_install() { - local MULTILIB_CHOST_TOOLS=( - /usr/lib/llvm/${SLOT}/bin/llvm-config - ) - - local MULTILIB_WRAPPED_HEADERS=( - /usr/include/llvm/Config/llvm-config.h - ) - - local LLVM_LDPATHS=() - multilib-minimal_src_install - - # move wrapped headers back - mv "${ED%/}"/usr/include "${ED%/}"/usr/lib/llvm/${SLOT}/include || die -} - -multilib_src_install() { - cmake-utils_src_install - - # move headers to /usr/include for wrapping - rm -rf "${ED%/}"/usr/include || die - mv "${ED%/}"/usr/lib/llvm/${SLOT}/include "${ED%/}"/usr/include || die - - LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)" ) -} - -multilib_src_install_all() { - local revord=$(( 9999 - ${SLOT} )) - newenvd - "10llvm-${revord}" <<-_EOF_ - PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin" - # we need to duplicate it in ROOTPATH for Portage to respect... - ROOTPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin" - MANPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man" - LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )" - _EOF_ - - # install pre-generated manpages - if ! use doc; then - # (doman does not support custom paths) - insinto "/usr/lib/llvm/${SLOT}/share/man/man1" - doins "${WORKDIR}/${P}-manpages/llvm"/*.1 - fi - - docompress "/usr/lib/llvm/${SLOT}/share/man" -} - -pkg_postinst() { - elog "You can find additional opt-viewer utility scripts in:" - elog " ${EROOT%/}/usr/lib/llvm/${SLOT}/share/opt-viewer" - elog "To use these scripts, you will need Python 2.7 along with the following" - elog "packages:" - elog " dev-python/pygments (for opt-viewer)" - elog " dev-python/pyyaml (for all of them)" -} diff --git a/sys-devel/llvm/llvm-8.0.1.ebuild b/sys-devel/llvm/llvm-8.0.1.ebuild index cc7266ad8ffc..9a04aa34bb2d 100644 --- a/sys-devel/llvm/llvm-8.0.1.ebuild +++ b/sys-devel/llvm/llvm-8.0.1.ebuild @@ -33,7 +33,7 @@ ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) LICENSE="UoI-NCSA rc BSD public-domain llvm_targets_ARM? ( LLVM-Grant )" SLOT="$(ver_cut 1)" -KEYWORDS="amd64 arm arm64 ppc64 x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" +KEYWORDS="amd64 arm arm64 ppc64 x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" IUSE="debug doc exegesis gold libedit +libffi ncurses test xar xml kernel_Darwin ${ALL_LLVM_TARGETS[*]}" RESTRICT="!test? ( test )" diff --git a/sys-devel/llvm/llvm-9.0.0.9999.ebuild b/sys-devel/llvm/llvm-9.0.0.9999.ebuild deleted file mode 100644 index 5ff9e20d7e12..000000000000 --- a/sys-devel/llvm/llvm-9.0.0.9999.ebuild +++ /dev/null @@ -1,287 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -: ${CMAKE_MAKEFILE_GENERATOR:=ninja} -# (needed due to CMAKE_BUILD_TYPE != Gentoo) -CMAKE_MIN_VERSION=3.7.0-r1 -PYTHON_COMPAT=( python{2_7,3_{5,6,7}} ) - -inherit cmake-utils git-r3 multilib-minimal multiprocessing pax-utils \ - python-any-r1 toolchain-funcs - -DESCRIPTION="Low Level Virtual Machine" -HOMEPAGE="https://llvm.org/" -SRC_URI="" -EGIT_REPO_URI="https://git.llvm.org/git/llvm.git - https://github.com/llvm-mirror/llvm.git" -EGIT_BRANCH="release_90" - -# Keep in sync with CMakeLists.txt -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 - NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore ) -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) - -# Additional licenses: -# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD. -# 2. xxhash: BSD. -# 3. MD5 code: public-domain. -# 4. ConvertUTF.h: TODO. - -LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc" -SLOT="$(ver_cut 1)" -KEYWORDS="" -IUSE="debug doc exegesis gold libedit +libffi ncurses test xar xml z3 - kernel_Darwin ${ALL_LLVM_TARGETS[*]}" -REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )" -RESTRICT="!test? ( test )" - -RDEPEND=" - sys-libs/zlib:0=[${MULTILIB_USEDEP}] - exegesis? ( dev-libs/libpfm:= ) - gold? ( - || ( - >=sys-devel/binutils-2.31.1-r4:*[plugins] - =virtual/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] ) - ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] ) - xar? ( app-arch/xar ) - xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] ) - z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )" -# configparser-3.2 breaks the build (3.3 or none at all are fine) -DEPEND="${RDEPEND} - gold? ( sys-libs/binutils-libs )" -BDEPEND=" - dev-lang/perl - || ( >=sys-devel/gcc-3.0 >=sys-devel/llvm-3.5 - ( >=sys-freebsd/freebsd-lib-9.1-r10 sys-libs/libcxx ) - ) - kernel_Darwin? ( - =sys-devel/binutils-apple-5.1 - ) - doc? ( $(python_gen_any_dep ' - dev-python/recommonmark[${PYTHON_USEDEP}] - dev-python/sphinx[${PYTHON_USEDEP}] - ') ) - libffi? ( virtual/pkgconfig ) - !! SOVERSION when linking - # against libc++. This way we won't end up mixing LLVM libc++ - # libraries with libstdc++ clang, and the other way around. - mycmakeargs+=( - -DLLVM_VERSION_SUFFIX="libcxx" - ) - 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 - - use test && mycmakeargs+=( - -DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}" - ) - - if multilib_is_native_abi; then - mycmakeargs+=( - -DLLVM_BUILD_DOCS=$(usex doc) - -DLLVM_ENABLE_OCAMLDOC=OFF - -DLLVM_ENABLE_SPHINX=$(usex doc) - -DLLVM_ENABLE_DOXYGEN=OFF - -DLLVM_INSTALL_UTILS=ON - ) - use doc && mycmakeargs+=( - -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man" - -DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" - -DSPHINX_WARNINGS_AS_ERRORS=OFF - ) - use gold && mycmakeargs+=( - -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include - ) - fi - - if tc-is-cross-compiler; then - local tblgen="${EPREFIX}/usr/lib/llvm/${SLOT}/bin/llvm-tblgen" - [[ -x "${tblgen}" ]] \ - || die "${tblgen} not found or usable" - mycmakeargs+=( - -DCMAKE_CROSSCOMPILING=ON - -DLLVM_TABLEGEN="${tblgen}" - ) - fi - - # workaround BMI bug in gcc-7 (fixed in 7.4) - # https://bugs.gentoo.org/649880 - # apply only to x86, https://bugs.gentoo.org/650506 - if tc-is-gcc && [[ ${MULTILIB_ABI_FLAG} == abi_x86* ]] && - [[ $(gcc-major-version) -eq 7 && $(gcc-minor-version) -lt 4 ]] - then - local CFLAGS="${CFLAGS} -mno-bmi" - local CXXFLAGS="${CXXFLAGS} -mno-bmi" - fi - - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" - cmake-utils_src_configure -} - -multilib_src_compile() { - cmake-utils_src_compile - - pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld - pax-mark m "${BUILD_DIR}"/bin/lli - pax-mark m "${BUILD_DIR}"/bin/lli-child-target - - if use test; then - pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests - pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests - pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests - fi -} - -multilib_src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - cmake-utils_src_make check -} - -src_install() { - local MULTILIB_CHOST_TOOLS=( - /usr/lib/llvm/${SLOT}/bin/llvm-config - ) - - local MULTILIB_WRAPPED_HEADERS=( - /usr/include/llvm/Config/llvm-config.h - ) - - local LLVM_LDPATHS=() - multilib-minimal_src_install - - # move wrapped headers back - mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${SLOT}/include || die -} - -multilib_src_install() { - cmake-utils_src_install - - # move headers to /usr/include for wrapping - rm -rf "${ED}"/usr/include || die - mv "${ED}"/usr/lib/llvm/${SLOT}/include "${ED}"/usr/include || die - - LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)" ) -} - -multilib_src_install_all() { - local revord=$(( 9999 - ${SLOT} )) - newenvd - "10llvm-${revord}" <<-_EOF_ - PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin" - # we need to duplicate it in ROOTPATH for Portage to respect... - ROOTPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin" - MANPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man" - LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )" - _EOF_ - - docompress "/usr/lib/llvm/${SLOT}/share/man" -} - -pkg_postinst() { - elog "You can find additional opt-viewer utility scripts in:" - elog " ${EROOT}/usr/lib/llvm/${SLOT}/share/opt-viewer" - elog "To use these scripts, you will need Python along with the following" - elog "packages:" - elog " dev-python/pygments (for opt-viewer)" - elog " dev-python/pyyaml (for all of them)" -} diff --git a/sys-devel/llvm/llvm-9.0.0.ebuild b/sys-devel/llvm/llvm-9.0.0.ebuild index 8cd42b405ccd..62d66ff6800b 100644 --- a/sys-devel/llvm/llvm-9.0.0.ebuild +++ b/sys-devel/llvm/llvm-9.0.0.ebuild @@ -31,7 +31,7 @@ ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc" SLOT="$(ver_cut 1)" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" IUSE="debug doc exegesis gold libedit +libffi ncurses test xar xml z3 kernel_Darwin ${ALL_LLVM_TARGETS[*]}" REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )" diff --git a/sys-devel/llvm/llvm-9.0.1.9999.ebuild b/sys-devel/llvm/llvm-9.0.1.9999.ebuild new file mode 100644 index 000000000000..5ff9e20d7e12 --- /dev/null +++ b/sys-devel/llvm/llvm-9.0.1.9999.ebuild @@ -0,0 +1,287 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +: ${CMAKE_MAKEFILE_GENERATOR:=ninja} +# (needed due to CMAKE_BUILD_TYPE != Gentoo) +CMAKE_MIN_VERSION=3.7.0-r1 +PYTHON_COMPAT=( python{2_7,3_{5,6,7}} ) + +inherit cmake-utils git-r3 multilib-minimal multiprocessing pax-utils \ + python-any-r1 toolchain-funcs + +DESCRIPTION="Low Level Virtual Machine" +HOMEPAGE="https://llvm.org/" +SRC_URI="" +EGIT_REPO_URI="https://git.llvm.org/git/llvm.git + https://github.com/llvm-mirror/llvm.git" +EGIT_BRANCH="release_90" + +# Keep in sync with CMakeLists.txt +ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 + NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore ) +ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) + +# Additional licenses: +# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD. +# 2. xxhash: BSD. +# 3. MD5 code: public-domain. +# 4. ConvertUTF.h: TODO. + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc" +SLOT="$(ver_cut 1)" +KEYWORDS="" +IUSE="debug doc exegesis gold libedit +libffi ncurses test xar xml z3 + kernel_Darwin ${ALL_LLVM_TARGETS[*]}" +REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )" +RESTRICT="!test? ( test )" + +RDEPEND=" + sys-libs/zlib:0=[${MULTILIB_USEDEP}] + exegesis? ( dev-libs/libpfm:= ) + gold? ( + || ( + >=sys-devel/binutils-2.31.1-r4:*[plugins] + =virtual/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] ) + ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] ) + xar? ( app-arch/xar ) + xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] ) + z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )" +# configparser-3.2 breaks the build (3.3 or none at all are fine) +DEPEND="${RDEPEND} + gold? ( sys-libs/binutils-libs )" +BDEPEND=" + dev-lang/perl + || ( >=sys-devel/gcc-3.0 >=sys-devel/llvm-3.5 + ( >=sys-freebsd/freebsd-lib-9.1-r10 sys-libs/libcxx ) + ) + kernel_Darwin? ( + =sys-devel/binutils-apple-5.1 + ) + doc? ( $(python_gen_any_dep ' + dev-python/recommonmark[${PYTHON_USEDEP}] + dev-python/sphinx[${PYTHON_USEDEP}] + ') ) + libffi? ( virtual/pkgconfig ) + !! SOVERSION when linking + # against libc++. This way we won't end up mixing LLVM libc++ + # libraries with libstdc++ clang, and the other way around. + mycmakeargs+=( + -DLLVM_VERSION_SUFFIX="libcxx" + ) + 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 + + use test && mycmakeargs+=( + -DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}" + ) + + if multilib_is_native_abi; then + mycmakeargs+=( + -DLLVM_BUILD_DOCS=$(usex doc) + -DLLVM_ENABLE_OCAMLDOC=OFF + -DLLVM_ENABLE_SPHINX=$(usex doc) + -DLLVM_ENABLE_DOXYGEN=OFF + -DLLVM_INSTALL_UTILS=ON + ) + use doc && mycmakeargs+=( + -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man" + -DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" + -DSPHINX_WARNINGS_AS_ERRORS=OFF + ) + use gold && mycmakeargs+=( + -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include + ) + fi + + if tc-is-cross-compiler; then + local tblgen="${EPREFIX}/usr/lib/llvm/${SLOT}/bin/llvm-tblgen" + [[ -x "${tblgen}" ]] \ + || die "${tblgen} not found or usable" + mycmakeargs+=( + -DCMAKE_CROSSCOMPILING=ON + -DLLVM_TABLEGEN="${tblgen}" + ) + fi + + # workaround BMI bug in gcc-7 (fixed in 7.4) + # https://bugs.gentoo.org/649880 + # apply only to x86, https://bugs.gentoo.org/650506 + if tc-is-gcc && [[ ${MULTILIB_ABI_FLAG} == abi_x86* ]] && + [[ $(gcc-major-version) -eq 7 && $(gcc-minor-version) -lt 4 ]] + then + local CFLAGS="${CFLAGS} -mno-bmi" + local CXXFLAGS="${CXXFLAGS} -mno-bmi" + fi + + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + cmake-utils_src_configure +} + +multilib_src_compile() { + cmake-utils_src_compile + + pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld + pax-mark m "${BUILD_DIR}"/bin/lli + pax-mark m "${BUILD_DIR}"/bin/lli-child-target + + if use test; then + pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests + pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests + pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests + fi +} + +multilib_src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + cmake-utils_src_make check +} + +src_install() { + local MULTILIB_CHOST_TOOLS=( + /usr/lib/llvm/${SLOT}/bin/llvm-config + ) + + local MULTILIB_WRAPPED_HEADERS=( + /usr/include/llvm/Config/llvm-config.h + ) + + local LLVM_LDPATHS=() + multilib-minimal_src_install + + # move wrapped headers back + mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${SLOT}/include || die +} + +multilib_src_install() { + cmake-utils_src_install + + # move headers to /usr/include for wrapping + rm -rf "${ED}"/usr/include || die + mv "${ED}"/usr/lib/llvm/${SLOT}/include "${ED}"/usr/include || die + + LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)" ) +} + +multilib_src_install_all() { + local revord=$(( 9999 - ${SLOT} )) + newenvd - "10llvm-${revord}" <<-_EOF_ + PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin" + # we need to duplicate it in ROOTPATH for Portage to respect... + ROOTPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin" + MANPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man" + LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )" + _EOF_ + + docompress "/usr/lib/llvm/${SLOT}/share/man" +} + +pkg_postinst() { + elog "You can find additional opt-viewer utility scripts in:" + elog " ${EROOT}/usr/lib/llvm/${SLOT}/share/opt-viewer" + elog "To use these scripts, you will need Python along with the following" + elog "packages:" + elog " dev-python/pygments (for opt-viewer)" + elog " dev-python/pyyaml (for all of them)" +} -- cgit v1.2.3