mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-05 12:38:09 -07:00
sys-libs/compiler-rt: Remove old
Signed-off-by: Michał Górny <mgorny@gentoo.org>
This commit is contained in:
@@ -7,10 +7,6 @@ DIST llvm-project-16.0.6.src.tar.xz 118013488 BLAKE2B 95192d39cbd2914e5609db3659
|
||||
DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447
|
||||
DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30
|
||||
DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
|
||||
DIST llvm-project-18.1.7.src.tar.xz 132063384 BLAKE2B b8c37bd131fb5f3131bfab4fbad7aa811079ca10723faa14779253bc62b1ee08d4e04650e1da883297ed88a62d518b868a1f13cf57d03233254fd01209da5c02 SHA512 0f67818267803aca9d2bc9eb89335ee6dc56269e8066a0f8a48c4a959e8805dbf6bc839b9f96a92f86ee50d72e7cc326ffe18febb5eb06751ab54a217c0221c8
|
||||
DIST llvm-project-18.1.7.src.tar.xz.sig 566 BLAKE2B 9ae6d80eba5309ce3d5cba580df57c28dbcf429266b2ced622465e34ab2a7ae0f100d1e89c73a44abccd95a3367979344450fd53fb6a2baa029b929d3f13eee3 SHA512 7e5601e35f4fcaa4ed042638ae5a4fb90714c9dce58aa3f98e965568660b88294185621a4eb5547de262dca8a96f620db3f94932bb1776661e345dbe1266315c
|
||||
DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffef86468169ba2f211a9733ec2d4cf30040f7f277ef00f048bb44dee9f97d7d762f0f241f19e5a2a7b0b49217d3821ddfc8c354f SHA512 25eeee9984c8b4d0fbc240df90f33cbb000d3b0414baff5c8982beafcc5e59e7ef18f6f85d95b3a5f60cb3d4cd4f877c80487b5768bc21bc833f107698ad93db
|
||||
DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
|
||||
DIST llvm-project-3ae6755719c6dfc07761b4e9bdac8c86bcb41734.tar.gz 213487323 BLAKE2B 12030750fca0e7db4ae07a608874877151b2393cf58388f067b469e913ce9ac3f264440ebb3df5ea33f9f97cb87928fa746c98ba26c8d296f9e26dcbf950afc2 SHA512 951b70eafc8aea5b1f7847002229d89df565ca8180deef08b25966dcf070a7603a258e5fc24f9496251d23d275040724ed5e9499432ba3e19f5984f6f1c3c645
|
||||
DIST llvm-project-5aabbf0602c48b67bb89fd37f95bf97c95ded488.tar.gz 212582616 BLAKE2B 78522148bb4993bd26b16f1e3f44c2baf617705667c7fb104edc844c4330017166c783adae2f0215ca7463c05d1eef30fdf02b13241a9497aaede36bb8580a26 SHA512 104e0b5b4f34102f2da03cd54fe9bf5f7fb6efb3a9745d8ec85caa5f92189fde4a5c02c327243d87ff5c7d24b3790fcabdf0ef7144e79e15765785ca72dd3841
|
||||
DIST llvm-project-cddb9ce04e68d876de895d39d60b6af34d569012.tar.gz 213219536 BLAKE2B 5aba2c1dd19d73a8691590873f1697fa32adeab7f84d1d5636e211071e64bfa5d28a49ea9cfdba5fbae77c9520c2103a9f1544d669c7948a318636557f45f6ee SHA512 69ed25a0565c61cd4eb512e95b0fd2d2a3a09dbad73e7186d7fb1764193b06e522572eafb271d21469a4bfb133a62efe65e5ccd20cf05af8b43c52e195d477a9
|
||||
|
||||
@@ -1,172 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..13} )
|
||||
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 ~ppc64 ~riscv ~x86 ~amd64-linux ~arm64-macos ~ppc-macos ~x64-macos"
|
||||
IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
|
||||
RESTRICT="!test? ( test ) !clang? ( test )"
|
||||
|
||||
DEPEND="
|
||||
sys-devel/llvm:${LLVM_MAJOR}
|
||||
"
|
||||
BDEPEND="
|
||||
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.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() {
|
||||
llvm_prepend_path "${LLVM_MAJOR}"
|
||||
|
||||
# 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}"
|
||||
|
||||
-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 && ! 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
|
||||
}
|
||||
@@ -1,172 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..13} )
|
||||
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 +clang +debug test"
|
||||
RESTRICT="!test? ( test ) !clang? ( test )"
|
||||
|
||||
DEPEND="
|
||||
sys-devel/llvm:${LLVM_MAJOR}
|
||||
"
|
||||
BDEPEND="
|
||||
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.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() {
|
||||
llvm_prepend_path "${LLVM_MAJOR}"
|
||||
|
||||
# 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}"
|
||||
|
||||
-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
|
||||
}
|
||||
@@ -1,172 +0,0 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..13} )
|
||||
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 +clang +debug test"
|
||||
RESTRICT="!test? ( test ) !clang? ( test )"
|
||||
|
||||
DEPEND="
|
||||
sys-devel/llvm:${LLVM_MAJOR}
|
||||
"
|
||||
BDEPEND="
|
||||
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.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() {
|
||||
llvm_prepend_path "${LLVM_MAJOR}"
|
||||
|
||||
# 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}"
|
||||
|
||||
-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
|
||||
}
|
||||
Reference in New Issue
Block a user