From 162980a5d753abf908b4732d1ca7300a8ffccd49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Sun, 21 Sep 2025 03:28:26 +0200 Subject: [PATCH] llvm-runtimes/compiler-rt: Remove old MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- llvm-runtimes/compiler-rt/Manifest | 3 - .../compiler-rt/compiler-rt-21.1.0-r1.ebuild | 191 ------------------ .../compiler-rt/compiler-rt-21.1.0.ebuild | 179 ---------------- .../compiler-rt-22.0.0_pre20250907.ebuild | 190 ----------------- 4 files changed, 563 deletions(-) delete mode 100644 llvm-runtimes/compiler-rt/compiler-rt-21.1.0-r1.ebuild delete mode 100644 llvm-runtimes/compiler-rt/compiler-rt-21.1.0.ebuild delete mode 100644 llvm-runtimes/compiler-rt/compiler-rt-22.0.0_pre20250907.ebuild diff --git a/llvm-runtimes/compiler-rt/Manifest b/llvm-runtimes/compiler-rt/Manifest index d142c81b03c21..a49aa728dfacc 100644 --- a/llvm-runtimes/compiler-rt/Manifest +++ b/llvm-runtimes/compiler-rt/Manifest @@ -13,9 +13,6 @@ DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818bef DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda DIST llvm-project-20.1.8.src.tar.xz 147242952 BLAKE2B 7657ac0b26acc5affb1bfc91b912ade3191c5d77f3979d5a80d5f6ce52f56a7d1c448bd257398390bf10838f02faa6f3ece37a7327cced69d165ec2e2e699316 SHA512 f330e72e6a1da468569049437cc0ba7a41abb816ccece7367189344f7ebfef730f4788ac7af2bef0aa8a49341c15ab1d31e941ffa782f264d11fe0dc05470773 DIST llvm-project-20.1.8.src.tar.xz.sig 566 BLAKE2B 85beedfcff1195a974fab2c667b9efd4b715b3480c1b44b1b887fe32c69f72aca0d3b8fb276c03b6cc5a866622f669047aeee5ccb976640b4008ccd31dce77a4 SHA512 d74369bdb4d1b82775161ea53c9c5f3a23ce810f4df5ff617123023f9d8ce720e7d6ecc9e17f8ebd39fd9e7a9de79560abdf2ffe73bcb907a43148d43665d619 -DIST llvm-project-21.1.0.src.tar.xz 158971856 BLAKE2B ac8c3cc8d2c986abcaa523acc872b01311ec118a738654f9cc53a1d5fdba70ba10cfe829e23f3913557e460403ed6a2df81cb5e9a435c8e1ce08e7ead3511bf0 SHA512 1487dcdc041dd6cdcffa6cc95a565e18a9fce2a73215671e366a9601cecce6c8bf70065df5564de5998d1841c3d8d829a9fbd2cad72e3aab4db279e8885ff446 -DIST llvm-project-21.1.0.src.tar.xz.sig 438 BLAKE2B c5731350bc7454867da18887628c0e87bf404589097034c7ddfffbeec277b900bd1fa49daabd41d4f8800a8ab76105bf7e910a99dd970819ab987373d4ed4ed9 SHA512 c3cd0a759e22a24f4307d8747b7986f966f4fa3c413092efc73ccca252476f1b59878dc65b444884515bcce3d3bfab902f585cc1d08e2aeb55aa8e588128aeb6 DIST llvm-project-21.1.1.src.tar.xz 158891056 BLAKE2B 5801ba4ea64e9c55fd1e6a83e1ea463cfb1d2b12c1f25a488ca63fd88254f20388c5e986492e413d795306bc37782487b80485240939227f3beeea860091825c SHA512 a120895e75942d848cc763fd1cb4aeb184e9d4509d69064e8e3f5679fbeb09c73bf916e33d04b842778537d2331067ec9190e0ad75d591d3ba57871770e19bce DIST llvm-project-21.1.1.src.tar.xz.sig 438 BLAKE2B 8fdf614e67e31382c65d70a551ef94893b8e4914e855fa96fc3a4a0a4ac916d646758be1c1c9a74028acd776d5d93b77f678d29dc75179ae95909d525d263c85 SHA512 1b9a2c51feaca75ef2f82a89c8e8d741a0b5f05f0dd8ca244d6997deb00f8ded3c37a5cbc6012a4ba8632004383ab4677756d9defe8855fff458e02380d77bd5 -DIST llvm-project-645dd324d1b7d028745c2a4045b69e745df2ae6a.tar.gz 247443586 BLAKE2B dd3229c32768e42fd2f311638f1e63f5503fabee3fa414bc3300313b36bbfa062d90900319e4fdbbafae17947537fba699fe5940e1b6553a2d9a716c0ce7b59c SHA512 659dc22e2fd1fd0bced13f941127797dc7703b8d810eeb7a0fc51cf55c274e69e2d6660867c191d5d90615ddee3a1faff7f7cd357ff2eb88d715762be50098c3 DIST llvm-project-f059d2bac034acca39ad60a1b13aaec6afa0a3d6.tar.gz 248627883 BLAKE2B e1603ba38fcf70e7f3794a30a42057d0052a422bd0aaf423c65d1fd8f9ec7d3981cd651f309dc3ab5c28183291241732373b9bdb75fc2a11fc8d9f238388b8c3 SHA512 63a1627a8b3cc8f240cefe2066d7e306cab5091317f97dd808b9ad887d4e6eb2d21af3f79bccfdb9387f5f7a5ed0b772013b0261a647c8d50ffaa55914362dfb diff --git a/llvm-runtimes/compiler-rt/compiler-rt-21.1.0-r1.ebuild b/llvm-runtimes/compiler-rt/compiler-rt-21.1.0-r1.ebuild deleted file mode 100644 index 9d0337799be01..0000000000000 --- a/llvm-runtimes/compiler-rt/compiler-rt-21.1.0-r1.ebuild +++ /dev/null @@ -1,191 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..14} ) -inherit cmake crossdev flag-o-matic llvm.org llvm-utils python-any-r1 -inherit 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_MAJOR}" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos" -IUSE="+abi_x86_32 abi_x86_64 +atomic-builtins +clang debug test" -REQUIRED_USE="atomic-builtins? ( clang )" -RESTRICT="!test? ( test ) !clang? ( test )" - -DEPEND=" - llvm-core/llvm:${LLVM_MAJOR} -" -BDEPEND=" - clang? ( - llvm-core/clang:${LLVM_MAJOR} - llvm-core/clang-linker-config:${LLVM_MAJOR} - ) - test? ( - $(python_gen_any_dep ">=dev-python/lit-15[\${PYTHON_USEDEP}]") - =llvm-core/clang-${LLVM_VERSION}*:${LLVM_MAJOR} - ) - !test? ( - ${PYTHON_DEPS} - ) -" - -LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake third-party/siphash ) -LLVM_TEST_COMPONENTS=( llvm/include/llvm/TargetParser ) -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() { - if target_is_not_host || tc-is-cross-compiler ; then - # strips vars like CFLAGS="-march=x86_64-v3" for non-x86 architectures - CHOST=${CTARGET} strip-unsupported-flags - # overrides host docs otherwise - DOCS=() - fi - python-any-r1_pkg_setup -} - -test_compiler() { - target_is_not_host && return - $(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \ - <<<'int main() { return 0; }' &>/dev/null -} - -src_configure() { - if use clang || use test; then - llvm_prepend_path -b "${LLVM_MAJOR}" - fi - - # 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 && ! is_crosspkg; 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-${LLVM_MAJOR} - local -x CXX=${CHOST}-clang++-${LLVM_MAJOR} - fi - - strip-unsupported-flags - - # The full clang configuration might not be ready yet. Given that compiler-rt - # require runtime, use only the linker configuration. - local flags=( - --config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-linker.cfg - ) - local -x CFLAGS="${CFLAGS} ${flags[@]}" - local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}" - local -x LDFLAGS="${LDFLAGS} ${flags[@]}" - fi - - if ! is_crosspkg && ! 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 -e main ) - - 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_MAJOR}" - -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}" - - -DCOMPILER_RT_EXCLUDE_ATOMIC_BUILTIN=$(usex !atomic-builtins) - -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) - -DCOMPILER_RT_BUILD_CTX_PROFILE=OFF - -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 && ! target_is_not_host; then - mycmakeargs+=( - -DCAN_TARGET_i386=$(usex abi_x86_32) - -DCAN_TARGET_x86_64=$(usex abi_x86_64) - ) - fi - - if is_crosspkg; then - # Needed to target built libc headers - export CFLAGS="${CFLAGS} -isystem /usr/${CTARGET}/usr/include" - mycmakeargs+=( - # Without this, the compiler will compile a test program - # and fail due to no builtins. - -DCMAKE_C_COMPILER_WORKS=1 - -DCMAKE_CXX_COMPILER_WORKS=1 - - # Without this, compiler-rt install location is not unique - # to target triples, only to architecture. - # Needed if you want to target multiple libcs for one arch. - -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON - - -DCMAKE_ASM_COMPILER_TARGET="${CTARGET}" - -DCMAKE_C_COMPILER_TARGET="${CTARGET}" - -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON - ) - 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/llvm-runtimes/compiler-rt/compiler-rt-21.1.0.ebuild b/llvm-runtimes/compiler-rt/compiler-rt-21.1.0.ebuild deleted file mode 100644 index 6c839ff6db306..0000000000000 --- a/llvm-runtimes/compiler-rt/compiler-rt-21.1.0.ebuild +++ /dev/null @@ -1,179 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..14} ) -inherit cmake crossdev flag-o-matic llvm.org llvm-utils python-any-r1 -inherit 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_MAJOR}" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos" -IUSE="+abi_x86_32 abi_x86_64 +atomic-builtins +clang debug test" -REQUIRED_USE="atomic-builtins? ( clang )" -RESTRICT="!test? ( test ) !clang? ( test )" - -DEPEND=" - llvm-core/llvm:${LLVM_MAJOR} -" -BDEPEND=" - clang? ( llvm-core/clang:${LLVM_MAJOR} ) - test? ( - $(python_gen_any_dep ">=dev-python/lit-15[\${PYTHON_USEDEP}]") - =llvm-core/clang-${LLVM_VERSION}*:${LLVM_MAJOR} - ) - !test? ( - ${PYTHON_DEPS} - ) -" - -LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake third-party/siphash ) -LLVM_TEST_COMPONENTS=( llvm/include/llvm/TargetParser ) -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() { - if target_is_not_host || tc-is-cross-compiler ; then - # strips vars like CFLAGS="-march=x86_64-v3" for non-x86 architectures - CHOST=${CTARGET} strip-unsupported-flags - # overrides host docs otherwise - DOCS=() - fi - python-any-r1_pkg_setup -} - -test_compiler() { - target_is_not_host && return - $(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \ - <<<'int main() { return 0; }' &>/dev/null -} - -src_configure() { - if use clang || use test; then - llvm_prepend_path -b "${LLVM_MAJOR}" - fi - - # 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 && ! is_crosspkg; 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 ! is_crosspkg && ! 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 -e main ) - - 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_MAJOR}" - -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}" - - -DCOMPILER_RT_EXCLUDE_ATOMIC_BUILTIN=$(usex !atomic-builtins) - -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) - -DCOMPILER_RT_BUILD_CTX_PROFILE=OFF - -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 && ! target_is_not_host; then - mycmakeargs+=( - -DCAN_TARGET_i386=$(usex abi_x86_32) - -DCAN_TARGET_x86_64=$(usex abi_x86_64) - ) - fi - - if is_crosspkg; then - # Needed to target built libc headers - export CFLAGS="${CFLAGS} -isystem /usr/${CTARGET}/usr/include" - mycmakeargs+=( - # Without this, the compiler will compile a test program - # and fail due to no builtins. - -DCMAKE_C_COMPILER_WORKS=1 - -DCMAKE_CXX_COMPILER_WORKS=1 - - # Without this, compiler-rt install location is not unique - # to target triples, only to architecture. - # Needed if you want to target multiple libcs for one arch. - -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON - - -DCMAKE_ASM_COMPILER_TARGET="${CTARGET}" - -DCMAKE_C_COMPILER_TARGET="${CTARGET}" - -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON - ) - 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/llvm-runtimes/compiler-rt/compiler-rt-22.0.0_pre20250907.ebuild b/llvm-runtimes/compiler-rt/compiler-rt-22.0.0_pre20250907.ebuild deleted file mode 100644 index 86fe125a08cdb..0000000000000 --- a/llvm-runtimes/compiler-rt/compiler-rt-22.0.0_pre20250907.ebuild +++ /dev/null @@ -1,190 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{11..14} ) -inherit cmake crossdev flag-o-matic llvm.org llvm-utils python-any-r1 -inherit 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_MAJOR}" -IUSE="+abi_x86_32 abi_x86_64 +atomic-builtins +clang +debug test" -REQUIRED_USE="atomic-builtins? ( clang )" -RESTRICT="!test? ( test ) !clang? ( test )" - -DEPEND=" - llvm-core/llvm:${LLVM_MAJOR} -" -BDEPEND=" - clang? ( - llvm-core/clang:${LLVM_MAJOR} - llvm-core/clang-linker-config:${LLVM_MAJOR} - ) - test? ( - $(python_gen_any_dep ">=dev-python/lit-15[\${PYTHON_USEDEP}]") - =llvm-core/clang-${LLVM_VERSION}*:${LLVM_MAJOR} - ) - !test? ( - ${PYTHON_DEPS} - ) -" - -LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake third-party/siphash ) -LLVM_TEST_COMPONENTS=( llvm/include/llvm/TargetParser ) -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() { - if target_is_not_host || tc-is-cross-compiler ; then - # strips vars like CFLAGS="-march=x86_64-v3" for non-x86 architectures - CHOST=${CTARGET} strip-unsupported-flags - # overrides host docs otherwise - DOCS=() - fi - python-any-r1_pkg_setup -} - -test_compiler() { - target_is_not_host && return - $(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \ - <<<'int main() { return 0; }' &>/dev/null -} - -src_configure() { - if use clang || use test; then - llvm_prepend_path -b "${LLVM_MAJOR}" - fi - - # 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 && ! is_crosspkg; 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-${LLVM_MAJOR} - local -x CXX=${CHOST}-clang++-${LLVM_MAJOR} - fi - - strip-unsupported-flags - - # The full clang configuration might not be ready yet. Given that compiler-rt - # require runtime, use only the linker configuration. - local flags=( - --config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-linker.cfg - ) - local -x CFLAGS="${CFLAGS} ${flags[@]}" - local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}" - local -x LDFLAGS="${LDFLAGS} ${flags[@]}" - fi - - if ! is_crosspkg && ! 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 -e main ) - - 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_MAJOR}" - -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}" - - -DCOMPILER_RT_EXCLUDE_ATOMIC_BUILTIN=$(usex !atomic-builtins) - -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) - -DCOMPILER_RT_BUILD_CTX_PROFILE=OFF - -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 && ! target_is_not_host; then - mycmakeargs+=( - -DCAN_TARGET_i386=$(usex abi_x86_32) - -DCAN_TARGET_x86_64=$(usex abi_x86_64) - ) - fi - - if is_crosspkg; then - # Needed to target built libc headers - export CFLAGS="${CFLAGS} -isystem /usr/${CTARGET}/usr/include" - mycmakeargs+=( - # Without this, the compiler will compile a test program - # and fail due to no builtins. - -DCMAKE_C_COMPILER_WORKS=1 - -DCMAKE_CXX_COMPILER_WORKS=1 - - # Without this, compiler-rt install location is not unique - # to target triples, only to architecture. - # Needed if you want to target multiple libcs for one arch. - -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON - - -DCMAKE_ASM_COMPILER_TARGET="${CTARGET}" - -DCMAKE_C_COMPILER_TARGET="${CTARGET}" - -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON - ) - 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 -}