From 51f0d16e058c162dbce0f93d871ba45683b0ab3a Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 6 Aug 2022 02:09:04 +0100 Subject: gentoo auto-resync : 06:08:2022 - 02:09:04 --- sys-libs/Manifest.gz | Bin 14258 -> 14258 bytes sys-libs/compiler-rt-sanitizers/Manifest | 5 +- .../compiler-rt-sanitizers-14.0.6.ebuild | 2 +- .../compiler-rt-sanitizers-16.0.0.9999.ebuild | 221 ++++++++++++++++++++ sys-libs/compiler-rt/Manifest | 1 + .../compiler-rt/compiler-rt-16.0.0.9999.ebuild | 138 +++++++++++++ sys-libs/libcxx/Manifest | 1 + sys-libs/libcxx/libcxx-16.0.0.9999.ebuild | 228 +++++++++++++++++++++ sys-libs/libcxxabi/Manifest | 1 + sys-libs/libcxxabi/libcxxabi-16.0.0.9999.ebuild | 129 ++++++++++++ sys-libs/libomp/Manifest | 1 + sys-libs/libomp/libomp-16.0.0.9999.ebuild | 129 ++++++++++++ sys-libs/llvm-libunwind/Manifest | 1 + .../llvm-libunwind-16.0.0.9999.ebuild | 123 +++++++++++ 14 files changed, 977 insertions(+), 3 deletions(-) create mode 100644 sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.0.9999.ebuild create mode 100644 sys-libs/compiler-rt/compiler-rt-16.0.0.9999.ebuild create mode 100644 sys-libs/libcxx/libcxx-16.0.0.9999.ebuild create mode 100644 sys-libs/libcxxabi/libcxxabi-16.0.0.9999.ebuild create mode 100644 sys-libs/libomp/libomp-16.0.0.9999.ebuild create mode 100644 sys-libs/llvm-libunwind/llvm-libunwind-16.0.0.9999.ebuild (limited to 'sys-libs') diff --git a/sys-libs/Manifest.gz b/sys-libs/Manifest.gz index f457121ac2cd..3c382df66862 100644 Binary files a/sys-libs/Manifest.gz and b/sys-libs/Manifest.gz differ diff --git a/sys-libs/compiler-rt-sanitizers/Manifest b/sys-libs/compiler-rt-sanitizers/Manifest index fbc8fa69059d..8a93b8fe6868 100644 --- a/sys-libs/compiler-rt-sanitizers/Manifest +++ b/sys-libs/compiler-rt-sanitizers/Manifest @@ -1,10 +1,11 @@ DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01 -DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c +DIST llvm-gentoo-patchset-14.0.6-r3.tar.xz 16904 BLAKE2B ebf67455071d6d3744cfc0491b8a33c4c63bfdbcf668565fa0718f6cdb01bced53be9d1cdf6774f6cd8427c07c0ede69503d74cf3574642a6967b38730248ebb SHA512 adc5a3212657d1defa7b720d1a7e9e91586439a34964d44b6897d21be3d208bd15c04bf20502dd7125ef8c368defaeea146eb844ca321be56eebcee52be606a9 DIST llvm-gentoo-patchset-9999-1.tar.xz 4032 BLAKE2B b9413484dafed8ae0c68c2c164b45fd07bb8d5d0898f03abe118fd2120ffcb1fb6c949de9649a97c2e8105f24b9d131a725c67c0a502ca4d4d192c1a0d65f49d SHA512 e64449eeaf756c5bd945109937b84ba4bd8a015222bd792d39cf3947871e87571a4ca57814790e51544cb05ad4c2d1f044e818e4caaac7c2e2a02cb1aa290fcc DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f EBUILD compiler-rt-sanitizers-13.0.1.ebuild 6337 BLAKE2B 67f5e39af19ab6e4dccb2989d044a1f148a7e3cafd7134ea7ccdc75481416158613137e3cc7204d32b3c868d00e5047c9d378f09814b8fc1e46ad876d5214423 SHA512 c49b998f5f990103e53253f22f19313e3b8e884818bdc5b651ee976957f8fa10d36ce6146b1db65336c60e4f22f67c435c5841e0f8cea48901724790d3c6738f -EBUILD compiler-rt-sanitizers-14.0.6.ebuild 6349 BLAKE2B 6d27940bd10da586648cbde4488e9c401b37a6d90dbc028483a23eabde26fc65d4dd4bff851256f1e7ab1e3a7044f31fab0dbb3f5e13980d38c1410b68e29d93 SHA512 bf140701f85322ec7a8debd6cbb8bd1725e0f7fcc021e97a8251993e87c9150f2d6c0e56b35826de6d71dfb9d2cb9d51935b39302281134551d09607cc3edb92 +EBUILD compiler-rt-sanitizers-14.0.6.ebuild 6349 BLAKE2B b4a180561b4aa22cf1af576e87a97513af4f6f5aebdf133aa39864697ef5b116b37066d115b4fd396132830127425884b3f009baf77276733ea85df76ec37008 SHA512 26220a0202faecae61933fa53a8f8c443989e0deb4b412ca7303d31a8c50aef0530802862e30f59d105136a8f38f6b55b7ffca6f33f24878cbcb798e3e17129c EBUILD compiler-rt-sanitizers-15.0.0.9999.ebuild 6292 BLAKE2B a0cb8f93777efbe56af67b5c79d187bfe2dfedfdbbe4bac3eaf921c7e1e7f307e6cefe5fd00afa799cda93d0538ad313009544d20182accf4a35895948bebd62 SHA512 9782e162eb492c0a03555a671ed1bea614304359afbb6a04a4f6232c1ab0f3c796e5e617e032f9213e0f430a6871a05adc1616f3aaed1e57424b8916466d85f9 +EBUILD compiler-rt-sanitizers-16.0.0.9999.ebuild 6292 BLAKE2B a0cb8f93777efbe56af67b5c79d187bfe2dfedfdbbe4bac3eaf921c7e1e7f307e6cefe5fd00afa799cda93d0538ad313009544d20182accf4a35895948bebd62 SHA512 9782e162eb492c0a03555a671ed1bea614304359afbb6a04a4f6232c1ab0f3c796e5e617e032f9213e0f430a6871a05adc1616f3aaed1e57424b8916466d85f9 MISC metadata.xml 1412 BLAKE2B 75675507000fa6a6b8182e6b45a08a2716ae7fb9a7e3428dc8420464e4c1d1bdb5bea62cc2f553c579de5a4faa752b35cb3529d980fb07a055ff4ddf6e752707 SHA512 f05ea5168b923db72f4f5b53e9b748ebbcdae9eff09d86323313055933b47fc0089e1b2d73cd997d73dcfb2dca032344955816425fbddc09d27ca751463aadbb diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.6.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.6.ebuild index 9b4678796505..80f1153af338 100644 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.6.ebuild +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-14.0.6.ebuild @@ -57,7 +57,7 @@ BDEPEND=" LLVM_COMPONENTS=( compiler-rt cmake ) LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support llvm/utils/unittest ) -LLVM_PATCHSET=${PV}-r2 +LLVM_PATCHSET=${PV}-r3 llvm.org_set_globals python_check_deps() { diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.0.9999.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.0.9999.ebuild new file mode 100644 index 000000000000..964e7e01049f --- /dev/null +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.0.9999.ebuild @@ -0,0 +1,221 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..11} ) +inherit check-reqs cmake flag-o-matic llvm llvm.org python-any-r1 + +DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="$(ver_cut 1-3)" +KEYWORDS="" +IUSE="+abi_x86_32 abi_x86_64 +clang debug test" +# base targets +IUSE+=" +libfuzzer +memprof +orc +profile +xray" +# sanitizer targets, keep in sync with config-ix.cmake +# NB: ubsan, scudo deliberately match two entries +SANITIZER_FLAGS=( + asan dfsan lsan msan hwasan tsan ubsan safestack cfi scudo + shadowcallstack gwp-asan +) +IUSE+=" ${SANITIZER_FLAGS[@]/#/+}" +REQUIRED_USE=" + || ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray ) + test? ( + cfi? ( ubsan ) + gwp-asan? ( scudo ) + ) +" +RESTRICT=" + !clang? ( test ) + !test? ( test ) +" + +CLANG_SLOT=${SLOT%%.*} +# llvm-6 for new lit options +DEPEND=" + >=sys-devel/llvm-6 + virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?] +" +BDEPEND=" + >=dev-util/cmake-3.16 + clang? ( sys-devel/clang ) + elibc_glibc? ( net-libs/libtirpc ) + test? ( + !=dev-python/lit-15[\${PYTHON_USEDEP}]") + =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} + sys-libs/compiler-rt:${SLOT} + ) + !test? ( + ${PYTHON_DEPS} + ) +" + +LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake ) +LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support llvm/utils/unittest ) +LLVM_PATCHSET=9999-1 +llvm.org_set_globals + +python_check_deps() { + use test || return 0 + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +check_space() { + if use test; then + local CHECKREQS_DISK_BUILD=11G + check-reqs_pkg_pretend + fi +} + +pkg_pretend() { + check_space +} + +pkg_setup() { + check_space + llvm_pkg_setup + python-any-r1_pkg_setup +} + +src_prepare() { + sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die + + local flag + for flag in "${SANITIZER_FLAGS[@]}"; do + if ! use "${flag}"; then + local cmake_flag=${flag/-/_} + sed -i -e "/COMPILER_RT_HAS_${cmake_flag^^}/s:TRUE:FALSE:" \ + cmake/config-ix.cmake || die + fi + done + + # TODO: fix these tests to be skipped upstream + if use asan && ! use profile; then + rm test/asan/TestCases/asan_and_llvm_coverage_test.cpp || die + fi + if use ubsan && ! use cfi; then + > test/cfi/CMakeLists.txt || die + fi + + llvm.org_src_prepare +} + +src_configure() { + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + + # pre-set since we need to pass it to cmake + BUILD_DIR=${WORKDIR}/compiler-rt_build + + if use clang; then + local -x CC=${CHOST}-clang + local -x CXX=${CHOST}-clang++ + strip-unsupported-flags + fi + + local flag want_sanitizer=OFF + for flag in "${SANITIZER_FLAGS[@]}"; do + if use "${flag}"; then + want_sanitizer=ON + break + fi + done + + local mycmakeargs=( + -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" + # use a build dir structure consistent with install + # this makes it possible to easily deploy test-friendly clang + -DCOMPILER_RT_OUTPUT_DIR="${BUILD_DIR}/lib/clang/${SLOT}" + + -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) + # builtins & crt installed by sys-libs/compiler-rt + -DCOMPILER_RT_BUILD_BUILTINS=OFF + -DCOMPILER_RT_BUILD_CRT=OFF + -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer) + -DCOMPILER_RT_BUILD_MEMPROF=$(usex memprof) + -DCOMPILER_RT_BUILD_ORC=$(usex orc) + -DCOMPILER_RT_BUILD_PROFILE=$(usex profile) + -DCOMPILER_RT_BUILD_SANITIZERS="${want_sanitizer}" + -DCOMPILER_RT_BUILD_XRAY=$(usex xray) + + -DPython3_EXECUTABLE="${PYTHON}" + ) + + if use amd64; then + mycmakeargs+=( + -DCAN_TARGET_i386=$(usex abi_x86_32) + -DCAN_TARGET_x86_64=$(usex abi_x86_64) + ) + fi + + if use test; then + mycmakeargs+=( + -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags)" + + # they are created during src_test() + -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang" + -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${CLANG_SLOT}/bin/clang++" + ) + + # same flags are passed for build & tests, so we need to strip + # them down to a subset supported by clang + CC=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang \ + CXX=${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++ \ + strip-unsupported-flags + fi + + if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then + mycmakeargs+=( + # setting -isysroot is disabled with compiler-rt-prefix-paths.patch + # this allows adding arm64 support using SDK in EPREFIX + -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk" + # Set version based on the SDK in EPREFIX + # This disables i386 for SDK >= 10.15 + # Will error if has_use tsan and SDK < 10.12 + -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath ${EPREFIX}/MacOSX.sdk | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')" + # Use our libtool instead of looking it up with xcrun + -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool" + ) + fi + + cmake_src_configure + + if use test; then + local sys_dir=( "${EPREFIX}"/usr/lib/clang/${SLOT}/lib/* ) + [[ -e ${sys_dir} ]] || die "Unable to find ${sys_dir}" + [[ ${#sys_dir[@]} -eq 1 ]] || die "Non-deterministic compiler-rt install: ${sys_dir[*]}" + + # copy clang over since resource_dir is located relatively to binary + # therefore, we can put our new libraries in it + mkdir -p "${BUILD_DIR}"/lib/{llvm/${CLANG_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die + cp "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/bin/clang{,++} \ + "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/bin/ || die + cp "${EPREFIX}"/usr/lib/clang/${SLOT}/include/*.h \ + "${BUILD_DIR}"/lib/clang/${SLOT}/include/ || die + cp "${sys_dir}"/*builtins*.a \ + "${BUILD_DIR}/lib/clang/${SLOT}/lib/${sys_dir##*/}/" || die + # we also need LLVMgold.so for gold-based tests + if [[ -f ${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so ]]; then + ln -s "${EPREFIX}"/usr/lib/llvm/${CLANG_SLOT}/$(get_libdir)/LLVMgold.so \ + "${BUILD_DIR}"/lib/llvm/${CLANG_SLOT}/$(get_libdir)/ || die + fi + fi +} + +src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + # disable sandbox to have it stop clobbering LD_PRELOAD + local -x SANDBOX_ON=0 + # wipe LD_PRELOAD to make ASAN happy + local -x LD_PRELOAD= + + cmake_build check-all +} diff --git a/sys-libs/compiler-rt/Manifest b/sys-libs/compiler-rt/Manifest index cbc5c6b86ab9..39849eba65c7 100644 --- a/sys-libs/compiler-rt/Manifest +++ b/sys-libs/compiler-rt/Manifest @@ -8,4 +8,5 @@ EBUILD compiler-rt-13.0.1.ebuild 3868 BLAKE2B b2b643b850023513b69076bc791b22b74a EBUILD compiler-rt-14.0.6-r1.ebuild 4179 BLAKE2B 1fe649044872b312da697df9a88217c323ced9dff0283932f6a0210b3e97a86cce59a37a1e678f45ff16c93f5647d6150ffb963303a3390a6eeb372fcd587a3d SHA512 2182681a27d944378e39cc5283d46c4a94da3b8b3a9fc18d5c38c6f00e92a1b1dc7cc945bd3dc71b6471b24a1ce769d6f17f84a5452e0f4b2bf1c7c670cbaa1c EBUILD compiler-rt-14.0.6.ebuild 4019 BLAKE2B f97793688c6e2dd3f2874217813ee9759bb896e192e146a2bc17e97daa0d9f8d8708938c68ab1270ef9dc49eb52bb7c29b4edd94382993e8de0a73f006238d23 SHA512 73a150cb917587e1e9a0adc499ae6cb1d473e455400b1b19777b30dea72846f01114bc52018dda7ff7090ea43b365793ad5a3515e4601dbd9ba4226c62322c77 EBUILD compiler-rt-15.0.0.9999.ebuild 3725 BLAKE2B e599809889557255e7f9f5017ef685d85e3894477db00681f35ef285af9f97043160b08dc99f4f972519109366ebfd1fed34bfe8b452d3ca96a12d57aaf5e948 SHA512 881f8d4a464e19425a265cdb18d99ce85357d4aa206f3e9cfdf26536a05537146e1232199ae35da7f9f95382a175ca89fe48a59351ca3706a82f537159284d29 +EBUILD compiler-rt-16.0.0.9999.ebuild 3725 BLAKE2B e599809889557255e7f9f5017ef685d85e3894477db00681f35ef285af9f97043160b08dc99f4f972519109366ebfd1fed34bfe8b452d3ca96a12d57aaf5e948 SHA512 881f8d4a464e19425a265cdb18d99ce85357d4aa206f3e9cfdf26536a05537146e1232199ae35da7f9f95382a175ca89fe48a59351ca3706a82f537159284d29 MISC metadata.xml 416 BLAKE2B 79a58249c94b605ba57f346c4e05b43853cf6cfb8bb65a4f4e3c44039cccfdb83dd31bfaaaf398bcbdc393efabdfc7ed186fe775976c46227e74decf2c8f4fb2 SHA512 ce30c79a575e5933effb1fec36f9a4ef02d9f97f312feb39c55a88cbda9a1bae1d7af2ec4ad5f66212cbb2cdbfb26f1a436689f16f410153c9d65eb010264c48 diff --git a/sys-libs/compiler-rt/compiler-rt-16.0.0.9999.ebuild b/sys-libs/compiler-rt/compiler-rt-16.0.0.9999.ebuild new file mode 100644 index 000000000000..8ef4aebf481d --- /dev/null +++ b/sys-libs/compiler-rt/compiler-rt-16.0.0.9999.ebuild @@ -0,0 +1,138 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..11} ) +inherit cmake flag-o-matic llvm llvm.org python-any-r1 toolchain-funcs + +DESCRIPTION="Compiler runtime library for clang (built-in part)" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="$(ver_cut 1-3)" +KEYWORDS="" +IUSE="+abi_x86_32 abi_x86_64 +clang debug test" +RESTRICT="!test? ( test ) !clang? ( test )" + +CLANG_SLOT=${SLOT%%.*} +# llvm-6 for new lit options +DEPEND=" + >=sys-devel/llvm-6 +" +BDEPEND=" + >=dev-util/cmake-3.16 + clang? ( sys-devel/clang ) + test? ( + $(python_gen_any_dep ">=dev-python/lit-15[\${PYTHON_USEDEP}]") + =sys-devel/clang-${PV%_*}*:${CLANG_SLOT} + ) + !test? ( + ${PYTHON_DEPS} + ) +" + +LLVM_COMPONENTS=( runtimes compiler-rt cmake llvm/cmake ) +LLVM_PATCHSET=9999-1 +llvm.org_set_globals + +python_check_deps() { + use test || return 0 + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_pretend() { + if ! use clang && ! tc-is-clang; then + ewarn "Building using a compiler other than clang may result in broken atomics" + ewarn "library. Enable USE=clang unless you have a very good reason not to." + fi +} + +pkg_setup() { + # Darwin Prefix builds do not have llvm installed yet, so rely on + # bootstrap-prefix to set the appropriate path vars to LLVM instead + # of using llvm_pkg_setup. + if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then + llvm_pkg_setup + fi + python-any-r1_pkg_setup +} + +test_compiler() { + $(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \ + <<<'int main() { return 0; }' &>/dev/null +} + +src_configure() { + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + + # pre-set since we need to pass it to cmake + BUILD_DIR=${WORKDIR}/${P}_build + + if use clang; then + # Only do this conditionally to allow overriding with + # e.g. CC=clang-13 in case of breakage + if ! tc-is-clang ; then + local -x CC=${CHOST}-clang + local -x CXX=${CHOST}-clang++ + fi + strip-unsupported-flags + fi + + local mycmakeargs=( + -DLLVM_ENABLE_RUNTIMES=compiler-rt + # this only adds unnecessary req on llvm-lit directory + -DLLVM_INCLUDE_TESTS=OFF + + -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}" + -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) + -DCOMPILER_RT_BUILD_LIBFUZZER=OFF + -DCOMPILER_RT_BUILD_MEMPROF=OFF + -DCOMPILER_RT_BUILD_ORC=OFF + -DCOMPILER_RT_BUILD_PROFILE=OFF + -DCOMPILER_RT_BUILD_SANITIZERS=OFF + -DCOMPILER_RT_BUILD_XRAY=OFF + + -DPython3_EXECUTABLE="${PYTHON}" + ) + + if use amd64; then + mycmakeargs+=( + -DCAN_TARGET_i386=$(usex abi_x86_32) + -DCAN_TARGET_x86_64=$(usex abi_x86_64) + ) + fi + + if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then + mycmakeargs+=( + # setting -isysroot is disabled with compiler-rt-prefix-paths.patch + # this allows adding arm64 support using SDK in EPREFIX + -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk" + # Set version based on the SDK in EPREFIX. + # This disables i386 for SDK >= 10.15 + -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath ${EPREFIX}/MacOSX.sdk | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')" + # Use our libtool instead of looking it up with xcrun + -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool" + ) + fi + + if use test; then + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags)" + + -DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang" + -DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${CLANG_SLOT}/bin/clang++" + ) + fi + + cmake_src_configure +} + +src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + + cmake_build check-builtins +} diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest index 0852e2f6f326..d84ce979e8a3 100644 --- a/sys-libs/libcxx/Manifest +++ b/sys-libs/libcxx/Manifest @@ -7,4 +7,5 @@ DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69b EBUILD libcxx-13.0.1.ebuild 6780 BLAKE2B 575c9089d74bddc871e97147c53f7c298cd1683b989eba6b50601b45693c11d0647e3bd6f70c0a75caaea7ee3fea2f88f1bbad444d7f1785a62175337659e2e3 SHA512 f0ff78e48acca25cb925aee5106fba0d547ab8522ccfd65e2198d4f481f83abbadc415ac3808e45387fc945980f9892fdbda3b6a26d54163cebfa4f12fa17172 EBUILD libcxx-14.0.6.ebuild 6960 BLAKE2B d95e91e206ef8b9173368016b15f6d6457f6892db5bacffd0b551365198e572cc0f492e3aa4e3b5cba902163572b424b713de68f7afede6115daa1920fb3c267 SHA512 61370b6464aa7f54c0f13a38922e5e05100817ca65fee5231acd0384693b3ef88a5e611b53bebea3931e9b9f8f5f0513475504a8ab62942316375196a1eae718 EBUILD libcxx-15.0.0.9999.ebuild 6065 BLAKE2B 3816a2235860d89f5afcfaeaccc1d84a115ad0a06526f3b4383247e165cc1917737fa5c9c66d1189871ed60371c50db93d8194daaaa8c2b708d8dc0ec810c571 SHA512 22e742b874b9403f64eee8eee76552cd145ed4eca65523bd47b2bdddbb2a9436982c010bc10980ada9bb4a63a5d8663eec2d124a3517355eccbdd22b32f85bfb +EBUILD libcxx-16.0.0.9999.ebuild 6065 BLAKE2B 3816a2235860d89f5afcfaeaccc1d84a115ad0a06526f3b4383247e165cc1917737fa5c9c66d1189871ed60371c50db93d8194daaaa8c2b708d8dc0ec810c571 SHA512 22e742b874b9403f64eee8eee76552cd145ed4eca65523bd47b2bdddbb2a9436982c010bc10980ada9bb4a63a5d8663eec2d124a3517355eccbdd22b32f85bfb MISC metadata.xml 828 BLAKE2B 40af456df8ac1cfdb66fd62a217abbb4ca837956529906118c35232000435d9e991d18dd0332b7b95eed70d4c7610c7a1aee80af8ba511763edc1423749a4aa4 SHA512 257f8fd05fcade26ca02305356b67c8e2d67a87b180e38a189a659212093b07b9a710b871fbaab894dba9eba5fe450b76c52cc82f6405c24cc1ab2df3abe8bfd diff --git a/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild new file mode 100644 index 000000000000..d95f996ca33b --- /dev/null +++ b/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild @@ -0,0 +1,228 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CMAKE_ECLASS=cmake +PYTHON_COMPAT=( python3_{8..11} ) +inherit cmake-multilib flag-o-matic llvm llvm.org python-any-r1 \ + toolchain-funcs + +DESCRIPTION="New implementation of the C++ standard library, targeting C++11" +HOMEPAGE="https://libcxx.llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="" +IUSE="+clang +libcxxabi static-libs test" +REQUIRED_USE="test? ( clang )" +RESTRICT="!test? ( test )" + +RDEPEND=" + libcxxabi? ( + ~sys-libs/libcxxabi-${PV}[static-libs?,${MULTILIB_USEDEP}] + ) + !libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] ) +" +# llvm-6 for new lit options +# clang-3.9.0 installs necessary target symlinks unconditionally +# which removes the need for MULTILIB_USEDEP +DEPEND=" + ${RDEPEND} + >=sys-devel/llvm-6 +" +BDEPEND=" + clang? ( + sys-devel/clang + ) + !test? ( + ${PYTHON_DEPS} + ) + test? ( + >=dev-util/cmake-3.16 + sys-devel/gdb[python] + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + ) +" + +LLVM_COMPONENTS=( runtimes libcxx{,abi} llvm/{cmake,utils/llvm-lit} cmake ) +LLVM_PATCHSET=9999-1 +llvm.org_set_globals + +python_check_deps() { + use test || return 0 + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + # Darwin Prefix builds do not have llvm installed yet, so rely on + # bootstrap-prefix to set the appropriate path vars to LLVM instead + # of using llvm_pkg_setup. + if [[ ${CHOST} != *-darwin* ]] || has_version dev-lang/llvm; then + llvm_pkg_setup + fi + python-any-r1_pkg_setup + + if ! use libcxxabi && ! tc-is-gcc ; then + eerror "To build ${PN} against libsupc++, you have to use gcc. Other" + eerror "compilers are not supported. Please set CC=gcc and CXX=g++" + eerror "and try again." + die + fi +} + +test_compiler() { + $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \ + <<<'int main() { return 0; }' &>/dev/null +} + +src_configure() { + # note: we need to do this before multilib kicks in since it will + # alter the CHOST + local cxxabi cxxabi_incs + if use libcxxabi; then + cxxabi=system-libcxxabi + cxxabi_incs="${EPREFIX}/usr/include/c++/v1" + else + local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)" + cxxabi=libsupc++ + cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}" + fi + + multilib-minimal_src_configure +} + +multilib_src_configure() { + if use clang && ! tc-is-clang; then + # Only do this conditionally to allow overriding with + # e.g. CC=clang-13 in case of breakage + local -x CC=${CHOST}-clang + local -x CXX=${CHOST}-clang++ + strip-unsupported-flags + fi + + # link against compiler-rt instead of libgcc if this is what clang does + local want_compiler_rt=OFF + if tc-is-clang; then + local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ + ${LDFLAGS} -print-libgcc-file-name) + if [[ ${compiler_rt} == *libclang_rt* ]]; then + want_compiler_rt=ON + fi + fi + + # bootstrap: cmake is unhappy if compiler can't link to stdlib + local nolib_flags=( -nodefaultlibs -lc ) + if ! test_compiler; then + if test_compiler "${nolib_flags[@]}"; then + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + ewarn "${CXX} seems to lack runtime, trying with ${nolib_flags[*]}" + fi + fi + + local libdir=$(get_libdir) + local mycmakeargs=( + -DCMAKE_CXX_COMPILER_TARGET="${CHOST}" + -DPython3_EXECUTABLE="${PYTHON}" + -DLLVM_ENABLE_RUNTIMES=libcxx + -DLLVM_INCLUDE_TESTS=OFF + -DLLVM_LIBDIR_SUFFIX=${libdir#lib} + + -DLIBCXX_ENABLE_SHARED=ON + -DLIBCXX_ENABLE_STATIC=$(usex static-libs) + -DLIBCXX_CXX_ABI=${cxxabi} + -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs} + # we're using our own mechanism for generating linker scripts + -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF + -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) + -DLIBCXX_INCLUDE_BENCHMARKS=OFF + -DLIBCXX_INCLUDE_TESTS=$(usex test) + -DLIBCXX_USE_COMPILER_RT=${want_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_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags)" + -DPython3_EXECUTABLE="${PYTHON}" + ) + fi + cmake_src_configure +} + +multilib_src_compile() { + cmake_src_compile + if [[ ${CHOST} != *-darwin* ]] ; then + gen_shared_ldscript + use static-libs && gen_static_ldscript + fi +} + +multilib_src_test() { + local -x LIT_PRESERVES_TMP=1 + cmake_build check-cxx +} + +multilib_src_install() { + cmake_src_install + # since we've replaced libc++.{a,so} with ldscripts, now we have to + # install the extra symlinks + if [[ ${CHOST} != *-darwin* ]] ; then + dolib.so lib/libc++_shared.so + use static-libs && dolib.a lib/libc++_static.a + fi +} + +# Usage: deps +gen_ldscript() { + local output_format + output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p') + [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )" + + cat <<-END_LDSCRIPT +/* GNU ld script + Include missing dependencies +*/ +${output_format} +GROUP ( $@ ) +END_LDSCRIPT +} + +gen_static_ldscript() { + # Move it first. + mv lib/libc++{,_static}.a || die + # Generate libc++.a ldscript for inclusion of its dependencies so that + # clang++ -stdlib=libc++ -static works out of the box. + local deps=( + libc++_static.a + $(usex libcxxabi libc++abi.a libsupc++.a) + ) + # On Linux/glibc it does not link without libpthread or libdl. It is + # fine on FreeBSD. + use elibc_glibc && deps+=( libpthread.a libdl.a ) + + gen_ldscript "${deps[*]}" > lib/libc++.a || die +} + +gen_shared_ldscript() { + # Move it first. + mv lib/libc++{,_shared}.so || die + local deps=( + libc++_shared.so + # libsupc++ doesn't have a shared version + $(usex libcxxabi libc++abi.so libsupc++.a) + ) + + gen_ldscript "${deps[*]}" > lib/libc++.so || die +} + +pkg_postinst() { + elog "This package (${PN}) is mainly intended as a replacement for the C++" + elog "standard library when using clang." + elog "To use it, instead of libstdc++, use:" + elog " clang++ -stdlib=libc++" + elog "to compile your C++ programs." +} diff --git a/sys-libs/libcxxabi/Manifest b/sys-libs/libcxxabi/Manifest index d63c6b0d96da..1b6a9250befe 100644 --- a/sys-libs/libcxxabi/Manifest +++ b/sys-libs/libcxxabi/Manifest @@ -4,4 +4,5 @@ DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69b EBUILD libcxxabi-13.0.1.ebuild 3605 BLAKE2B 7bdc8ecd9c35cdc247f08f9d5687d7362013be7c9c5afe006817cb5a384d4dd272bc686c6fe2ddf2a9bde5be8d1fa185ae60da940fded833a356f76e6105feb8 SHA512 69c4564fc68e3037620de0ce0cda29093bff9eb919f48f4760558edd1031c0d198991e6346774244701679aa0619d6afd814ec80d0d66265418408416621d9d0 EBUILD libcxxabi-14.0.6.ebuild 3521 BLAKE2B 3f5bb6329c14a608fb52e2429ba4acbff8ec2c490d832beae73956a4323c896e8d7030261fb845002cf1682bd7331cbb0e31df2ea214dda583cd004ae6c2f9db SHA512 92e061f2f4736f8a6fcc5240870dbdb4574a2945d77de0f00d6c7fd2011e76edf63084bb7ee6c32f038a708c5d1df4753aaa936470d0670cd772113f38cef62a EBUILD libcxxabi-15.0.0.9999.ebuild 3303 BLAKE2B 75a33d5039be0e5400680a7144c9cb50bf7b7fe6fb0edadf1d8d929a3bfeff2f752b08c4a9ba11ee46355b9a353da7b586449521edf779fd5edfcdd78db2ade0 SHA512 3f7851502ea769fad89ef013fbf42b9e8763f25139f4440dbadda8b559d14b7b3aff09c388233a3906d8895a76308f6fd9fa7900cf2535567c4b271083c9692f +EBUILD libcxxabi-16.0.0.9999.ebuild 3303 BLAKE2B 75a33d5039be0e5400680a7144c9cb50bf7b7fe6fb0edadf1d8d929a3bfeff2f752b08c4a9ba11ee46355b9a353da7b586449521edf779fd5edfcdd78db2ade0 SHA512 3f7851502ea769fad89ef013fbf42b9e8763f25139f4440dbadda8b559d14b7b3aff09c388233a3906d8895a76308f6fd9fa7900cf2535567c4b271083c9692f MISC metadata.xml 557 BLAKE2B 4f6b0acb7cfdf74971a6fd96051d9f9020141c6117333a8de42bd043935b7bff8d9942faabdf3b1c94597c460393f64eb7d3f7b7d49f39ecfd0094de460f563e SHA512 67a812ef768e681ae77ef6e13bccffcbe53b41e94901f0558b3c7acaf896605ca670c4bb5a690bd9afa3b5a76271341710520a6abc0024c18f437fabde20e847 diff --git a/sys-libs/libcxxabi/libcxxabi-16.0.0.9999.ebuild b/sys-libs/libcxxabi/libcxxabi-16.0.0.9999.ebuild new file mode 100644 index 000000000000..308024bf9d49 --- /dev/null +++ b/sys-libs/libcxxabi/libcxxabi-16.0.0.9999.ebuild @@ -0,0 +1,129 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CMAKE_ECLASS=cmake +PYTHON_COMPAT=( python3_{8..11} ) +inherit cmake-multilib flag-o-matic llvm llvm.org python-any-r1 \ + toolchain-funcs + +DESCRIPTION="Low level support for a standard C++ library" +HOMEPAGE="https://libcxxabi.llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="" +IUSE="+clang static-libs test" +REQUIRED_USE="test? ( clang )" +RESTRICT="!test? ( test )" + +# in 15.x, cxxabi.h is moving from libcxx to libcxxabi +RDEPEND+=" + !/dev/null) + [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests" + + mycmakeargs+=( + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags)" + -DPython3_EXECUTABLE="${PYTHON}" + ) + fi + cmake_src_configure +} + +multilib_src_compile() { + cmake_build cxxabi +} + +multilib_src_test() { + local -x LIT_PRESERVES_TMP=1 + cmake_build check-cxxabi +} + +multilib_src_install() { + DESTDIR="${D}" cmake_build install-cxxabi +} diff --git a/sys-libs/libomp/Manifest b/sys-libs/libomp/Manifest index 8e075dfd1e77..464577bef550 100644 --- a/sys-libs/libomp/Manifest +++ b/sys-libs/libomp/Manifest @@ -6,4 +6,5 @@ DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69b EBUILD libomp-13.0.1.ebuild 3836 BLAKE2B bfecc3ecb5928ba0c4f1e79baf7108705b33b654631ebc05a52bebab494eebefe6ec1f7403170f5e0b541942618a88ebad52f5ba80bf185a2544170df3c84bcc SHA512 97a257c4e40440c83dc72d76f67d5b4b49ea74b138e541163c3bc938a50052fae3ae988c60a290c1b0051efc623f9be464c1801b5b7569a8cbb446724fe8267b EBUILD libomp-14.0.6-r1.ebuild 3846 BLAKE2B ba454ff21aa950024868546e76e34f7eae5e0df1e72f828832c7f32d4b5cb544d479b18e609adbfc2352e5773c9cc08717a0b09d6bcbf1c76020dc4911edd7e6 SHA512 6547e2e6c9847fa9dc0eee0717db07347764937f942db9a13f3e47615954fc3a15b7db1516f629c0e2036ee8367cba6aea7bd27c27d2a4b9b51922afc97e7ebb EBUILD libomp-15.0.0.9999.ebuild 3250 BLAKE2B 93eb6805d0b96f8b9adb99c0b69b41a8b0f7e58c9aa3a8c8d58d98b265f0656b802638b3faf206f8603e7a591227eeb1853a97be6629c24b32c2f609369e3be5 SHA512 340e88828c233a54a03622db8cbfc468fc9a117665014cf5c431ae611e21bffe6286d3cd41478ae6425047ba9cb1f067498c19895b74dc432e93caf753874c70 +EBUILD libomp-16.0.0.9999.ebuild 3250 BLAKE2B 93eb6805d0b96f8b9adb99c0b69b41a8b0f7e58c9aa3a8c8d58d98b265f0656b802638b3faf206f8603e7a591227eeb1853a97be6629c24b32c2f609369e3be5 SHA512 340e88828c233a54a03622db8cbfc468fc9a117665014cf5c431ae611e21bffe6286d3cd41478ae6425047ba9cb1f067498c19895b74dc432e93caf753874c70 MISC metadata.xml 908 BLAKE2B c200fb1c93ae8fbd3963b2b575586fbe8f6df2308a2babbe3da77c2cf59c3fa43f938849d47df2ef4acf381f247848c363a20cf33ad763be169764cbe43c4bb4 SHA512 3cde603a2de523c21fbf288d459d76c697f2291d3dc3dac47e70781a910b4d524442d3076d8541818f2d43c3c6477af75d5f0cb76c4fbe0b4567a11d67edb056 diff --git a/sys-libs/libomp/libomp-16.0.0.9999.ebuild b/sys-libs/libomp/libomp-16.0.0.9999.ebuild new file mode 100644 index 000000000000..8ba05d6be239 --- /dev/null +++ b/sys-libs/libomp/libomp-16.0.0.9999.ebuild @@ -0,0 +1,129 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CMAKE_ECLASS=cmake +PYTHON_COMPAT=( python3_{8..11} ) +inherit cmake-multilib linux-info llvm llvm.org python-any-r1 + +DESCRIPTION="OpenMP runtime library for LLVM/clang compiler" +HOMEPAGE="https://openmp.llvm.org" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="" +IUSE=" + debug hwloc offload ompt test + llvm_targets_AMDGPU llvm_targets_NVPTX +" +RESTRICT="!test? ( test )" + +RDEPEND=" + hwloc? ( >=sys-apps/hwloc-2.5:0=[${MULTILIB_USEDEP}] ) + offload? ( + virtual/libelf:=[${MULTILIB_USEDEP}] + dev-libs/libffi:=[${MULTILIB_USEDEP}] + ~sys-devel/llvm-${PV}[${MULTILIB_USEDEP}] + ) +" +# tests: +# - dev-python/lit provides the test runner +# - sys-devel/llvm provide test utils (e.g. FileCheck) +# - sys-devel/clang provides the compiler to run tests +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + dev-lang/perl + offload? ( + llvm_targets_AMDGPU? ( sys-devel/clang ) + llvm_targets_NVPTX? ( sys-devel/clang ) + virtual/pkgconfig + ) + test? ( + $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') + sys-devel/clang + ) +" + +LLVM_COMPONENTS=( openmp cmake llvm/include ) +llvm.org_set_globals + +python_check_deps() { + has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +kernel_pds_check() { + if use kernel_linux && kernel_is -lt 4 15 && kernel_is -ge 4 13; then + local CONFIG_CHECK="~!SCHED_PDS" + local ERROR_SCHED_PDS="\ +PDS scheduler versions >= 0.98c < 0.98i (e.g. used in kernels >= 4.13-pf11 +< 4.14-pf9) do not implement sched_yield() call which may result in horrible +performance problems with libomp. If you are using one of the specified +kernel versions, you may want to disable the PDS scheduler." + + check_extra_config + fi +} + +pkg_pretend() { + kernel_pds_check +} + +pkg_setup() { + use offload && LLVM_MAX_SLOT=${PV%%.*} llvm_pkg_setup + use test && python-any-r1_pkg_setup +} + +multilib_src_configure() { + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + + local libdir="$(get_libdir)" + local mycmakeargs=( + -DOPENMP_LIBDIR_SUFFIX="${libdir#lib}" + + -DLIBOMP_USE_HWLOC=$(usex hwloc) + -DLIBOMP_OMPT_SUPPORT=$(usex ompt) + + -DOPENMP_ENABLE_LIBOMPTARGET=$(usex offload) + + # do not install libgomp.so & libiomp5.so aliases + -DLIBOMP_INSTALL_ALIASES=OFF + # disable unnecessary hack copying stuff back to srcdir + -DLIBOMP_COPY_EXPORTS=OFF + ) + + if use offload; then + if has "${CHOST%%-*}" aarch64 powerpc64le x86_64; then + mycmakeargs+=( + -DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN=$(usex llvm_targets_AMDGPU) + -DLIBOMPTARGET_BUILD_CUDA_PLUGIN=$(usex llvm_targets_NVPTX) + ) + else + mycmakeargs+=( + -DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN=OFF + -DLIBOMPTARGET_BUILD_CUDA_PLUGIN=OFF + ) + fi + fi + + use test && mycmakeargs+=( + # this project does not use standard LLVM cmake macros + -DOPENMP_LLVM_LIT_EXECUTABLE="${EPREFIX}/usr/bin/lit" + -DOPENMP_LIT_ARGS="$(get_lit_flags)" + + -DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang")" + -DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++")" + ) + addpredict /dev/nvidiactl + cmake_src_configure +} + +multilib_src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + + cmake_build check-libomp +} diff --git a/sys-libs/llvm-libunwind/Manifest b/sys-libs/llvm-libunwind/Manifest index 0a7c752dbcfc..3f9796151dad 100644 --- a/sys-libs/llvm-libunwind/Manifest +++ b/sys-libs/llvm-libunwind/Manifest @@ -5,4 +5,5 @@ DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69b EBUILD llvm-libunwind-13.0.1.ebuild 3814 BLAKE2B 90b96e50590839f5bcc8e9d47219e0a6af25c23fd7a6851316596960c00481fbbd02ae606092d79f15648cfb511be9ce44cfec8bb3f185e098eb4eb6bec1c0da SHA512 ee5d861f886d8e33946056ac14a838788dcca42f9e3879fee79f7a211fa2b4eb4481b0f61ec1c77c9b41c9be97ded6fa4e32f63c35bd6ea2a28d0bc503f7ba29 EBUILD llvm-libunwind-14.0.6.ebuild 3203 BLAKE2B 8ae5c78793e1a71e5f884666d2248bf0495342c4e8bdd80a4fab994e0d46c561790f9dfab32a6d04007dbbe60e5be7b3aa858f379a10f57d6fed3e2e43efc839 SHA512 1065bb6669a83d982e901f50701daf16bd4ae776e0c858fdcfec96c5d41f3a87c7cf53634b6a391422664839e264b9df96752d88054085a498ba718294becc16 EBUILD llvm-libunwind-15.0.0.9999.ebuild 3025 BLAKE2B d5d6b962382b7c52ca4b95f81d2f3ebb38e35ed646653b0a277abdb53da4d88f195f7fb0dce10e46bc85b20815bebc26ded2aeacb962240c9e70ee6864305416 SHA512 caec661ab8860c6f992b41415f8d9ff215e5c2f95f3b446a2807ffe6ad59c686ef14b3d94f996cb1e090d4e8c49d1fcff67f7ee13b2d751c95adeea8fc78f26e +EBUILD llvm-libunwind-16.0.0.9999.ebuild 3025 BLAKE2B d5d6b962382b7c52ca4b95f81d2f3ebb38e35ed646653b0a277abdb53da4d88f195f7fb0dce10e46bc85b20815bebc26ded2aeacb962240c9e70ee6864305416 SHA512 caec661ab8860c6f992b41415f8d9ff215e5c2f95f3b446a2807ffe6ad59c686ef14b3d94f996cb1e090d4e8c49d1fcff67f7ee13b2d751c95adeea8fc78f26e MISC metadata.xml 438 BLAKE2B 2a36fbbc59e137056029c62aef6d167d9c82531c2582d7bad5cb13cc36e5c4c9518ffe8c56d06bbcfd97ad22eda71a8b776f3984195f53d06cf45659b438dc00 SHA512 4f18b054072d00e5440faa31a59f9ef587d035b5f25e30913f0b1449debee967fa794fae2548e87db3fb2177ce853ab075e1f11f3cc763f5d7fdf06147108845 diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-16.0.0.9999.ebuild b/sys-libs/llvm-libunwind/llvm-libunwind-16.0.0.9999.ebuild new file mode 100644 index 000000000000..2abe825b0946 --- /dev/null +++ b/sys-libs/llvm-libunwind/llvm-libunwind-16.0.0.9999.ebuild @@ -0,0 +1,123 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CMAKE_ECLASS=cmake +PYTHON_COMPAT=( python3_{8..11} ) +inherit cmake-multilib flag-o-matic llvm llvm.org python-any-r1 \ + toolchain-funcs + +DESCRIPTION="C++ runtime stack unwinder from LLVM" +HOMEPAGE="https://llvm.org/docs/ExceptionHandling.html" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0" +KEYWORDS="" +IUSE="+clang debug static-libs test" +REQUIRED_USE="test? ( clang )" +RESTRICT="!test? ( test )" + +RDEPEND=" + !sys-libs/libunwind +" +# llvm-6 for new lit options +DEPEND=" + >=sys-devel/llvm-6 +" +BDEPEND=" + clang? ( + sys-devel/clang + ) + !test? ( + ${PYTHON_DEPS} + ) + test? ( + $(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) + + if use clang && ! tc-is-clang; then + # Only do this conditionally to allow overriding with + # e.g. CC=clang-13 in case of breakage + local -x CC=${CHOST}-clang + local -x CXX=${CHOST}-clang++ + strip-unsupported-flags + fi + + # 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 + + # 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_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 +} + +multilib_src_test() { + local -x LIT_PRESERVES_TMP=1 + cmake_build check-unwind +} + +multilib_src_install() { + DESTDIR=${D} cmake_build install-unwind +} -- cgit v1.2.3