diff options
author | V3n3RiX <venerix@koprulu.sector> | 2022-03-20 00:40:44 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2022-03-20 00:40:44 +0000 |
commit | 4cbcc855382a06088e2f016f62cafdbcb7e40665 (patch) | |
tree | 356496503d52354aa6d9f2d36126302fed5f3a73 /sys-libs/llvm-libunwind | |
parent | fcc5224904648a8e6eb528d7603154160a20022f (diff) |
gentoo resync : 20.03.2022
Diffstat (limited to 'sys-libs/llvm-libunwind')
-rw-r--r-- | sys-libs/llvm-libunwind/Manifest | 11 | ||||
-rw-r--r-- | sys-libs/llvm-libunwind/llvm-libunwind-13.0.1.ebuild (renamed from sys-libs/llvm-libunwind/llvm-libunwind-13.0.1_rc3.ebuild) | 3 | ||||
-rw-r--r-- | sys-libs/llvm-libunwind/llvm-libunwind-14.0.0.9999.ebuild | 93 | ||||
-rw-r--r-- | sys-libs/llvm-libunwind/llvm-libunwind-14.0.0_rc4.ebuild (renamed from sys-libs/llvm-libunwind/llvm-libunwind-13.0.1.9999.ebuild) | 104 | ||||
-rw-r--r-- | sys-libs/llvm-libunwind/llvm-libunwind-15.0.0.9999.ebuild | 116 |
5 files changed, 198 insertions, 129 deletions
diff --git a/sys-libs/llvm-libunwind/Manifest b/sys-libs/llvm-libunwind/Manifest index 162b47d04e5a..6f40d10ad5f1 100644 --- a/sys-libs/llvm-libunwind/Manifest +++ b/sys-libs/llvm-libunwind/Manifest @@ -1,11 +1,14 @@ +DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01 DIST llvmorg-11.1.0.tar.gz 122776532 BLAKE2B ca842ff4afff8f44c82b5e7383962a9c45ca1c93b64fa4c6ebcd70a1d3849dbad2b8e4e24fba02d144c6266d7fab3607ebc6999b28c229cb35256cf40f26a985 SHA512 9a8ce022a935eed42fa71a224f2a207122aadcbef58ee855fdb4825f879e7d028e4dcff22c19b9d336db1c8bf63fb84372d44981acf84615f757e54306c92b81 DIST llvmorg-12.0.1.tar.gz 134259748 BLAKE2B f41de787bc73ff2edfda1b22cc8602be6f65f37dd9e4c8888533cfa8c3ccdcf4f108aaab9de23ab0ab987966eb160f2a553a0bdff99461e71ddd5bfcd086090d SHA512 6eb0dc18e2c25935fabfdfc48b0114be0939158dfdef7b85b395fe2e71042672446af0e68750aae003c9847d10d1f63316fe95d3df738d18f249174292b1b9e1 DIST llvmorg-13.0.0.tar.gz 147270176 BLAKE2B 628f316b580e1edf3a58d4825b724df759e6ed2a4116802470c04562caefc392fa325c91f388036365a2e45a9595cca6d3557fab12984fc8bcfef29c9116d822 SHA512 8004c05d32b9720fb3391783621690c1df9bd1e97e72cbff9192ed88a84b0acd303b61432145fa917b5b5e548c8cee29b24ef8547dcc8677adf4816e7a8a0eb2 -DIST llvmorg-13.0.1-rc3.tar.gz 147302323 BLAKE2B 9ac2f97568062d7dd618295a68d6e14898fcd69e2bb66290b999ceb8c12132371f4e9b59d8ba2b252e5e5cb249045676b24fc50c117b2afae20abab98f426582 SHA512 88a04ad02af2d41ec21c7a62bad21ee0e627b7276a16795875afd062ed29ac7fb4aadec5b5e48785a6502c9fd797a4b67d648a21f193c9f7602112870b10a3d1 +DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f +DIST llvmorg-14.0.0-rc4.tar.gz 158082013 BLAKE2B 0e717898d8f1ed160e525a68aba56a84b7d31856ea72fdb8fa02e863c5a2074245a38d4a4aa7d178beab1ea64aa92d0ba9dcad4373ebb03868070bf718112107 SHA512 a942848aa5042b97bab6d0d5bcee11ea2f85f1244d7eaadb8f7000bf104b2160e6034c04e3755501dd178bc99c26669cf4aca40edb4bba598fdde6bcf3f40ddc EBUILD llvm-libunwind-11.1.0.ebuild 3222 BLAKE2B e9f47dd9859691d9c629b0eee62cf4e6d9a41e6f74b991410ee4cb1c647c828388a2ea7c1806df7350dcefff9a8178021956f85c7ec2aeb11d702a17e3b32132 SHA512 fc85afa5f560b2e7ad28c1e7d7b0d36b7bc0be408817b66f0d9afb3a811b94c24a282cbb13400685a2ffb00dbf620eb0c94d66fddfe27c9cffc2108f71c11a32 EBUILD llvm-libunwind-12.0.1.ebuild 3656 BLAKE2B cdf5e4e4f39ce47ac57ac43f287b5d6a42a61a79d988cdcd52823aadb0c1950abc85f5c1ba8276198e46357fc27f3ab7d06c0e7e9279a9a40e4dc7f4b936aac5 SHA512 c6477d4837e8e0d3ee6c035e0462e0a817752af214ff20ace3b8c3e377c749351cf78bf2ffec3d95085334f6b9a0a23e311f5a50109c390ad5bec60a0bef2dd5 EBUILD llvm-libunwind-13.0.0.ebuild 3781 BLAKE2B 08d2c7ea77679aa9ea06997ce86d8c8c6c073ae3b8a1ff94be33c6dd5904425ae75632bf8ea3bd00825941e6c7a6fb4879693f33a94b54b9fe054a8ec61eeaec SHA512 b83af0f0a6d45e618d70fd59c7e4ff7dfa815c8eca650a65a4c892756197bc34ea389150bd65f01c6243ea54b0cfac476d5095f657f6a34e72d92967af600aeb -EBUILD llvm-libunwind-13.0.1.9999.ebuild 3738 BLAKE2B 42b8d4826b8f3149ef28699064c6efa1291fe932fe7f3024e9513cc614345b6861d478b564fd5af29eafe8ff64badeb4db8ddd8a91c33234a64af7375aba247b SHA512 a3888f3fffb201e8e50e0dee86a99f2907217d2ecba1d028b7b5fbef6495d85a41e867c056344b9ea1167c10c63107d495adc67821fa767847e200256236d35b -EBUILD llvm-libunwind-13.0.1_rc3.ebuild 3738 BLAKE2B 6402027ce969def9dae9e28f57e455a4e51728b2251b817d0120539b482599f998fd8c0517f16d1e49e4c8800d8527c22dfa74b86a4f1c45c204806d7f54eb9f SHA512 cf6fe9afd261342b169c0b51cf96f31daaf3f65bf37cb46dc6a69818ba0bbb4ca7fa17f011cb9ad5c016e8984e877bb221b59d990cf8d87f746444024cf0cfe3 -EBUILD llvm-libunwind-14.0.0.9999.ebuild 3692 BLAKE2B e09e71f635937016cf586b39b5a3df828410c35caa8ffabfa884f96517317b9ea9ad91783e84e5964756d77dae2d7c9e1dd93924fd910664758c3a254b179e0b SHA512 e95efec14abd4ed427aec3415aca54b679cdf6b059ab842e676de1354803e3e4748b7a6501cb6736b8f4556e6ca80ee3dbb98c9a6edcc89442cdab7ee5f92336 +EBUILD llvm-libunwind-13.0.1.ebuild 3812 BLAKE2B 62e1976431679d89c0e91b96cccea6b8a51392e3b45e733117ca90be86af0778543e602159f5ee54e4a243a065afce99a236939c8583be85eb73ae7b3f198a7d SHA512 1fa0a8fae7b8bd2b03020f417d6862412fa50c2891ad5cd03c38611ee82fa6e96cd8ec8b9b75a690d8817c3e21d977b4cff929d526eca6b0f3656e5815b0c0e4 +EBUILD llvm-libunwind-14.0.0.9999.ebuild 3126 BLAKE2B c5f745f265c39e9d4686ac99fe5893b27d2e156208c92d127ddbcfb93aad9e12ed596d5d29774722db6117b3db4962be9a9d355cd2cc7d3f04efe78b2a2ed891 SHA512 dfe17e8eb6fb8b03e25c1662a209530cc4bf6c3d31adeb5dc1a57cc0bead836c60babb027809f5d1b3119d7a7bbcf538ec449b0f766763806c17c351fd775807 +EBUILD llvm-libunwind-14.0.0_rc4.ebuild 3126 BLAKE2B c5f745f265c39e9d4686ac99fe5893b27d2e156208c92d127ddbcfb93aad9e12ed596d5d29774722db6117b3db4962be9a9d355cd2cc7d3f04efe78b2a2ed891 SHA512 dfe17e8eb6fb8b03e25c1662a209530cc4bf6c3d31adeb5dc1a57cc0bead836c60babb027809f5d1b3119d7a7bbcf538ec449b0f766763806c17c351fd775807 +EBUILD llvm-libunwind-15.0.0.9999.ebuild 3126 BLAKE2B c5f745f265c39e9d4686ac99fe5893b27d2e156208c92d127ddbcfb93aad9e12ed596d5d29774722db6117b3db4962be9a9d355cd2cc7d3f04efe78b2a2ed891 SHA512 dfe17e8eb6fb8b03e25c1662a209530cc4bf6c3d31adeb5dc1a57cc0bead836c60babb027809f5d1b3119d7a7bbcf538ec449b0f766763806c17c351fd775807 MISC metadata.xml 303 BLAKE2B ed0dbe1165e30ee5c3556aaf467abf212e198590a06c70f0de4e2c12060644df928c8f388fadfe776249a77dc000b40881d7254cfdc30f7a41209e2524136adb SHA512 5a69c07b9b1b37646d29a7287f1ba1c9150a5fae60df644266232871b5e4db41c0e8d102e8b873af2bdbf814935e8f8479e1534b8aa47d0ee31e971e2fa4dc50 diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-13.0.1_rc3.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-13.0.1.ebuild index bc5a62c6434a..2898acf8753b 100644 --- a/sys-libs/llvm-libunwind/llvm-libunwind-13.0.1_rc3.ebuild +++ b/sys-libs/llvm-libunwind/llvm-libunwind-13.0.1.ebuild @@ -12,7 +12,7 @@ HOMEPAGE="https://github.com/llvm-mirror/libunwind" LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" SLOT="0" -KEYWORDS="" +KEYWORDS="amd64 arm arm64 ~ppc ~ppc64 ~riscv ~x86 ~x64-macos" IUSE="debug static-libs test" RESTRICT="!test? ( test )" @@ -27,6 +27,7 @@ BDEPEND=" LLVM_COMPONENTS=( libunwind libcxx llvm/cmake ) LLVM_TEST_COMPONENTS=( libcxxabi ) +LLVM_PATCHSET=${PV/_/-} llvm.org_set_globals python_check_deps() { diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-14.0.0.9999.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-14.0.0.9999.ebuild index a9e274cc99af..377022eb4033 100644 --- a/sys-libs/llvm-libunwind/llvm-libunwind-14.0.0.9999.ebuild +++ b/sys-libs/llvm-libunwind/llvm-libunwind-14.0.0.9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -21,22 +21,21 @@ RDEPEND="!sys-libs/libunwind" DEPEND=" >=sys-devel/llvm-6" BDEPEND=" - test? ( >=sys-devel/clang-3.9.0 + ${PYTHON_DEPS} + test? ( + >=sys-devel/clang-3.9.0 $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )" -LLVM_COMPONENTS=( libunwind libcxx llvm/cmake cmake ) -LLVM_TEST_COMPONENTS=( libcxxabi ) +LLVM_COMPONENTS=( runtimes libunwind libcxx llvm/cmake cmake ) +LLVM_TEST_COMPONENTS=( libcxxabi llvm/utils/llvm-lit ) llvm.org_set_globals python_check_deps() { + use test || return 0 has_version "dev-python/lit[${PYTHON_USEDEP}]" } -pkg_setup() { - use test && python-any-r1_pkg_setup -} - multilib_src_configure() { local use_compiler_rt=OFF local libdir=$(get_libdir) @@ -52,12 +51,15 @@ multilib_src_configure() { fi local mycmakeargs=( + -DPython3_EXECUTABLE="${PYTHON}" + -DLLVM_ENABLE_RUNTIMES="libunwind" -DLLVM_LIBDIR_SUFFIX=${libdir#lib} + -DLLVM_INCLUDE_TESTS=OFF -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug) -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs) + -DLIBUNWIND_INCLUDE_TESTS=$(usex test) -DLIBUNWIND_INSTALL_HEADERS=ON -DLIBUNWIND_TARGET_TRIPLE="${CHOST}" - -DLLVM_INCLUDE_TESTS=$(usex test) # support non-native unwinding; given it's small enough, # enable it unconditionally @@ -68,9 +70,27 @@ multilib_src_configure() { ) if use test; then mycmakeargs+=( + -DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;libcxx" -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" -DLLVM_LIT_ARGS="$(get_lit_flags)" -DLIBUNWIND_LIBCXX_PATH="${WORKDIR}/libcxx" + + -DLIBCXXABI_LIBDIR_SUFFIX= + -DLIBCXXABI_ENABLE_SHARED=OFF + -DLIBCXXABI_ENABLE_STATIC=ON + -DLIBCXXABI_USE_LLVM_UNWINDER=ON + -DLIBCXXABI_INCLUDE_TESTS=OFF + + -DLIBCXX_LIBDIR_SUFFIX= + -DLIBCXX_ENABLE_SHARED=OFF + -DLIBCXX_ENABLE_STATIC=ON + -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF + -DLIBCXX_CXX_ABI=libcxxabi + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) + -DLIBCXX_HAS_GCC_S_LIB=OFF + -DLIBCXX_INCLUDE_TESTS=OFF + -DLIBCXX_INCLUDE_BENCHMARKS=OFF ) fi @@ -82,60 +102,15 @@ multilib_src_configure() { # meh, we need to override the compiler explicitly sed -e "/%{cxx}/s@, '.*'@, '${clang_path}'@" \ - -i "${BUILD_DIR}"/test/lit.site.cfg || die + -i "${BUILD_DIR}"/libunwind/test/lit.site.cfg || die fi } -wrap_libcxxabi() { - local mycmakeargs=( - -DLIBCXXABI_LIBDIR_SUFFIX= - -DLIBCXXABI_ENABLE_SHARED=OFF - -DLIBCXXABI_ENABLE_STATIC=ON - -DLIBCXXABI_USE_LLVM_UNWINDER=ON - -DLIBCXXABI_INCLUDE_TESTS=OFF - - -DLIBCXXABI_LIBCXX_INCLUDES="${BUILD_DIR}"/libcxx/include/c++/v1 - -DLIBCXXABI_LIBUNWIND_INCLUDES="${S}"/include - ) - - local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)" - local CMAKE_USE_DIR=${WORKDIR}/libcxxabi - local BUILD_DIR=${BUILD_DIR}/libcxxabi - - "${@}" -} - -wrap_libcxx() { - local mycmakeargs=( - -DLIBCXX_LIBDIR_SUFFIX= - -DLIBCXX_ENABLE_SHARED=OFF - -DLIBCXX_ENABLE_STATIC=ON - -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF - -DLIBCXX_CXX_ABI=libcxxabi - -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${WORKDIR}"/libcxxabi/include - -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF - -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) - -DLIBCXX_HAS_GCC_S_LIB=OFF - -DLIBCXX_INCLUDE_TESTS=OFF - -DLIBCXX_INCLUDE_BENCHMARKS=OFF - ) - - local CMAKE_USE_DIR=${WORKDIR}/libcxx - local BUILD_DIR=${BUILD_DIR}/libcxx - - "${@}" -} - multilib_src_test() { - # build local copies of libc++ & libc++abi for testing to avoid - # circular deps - wrap_libcxx cmake_src_configure - wrap_libcxx cmake_build generate-cxx-headers - wrap_libcxxabi cmake_src_configure - wrap_libcxxabi cmake_src_compile - wrap_libcxx cmake_src_compile - mv "${BUILD_DIR}"/libcxx*/lib/libc++* "${BUILD_DIR}/lib/" || die - local -x LIT_PRESERVES_TMP=1 cmake_build check-unwind } + +multilib_src_install() { + DESTDIR=${D} cmake_build install-unwind +} diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-13.0.1.9999.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-14.0.0_rc4.ebuild index b2e400ff295b..377022eb4033 100644 --- a/sys-libs/llvm-libunwind/llvm-libunwind-13.0.1.9999.ebuild +++ b/sys-libs/llvm-libunwind/llvm-libunwind-14.0.0_rc4.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -21,22 +21,21 @@ RDEPEND="!sys-libs/libunwind" DEPEND=" >=sys-devel/llvm-6" BDEPEND=" - test? ( >=sys-devel/clang-3.9.0 + ${PYTHON_DEPS} + test? ( + >=sys-devel/clang-3.9.0 $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )" -LLVM_COMPONENTS=( libunwind libcxx llvm/cmake ) -LLVM_TEST_COMPONENTS=( libcxxabi ) +LLVM_COMPONENTS=( runtimes libunwind libcxx llvm/cmake cmake ) +LLVM_TEST_COMPONENTS=( libcxxabi llvm/utils/llvm-lit ) llvm.org_set_globals python_check_deps() { + use test || return 0 has_version "dev-python/lit[${PYTHON_USEDEP}]" } -pkg_setup() { - use test && python-any-r1_pkg_setup -} - multilib_src_configure() { local use_compiler_rt=OFF local libdir=$(get_libdir) @@ -52,11 +51,15 @@ multilib_src_configure() { fi local mycmakeargs=( + -DPython3_EXECUTABLE="${PYTHON}" + -DLLVM_ENABLE_RUNTIMES="libunwind" -DLLVM_LIBDIR_SUFFIX=${libdir#lib} + -DLLVM_INCLUDE_TESTS=OFF -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug) -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs) + -DLIBUNWIND_INCLUDE_TESTS=$(usex test) + -DLIBUNWIND_INSTALL_HEADERS=ON -DLIBUNWIND_TARGET_TRIPLE="${CHOST}" - -DLLVM_INCLUDE_TESTS=$(usex test) # support non-native unwinding; given it's small enough, # enable it unconditionally @@ -66,77 +69,48 @@ multilib_src_configure() { -DLIBUNWIND_USE_COMPILER_RT=${use_compiler_rt} ) if use test; then - local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) - [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" - mycmakeargs+=( + -DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;libcxx" -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" - -DLLVM_LIT_ARGS="$(get_lit_flags);--param=cxx_under_test=${clang_path}" + -DLLVM_LIT_ARGS="$(get_lit_flags)" -DLIBUNWIND_LIBCXX_PATH="${WORKDIR}/libcxx" + + -DLIBCXXABI_LIBDIR_SUFFIX= + -DLIBCXXABI_ENABLE_SHARED=OFF + -DLIBCXXABI_ENABLE_STATIC=ON + -DLIBCXXABI_USE_LLVM_UNWINDER=ON + -DLIBCXXABI_INCLUDE_TESTS=OFF + + -DLIBCXX_LIBDIR_SUFFIX= + -DLIBCXX_ENABLE_SHARED=OFF + -DLIBCXX_ENABLE_STATIC=ON + -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF + -DLIBCXX_CXX_ABI=libcxxabi + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) + -DLIBCXX_HAS_GCC_S_LIB=OFF + -DLIBCXX_INCLUDE_TESTS=OFF + -DLIBCXX_INCLUDE_BENCHMARKS=OFF ) fi cmake_src_configure -} - -wrap_libcxxabi() { - local mycmakeargs=( - -DLIBCXXABI_LIBDIR_SUFFIX= - -DLIBCXXABI_ENABLE_SHARED=OFF - -DLIBCXXABI_ENABLE_STATIC=ON - -DLIBCXXABI_USE_LLVM_UNWINDER=ON - -DLIBCXXABI_INCLUDE_TESTS=OFF - - -DLIBCXXABI_LIBCXX_INCLUDES="${BUILD_DIR}"/libcxx/include/c++/v1 - -DLIBCXXABI_LIBUNWIND_INCLUDES="${S}"/include - ) - - local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/$(get_libdir)" - local CMAKE_USE_DIR=${WORKDIR}/libcxxabi - local BUILD_DIR=${BUILD_DIR}/libcxxabi - "${@}" -} - -wrap_libcxx() { - local mycmakeargs=( - -DLIBCXX_LIBDIR_SUFFIX= - -DLIBCXX_ENABLE_SHARED=OFF - -DLIBCXX_ENABLE_STATIC=ON - -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF - -DLIBCXXABI_USE_LLVM_UNWINDER=ON - -DLIBCXX_CXX_ABI=libcxxabi - -DLIBCXX_CXX_ABI_INCLUDE_PATHS="${WORKDIR}"/libcxxabi/include - -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF - -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) - -DLIBCXX_HAS_GCC_S_LIB=OFF - -DLIBCXX_INCLUDE_TESTS=OFF - ) - - local -x LDFLAGS="${LDFLAGS} -L${BUILD_DIR}/libcxxabi/lib -L${BUILD_DIR}/$(get_libdir)" - local CMAKE_USE_DIR=${WORKDIR}/libcxx - local BUILD_DIR=${BUILD_DIR}/libcxx + if use test; then + local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" - "${@}" + # meh, we need to override the compiler explicitly + sed -e "/%{cxx}/s@, '.*'@, '${clang_path}'@" \ + -i "${BUILD_DIR}"/libunwind/test/lit.site.cfg || die + fi } multilib_src_test() { - # build local copies of libc++ & libc++abi for testing to avoid - # circular deps - wrap_libcxx cmake_src_configure - wrap_libcxx cmake_build generate-cxx-headers - wrap_libcxxabi cmake_src_configure - wrap_libcxxabi cmake_src_compile - wrap_libcxx cmake_src_compile - mv "${BUILD_DIR}"/libcxx*/lib/libc++* "${BUILD_DIR}/$(get_libdir)/" || die - local -x LIT_PRESERVES_TMP=1 cmake_build check-unwind } multilib_src_install() { - cmake_src_install - - # install headers like sys-libs/libunwind - doheader "${S}"/include/*.h + DESTDIR=${D} cmake_build install-unwind } diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-15.0.0.9999.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-15.0.0.9999.ebuild new file mode 100644 index 000000000000..377022eb4033 --- /dev/null +++ b/sys-libs/llvm-libunwind/llvm-libunwind-15.0.0.9999.ebuild @@ -0,0 +1,116 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_ECLASS=cmake +PYTHON_COMPAT=( python3_{8..10} ) +inherit cmake-multilib llvm llvm.org python-any-r1 toolchain-funcs + +DESCRIPTION="C++ runtime stack unwinder from LLVM" +HOMEPAGE="https://github.com/llvm-mirror/libunwind" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="" +IUSE="debug static-libs test" +RESTRICT="!test? ( test )" + +RDEPEND="!sys-libs/libunwind" +# llvm-6 for new lit options +DEPEND=" + >=sys-devel/llvm-6" +BDEPEND=" + ${PYTHON_DEPS} + test? ( + >=sys-devel/clang-3.9.0 + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + )" + +LLVM_COMPONENTS=( runtimes libunwind libcxx llvm/cmake cmake ) +LLVM_TEST_COMPONENTS=( libcxxabi llvm/utils/llvm-lit ) +llvm.org_set_globals + +python_check_deps() { + use test || return 0 + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +multilib_src_configure() { + local use_compiler_rt=OFF + local libdir=$(get_libdir) + + # link to compiler-rt + # https://github.com/gentoo/gentoo/pull/21516 + if tc-is-clang; then + local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ + ${LD_FLAGS} -print-libgcc-file-name) + if [[ ${compiler_rt} == *libclang_rt* ]]; then + use_compiler_rt=ON + fi + fi + + local mycmakeargs=( + -DPython3_EXECUTABLE="${PYTHON}" + -DLLVM_ENABLE_RUNTIMES="libunwind" + -DLLVM_LIBDIR_SUFFIX=${libdir#lib} + -DLLVM_INCLUDE_TESTS=OFF + -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug) + -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs) + -DLIBUNWIND_INCLUDE_TESTS=$(usex test) + -DLIBUNWIND_INSTALL_HEADERS=ON + -DLIBUNWIND_TARGET_TRIPLE="${CHOST}" + + # support non-native unwinding; given it's small enough, + # enable it unconditionally + -DLIBUNWIND_ENABLE_CROSS_UNWINDING=ON + + # avoid dependency on libgcc_s if compiler-rt is used + -DLIBUNWIND_USE_COMPILER_RT=${use_compiler_rt} + ) + if use test; then + mycmakeargs+=( + -DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;libcxx" + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags)" + -DLIBUNWIND_LIBCXX_PATH="${WORKDIR}/libcxx" + + -DLIBCXXABI_LIBDIR_SUFFIX= + -DLIBCXXABI_ENABLE_SHARED=OFF + -DLIBCXXABI_ENABLE_STATIC=ON + -DLIBCXXABI_USE_LLVM_UNWINDER=ON + -DLIBCXXABI_INCLUDE_TESTS=OFF + + -DLIBCXX_LIBDIR_SUFFIX= + -DLIBCXX_ENABLE_SHARED=OFF + -DLIBCXX_ENABLE_STATIC=ON + -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF + -DLIBCXX_CXX_ABI=libcxxabi + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) + -DLIBCXX_HAS_GCC_S_LIB=OFF + -DLIBCXX_INCLUDE_TESTS=OFF + -DLIBCXX_INCLUDE_BENCHMARKS=OFF + ) + fi + + cmake_src_configure + + if use test; then + local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null) + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" + + # meh, we need to override the compiler explicitly + sed -e "/%{cxx}/s@, '.*'@, '${clang_path}'@" \ + -i "${BUILD_DIR}"/libunwind/test/lit.site.cfg || die + fi +} + +multilib_src_test() { + local -x LIT_PRESERVES_TMP=1 + cmake_build check-unwind +} + +multilib_src_install() { + DESTDIR=${D} cmake_build install-unwind +} |