From 179be85ade6b2b47bf362865b5c375969ab5ddc8 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Tue, 11 Oct 2022 01:37:01 +0100 Subject: gentoo auto-resync : 11:10:2022 - 01:37:00 --- sys-libs/Manifest.gz | Bin 14398 -> 14393 bytes sys-libs/compiler-rt-sanitizers/Manifest | 2 + ...ompiler-rt-sanitizers-16.0.0_pre20221010.ebuild | 219 +++++++++++++++++++++ sys-libs/compiler-rt/Manifest | 2 + .../compiler-rt-16.0.0_pre20221010.ebuild | 150 ++++++++++++++ sys-libs/libcxx/Manifest | 14 +- sys-libs/libcxx/libcxx-13.0.1.ebuild | 12 +- sys-libs/libcxx/libcxx-14.0.6.ebuild | 12 +- sys-libs/libcxx/libcxx-15.0.2.ebuild | 14 +- sys-libs/libcxx/libcxx-15.0.3.9999.ebuild | 14 +- sys-libs/libcxx/libcxx-16.0.0.9999.ebuild | 14 +- sys-libs/libcxx/libcxx-16.0.0_pre20221006.ebuild | 14 +- sys-libs/libcxx/libcxx-16.0.0_pre20221010.ebuild | 212 ++++++++++++++++++++ sys-libs/libcxxabi/Manifest | 14 +- sys-libs/libcxxabi/libcxxabi-13.0.1.ebuild | 8 +- sys-libs/libcxxabi/libcxxabi-14.0.6.ebuild | 8 +- sys-libs/libcxxabi/libcxxabi-15.0.2.ebuild | 14 +- sys-libs/libcxxabi/libcxxabi-15.0.3.9999.ebuild | 14 +- sys-libs/libcxxabi/libcxxabi-16.0.0.9999.ebuild | 14 +- .../libcxxabi/libcxxabi-16.0.0_pre20221006.ebuild | 14 +- .../libcxxabi/libcxxabi-16.0.0_pre20221010.ebuild | 116 +++++++++++ sys-libs/libomp/Manifest | 2 + sys-libs/libomp/libomp-16.0.0_pre20221010.ebuild | 133 +++++++++++++ sys-libs/llvm-libunwind/Manifest | 14 +- .../llvm-libunwind/llvm-libunwind-13.0.1-r1.ebuild | 10 +- .../llvm-libunwind/llvm-libunwind-14.0.6-r1.ebuild | 10 +- .../llvm-libunwind/llvm-libunwind-15.0.2.ebuild | 10 +- .../llvm-libunwind-15.0.3.9999.ebuild | 10 +- .../llvm-libunwind-16.0.0.9999.ebuild | 10 +- .../llvm-libunwind-16.0.0_pre20221006.ebuild | 10 +- .../llvm-libunwind-16.0.0_pre20221010.ebuild | 120 +++++++++++ 31 files changed, 1036 insertions(+), 174 deletions(-) create mode 100644 sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.0_pre20221010.ebuild create mode 100644 sys-libs/compiler-rt/compiler-rt-16.0.0_pre20221010.ebuild create mode 100644 sys-libs/libcxx/libcxx-16.0.0_pre20221010.ebuild create mode 100644 sys-libs/libcxxabi/libcxxabi-16.0.0_pre20221010.ebuild create mode 100644 sys-libs/libomp/libomp-16.0.0_pre20221010.ebuild create mode 100644 sys-libs/llvm-libunwind/llvm-libunwind-16.0.0_pre20221010.ebuild (limited to 'sys-libs') diff --git a/sys-libs/Manifest.gz b/sys-libs/Manifest.gz index f46d219a3410..b7139da64c8d 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 f6162645833f..c896a792d7d7 100644 --- a/sys-libs/compiler-rt-sanitizers/Manifest +++ b/sys-libs/compiler-rt-sanitizers/Manifest @@ -7,6 +7,7 @@ DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf DIST llvm-project-15.0.2.src.tar.xz 112071864 BLAKE2B 96f2884d6c1007260d71e5dd41951eed029e8f50ff78f3c90f7194df13e1d4fb80ab7705c51c45a3e6b2a7714a98d9c5919fc7064d1d5f7c675e65b9b4229b65 SHA512 a0e815369c15bb4f8e8aa0fede29c3d557fcc5c8f2b39d457c03f1ef1d860082a41027238571b2aee9a158a87eb118deb08dc2ba94ce750320837a84e9908b8c DIST llvm-project-15.0.2.src.tar.xz.sig 438 BLAKE2B 37a3a7fbc2d74db9060e85f04e159b475cf818c95a6fe2e9f5f038eb990f414d94833ecac2f9c826825a69b752876399e37e70e6934def06363f7ccb18be033a SHA512 cfe3bc400a64536ad9181c2ede7227a0953a8632fdc777d1ea1d9225c1fc4e699d90ce0b99e057ee5b87c1272d5810c4b52fb0cac167ddd2aad88f1f3ef46ee8 DIST llvm-project-5a0722e0469894564dd9b0ee1d4f8c291d09c776.tar.gz 169164627 BLAKE2B c9a8672cac0faa747baa366545d21f91b50e7611e062eb95042cbccc2dc00b74f44c5c2fcccda49b44975320dfadca5916585766235a406dfbd7321afba03025 SHA512 bad4043fab0e4f9c633bc0aa74df1f1ea886f1d20c1c7a2704bd8317371cf6325e70a770623307d7a455e815cce8c5f00be1ed4ec3f06a7b69038a2784f73243 +DIST llvm-project-ebb258d3b0785f6dcc65e1f277d0690891ddc94d.tar.gz 168823463 BLAKE2B 111afe0f6ba6cef28c3d0162c9c650d15239f981949030768780ebe308418346d0ad367e0e58417832ae43e57b27bccaf56415f81e8221c6c5e78d1113f5617b SHA512 80351d7eeac77a15bf5613b289c71d718ecaccd8a6a4ea6736ed8bfc15c8154099c771564f99ea6c8b491f99bf1ca3a45fac977d638f6a03d7f7b42ba522fa20 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f EBUILD compiler-rt-sanitizers-13.0.1.ebuild 6369 BLAKE2B 4e8a715cd19dd39087fe7d6cad9e30a7e130c69bde12ea382fc748cc152099607c23b75915c644785820ded954eaba31779f7c58b63a71255f9c6b610afcee7d SHA512 f5a680a5de09feecde1a3038ab185cc3b321eb2dc15b5841cd58863323fd6da727307c44127d2af5077ce2b17744ee5d3f8a17dd3bceea71b1dec2a13555dd66 EBUILD compiler-rt-sanitizers-14.0.6.ebuild 6381 BLAKE2B 010ce621c56c1568eaddeb6f4af6e680f2596106768e3b40bffd3c221df20b565c565793ff14a46b2a96b080a696a9217be0f547c2e85430e9031bd86adc2b90 SHA512 d68b96a7458c8b0d1946523a7c1b20e413de38b7f53bd87b8729103935cdb9ad8fc38863138ba36ffc8da57e0ddcf591c7deeb23fba0d76003adea978b262e37 @@ -14,4 +15,5 @@ EBUILD compiler-rt-sanitizers-15.0.2.ebuild 6403 BLAKE2B ea9f3840de1121966b17fd4 EBUILD compiler-rt-sanitizers-15.0.3.9999.ebuild 6363 BLAKE2B 640625391bc73444ed357c25028b641351e5e4f2661271e2d762a9d0a8bbf70a916018c82ddabb25f95679121eea1f35726e011f12d99bb88f1aa6aafef9f5ba SHA512 0c9b3e50c61cb6129fcc20e2fc08f7d32fd2ee180d2bad3e6ed9c7b71819320af9c74457332afac8c14b476d18b47ce7a353813e7bb29e0a568771d314f9c46a EBUILD compiler-rt-sanitizers-16.0.0.9999.ebuild 6363 BLAKE2B 640625391bc73444ed357c25028b641351e5e4f2661271e2d762a9d0a8bbf70a916018c82ddabb25f95679121eea1f35726e011f12d99bb88f1aa6aafef9f5ba SHA512 0c9b3e50c61cb6129fcc20e2fc08f7d32fd2ee180d2bad3e6ed9c7b71819320af9c74457332afac8c14b476d18b47ce7a353813e7bb29e0a568771d314f9c46a EBUILD compiler-rt-sanitizers-16.0.0_pre20221006.ebuild 6363 BLAKE2B 640625391bc73444ed357c25028b641351e5e4f2661271e2d762a9d0a8bbf70a916018c82ddabb25f95679121eea1f35726e011f12d99bb88f1aa6aafef9f5ba SHA512 0c9b3e50c61cb6129fcc20e2fc08f7d32fd2ee180d2bad3e6ed9c7b71819320af9c74457332afac8c14b476d18b47ce7a353813e7bb29e0a568771d314f9c46a +EBUILD compiler-rt-sanitizers-16.0.0_pre20221010.ebuild 6363 BLAKE2B 640625391bc73444ed357c25028b641351e5e4f2661271e2d762a9d0a8bbf70a916018c82ddabb25f95679121eea1f35726e011f12d99bb88f1aa6aafef9f5ba SHA512 0c9b3e50c61cb6129fcc20e2fc08f7d32fd2ee180d2bad3e6ed9c7b71819320af9c74457332afac8c14b476d18b47ce7a353813e7bb29e0a568771d314f9c46a MISC metadata.xml 1412 BLAKE2B 75675507000fa6a6b8182e6b45a08a2716ae7fb9a7e3428dc8420464e4c1d1bdb5bea62cc2f553c579de5a4faa752b35cb3529d980fb07a055ff4ddf6e752707 SHA512 f05ea5168b923db72f4f5b53e9b748ebbcdae9eff09d86323313055933b47fc0089e1b2d73cd997d73dcfb2dca032344955816425fbddc09d27ca751463aadbb diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.0_pre20221010.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.0_pre20221010.ebuild new file mode 100644 index 000000000000..1bcef45cdf8b --- /dev/null +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.0_pre20221010.ebuild @@ -0,0 +1,219 @@ +# 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="${LLVM_VERSION}" +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 ) +" + +DEPEND=" + sys-devel/llvm:${LLVM_MAJOR} + 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-${LLVM_VERSION}*:${LLVM_MAJOR} + sys-libs/compiler-rt:${LLVM_VERSION} + ) + !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 + python_has_version ">=dev-python/lit-15[${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_MAX_SLOT=${LLVM_MAJOR} 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/${LLVM_VERSION}" + # 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/${LLVM_VERSION}" + + -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/${LLVM_MAJOR}/bin/clang" + -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_MAJOR}/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/${LLVM_MAJOR}/bin/clang \ + CXX=${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/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/${LLVM_VERSION}/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/${LLVM_MAJOR}/{bin,$(get_libdir)},clang/${LLVM_VERSION}/include} || die + cp "${EPREFIX}"/usr/lib/llvm/${LLVM_MAJOR}/bin/clang{,++} \ + "${BUILD_DIR}"/lib/llvm/${LLVM_MAJOR}/bin/ || die + cp "${EPREFIX}"/usr/lib/clang/${LLVM_VERSION}/include/*.h \ + "${BUILD_DIR}"/lib/clang/${LLVM_VERSION}/include/ || die + cp "${sys_dir}"/*builtins*.a \ + "${BUILD_DIR}/lib/clang/${LLVM_VERSION}/lib/${sys_dir##*/}/" || die + # we also need LLVMgold.so for gold-based tests + if [[ -f ${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)/LLVMgold.so ]]; then + ln -s "${EPREFIX}"/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)/LLVMgold.so \ + "${BUILD_DIR}"/lib/llvm/${LLVM_MAJOR}/$(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 ddd76babeb95..822ac8d57840 100644 --- a/sys-libs/compiler-rt/Manifest +++ b/sys-libs/compiler-rt/Manifest @@ -7,6 +7,7 @@ DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf DIST llvm-project-15.0.2.src.tar.xz 112071864 BLAKE2B 96f2884d6c1007260d71e5dd41951eed029e8f50ff78f3c90f7194df13e1d4fb80ab7705c51c45a3e6b2a7714a98d9c5919fc7064d1d5f7c675e65b9b4229b65 SHA512 a0e815369c15bb4f8e8aa0fede29c3d557fcc5c8f2b39d457c03f1ef1d860082a41027238571b2aee9a158a87eb118deb08dc2ba94ce750320837a84e9908b8c DIST llvm-project-15.0.2.src.tar.xz.sig 438 BLAKE2B 37a3a7fbc2d74db9060e85f04e159b475cf818c95a6fe2e9f5f038eb990f414d94833ecac2f9c826825a69b752876399e37e70e6934def06363f7ccb18be033a SHA512 cfe3bc400a64536ad9181c2ede7227a0953a8632fdc777d1ea1d9225c1fc4e699d90ce0b99e057ee5b87c1272d5810c4b52fb0cac167ddd2aad88f1f3ef46ee8 DIST llvm-project-5a0722e0469894564dd9b0ee1d4f8c291d09c776.tar.gz 169164627 BLAKE2B c9a8672cac0faa747baa366545d21f91b50e7611e062eb95042cbccc2dc00b74f44c5c2fcccda49b44975320dfadca5916585766235a406dfbd7321afba03025 SHA512 bad4043fab0e4f9c633bc0aa74df1f1ea886f1d20c1c7a2704bd8317371cf6325e70a770623307d7a455e815cce8c5f00be1ed4ec3f06a7b69038a2784f73243 +DIST llvm-project-ebb258d3b0785f6dcc65e1f277d0690891ddc94d.tar.gz 168823463 BLAKE2B 111afe0f6ba6cef28c3d0162c9c650d15239f981949030768780ebe308418346d0ad367e0e58417832ae43e57b27bccaf56415f81e8221c6c5e78d1113f5617b SHA512 80351d7eeac77a15bf5613b289c71d718ecaccd8a6a4ea6736ed8bfc15c8154099c771564f99ea6c8b491f99bf1ca3a45fac977d638f6a03d7f7b42ba522fa20 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f EBUILD compiler-rt-13.0.1.ebuild 3880 BLAKE2B 83202517f413772d355aa49b5a3bd8b7000c86f6538da1a5ae96de5e84bc7536d0e639b530d1f504dc68b769565504434cc80d25426207b19283b9bc41df3388 SHA512 fe5329aee6c29d408c67af9e9891205fcdf313676780b948975f94ddce31b3f54e68cc041233c81b3005ff94f7685dcc09044f3634760d90e8c18c61f63651c3 EBUILD compiler-rt-14.0.6-r1.ebuild 4252 BLAKE2B 1fe9011c3d20a6e7f09683553e3e86151ce71e3667ce00fe4b5dd6dd8e932b8c9baa9e101f620467d813ffc1615c85e3522ce5732cee293d0bc2f8233c665bab SHA512 857bffe7b552c9e288b7f2e3cb67df1e2c8526b717df7a2bf7a1162de636ce90864a0ef1a9fec2c1f61702f6f491b5b12f6ce26964c133d339785ea7d67fc725 @@ -15,4 +16,5 @@ EBUILD compiler-rt-15.0.2.ebuild 4261 BLAKE2B 1a632e00f5dd36c161f2df23dc7c929242 EBUILD compiler-rt-15.0.3.9999.ebuild 4189 BLAKE2B da1b3444520bbb7a83569b65d7de338678a52b2aec70d29afee47142a268fb76310419dd00d1420445d2f30d3f567cf2bfe9e89cf89261843742094d477a2ef6 SHA512 d29905eca230cdba53aa9d63d1ccb68608b4ca74c4a6c3fbcab60245685c363d93e28ea3dba67f632c85964571da5c812ab8ca6c6be2bf97d06c93c072f75153 EBUILD compiler-rt-16.0.0.9999.ebuild 4189 BLAKE2B da1b3444520bbb7a83569b65d7de338678a52b2aec70d29afee47142a268fb76310419dd00d1420445d2f30d3f567cf2bfe9e89cf89261843742094d477a2ef6 SHA512 d29905eca230cdba53aa9d63d1ccb68608b4ca74c4a6c3fbcab60245685c363d93e28ea3dba67f632c85964571da5c812ab8ca6c6be2bf97d06c93c072f75153 EBUILD compiler-rt-16.0.0_pre20221006.ebuild 4189 BLAKE2B da1b3444520bbb7a83569b65d7de338678a52b2aec70d29afee47142a268fb76310419dd00d1420445d2f30d3f567cf2bfe9e89cf89261843742094d477a2ef6 SHA512 d29905eca230cdba53aa9d63d1ccb68608b4ca74c4a6c3fbcab60245685c363d93e28ea3dba67f632c85964571da5c812ab8ca6c6be2bf97d06c93c072f75153 +EBUILD compiler-rt-16.0.0_pre20221010.ebuild 4189 BLAKE2B da1b3444520bbb7a83569b65d7de338678a52b2aec70d29afee47142a268fb76310419dd00d1420445d2f30d3f567cf2bfe9e89cf89261843742094d477a2ef6 SHA512 d29905eca230cdba53aa9d63d1ccb68608b4ca74c4a6c3fbcab60245685c363d93e28ea3dba67f632c85964571da5c812ab8ca6c6be2bf97d06c93c072f75153 MISC metadata.xml 416 BLAKE2B 79a58249c94b605ba57f346c4e05b43853cf6cfb8bb65a4f4e3c44039cccfdb83dd31bfaaaf398bcbdc393efabdfc7ed186fe775976c46227e74decf2c8f4fb2 SHA512 ce30c79a575e5933effb1fec36f9a4ef02d9f97f312feb39c55a88cbda9a1bae1d7af2ec4ad5f66212cbb2cdbfb26f1a436689f16f410153c9d65eb010264c48 diff --git a/sys-libs/compiler-rt/compiler-rt-16.0.0_pre20221010.ebuild b/sys-libs/compiler-rt/compiler-rt-16.0.0_pre20221010.ebuild new file mode 100644 index 000000000000..957caa27a746 --- /dev/null +++ b/sys-libs/compiler-rt/compiler-rt-16.0.0_pre20221010.ebuild @@ -0,0 +1,150 @@ +# 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="${LLVM_VERSION}" +KEYWORDS="" +IUSE="+abi_x86_32 abi_x86_64 +clang debug test" +RESTRICT="!test? ( test ) !clang? ( test )" + +DEPEND=" + sys-devel/llvm:${LLVM_MAJOR} +" +BDEPEND=" + >=dev-util/cmake-3.16 + clang? ( sys-devel/clang ) + test? ( + $(python_gen_any_dep ">=dev-python/lit-15[\${PYTHON_USEDEP}]") + =sys-devel/clang-${LLVM_VERSION}*:${LLVM_MAJOR} + ) + !test? ( + ${PYTHON_DEPS} + ) +" + +LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake ) +LLVM_PATCHSET=9999-1 +llvm.org_set_globals + +python_check_deps() { + use test || return 0 + python_has_version ">=dev-python/lit-15[${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_MAX_SLOT=${LLVM_MAJOR} 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 + + if ! test_compiler; then + local nolib_flags=( -nodefaultlibs -lc ) + + if test_compiler "${nolib_flags[@]}"; then + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}" + elif test_compiler "${nolib_flags[@]}" -nostartfiles; then + # Avoiding -nostartfiles earlier on for bug #862540, + # and set available entry symbol for bug #862798. + nolib_flags+=( -nostartfiles -emain ) + + local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" + ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}" + fi + fi + + local mycmakeargs=( + -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${LLVM_VERSION}" + + -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/${LLVM_MAJOR}/bin/clang" + -DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/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 572d30c46978..d5056543f862 100644 --- a/sys-libs/libcxx/Manifest +++ b/sys-libs/libcxx/Manifest @@ -5,11 +5,13 @@ DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf DIST llvm-project-15.0.2.src.tar.xz 112071864 BLAKE2B 96f2884d6c1007260d71e5dd41951eed029e8f50ff78f3c90f7194df13e1d4fb80ab7705c51c45a3e6b2a7714a98d9c5919fc7064d1d5f7c675e65b9b4229b65 SHA512 a0e815369c15bb4f8e8aa0fede29c3d557fcc5c8f2b39d457c03f1ef1d860082a41027238571b2aee9a158a87eb118deb08dc2ba94ce750320837a84e9908b8c DIST llvm-project-15.0.2.src.tar.xz.sig 438 BLAKE2B 37a3a7fbc2d74db9060e85f04e159b475cf818c95a6fe2e9f5f038eb990f414d94833ecac2f9c826825a69b752876399e37e70e6934def06363f7ccb18be033a SHA512 cfe3bc400a64536ad9181c2ede7227a0953a8632fdc777d1ea1d9225c1fc4e699d90ce0b99e057ee5b87c1272d5810c4b52fb0cac167ddd2aad88f1f3ef46ee8 DIST llvm-project-5a0722e0469894564dd9b0ee1d4f8c291d09c776.tar.gz 169164627 BLAKE2B c9a8672cac0faa747baa366545d21f91b50e7611e062eb95042cbccc2dc00b74f44c5c2fcccda49b44975320dfadca5916585766235a406dfbd7321afba03025 SHA512 bad4043fab0e4f9c633bc0aa74df1f1ea886f1d20c1c7a2704bd8317371cf6325e70a770623307d7a455e815cce8c5f00be1ed4ec3f06a7b69038a2784f73243 +DIST llvm-project-ebb258d3b0785f6dcc65e1f277d0690891ddc94d.tar.gz 168823463 BLAKE2B 111afe0f6ba6cef28c3d0162c9c650d15239f981949030768780ebe308418346d0ad367e0e58417832ae43e57b27bccaf56415f81e8221c6c5e78d1113f5617b SHA512 80351d7eeac77a15bf5613b289c71d718ecaccd8a6a4ea6736ed8bfc15c8154099c771564f99ea6c8b491f99bf1ca3a45fac977d638f6a03d7f7b42ba522fa20 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f -EBUILD libcxx-13.0.1.ebuild 6768 BLAKE2B 71b0f62e35538d718d99e3d43447f98752933868d999bf831969a6940d3a817452789c2044e9ca3bb4d5d1f0c2976fc276c4d10cb018c44e0cc6109095d9c6d6 SHA512 a12023fa135a7945e8088b34421f575cab32bb8ac53f1aeaa61bcf2a7b9fe045a6e21efba168056ef47b165ef3100e382100f910c84dee972017de6355d2e9c0 -EBUILD libcxx-14.0.6.ebuild 6948 BLAKE2B 203e04f4e2603ec0b8e3cd672ca2458c971e4ec3c1d24ea65f85db143561d349d9b7e4b4a58f7c57f5c0caa519e5a79f99f0a76c404aeba47b0bcc683adcb572 SHA512 c1a353dd558c68d439ab66e089e26993e66f1729f7879912413531bbd89318338649dccde1f84a32784de380997d2611d6b7cf86841feb47c3c0c8d67bfe28df -EBUILD libcxx-15.0.2.ebuild 5737 BLAKE2B ee1e8abbc711cecdc7e92d19941191fc29016aea2a69fe68afa08e04cd0698cde3d78200fd77cc431b541655f6a1557b05c2dfabda5124558fcdf70694d131b0 SHA512 b8f022ed324c22e74f8cfa34090b524e829b237f1d4a73642969d14cf892da7a187b85a398349f9a69ab1f35df642a1301c3968603f73832446b44defc46b60e -EBUILD libcxx-15.0.3.9999.ebuild 5687 BLAKE2B 47c5a90bc448fc848a61b971f53690559b1383e2b61d41423dab7e773eb4fc3bdcbde23785687664f0a0031a65d1b75b5411f01f7756e17369000dba23b7a6bc SHA512 80a539652f452e27df12a061d26c214f4083b28f702ca3f87688432d5672027f6e412fde2ec831d2c3cec165b9e51be9f935930ba1ddc10c25814c65553f931b -EBUILD libcxx-16.0.0.9999.ebuild 5687 BLAKE2B 47c5a90bc448fc848a61b971f53690559b1383e2b61d41423dab7e773eb4fc3bdcbde23785687664f0a0031a65d1b75b5411f01f7756e17369000dba23b7a6bc SHA512 80a539652f452e27df12a061d26c214f4083b28f702ca3f87688432d5672027f6e412fde2ec831d2c3cec165b9e51be9f935930ba1ddc10c25814c65553f931b -EBUILD libcxx-16.0.0_pre20221006.ebuild 5687 BLAKE2B 47c5a90bc448fc848a61b971f53690559b1383e2b61d41423dab7e773eb4fc3bdcbde23785687664f0a0031a65d1b75b5411f01f7756e17369000dba23b7a6bc SHA512 80a539652f452e27df12a061d26c214f4083b28f702ca3f87688432d5672027f6e412fde2ec831d2c3cec165b9e51be9f935930ba1ddc10c25814c65553f931b +EBUILD libcxx-13.0.1.ebuild 6635 BLAKE2B 4dec3470ede514c9587c1e68baf5d30dc0bf3757aeb11f2ecfcce78c78c33f28c9775647c7afe8a3826afebe055b03daf8c4a2c4a576b0c6c5689c4c1e3da57a SHA512 5e3d1bdd94d6e9b4f37f4ce3d09fc7649254ba52d9181acb6a76b570be3ebe53b1df68836268c366d57f1037b6f4a8c92fce82634b4fc735c38bed2cd5fd6ba4 +EBUILD libcxx-14.0.6.ebuild 6815 BLAKE2B ef602a03b2e1f42fc20f8a1f4d90cbf91a2b237b84d3a4149d123065682cd3fb54391ac9c2c4b52bdf712a84d5cfef03f0103e4b0b5c8376a1d0269b2bcf137d SHA512 73312e53336c8e42d88b4c6379ecb29db34672dbbcb1a2eeec2cbe4d9b7a8f5906b0ab599299cfe46bd5ed15d390641f993990dfa5f248e1168172bbeb832db1 +EBUILD libcxx-15.0.2.ebuild 5547 BLAKE2B 3d073fa67bff7613b745319377c0501d266d753b646fcd68796e7d5964948492265037769af8b038fbfa970b5ae15490ef29796fd3d155aa96aba6225d82a537 SHA512 4f935fb16074c3ab538fdeaa06af8d8d0683d6caf10d32568a73d560bbd798769f0985b98f4967a7c6a724b124a20ea8db39c7c2715543e54ebc6ed32e74c8cf +EBUILD libcxx-15.0.3.9999.ebuild 5497 BLAKE2B 600c9ebf15d6327505a68fa7323b4f022daa4608fb22b85844561896eb7383758466018efaf11c0c59f4300149dab4c56504f4e3625b51751951a27785a7863f SHA512 f5ea0b524ea0568287007e1f031138b393b510d9ffa7557294d6dfb9dcc4ce89102682bb4047cdcbf9d467e829e46a705cc740db65c70d29bc87a52a9a1368ba +EBUILD libcxx-16.0.0.9999.ebuild 5497 BLAKE2B 600c9ebf15d6327505a68fa7323b4f022daa4608fb22b85844561896eb7383758466018efaf11c0c59f4300149dab4c56504f4e3625b51751951a27785a7863f SHA512 f5ea0b524ea0568287007e1f031138b393b510d9ffa7557294d6dfb9dcc4ce89102682bb4047cdcbf9d467e829e46a705cc740db65c70d29bc87a52a9a1368ba +EBUILD libcxx-16.0.0_pre20221006.ebuild 5497 BLAKE2B 600c9ebf15d6327505a68fa7323b4f022daa4608fb22b85844561896eb7383758466018efaf11c0c59f4300149dab4c56504f4e3625b51751951a27785a7863f SHA512 f5ea0b524ea0568287007e1f031138b393b510d9ffa7557294d6dfb9dcc4ce89102682bb4047cdcbf9d467e829e46a705cc740db65c70d29bc87a52a9a1368ba +EBUILD libcxx-16.0.0_pre20221010.ebuild 5497 BLAKE2B 600c9ebf15d6327505a68fa7323b4f022daa4608fb22b85844561896eb7383758466018efaf11c0c59f4300149dab4c56504f4e3625b51751951a27785a7863f SHA512 f5ea0b524ea0568287007e1f031138b393b510d9ffa7557294d6dfb9dcc4ce89102682bb4047cdcbf9d467e829e46a705cc740db65c70d29bc87a52a9a1368ba MISC metadata.xml 828 BLAKE2B 40af456df8ac1cfdb66fd62a217abbb4ca837956529906118c35232000435d9e991d18dd0332b7b95eed70d4c7610c7a1aee80af8ba511763edc1423749a4aa4 SHA512 257f8fd05fcade26ca02305356b67c8e2d67a87b180e38a189a659212093b07b9a710b871fbaab894dba9eba5fe450b76c52cc82f6405c24cc1ab2df3abe8bfd diff --git a/sys-libs/libcxx/libcxx-13.0.1.ebuild b/sys-libs/libcxx/libcxx-13.0.1.ebuild index f7db45b21571..3021d859b872 100644 --- a/sys-libs/libcxx/libcxx-13.0.1.ebuild +++ b/sys-libs/libcxx/libcxx-13.0.1.ebuild @@ -89,14 +89,10 @@ multilib_src_configure() { extra_libs+=( -lunwind ) # if we're using libunwind and clang with compiler-rt, we want # to link to compiler-rt instead of -lgcc_s - if tc-is-clang; then - local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ - ${LDFLAGS} -print-libgcc-file-name) - if [[ ${compiler_rt} == *libclang_rt* ]]; then - want_gcc_s=OFF - want_compiler_rt=ON - extra_libs+=( "${compiler_rt}" ) - fi + if [[ $(tc-get-c-rtlib) == compiler-rt ]]; then + want_gcc_s=OFF + want_compiler_rt=ON + extra_libs+=( "${compiler_rt}" ) fi elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then # clang-based darwin prefix disables libunwind useflag during diff --git a/sys-libs/libcxx/libcxx-14.0.6.ebuild b/sys-libs/libcxx/libcxx-14.0.6.ebuild index 47501e5ea293..063546f816be 100644 --- a/sys-libs/libcxx/libcxx-14.0.6.ebuild +++ b/sys-libs/libcxx/libcxx-14.0.6.ebuild @@ -97,14 +97,10 @@ multilib_src_configure() { extra_libs+=( -lunwind ) # if we're using libunwind and clang with compiler-rt, we want # to link to compiler-rt instead of -lgcc_s - if tc-is-clang; then - local compiler_rt=$($(tc-getCC) ${CFLAGS} ${CPPFLAGS} \ - ${LDFLAGS} -print-libgcc-file-name) - if [[ ${compiler_rt} == *libclang_rt* ]]; then - want_gcc_s=OFF - want_compiler_rt=ON - extra_libs+=( "${compiler_rt}" ) - fi + if [[ $(tc-get-c-rtlib) == compiler-rt ]]; then + want_gcc_s=OFF + want_compiler_rt=ON + extra_libs+=( "${compiler_rt}" ) fi elif [[ ${CHOST} == *-darwin* ]] && tc-is-clang; then # clang-based darwin prefix disables libunwind useflag during diff --git a/sys-libs/libcxx/libcxx-15.0.2.ebuild b/sys-libs/libcxx/libcxx-15.0.2.ebuild index 79e6aec88593..275d229a612a 100644 --- a/sys-libs/libcxx/libcxx-15.0.2.ebuild +++ b/sys-libs/libcxx/libcxx-15.0.2.ebuild @@ -95,15 +95,9 @@ multilib_src_configure() { 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 + # link to compiler-rt + local use_compiler_rt=OFF + [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON # bootstrap: cmake is unhappy if compiler can't link to stdlib local nolib_flags=( -nodefaultlibs -lc ) @@ -131,7 +125,7 @@ multilib_src_configure() { -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) -DLIBCXX_INCLUDE_BENCHMARKS=OFF -DLIBCXX_INCLUDE_TESTS=$(usex test) - -DLIBCXX_USE_COMPILER_RT=${want_compiler_rt} + -DLIBCXX_USE_COMPILER_RT=${use_compiler_rt} ) if use test; then diff --git a/sys-libs/libcxx/libcxx-15.0.3.9999.ebuild b/sys-libs/libcxx/libcxx-15.0.3.9999.ebuild index c28920c09043..6bcf1a20c831 100644 --- a/sys-libs/libcxx/libcxx-15.0.3.9999.ebuild +++ b/sys-libs/libcxx/libcxx-15.0.3.9999.ebuild @@ -94,15 +94,9 @@ multilib_src_configure() { 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 + # link to compiler-rt + local use_compiler_rt=OFF + [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON # bootstrap: cmake is unhappy if compiler can't link to stdlib local nolib_flags=( -nodefaultlibs -lc ) @@ -130,7 +124,7 @@ multilib_src_configure() { -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) -DLIBCXX_INCLUDE_BENCHMARKS=OFF -DLIBCXX_INCLUDE_TESTS=$(usex test) - -DLIBCXX_USE_COMPILER_RT=${want_compiler_rt} + -DLIBCXX_USE_COMPILER_RT=${use_compiler_rt} ) if use test; then diff --git a/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild b/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild index c28920c09043..6bcf1a20c831 100644 --- a/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild +++ b/sys-libs/libcxx/libcxx-16.0.0.9999.ebuild @@ -94,15 +94,9 @@ multilib_src_configure() { 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 + # link to compiler-rt + local use_compiler_rt=OFF + [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON # bootstrap: cmake is unhappy if compiler can't link to stdlib local nolib_flags=( -nodefaultlibs -lc ) @@ -130,7 +124,7 @@ multilib_src_configure() { -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) -DLIBCXX_INCLUDE_BENCHMARKS=OFF -DLIBCXX_INCLUDE_TESTS=$(usex test) - -DLIBCXX_USE_COMPILER_RT=${want_compiler_rt} + -DLIBCXX_USE_COMPILER_RT=${use_compiler_rt} ) if use test; then diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221006.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221006.ebuild index c28920c09043..6bcf1a20c831 100644 --- a/sys-libs/libcxx/libcxx-16.0.0_pre20221006.ebuild +++ b/sys-libs/libcxx/libcxx-16.0.0_pre20221006.ebuild @@ -94,15 +94,9 @@ multilib_src_configure() { 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 + # link to compiler-rt + local use_compiler_rt=OFF + [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON # bootstrap: cmake is unhappy if compiler can't link to stdlib local nolib_flags=( -nodefaultlibs -lc ) @@ -130,7 +124,7 @@ multilib_src_configure() { -DLIBCXX_HAS_MUSL_LIBC=$(usex elibc_musl) -DLIBCXX_INCLUDE_BENCHMARKS=OFF -DLIBCXX_INCLUDE_TESTS=$(usex test) - -DLIBCXX_USE_COMPILER_RT=${want_compiler_rt} + -DLIBCXX_USE_COMPILER_RT=${use_compiler_rt} ) if use test; then diff --git a/sys-libs/libcxx/libcxx-16.0.0_pre20221010.ebuild b/sys-libs/libcxx/libcxx-16.0.0_pre20221010.ebuild new file mode 100644 index 000000000000..6bcf1a20c831 --- /dev/null +++ b/sys-libs/libcxx/libcxx-16.0.0_pre20221010.ebuild @@ -0,0 +1,212 @@ +# 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-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] ) +" +DEPEND=" + ${RDEPEND} + sys-devel/llvm:${LLVM_MAJOR} +" +BDEPEND=" + clang? ( + sys-devel/clang:${LLVM_MAJOR} + ) + !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.org_set_globals + +python_check_deps() { + use test || return 0 + python_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_MAX_SLOT=${LLVM_MAJOR} 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; then + local -x CC=${CHOST}-clang + local -x CXX=${CHOST}-clang++ + strip-unsupported-flags + fi + + # link to compiler-rt + local use_compiler_rt=OFF + [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON + + # 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=${use_compiler_rt} + ) + + if use test; then + 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 24a257b61113..97863b43789c 100644 --- a/sys-libs/libcxxabi/Manifest +++ b/sys-libs/libcxxabi/Manifest @@ -3,11 +3,13 @@ DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf DIST llvm-project-15.0.2.src.tar.xz 112071864 BLAKE2B 96f2884d6c1007260d71e5dd41951eed029e8f50ff78f3c90f7194df13e1d4fb80ab7705c51c45a3e6b2a7714a98d9c5919fc7064d1d5f7c675e65b9b4229b65 SHA512 a0e815369c15bb4f8e8aa0fede29c3d557fcc5c8f2b39d457c03f1ef1d860082a41027238571b2aee9a158a87eb118deb08dc2ba94ce750320837a84e9908b8c DIST llvm-project-15.0.2.src.tar.xz.sig 438 BLAKE2B 37a3a7fbc2d74db9060e85f04e159b475cf818c95a6fe2e9f5f038eb990f414d94833ecac2f9c826825a69b752876399e37e70e6934def06363f7ccb18be033a SHA512 cfe3bc400a64536ad9181c2ede7227a0953a8632fdc777d1ea1d9225c1fc4e699d90ce0b99e057ee5b87c1272d5810c4b52fb0cac167ddd2aad88f1f3ef46ee8 DIST llvm-project-5a0722e0469894564dd9b0ee1d4f8c291d09c776.tar.gz 169164627 BLAKE2B c9a8672cac0faa747baa366545d21f91b50e7611e062eb95042cbccc2dc00b74f44c5c2fcccda49b44975320dfadca5916585766235a406dfbd7321afba03025 SHA512 bad4043fab0e4f9c633bc0aa74df1f1ea886f1d20c1c7a2704bd8317371cf6325e70a770623307d7a455e815cce8c5f00be1ed4ec3f06a7b69038a2784f73243 +DIST llvm-project-ebb258d3b0785f6dcc65e1f277d0690891ddc94d.tar.gz 168823463 BLAKE2B 111afe0f6ba6cef28c3d0162c9c650d15239f981949030768780ebe308418346d0ad367e0e58417832ae43e57b27bccaf56415f81e8221c6c5e78d1113f5617b SHA512 80351d7eeac77a15bf5613b289c71d718ecaccd8a6a4ea6736ed8bfc15c8154099c771564f99ea6c8b491f99bf1ca3a45fac977d638f6a03d7f7b42ba522fa20 DIST llvmorg-13.0.1.tar.gz 147290251 BLAKE2B 2a44b012a672501761d0c27c6b3a315b69bfef0cd13b078a7e7d2fccc4a9c8c0f2bee0f164c4271c9106b0a99cb06e8b64986f66253b613336719fb86b82541b SHA512 9a8cb5d11964ba88b7624f19ec861fb28701f23956ea3c92f6ac644332d5f41fde97bd8933dd3ee70ed378058c252fa3a3887c8d1af90d219970c2b27691166f -EBUILD libcxxabi-13.0.1.ebuild 3593 BLAKE2B 2e8717a8dadf431dc4360e4cee5d74875153f375f241388e3cc47410c9ecf4c97f2641c276927a99c6643460bbd1f7bddae72b06e7994e162cc1e7f3fd5e4fbe SHA512 4c943fe5483f94329e3f9390c8ddeaf89dc168220696fd5eb00692e7458d6ff92d3b37343bd6de23df70eea814243aee75bc8d75681ecb944a66cf37562fbdf7 -EBUILD libcxxabi-14.0.6.ebuild 3509 BLAKE2B e6fa29bba6fcc72fa1c049ba696fd9cb6b34b0d89be89e449a21a9ba31c2e01d944ca15b1414043ba1def938dbdca144c37fdecdd39158dc3932ca7b7587f428 SHA512 4cd09cc7b0a0df878d2e2594750a80a18ee6aa09b195cb190ed8432464ec2563ea7b026d2748e6e0d198091e54e07aabdadc7f68919a3a81a4079d67262054f2 -EBUILD libcxxabi-15.0.2.ebuild 3106 BLAKE2B e5058971c3a8b58ea39aa5d09d885e437698f8855bfa86ed550f3878ac05a57c152ef9c5fca5eb9109f11f435c8fba9475aba7f6582761699116a3ce60da7a2b SHA512 9d39757e0d1f9b380df08988aa1b2a203179d488a477803baaf7652a4ac3cfa7954bfb62e1fded13a41f40388d0b5d0ae009ad937e0b71d7db050ab545e7ea78 -EBUILD libcxxabi-15.0.3.9999.ebuild 3056 BLAKE2B 3ec19055b4465421ed3e80788abf44097c1f714704b1aa6efa3688f3052fac1e3a6e6fe102f9c53a1ec2d4ce5a604df14e8738a3b428097d9a324b16dd30eb59 SHA512 8ad6f7deef050526f160ab6eb5119985512b9332e288ca4da739d833566b5ee87c1c85ac0fe381dbd8aad2df76079e33e7283897c3386c34db53120703d1a33f -EBUILD libcxxabi-16.0.0.9999.ebuild 3056 BLAKE2B 3ec19055b4465421ed3e80788abf44097c1f714704b1aa6efa3688f3052fac1e3a6e6fe102f9c53a1ec2d4ce5a604df14e8738a3b428097d9a324b16dd30eb59 SHA512 8ad6f7deef050526f160ab6eb5119985512b9332e288ca4da739d833566b5ee87c1c85ac0fe381dbd8aad2df76079e33e7283897c3386c34db53120703d1a33f -EBUILD libcxxabi-16.0.0_pre20221006.ebuild 3056 BLAKE2B 3ec19055b4465421ed3e80788abf44097c1f714704b1aa6efa3688f3052fac1e3a6e6fe102f9c53a1ec2d4ce5a604df14e8738a3b428097d9a324b16dd30eb59 SHA512 8ad6f7deef050526f160ab6eb5119985512b9332e288ca4da739d833566b5ee87c1c85ac0fe381dbd8aad2df76079e33e7283897c3386c34db53120703d1a33f +EBUILD libcxxabi-13.0.1.ebuild 3468 BLAKE2B 0da66a538e0efab041fa5f56c31a116c9274bec95aa18f10b5759d6347e3e864922207cba0ddc6821eadad4243c247b01869d34f42e34c213f410896f5ac5b8f SHA512 2eaf47c438cae3b024eb64cecedf2643ff2ecbd35610d5cff6fb2f06847af766ff105d4923dfaf2f4d014944f2ef3ac54edd5f7c83e31d49c071ac57f56cd38f +EBUILD libcxxabi-14.0.6.ebuild 3384 BLAKE2B c7091fc3a025d186909465ea46508b4cc22bfd5bd5156ed7b007c04e5fdb8c80565274ba085ffd5f8bbba2b9182ab3cff0e0c042346f4a04184b0cfd6e5a5d48 SHA512 92f71c9fd82a430c7bb6ecae347b6dff5739c825194731d877dc55f4be302cafeeac66cc2e24b6aa7f0a248af950305628b6ecbf2f6ffc70dce86b6723b75d27 +EBUILD libcxxabi-15.0.2.ebuild 2916 BLAKE2B 970811e1a0000e719236df80e0c046b67f0190f60daa6e8b25ac05213f94ac6697d0c7af2a5533ac920ace3664ccd62b799b376ad0a141cd6636891b51e33e7e SHA512 47f4c107a4e574381860a38fb7b34966f1205a7c6e5017b2b074d0b7f503eb3c1045e33bc748420cad30ab80a08b2decac4b57256e417566de99f7a8ecc31a0d +EBUILD libcxxabi-15.0.3.9999.ebuild 2866 BLAKE2B 00dc8f0473e5a8081727c83e3fc5459dafc7c680a68f7b237be5f3c8da6cee1916748083e3baf4fda71af8b55dfecb97d7a195b35d4958b8376dc7777df328a5 SHA512 f0f14175c68e080b199d8bcb62fa1387e1b6755bd804dc342dcaf671b84d9dfe29cf8a3559acfe0c9308a73e61416944519b94839c736837fd4bea059c91ec91 +EBUILD libcxxabi-16.0.0.9999.ebuild 2866 BLAKE2B 00dc8f0473e5a8081727c83e3fc5459dafc7c680a68f7b237be5f3c8da6cee1916748083e3baf4fda71af8b55dfecb97d7a195b35d4958b8376dc7777df328a5 SHA512 f0f14175c68e080b199d8bcb62fa1387e1b6755bd804dc342dcaf671b84d9dfe29cf8a3559acfe0c9308a73e61416944519b94839c736837fd4bea059c91ec91 +EBUILD libcxxabi-16.0.0_pre20221006.ebuild 2866 BLAKE2B 00dc8f0473e5a8081727c83e3fc5459dafc7c680a68f7b237be5f3c8da6cee1916748083e3baf4fda71af8b55dfecb97d7a195b35d4958b8376dc7777df328a5 SHA512 f0f14175c68e080b199d8bcb62fa1387e1b6755bd804dc342dcaf671b84d9dfe29cf8a3559acfe0c9308a73e61416944519b94839c736837fd4bea059c91ec91 +EBUILD libcxxabi-16.0.0_pre20221010.ebuild 2866 BLAKE2B 00dc8f0473e5a8081727c83e3fc5459dafc7c680a68f7b237be5f3c8da6cee1916748083e3baf4fda71af8b55dfecb97d7a195b35d4958b8376dc7777df328a5 SHA512 f0f14175c68e080b199d8bcb62fa1387e1b6755bd804dc342dcaf671b84d9dfe29cf8a3559acfe0c9308a73e61416944519b94839c736837fd4bea059c91ec91 MISC metadata.xml 557 BLAKE2B 4f6b0acb7cfdf74971a6fd96051d9f9020141c6117333a8de42bd043935b7bff8d9942faabdf3b1c94597c460393f64eb7d3f7b7d49f39ecfd0094de460f563e SHA512 67a812ef768e681ae77ef6e13bccffcbe53b41e94901f0558b3c7acaf896605ca670c4bb5a690bd9afa3b5a76271341710520a6abc0024c18f437fabde20e847 diff --git a/sys-libs/libcxxabi/libcxxabi-13.0.1.ebuild b/sys-libs/libcxxabi/libcxxabi-13.0.1.ebuild index b49532e94b6d..b2fcf26fc7f0 100644 --- a/sys-libs/libcxxabi/libcxxabi-13.0.1.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-13.0.1.ebuild @@ -53,12 +53,8 @@ multilib_src_configure() { # link against compiler-rt instead of libgcc if we are using clang with libunwind local want_compiler_rt=OFF - if use libunwind && 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 + if use libunwind && [[ $(tc-get-c-rtlib) == compiler-rt ]]; then + want_compiler_rt=ON fi local libdir=$(get_libdir) diff --git a/sys-libs/libcxxabi/libcxxabi-14.0.6.ebuild b/sys-libs/libcxxabi/libcxxabi-14.0.6.ebuild index 1aa08e4c22f1..f88c43716406 100644 --- a/sys-libs/libcxxabi/libcxxabi-14.0.6.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-14.0.6.ebuild @@ -59,12 +59,8 @@ pkg_setup() { multilib_src_configure() { # link against compiler-rt instead of libgcc if we are using clang with libunwind local want_compiler_rt=OFF - if use libunwind && 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 + if use libunwind && [[ $(tc-get-c-rtlib) == compiler-rt ]]; then + want_compiler_rt=ON fi local libdir=$(get_libdir) diff --git a/sys-libs/libcxxabi/libcxxabi-15.0.2.ebuild b/sys-libs/libcxxabi/libcxxabi-15.0.2.ebuild index 5665bc0cb12f..d9a53ffa7084 100644 --- a/sys-libs/libcxxabi/libcxxabi-15.0.2.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-15.0.2.ebuild @@ -63,15 +63,9 @@ multilib_src_configure() { 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 + # link to compiler-rt + local use_compiler_rt=OFF + [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON local libdir=$(get_libdir) local mycmakeargs=( @@ -83,7 +77,7 @@ multilib_src_configure() { -DLIBCXXABI_ENABLE_SHARED=ON -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs) -DLIBCXXABI_INCLUDE_TESTS=$(usex test) - -DLIBCXXABI_USE_COMPILER_RT=${want_compiler_rt} + -DLIBCXXABI_USE_COMPILER_RT=${use_compiler_rt} # upstream is omitting standard search path for this # probably because gcc & clang are bundling their own unwind.h diff --git a/sys-libs/libcxxabi/libcxxabi-15.0.3.9999.ebuild b/sys-libs/libcxxabi/libcxxabi-15.0.3.9999.ebuild index 130101c20cb9..8d8f8212d31e 100644 --- a/sys-libs/libcxxabi/libcxxabi-15.0.3.9999.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-15.0.3.9999.ebuild @@ -62,15 +62,9 @@ multilib_src_configure() { 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 + # link to compiler-rt + local use_compiler_rt=OFF + [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON local libdir=$(get_libdir) local mycmakeargs=( @@ -82,7 +76,7 @@ multilib_src_configure() { -DLIBCXXABI_ENABLE_SHARED=ON -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs) -DLIBCXXABI_INCLUDE_TESTS=$(usex test) - -DLIBCXXABI_USE_COMPILER_RT=${want_compiler_rt} + -DLIBCXXABI_USE_COMPILER_RT=${use_compiler_rt} # upstream is omitting standard search path for this # probably because gcc & clang are bundling their own unwind.h diff --git a/sys-libs/libcxxabi/libcxxabi-16.0.0.9999.ebuild b/sys-libs/libcxxabi/libcxxabi-16.0.0.9999.ebuild index 130101c20cb9..8d8f8212d31e 100644 --- a/sys-libs/libcxxabi/libcxxabi-16.0.0.9999.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-16.0.0.9999.ebuild @@ -62,15 +62,9 @@ multilib_src_configure() { 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 + # link to compiler-rt + local use_compiler_rt=OFF + [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON local libdir=$(get_libdir) local mycmakeargs=( @@ -82,7 +76,7 @@ multilib_src_configure() { -DLIBCXXABI_ENABLE_SHARED=ON -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs) -DLIBCXXABI_INCLUDE_TESTS=$(usex test) - -DLIBCXXABI_USE_COMPILER_RT=${want_compiler_rt} + -DLIBCXXABI_USE_COMPILER_RT=${use_compiler_rt} # upstream is omitting standard search path for this # probably because gcc & clang are bundling their own unwind.h diff --git a/sys-libs/libcxxabi/libcxxabi-16.0.0_pre20221006.ebuild b/sys-libs/libcxxabi/libcxxabi-16.0.0_pre20221006.ebuild index 130101c20cb9..8d8f8212d31e 100644 --- a/sys-libs/libcxxabi/libcxxabi-16.0.0_pre20221006.ebuild +++ b/sys-libs/libcxxabi/libcxxabi-16.0.0_pre20221006.ebuild @@ -62,15 +62,9 @@ multilib_src_configure() { 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 + # link to compiler-rt + local use_compiler_rt=OFF + [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON local libdir=$(get_libdir) local mycmakeargs=( @@ -82,7 +76,7 @@ multilib_src_configure() { -DLIBCXXABI_ENABLE_SHARED=ON -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs) -DLIBCXXABI_INCLUDE_TESTS=$(usex test) - -DLIBCXXABI_USE_COMPILER_RT=${want_compiler_rt} + -DLIBCXXABI_USE_COMPILER_RT=${use_compiler_rt} # upstream is omitting standard search path for this # probably because gcc & clang are bundling their own unwind.h diff --git a/sys-libs/libcxxabi/libcxxabi-16.0.0_pre20221010.ebuild b/sys-libs/libcxxabi/libcxxabi-16.0.0_pre20221010.ebuild new file mode 100644 index 000000000000..8d8f8212d31e --- /dev/null +++ b/sys-libs/libcxxabi/libcxxabi-16.0.0_pre20221010.ebuild @@ -0,0 +1,116 @@ +# 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-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+=" + !