From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id C3ED8158042 for ; Sat, 9 Nov 2024 10:14:19 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 1A70DE07C9; Sat, 9 Nov 2024 10:14:19 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 00F44E07C9 for ; Sat, 9 Nov 2024 10:14:18 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 3A9C1335D6B for ; Sat, 9 Nov 2024 10:14:18 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id C7CA31953 for ; Sat, 9 Nov 2024 10:14:16 +0000 (UTC) From: "Michał Górny" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Michał Górny" Message-ID: <1731147253.63b4ae7aaa6e520706e1237b649d8fe29f5aba83.mgorny@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: sys-libs/compiler-rt/ X-VCS-Repository: repo/gentoo X-VCS-Files: sys-libs/compiler-rt/compiler-rt-15.0.7-r2.ebuild sys-libs/compiler-rt/compiler-rt-16.0.6-r6.ebuild sys-libs/compiler-rt/compiler-rt-17.0.6-r2.ebuild sys-libs/compiler-rt/compiler-rt-18.1.8-r2.ebuild sys-libs/compiler-rt/compiler-rt-19.1.3-r1.ebuild sys-libs/compiler-rt/compiler-rt-20.0.0.9999.ebuild X-VCS-Directories: sys-libs/compiler-rt/ X-VCS-Committer: mgorny X-VCS-Committer-Name: Michał Górny X-VCS-Revision: 63b4ae7aaa6e520706e1237b649d8fe29f5aba83 X-VCS-Branch: master Date: Sat, 9 Nov 2024 10:14:16 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 2c4c0f53-478a-4f0a-b481-67178e1adeef X-Archives-Hash: edd2c312e68e3a355613cbb927c15d38 commit: 63b4ae7aaa6e520706e1237b649d8fe29f5aba83 Author: mojyack gmail com> AuthorDate: Sat Nov 9 04:27:01 2024 +0000 Commit: Michał Górny gentoo org> CommitDate: Sat Nov 9 10:14:13 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=63b4ae7a sys-libs/compiler-rt: enable atomic builtin Several packages depend on GCC's libatomic to perform atomic operations. For example, this compiles without -latomic: ```c _Atomic struct { int v[1]; } a; atomic_store(&a, a); ``` But this fails with error "undefined reference to __atomic_store_16" without -latomic: ```c _Atomic struct { int v[4]; } b; atomic_store(&b, b); ``` LLVM does not have a libatomic.so, but an atomic builtin to support such operations. However, it is disabled by default to allow use of system libatomic while using LLVM as a compiler. Pure LLVM environments without GCC installed require this builtin. This commit adds `-DCOMPILER_RT_EXCLUDE_ATOMIC_BUILTIN=OFF` cmake option to enable the builtin. Bug: https://bugs.gentoo.org/911340 Signed-off-by: mojyack gmail.com> Closes: https://github.com/gentoo/gentoo/pull/39168 Signed-off-by: Michał Górny gentoo.org> ....0.9999.ebuild => compiler-rt-15.0.7-r2.ebuild} | 57 +++++++--------------- ....0.9999.ebuild => compiler-rt-16.0.6-r6.ebuild} | 23 +++++---- ....0.9999.ebuild => compiler-rt-17.0.6-r2.ebuild} | 23 +++++---- ....0.9999.ebuild => compiler-rt-18.1.8-r2.ebuild} | 6 +-- ....0.9999.ebuild => compiler-rt-19.1.3-r1.ebuild} | 4 +- .../compiler-rt/compiler-rt-20.0.0.9999.ebuild | 1 + 6 files changed, 52 insertions(+), 62 deletions(-) diff --git a/sys-libs/compiler-rt/compiler-rt-20.0.0.9999.ebuild b/sys-libs/compiler-rt/compiler-rt-15.0.7-r2.ebuild similarity index 70% copy from sys-libs/compiler-rt/compiler-rt-20.0.0.9999.ebuild copy to sys-libs/compiler-rt/compiler-rt-15.0.7-r2.ebuild index 7642499a8792..830a5dc0145e 100644 --- a/sys-libs/compiler-rt/compiler-rt-20.0.0.9999.ebuild +++ b/sys-libs/compiler-rt/compiler-rt-15.0.7-r2.ebuild @@ -3,16 +3,16 @@ EAPI=8 -PYTHON_COMPAT=( python3_{10..13} ) -inherit cmake crossdev flag-o-matic llvm.org llvm-utils python-any-r1 -inherit toolchain-funcs +PYTHON_COMPAT=( python3_{10..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_MAJOR}" -IUSE="+abi_x86_32 abi_x86_64 +clang +debug test" +SLOT="${LLVM_VERSION}" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos" +IUSE="+abi_x86_32 abi_x86_64 +clang debug test" RESTRICT="!test? ( test ) !clang? ( test )" DEPEND=" @@ -30,7 +30,7 @@ BDEPEND=" " LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake ) -LLVM_TEST_COMPONENTS=( llvm/include/llvm/TargetParser ) +LLVM_PATCHSET=${PV/_/-} llvm.org_set_globals python_check_deps() { @@ -46,31 +46,28 @@ pkg_pretend() { } 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=() + # 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 sys-devel/llvm; then + LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup 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 + 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 @@ -81,7 +78,7 @@ src_configure() { strip-unsupported-flags fi - if ! is_crosspkg && ! test_compiler ; then + if ! test_compiler; then local nolib_flags=( -nodefaultlibs -lc ) if test_compiler "${nolib_flags[@]}"; then @@ -90,7 +87,7 @@ src_configure() { 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 ) + nolib_flags+=( -nostartfiles -emain ) local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}" @@ -98,10 +95,10 @@ src_configure() { fi local mycmakeargs=( - -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}" + -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${LLVM_VERSION}" + -DCOMPILER_RT_EXCLUDE_ATOMIC_BUILTIN=OFF -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 @@ -112,33 +109,13 @@ src_configure() { -DPython3_EXECUTABLE="${PYTHON}" ) - if use amd64 && ! target_is_not_host; then + if use amd64; 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 diff --git a/sys-libs/compiler-rt/compiler-rt-20.0.0.9999.ebuild b/sys-libs/compiler-rt/compiler-rt-16.0.6-r6.ebuild similarity index 87% copy from sys-libs/compiler-rt/compiler-rt-20.0.0.9999.ebuild copy to sys-libs/compiler-rt/compiler-rt-16.0.6-r6.ebuild index 7642499a8792..e43bba60aa8b 100644 --- a/sys-libs/compiler-rt/compiler-rt-20.0.0.9999.ebuild +++ b/sys-libs/compiler-rt/compiler-rt-16.0.6-r6.ebuild @@ -3,16 +3,16 @@ EAPI=8 -PYTHON_COMPAT=( python3_{10..13} ) -inherit cmake crossdev flag-o-matic llvm.org llvm-utils python-any-r1 -inherit toolchain-funcs +PYTHON_COMPAT=( python3_{10..12} ) +inherit cmake crossdev 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_MAJOR}" -IUSE="+abi_x86_32 abi_x86_64 +clang +debug test" +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=" @@ -30,7 +30,7 @@ BDEPEND=" " LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake ) -LLVM_TEST_COMPONENTS=( llvm/include/llvm/TargetParser ) +LLVM_PATCHSET=${PV}-r4 llvm.org_set_globals python_check_deps() { @@ -46,6 +46,13 @@ pkg_pretend() { } 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 sys-devel/llvm; then + LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup + fi + 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 @@ -62,8 +69,6 @@ test_compiler() { } 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" @@ -90,7 +95,7 @@ src_configure() { 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 ) + nolib_flags+=( -nostartfiles -emain ) local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}" @@ -100,8 +105,8 @@ src_configure() { local mycmakeargs=( -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}" + -DCOMPILER_RT_EXCLUDE_ATOMIC_BUILTIN=OFF -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 diff --git a/sys-libs/compiler-rt/compiler-rt-20.0.0.9999.ebuild b/sys-libs/compiler-rt/compiler-rt-17.0.6-r2.ebuild similarity index 87% copy from sys-libs/compiler-rt/compiler-rt-20.0.0.9999.ebuild copy to sys-libs/compiler-rt/compiler-rt-17.0.6-r2.ebuild index 7642499a8792..c5c7bdc62a1b 100644 --- a/sys-libs/compiler-rt/compiler-rt-20.0.0.9999.ebuild +++ b/sys-libs/compiler-rt/compiler-rt-17.0.6-r2.ebuild @@ -3,16 +3,16 @@ EAPI=8 -PYTHON_COMPAT=( python3_{10..13} ) -inherit cmake crossdev flag-o-matic llvm.org llvm-utils python-any-r1 -inherit toolchain-funcs +PYTHON_COMPAT=( python3_{10..12} ) +inherit cmake crossdev 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_MAJOR}" -IUSE="+abi_x86_32 abi_x86_64 +clang +debug test" +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=" @@ -30,7 +30,7 @@ BDEPEND=" " LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake ) -LLVM_TEST_COMPONENTS=( llvm/include/llvm/TargetParser ) +LLVM_PATCHSET=${PV} llvm.org_set_globals python_check_deps() { @@ -46,6 +46,13 @@ pkg_pretend() { } 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 sys-devel/llvm; then + LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup + fi + 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 @@ -62,8 +69,6 @@ test_compiler() { } 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" @@ -90,7 +95,7 @@ src_configure() { 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 ) + nolib_flags+=( -nostartfiles -emain ) local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}" ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}" @@ -100,8 +105,8 @@ src_configure() { local mycmakeargs=( -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}" + -DCOMPILER_RT_EXCLUDE_ATOMIC_BUILTIN=OFF -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 diff --git a/sys-libs/compiler-rt/compiler-rt-20.0.0.9999.ebuild b/sys-libs/compiler-rt/compiler-rt-18.1.8-r2.ebuild similarity index 96% copy from sys-libs/compiler-rt/compiler-rt-20.0.0.9999.ebuild copy to sys-libs/compiler-rt/compiler-rt-18.1.8-r2.ebuild index 7642499a8792..6fae972ab61d 100644 --- a/sys-libs/compiler-rt/compiler-rt-20.0.0.9999.ebuild +++ b/sys-libs/compiler-rt/compiler-rt-18.1.8-r2.ebuild @@ -12,7 +12,8 @@ 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" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~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=" @@ -30,7 +31,6 @@ BDEPEND=" " LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake ) -LLVM_TEST_COMPONENTS=( llvm/include/llvm/TargetParser ) llvm.org_set_globals python_check_deps() { @@ -100,8 +100,8 @@ src_configure() { local mycmakeargs=( -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}" + -DCOMPILER_RT_EXCLUDE_ATOMIC_BUILTIN=OFF -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 diff --git a/sys-libs/compiler-rt/compiler-rt-20.0.0.9999.ebuild b/sys-libs/compiler-rt/compiler-rt-19.1.3-r1.ebuild similarity index 96% copy from sys-libs/compiler-rt/compiler-rt-20.0.0.9999.ebuild copy to sys-libs/compiler-rt/compiler-rt-19.1.3-r1.ebuild index 7642499a8792..0e331798f968 100644 --- a/sys-libs/compiler-rt/compiler-rt-20.0.0.9999.ebuild +++ b/sys-libs/compiler-rt/compiler-rt-19.1.3-r1.ebuild @@ -12,7 +12,8 @@ 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" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~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=" @@ -100,6 +101,7 @@ src_configure() { local mycmakeargs=( -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}" + -DCOMPILER_RT_EXCLUDE_ATOMIC_BUILTIN=OFF -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) -DCOMPILER_RT_BUILD_CTX_PROFILE=OFF -DCOMPILER_RT_BUILD_LIBFUZZER=OFF diff --git a/sys-libs/compiler-rt/compiler-rt-20.0.0.9999.ebuild b/sys-libs/compiler-rt/compiler-rt-20.0.0.9999.ebuild index 7642499a8792..e8c984678e90 100644 --- a/sys-libs/compiler-rt/compiler-rt-20.0.0.9999.ebuild +++ b/sys-libs/compiler-rt/compiler-rt-20.0.0.9999.ebuild @@ -100,6 +100,7 @@ src_configure() { local mycmakeargs=( -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}" + -DCOMPILER_RT_EXCLUDE_ATOMIC_BUILTIN=OFF -DCOMPILER_RT_INCLUDE_TESTS=$(usex test) -DCOMPILER_RT_BUILD_CTX_PROFILE=OFF -DCOMPILER_RT_BUILD_LIBFUZZER=OFF