public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2024-12-12  5:03 Sam James
  0 siblings, 0 replies; 106+ messages in thread
From: Sam James @ 2024-12-12  5:03 UTC (permalink / raw
  To: gentoo-commits

commit:     4941157a1238fa6731195b029cdd04b35abe2262
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 12 04:58:46 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Dec 12 04:58:46 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4941157a

llvm-runtimes/compiler-rt-sanitizers: Stabilize 18.1.8-r6 arm64, #946220

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
index cdf8b9fb7ed3..7ed9e612dc4e 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
@@ -11,7 +11,7 @@ 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 ~ppc-macos ~x64-macos"
+KEYWORDS="~amd64 ~arm arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
 IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
 # base targets
 IUSE+=" +libfuzzer +memprof +orc +profile +xray"


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2024-12-12  5:03 Sam James
  0 siblings, 0 replies; 106+ messages in thread
From: Sam James @ 2024-12-12  5:03 UTC (permalink / raw
  To: gentoo-commits

commit:     7c0f7fff3167ccc35c3e655b2484b0153e849e9d
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 12 04:58:49 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Dec 12 04:58:49 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7c0f7fff

llvm-runtimes/compiler-rt-sanitizers: Stabilize 18.1.8-r6 ppc64, #946220

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
index 7ed9e612dc4e..d95668e31e69 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
@@ -11,7 +11,7 @@ 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 ~ppc-macos ~x64-macos"
+KEYWORDS="~amd64 ~arm arm64 ~loong ~mips ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
 IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
 # base targets
 IUSE+=" +libfuzzer +memprof +orc +profile +xray"


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2024-12-12  5:03 Sam James
  0 siblings, 0 replies; 106+ messages in thread
From: Sam James @ 2024-12-12  5:03 UTC (permalink / raw
  To: gentoo-commits

commit:     f43205ff4e20a291de2fbf2087d47a3546411f4d
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 12 05:01:14 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Dec 12 05:01:14 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f43205ff

llvm-runtimes/compiler-rt-sanitizers: Stabilize 18.1.8-r6 amd64, #946220

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
index d95668e31e69..4d8894c3b454 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
@@ -11,7 +11,7 @@ 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 ~ppc-macos ~x64-macos"
+KEYWORDS="amd64 ~arm arm64 ~loong ~mips ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
 IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
 # base targets
 IUSE+=" +libfuzzer +memprof +orc +profile +xray"


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2024-12-12  5:03 Sam James
  0 siblings, 0 replies; 106+ messages in thread
From: Sam James @ 2024-12-12  5:03 UTC (permalink / raw
  To: gentoo-commits

commit:     c576605a6e59f38b748f639995d780d703cedf19
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 12 05:01:20 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Dec 12 05:01:20 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c576605a

llvm-runtimes/compiler-rt-sanitizers: Stabilize 18.1.8-r6 x86, #946220

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
index e56f3155ecd5..8a734d4c9ef2 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
@@ -11,7 +11,7 @@ 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 ~ppc-macos ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc64 ~riscv x86 ~amd64-linux ~ppc-macos ~x64-macos"
 IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
 # base targets
 IUSE+=" +libfuzzer +memprof +orc +profile +xray"


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2024-12-12  5:03 Sam James
  0 siblings, 0 replies; 106+ messages in thread
From: Sam James @ 2024-12-12  5:03 UTC (permalink / raw
  To: gentoo-commits

commit:     1d29885d58168cfb5ab3c1e280c1396c5b902ee6
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 12 05:01:17 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Dec 12 05:01:17 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1d29885d

llvm-runtimes/compiler-rt-sanitizers: Stabilize 18.1.8-r6 arm, #946220

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
index 4d8894c3b454..e56f3155ecd5 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
@@ -11,7 +11,7 @@ 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 ~ppc-macos ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
 IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
 # base targets
 IUSE+=" +libfuzzer +memprof +orc +profile +xray"


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2024-12-12 12:27 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2024-12-12 12:27 UTC (permalink / raw
  To: gentoo-commits

commit:     a00d5a710f1daf1784da05e7ea871e997df06165
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 12 12:15:59 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Dec 12 12:15:59 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a00d5a71

llvm-runtimes/compiler-rt-sanitizers: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 -
 .../compiler-rt-sanitizers-18.1.8-r1.ebuild        | 221 ---------------------
 2 files changed, 222 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 382faaff82df..1350de59b780 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -1,7 +1,6 @@
 DIST llvm-gentoo-patchset-15.0.7-r6.tar.xz 25208 BLAKE2B c9fca31a053ee059c3060a94dcf675d472fc1a59b5f927648de58fb4ff20bfc229890f789ed47b3d053bd466b860a0c60a53b4b024a8fe18c776e9a72434d6de SHA512 601cd923711839dca7cb5bfea53ded644777c6340265a797939a53409fd2ca27059a015fd6ca6832e60314699ade27919a9a59dab395cc27f8fdc479a0f3c034
 DIST llvm-gentoo-patchset-16.0.6-r5.tar.xz 19728 BLAKE2B 36b605401893034b2b560d26cfb57512c81eddbc35b25d9c3d1fe051b8825c38cae1b8ed999faf8fef564ca5578402d3979bc56ba0a5514dc62594d893696f41 SHA512 20a36b69dfc2b4796ce33318a28529ebdc213945ee67a983e4218117d2ee2c93be1ecb38b0e8189249c5806a442cba708e0890e1b7bf6376edec4403bcc71425
 DIST llvm-gentoo-patchset-17.0.6-r3.tar.xz 4648 BLAKE2B c709162068e83575f71a2ac2243665f47a3d42cac078daa5762bbd339d8593e8c1c5c58e2e415ba6659fe2f3c3824bd098c9be579103362084079140c0386f76 SHA512 251a33f146fcbdbe51c9e1ad7b08c2cd7d062d0b136c833cda8a5155c86080c506d575e4288cde4ba8530ca7f230c2afa63621878a8df0f23076a93c924e7d65
-DIST llvm-gentoo-patchset-18.1.8-r4.tar.xz 15912 BLAKE2B 7300128244aafe42fcf5863e3aad2beb0c96c3df527e6d35fe571369bad520ba4aa397a329287da17eb33dca902057da5cd5193ec560ea7f5767ba2d00a45818 SHA512 b32633db387d4adb3bb2d067f824ae4e8e8a24a25aaa4888520f6e61a4bb1f8f70ad5f44057fbc0892c6f93c803e360612b0fc02c4ec068470b546a55f246cba
 DIST llvm-gentoo-patchset-18.1.8-r6.tar.xz 24816 BLAKE2B a7e9e007b05205fa7adba032ba932eba1996dd7ed6cd4cfb460a731f0d2e5fda2174f46c2ee5554ca7f82297a4baddbabc7fdfbd530056471853df957c221f2f SHA512 e1666bba6678eff3ee3666818a656ba7b8f964acb8466bd220bfbf0cc2922820e84b9daaa84c3a8ed26f3160fddea63fbc13872b007eb6922eaee462c08aeaef
 DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5 SHA512 4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52
 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r1.ebuild
deleted file mode 100644
index f1b0745db2b7..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r1.ebuild
+++ /dev/null
@@ -1,221 +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 check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc64 ~riscv x86 ~amd64-linux ~ppc-macos ~x64-macos"
-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="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_PATCHSET=${PV}-r4
-LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support third-party )
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
-}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2024-12-16  5:57 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2024-12-16  5:57 UTC (permalink / raw
  To: gentoo-commits

commit:     505e1d133a5e46008189b362c871e8bc09ba5d4c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 15 20:12:16 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Dec 16 05:55:51 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=505e1d13

llvm-runtimes/compiler-rt-sanitizers: Add 20.0.0_pre20241215 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-20.0.0_pre20241215.ebuild | 222 +++++++++++++++++++++
 2 files changed, 223 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 1350de59b780..193aa120c60f 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -15,3 +15,4 @@ DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e2
 DIST llvm-project-19.1.5.src.tar.xz 141243716 BLAKE2B 228fc66ab688abfc16f31b2cd83163b81ef61604ace21eab69a1776f0dc88cbe8fa831162205849e5be3975a214136399572b4ad1b908986e37b2d38a1a7fa5d SHA512 648854e9c91fdcc5c677ce3800e046f2060b998a45cf9f7eebe02898431b3924f9348b6fc366102cd4fdda72dcb8f32076f98aa69927e0e20b3f1007fba10b22
 DIST llvm-project-19.1.5.src.tar.xz.sig 438 BLAKE2B 1d40a5c5405f99ef86e3360f9ea153afd1ae4001697210fd799a988113e8a3cef39e2c4794edd9332f384d8490f4ce2ab6bee6d98f794f84775807f833b81c0a SHA512 a438c86ce882eb1ac3e50842937068794ed162bb1b7ded68a2fe3ec2ab4f57cc38aee667cfb46afe6da22eef7ed1cb65820a473f63bd5a0dc6aad41df7bfad54
 DIST llvm-project-32f7f0010bca99ee4bd917f57272733fb2bf3bd9.tar.gz 223983502 BLAKE2B fd3e6b0b795abc42568ef98fa774d927029c18838a5d0f34eaa66c37976444a63f2fc5d883f3bf3a98533f51e387936f1c659230f31c757d26153425696a16cd SHA512 65a345ad5b77c627008f759947e5e9f28a62c8992d7146113e0446e5849feaf9088c15c8b22ca0824af5b927d6a417f5326258b489fb8ccea78ec9e0e0fe8fba
+DIST llvm-project-49a5ad8e5714fd404210279303acc97b495d66d0.tar.gz 224456065 BLAKE2B 0077b9d37c479ac6190cc4b897cc35d6f1f3e6a772cd0620bcb1006afc19377e9968e38fb9d9adffe316e85290c9045deecbf9bf62b440c55968634b442edb31 SHA512 45d779eb27c230f656fda47c85127381cab8c8f7f75d77411c6960269f8aad5fa3c99c024a98ab8a349da1c88ad9d892cc82f91a6f344b791b281449031ae49a

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20241215.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20241215.ebuild
new file mode 100644
index 000000000000..cea1ae243486
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20241215.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2024-12-17 21:37 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2024-12-17 21:37 UTC (permalink / raw
  To: gentoo-commits

commit:     8e6e8f4c09da2ff2cded2cce8299cbdef3550394
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 17 21:34:34 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Dec 17 21:37:17 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8e6e8f4c

llvm-runtimes/compiler-rt-sanitizers: Add 19.1.6

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   2 +
 .../compiler-rt-sanitizers-19.1.6.ebuild           | 223 +++++++++++++++++++++
 2 files changed, 225 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 193aa120c60f..3d5c808b0e19 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -14,5 +14,7 @@ DIST llvm-project-19.1.4.src.tar.xz 141255156 BLAKE2B b99cd8a96e38dbcfb582ee5d22
 DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e29430bc09ef2b81be763aa5c853793631d7b7fdd65eb4dae7a1e3b4daa15d189c24cd1e14f065f79fdbf75429fa34be9b330e SHA512 3fb4a6c7594cb43680860698dac47062dde30de60f515dcecdad63812ea1edfb2cb209d0a7ac2254589c245a95b7c0f571b582e0d4b97a6ae8242563483ea764
 DIST llvm-project-19.1.5.src.tar.xz 141243716 BLAKE2B 228fc66ab688abfc16f31b2cd83163b81ef61604ace21eab69a1776f0dc88cbe8fa831162205849e5be3975a214136399572b4ad1b908986e37b2d38a1a7fa5d SHA512 648854e9c91fdcc5c677ce3800e046f2060b998a45cf9f7eebe02898431b3924f9348b6fc366102cd4fdda72dcb8f32076f98aa69927e0e20b3f1007fba10b22
 DIST llvm-project-19.1.5.src.tar.xz.sig 438 BLAKE2B 1d40a5c5405f99ef86e3360f9ea153afd1ae4001697210fd799a988113e8a3cef39e2c4794edd9332f384d8490f4ce2ab6bee6d98f794f84775807f833b81c0a SHA512 a438c86ce882eb1ac3e50842937068794ed162bb1b7ded68a2fe3ec2ab4f57cc38aee667cfb46afe6da22eef7ed1cb65820a473f63bd5a0dc6aad41df7bfad54
+DIST llvm-project-19.1.6.src.tar.xz 141248428 BLAKE2B b35ab0c754f28c850ac6fd4ee584e963b1d5cf06885c59827ee4ac11f93cde5b8e0268fbed560839137de2c495c9da2b889331cd12a8a02958d8e0cbdbed2607 SHA512 d411a6d913d6a1e1f3c16cfc1ce81c1e6292ea370703f55fb67c7af62f02193d53f5ef7823c8679d6f25cbe47b40236fcaf37044ad7cdfada8166efe7eb106b3
+DIST llvm-project-19.1.6.src.tar.xz.sig 438 BLAKE2B 1791e98252ab78a9a762ef601ff9edee115385181781c8100f14ec80061d7888ee4c4c519297a0e89b9c7ab2203aa9d5bb3084ea1d0f0024c2acf84826fd370b SHA512 8e79a39a4f54da3579794f9b5a009ea8ee56c7bc1805187274794ce56e81aa492ea93f5c7839a59beedcf7d657acded5ecb75d5803658cce1f9e8f753439c6c4
 DIST llvm-project-32f7f0010bca99ee4bd917f57272733fb2bf3bd9.tar.gz 223983502 BLAKE2B fd3e6b0b795abc42568ef98fa774d927029c18838a5d0f34eaa66c37976444a63f2fc5d883f3bf3a98533f51e387936f1c659230f31c757d26153425696a16cd SHA512 65a345ad5b77c627008f759947e5e9f28a62c8992d7146113e0446e5849feaf9088c15c8b22ca0824af5b927d6a417f5326258b489fb8ccea78ec9e0e0fe8fba
 DIST llvm-project-49a5ad8e5714fd404210279303acc97b495d66d0.tar.gz 224456065 BLAKE2B 0077b9d37c479ac6190cc4b897cc35d6f1f3e6a772cd0620bcb1006afc19377e9968e38fb9d9adffe316e85290c9045deecbf9bf62b440c55968634b442edb31 SHA512 45d779eb27c230f656fda47c85127381cab8c8f7f75d77411c6960269f8aad5fa3c99c024a98ab8a349da1c88ad9d892cc82f91a6f344b791b281449031ae49a

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.6.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.6.ebuild
new file mode 100644
index 000000000000..d859114a0b3d
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.6.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
+IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
+# base targets
+IUSE+=" +ctx-profile +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="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2024-12-21 10:28 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2024-12-21 10:28 UTC (permalink / raw
  To: gentoo-commits

commit:     028de7a80c277b26c65be78ba3d7d6f4709d9aed
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 21 10:10:52 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Dec 21 10:28:13 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=028de7a8

llvm-runtimes/compiler-rt-sanitizers: Add 20.0.0_pre20241221 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-20.0.0_pre20241221.ebuild | 222 +++++++++++++++++++++
 2 files changed, 223 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 3d5c808b0e19..e6dce33e60d2 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -18,3 +18,4 @@ DIST llvm-project-19.1.6.src.tar.xz 141248428 BLAKE2B b35ab0c754f28c850ac6fd4ee5
 DIST llvm-project-19.1.6.src.tar.xz.sig 438 BLAKE2B 1791e98252ab78a9a762ef601ff9edee115385181781c8100f14ec80061d7888ee4c4c519297a0e89b9c7ab2203aa9d5bb3084ea1d0f0024c2acf84826fd370b SHA512 8e79a39a4f54da3579794f9b5a009ea8ee56c7bc1805187274794ce56e81aa492ea93f5c7839a59beedcf7d657acded5ecb75d5803658cce1f9e8f753439c6c4
 DIST llvm-project-32f7f0010bca99ee4bd917f57272733fb2bf3bd9.tar.gz 223983502 BLAKE2B fd3e6b0b795abc42568ef98fa774d927029c18838a5d0f34eaa66c37976444a63f2fc5d883f3bf3a98533f51e387936f1c659230f31c757d26153425696a16cd SHA512 65a345ad5b77c627008f759947e5e9f28a62c8992d7146113e0446e5849feaf9088c15c8b22ca0824af5b927d6a417f5326258b489fb8ccea78ec9e0e0fe8fba
 DIST llvm-project-49a5ad8e5714fd404210279303acc97b495d66d0.tar.gz 224456065 BLAKE2B 0077b9d37c479ac6190cc4b897cc35d6f1f3e6a772cd0620bcb1006afc19377e9968e38fb9d9adffe316e85290c9045deecbf9bf62b440c55968634b442edb31 SHA512 45d779eb27c230f656fda47c85127381cab8c8f7f75d77411c6960269f8aad5fa3c99c024a98ab8a349da1c88ad9d892cc82f91a6f344b791b281449031ae49a
+DIST llvm-project-665d79f2e967a5eee6fff93685e45f50cf24cab2.tar.gz 224186302 BLAKE2B 6d4a02b6cfaf53324161c43ed02024f0fea0e7de25a9150cc0168602d7dff3f618026fa8318aa6e03904a9424afa1f12c5eb33bfdfa82e72210f34e5829a7804 SHA512 7482e176b1e2389b0dd0e67271cdb0489e9db0595874408156a034b40d336ecd960c63b89c237ca22eee3650880b0f08a97de14f8a17c918245915d422e568c9

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20241221.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20241221.ebuild
new file mode 100644
index 000000000000..cea1ae243486
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20241221.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2024-12-27 21:25 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2024-12-27 21:25 UTC (permalink / raw
  To: gentoo-commits

commit:     74452f5cd80a3a5750dbda2079a26c9f74bcc6ed
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 27 20:37:45 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Dec 27 21:25:00 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=74452f5c

llvm-runtimes/compiler-rt-sanitizers: Add 20.0.0_pre20241227 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-20.0.0_pre20241227.ebuild | 222 +++++++++++++++++++++
 2 files changed, 223 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index e6dce33e60d2..15f0f0b11339 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -19,3 +19,4 @@ DIST llvm-project-19.1.6.src.tar.xz.sig 438 BLAKE2B 1791e98252ab78a9a762ef601ff9
 DIST llvm-project-32f7f0010bca99ee4bd917f57272733fb2bf3bd9.tar.gz 223983502 BLAKE2B fd3e6b0b795abc42568ef98fa774d927029c18838a5d0f34eaa66c37976444a63f2fc5d883f3bf3a98533f51e387936f1c659230f31c757d26153425696a16cd SHA512 65a345ad5b77c627008f759947e5e9f28a62c8992d7146113e0446e5849feaf9088c15c8b22ca0824af5b927d6a417f5326258b489fb8ccea78ec9e0e0fe8fba
 DIST llvm-project-49a5ad8e5714fd404210279303acc97b495d66d0.tar.gz 224456065 BLAKE2B 0077b9d37c479ac6190cc4b897cc35d6f1f3e6a772cd0620bcb1006afc19377e9968e38fb9d9adffe316e85290c9045deecbf9bf62b440c55968634b442edb31 SHA512 45d779eb27c230f656fda47c85127381cab8c8f7f75d77411c6960269f8aad5fa3c99c024a98ab8a349da1c88ad9d892cc82f91a6f344b791b281449031ae49a
 DIST llvm-project-665d79f2e967a5eee6fff93685e45f50cf24cab2.tar.gz 224186302 BLAKE2B 6d4a02b6cfaf53324161c43ed02024f0fea0e7de25a9150cc0168602d7dff3f618026fa8318aa6e03904a9424afa1f12c5eb33bfdfa82e72210f34e5829a7804 SHA512 7482e176b1e2389b0dd0e67271cdb0489e9db0595874408156a034b40d336ecd960c63b89c237ca22eee3650880b0f08a97de14f8a17c918245915d422e568c9
+DIST llvm-project-ccfe0de0e1e37ed369c9bf89dd0188ba0afb2e9a.tar.gz 224396427 BLAKE2B 6e13c65d2ba83fdaf2db20a58b878106568406f07f9c2ceb47e4d2572fb041211384ed67c43801764060101ec4a1b04c18bf4097f37512d2751aa5860c1a8dc3 SHA512 ef4512b735568aaa627a7f4e9bac3fc4722db7a2b8bd1610faaf066856be9474fb297fd75b3c0dcc76f60ab35c3110fd329faad3e8d9b75e93844d56f41c03d1

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20241227.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20241227.ebuild
new file mode 100644
index 000000000000..cea1ae243486
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20241227.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2024-12-28 19:35 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2024-12-28 19:35 UTC (permalink / raw
  To: gentoo-commits

commit:     a257a927539cd65b5e2f0b241b97bb11533bd978
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 28 19:33:11 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Dec 28 19:33:11 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a257a927

llvm-runtimes/compiler-rt-sanitizers: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   5 -
 .../compiler-rt-sanitizers-19.1.5.ebuild           | 223 ---------------------
 ...ompiler-rt-sanitizers-20.0.0_pre20241207.ebuild | 222 --------------------
 ...ompiler-rt-sanitizers-20.0.0_pre20241215.ebuild | 222 --------------------
 ...ompiler-rt-sanitizers-20.0.0_pre20241221.ebuild | 222 --------------------
 5 files changed, 894 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 15f0f0b11339..2109bd8d5961 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -12,11 +12,6 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-19.1.4.src.tar.xz 141255156 BLAKE2B b99cd8a96e38dbcfb582ee5d2250268df36fb94fa0fd5b3611484094fbd7962051978334d2c623d2ff5a0209dbb2c6c6492be0146507ae982a7d3e9705a689c5 SHA512 a586f8a41dde5e0d9ca6d8c58e9ef2a2e59b70a86d2e2c46106dc31b5c096bb80af0cdbdb486179e9cc676a540099f49a1c2db9e5e84c50362db1f72e9af6906
 DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e29430bc09ef2b81be763aa5c853793631d7b7fdd65eb4dae7a1e3b4daa15d189c24cd1e14f065f79fdbf75429fa34be9b330e SHA512 3fb4a6c7594cb43680860698dac47062dde30de60f515dcecdad63812ea1edfb2cb209d0a7ac2254589c245a95b7c0f571b582e0d4b97a6ae8242563483ea764
-DIST llvm-project-19.1.5.src.tar.xz 141243716 BLAKE2B 228fc66ab688abfc16f31b2cd83163b81ef61604ace21eab69a1776f0dc88cbe8fa831162205849e5be3975a214136399572b4ad1b908986e37b2d38a1a7fa5d SHA512 648854e9c91fdcc5c677ce3800e046f2060b998a45cf9f7eebe02898431b3924f9348b6fc366102cd4fdda72dcb8f32076f98aa69927e0e20b3f1007fba10b22
-DIST llvm-project-19.1.5.src.tar.xz.sig 438 BLAKE2B 1d40a5c5405f99ef86e3360f9ea153afd1ae4001697210fd799a988113e8a3cef39e2c4794edd9332f384d8490f4ce2ab6bee6d98f794f84775807f833b81c0a SHA512 a438c86ce882eb1ac3e50842937068794ed162bb1b7ded68a2fe3ec2ab4f57cc38aee667cfb46afe6da22eef7ed1cb65820a473f63bd5a0dc6aad41df7bfad54
 DIST llvm-project-19.1.6.src.tar.xz 141248428 BLAKE2B b35ab0c754f28c850ac6fd4ee584e963b1d5cf06885c59827ee4ac11f93cde5b8e0268fbed560839137de2c495c9da2b889331cd12a8a02958d8e0cbdbed2607 SHA512 d411a6d913d6a1e1f3c16cfc1ce81c1e6292ea370703f55fb67c7af62f02193d53f5ef7823c8679d6f25cbe47b40236fcaf37044ad7cdfada8166efe7eb106b3
 DIST llvm-project-19.1.6.src.tar.xz.sig 438 BLAKE2B 1791e98252ab78a9a762ef601ff9edee115385181781c8100f14ec80061d7888ee4c4c519297a0e89b9c7ab2203aa9d5bb3084ea1d0f0024c2acf84826fd370b SHA512 8e79a39a4f54da3579794f9b5a009ea8ee56c7bc1805187274794ce56e81aa492ea93f5c7839a59beedcf7d657acded5ecb75d5803658cce1f9e8f753439c6c4
-DIST llvm-project-32f7f0010bca99ee4bd917f57272733fb2bf3bd9.tar.gz 223983502 BLAKE2B fd3e6b0b795abc42568ef98fa774d927029c18838a5d0f34eaa66c37976444a63f2fc5d883f3bf3a98533f51e387936f1c659230f31c757d26153425696a16cd SHA512 65a345ad5b77c627008f759947e5e9f28a62c8992d7146113e0446e5849feaf9088c15c8b22ca0824af5b927d6a417f5326258b489fb8ccea78ec9e0e0fe8fba
-DIST llvm-project-49a5ad8e5714fd404210279303acc97b495d66d0.tar.gz 224456065 BLAKE2B 0077b9d37c479ac6190cc4b897cc35d6f1f3e6a772cd0620bcb1006afc19377e9968e38fb9d9adffe316e85290c9045deecbf9bf62b440c55968634b442edb31 SHA512 45d779eb27c230f656fda47c85127381cab8c8f7f75d77411c6960269f8aad5fa3c99c024a98ab8a349da1c88ad9d892cc82f91a6f344b791b281449031ae49a
-DIST llvm-project-665d79f2e967a5eee6fff93685e45f50cf24cab2.tar.gz 224186302 BLAKE2B 6d4a02b6cfaf53324161c43ed02024f0fea0e7de25a9150cc0168602d7dff3f618026fa8318aa6e03904a9424afa1f12c5eb33bfdfa82e72210f34e5829a7804 SHA512 7482e176b1e2389b0dd0e67271cdb0489e9db0595874408156a034b40d336ecd960c63b89c237ca22eee3650880b0f08a97de14f8a17c918245915d422e568c9
 DIST llvm-project-ccfe0de0e1e37ed369c9bf89dd0188ba0afb2e9a.tar.gz 224396427 BLAKE2B 6e13c65d2ba83fdaf2db20a58b878106568406f07f9c2ceb47e4d2572fb041211384ed67c43801764060101ec4a1b04c18bf4097f37512d2751aa5860c1a8dc3 SHA512 ef4512b735568aaa627a7f4e9bac3fc4722db7a2b8bd1610faaf066856be9474fb297fd75b3c0dcc76f60ab35c3110fd329faad3e8d9b75e93844d56f41c03d1

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.5.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.5.ebuild
deleted file mode 100644
index d859114a0b3d..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.5.ebuild
+++ /dev/null
@@ -1,223 +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 check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
-IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
-# base targets
-IUSE+=" +ctx-profile +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="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20241207.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20241207.ebuild
deleted file mode 100644
index cea1ae243486..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20241207.ebuild
+++ /dev/null
@@ -1,222 +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 check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20241215.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20241215.ebuild
deleted file mode 100644
index cea1ae243486..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20241215.ebuild
+++ /dev/null
@@ -1,222 +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 check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20241221.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20241221.ebuild
deleted file mode 100644
index a62e5e53e0c0..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20241221.ebuild
+++ /dev/null
@@ -1,222 +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 check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan tysan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
-}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-01-04 15:28 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-01-04 15:28 UTC (permalink / raw
  To: gentoo-commits

commit:     506ac6d80fcae01de307f947ca7940bda2c9c550
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jan  4 15:07:50 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jan  4 15:27:55 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=506ac6d8

llvm-runtimes/compiler-rt-sanitizers: Add 20.0.0_pre20250104 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-20.0.0_pre20250104.ebuild | 222 +++++++++++++++++++++
 2 files changed, 223 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 2109bd8d5961..cc73a16067e9 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -14,4 +14,5 @@ DIST llvm-project-19.1.4.src.tar.xz 141255156 BLAKE2B b99cd8a96e38dbcfb582ee5d22
 DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e29430bc09ef2b81be763aa5c853793631d7b7fdd65eb4dae7a1e3b4daa15d189c24cd1e14f065f79fdbf75429fa34be9b330e SHA512 3fb4a6c7594cb43680860698dac47062dde30de60f515dcecdad63812ea1edfb2cb209d0a7ac2254589c245a95b7c0f571b582e0d4b97a6ae8242563483ea764
 DIST llvm-project-19.1.6.src.tar.xz 141248428 BLAKE2B b35ab0c754f28c850ac6fd4ee584e963b1d5cf06885c59827ee4ac11f93cde5b8e0268fbed560839137de2c495c9da2b889331cd12a8a02958d8e0cbdbed2607 SHA512 d411a6d913d6a1e1f3c16cfc1ce81c1e6292ea370703f55fb67c7af62f02193d53f5ef7823c8679d6f25cbe47b40236fcaf37044ad7cdfada8166efe7eb106b3
 DIST llvm-project-19.1.6.src.tar.xz.sig 438 BLAKE2B 1791e98252ab78a9a762ef601ff9edee115385181781c8100f14ec80061d7888ee4c4c519297a0e89b9c7ab2203aa9d5bb3084ea1d0f0024c2acf84826fd370b SHA512 8e79a39a4f54da3579794f9b5a009ea8ee56c7bc1805187274794ce56e81aa492ea93f5c7839a59beedcf7d657acded5ecb75d5803658cce1f9e8f753439c6c4
+DIST llvm-project-2529a8df53af9bc6cecfd6c83404ffa5e89e3370.tar.gz 224493461 BLAKE2B 0d3c757a8f34a9bf6b2ac0ad394cc1f8125cfee534c8bd0c5875eba56fe0171892586ec05b6f1e859e5962f81c76c9a315f60bcda012df73a3bd66709b265038 SHA512 a49fa1da2fd398b279a90292704e30d8ff7163219bfd91c4a80fa5123d957cdef52d2ee41710a8bcbfea3d9a5eec269dfc756584fcc27a495f7f381176de4e69
 DIST llvm-project-ccfe0de0e1e37ed369c9bf89dd0188ba0afb2e9a.tar.gz 224396427 BLAKE2B 6e13c65d2ba83fdaf2db20a58b878106568406f07f9c2ceb47e4d2572fb041211384ed67c43801764060101ec4a1b04c18bf4097f37512d2751aa5860c1a8dc3 SHA512 ef4512b735568aaa627a7f4e9bac3fc4722db7a2b8bd1610faaf066856be9474fb297fd75b3c0dcc76f60ab35c3110fd329faad3e8d9b75e93844d56f41c03d1

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250104.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250104.ebuild
new file mode 100644
index 000000000000..5efa81abbe9b
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250104.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-01-11 18:12 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-01-11 18:12 UTC (permalink / raw
  To: gentoo-commits

commit:     e3b9046916a36aac33da5bad49acf67ac8ba750b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 11 18:01:46 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jan 11 18:12:00 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e3b90469

llvm-runtimes/compiler-rt-sanitizers: Add 20.0.0_pre20250111 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-20.0.0_pre20250111.ebuild | 222 +++++++++++++++++++++
 2 files changed, 223 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index cc73a16067e9..9bba244eb8c2 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -15,4 +15,5 @@ DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e2
 DIST llvm-project-19.1.6.src.tar.xz 141248428 BLAKE2B b35ab0c754f28c850ac6fd4ee584e963b1d5cf06885c59827ee4ac11f93cde5b8e0268fbed560839137de2c495c9da2b889331cd12a8a02958d8e0cbdbed2607 SHA512 d411a6d913d6a1e1f3c16cfc1ce81c1e6292ea370703f55fb67c7af62f02193d53f5ef7823c8679d6f25cbe47b40236fcaf37044ad7cdfada8166efe7eb106b3
 DIST llvm-project-19.1.6.src.tar.xz.sig 438 BLAKE2B 1791e98252ab78a9a762ef601ff9edee115385181781c8100f14ec80061d7888ee4c4c519297a0e89b9c7ab2203aa9d5bb3084ea1d0f0024c2acf84826fd370b SHA512 8e79a39a4f54da3579794f9b5a009ea8ee56c7bc1805187274794ce56e81aa492ea93f5c7839a59beedcf7d657acded5ecb75d5803658cce1f9e8f753439c6c4
 DIST llvm-project-2529a8df53af9bc6cecfd6c83404ffa5e89e3370.tar.gz 224493461 BLAKE2B 0d3c757a8f34a9bf6b2ac0ad394cc1f8125cfee534c8bd0c5875eba56fe0171892586ec05b6f1e859e5962f81c76c9a315f60bcda012df73a3bd66709b265038 SHA512 a49fa1da2fd398b279a90292704e30d8ff7163219bfd91c4a80fa5123d957cdef52d2ee41710a8bcbfea3d9a5eec269dfc756584fcc27a495f7f381176de4e69
+DIST llvm-project-8af4d206e0f979f68925a08f9dffd60a98ce97e2.tar.gz 224825146 BLAKE2B 36e9c8f9615d65fc72beb699c4ce5959676975267a4c4288a01009d26ab84ae411f2855e4e6475957b91ddc21da29251ab22e331395bc9fee0f9bc907a05384a SHA512 ec72cdd7cc6d9bef31ae9295606d18e4935468fe60ab632aced21261d437e76f11d83d0d7199a6028689990260d9155098f7d64e97db0e0af28ea6c75a773bcc
 DIST llvm-project-ccfe0de0e1e37ed369c9bf89dd0188ba0afb2e9a.tar.gz 224396427 BLAKE2B 6e13c65d2ba83fdaf2db20a58b878106568406f07f9c2ceb47e4d2572fb041211384ed67c43801764060101ec4a1b04c18bf4097f37512d2751aa5860c1a8dc3 SHA512 ef4512b735568aaa627a7f4e9bac3fc4722db7a2b8bd1610faaf066856be9474fb297fd75b3c0dcc76f60ab35c3110fd329faad3e8d9b75e93844d56f41c03d1

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250111.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250111.ebuild
new file mode 100644
index 000000000000..5efa81abbe9b
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250111.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-01-15  4:24 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-01-15  4:24 UTC (permalink / raw
  To: gentoo-commits

commit:     e0efa2b31bea43b87ca40aeeffed656d5ff8a6cd
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jan 14 20:01:35 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jan 15 04:23:57 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e0efa2b3

llvm-runtimes/compiler-rt-sanitizers: Add 19.1.7

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   2 +
 .../compiler-rt-sanitizers-19.1.7.ebuild           | 223 +++++++++++++++++++++
 2 files changed, 225 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 9bba244eb8c2..a2e751ac3e17 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -14,6 +14,8 @@ DIST llvm-project-19.1.4.src.tar.xz 141255156 BLAKE2B b99cd8a96e38dbcfb582ee5d22
 DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e29430bc09ef2b81be763aa5c853793631d7b7fdd65eb4dae7a1e3b4daa15d189c24cd1e14f065f79fdbf75429fa34be9b330e SHA512 3fb4a6c7594cb43680860698dac47062dde30de60f515dcecdad63812ea1edfb2cb209d0a7ac2254589c245a95b7c0f571b582e0d4b97a6ae8242563483ea764
 DIST llvm-project-19.1.6.src.tar.xz 141248428 BLAKE2B b35ab0c754f28c850ac6fd4ee584e963b1d5cf06885c59827ee4ac11f93cde5b8e0268fbed560839137de2c495c9da2b889331cd12a8a02958d8e0cbdbed2607 SHA512 d411a6d913d6a1e1f3c16cfc1ce81c1e6292ea370703f55fb67c7af62f02193d53f5ef7823c8679d6f25cbe47b40236fcaf37044ad7cdfada8166efe7eb106b3
 DIST llvm-project-19.1.6.src.tar.xz.sig 438 BLAKE2B 1791e98252ab78a9a762ef601ff9edee115385181781c8100f14ec80061d7888ee4c4c519297a0e89b9c7ab2203aa9d5bb3084ea1d0f0024c2acf84826fd370b SHA512 8e79a39a4f54da3579794f9b5a009ea8ee56c7bc1805187274794ce56e81aa492ea93f5c7839a59beedcf7d657acded5ecb75d5803658cce1f9e8f753439c6c4
+DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8
+DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
 DIST llvm-project-2529a8df53af9bc6cecfd6c83404ffa5e89e3370.tar.gz 224493461 BLAKE2B 0d3c757a8f34a9bf6b2ac0ad394cc1f8125cfee534c8bd0c5875eba56fe0171892586ec05b6f1e859e5962f81c76c9a315f60bcda012df73a3bd66709b265038 SHA512 a49fa1da2fd398b279a90292704e30d8ff7163219bfd91c4a80fa5123d957cdef52d2ee41710a8bcbfea3d9a5eec269dfc756584fcc27a495f7f381176de4e69
 DIST llvm-project-8af4d206e0f979f68925a08f9dffd60a98ce97e2.tar.gz 224825146 BLAKE2B 36e9c8f9615d65fc72beb699c4ce5959676975267a4c4288a01009d26ab84ae411f2855e4e6475957b91ddc21da29251ab22e331395bc9fee0f9bc907a05384a SHA512 ec72cdd7cc6d9bef31ae9295606d18e4935468fe60ab632aced21261d437e76f11d83d0d7199a6028689990260d9155098f7d64e97db0e0af28ea6c75a773bcc
 DIST llvm-project-ccfe0de0e1e37ed369c9bf89dd0188ba0afb2e9a.tar.gz 224396427 BLAKE2B 6e13c65d2ba83fdaf2db20a58b878106568406f07f9c2ceb47e4d2572fb041211384ed67c43801764060101ec4a1b04c18bf4097f37512d2751aa5860c1a8dc3 SHA512 ef4512b735568aaa627a7f4e9bac3fc4722db7a2b8bd1610faaf066856be9474fb297fd75b3c0dcc76f60ab35c3110fd329faad3e8d9b75e93844d56f41c03d1

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
new file mode 100644
index 000000000000..72d94672974d
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
+IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
+# base targets
+IUSE+=" +ctx-profile +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="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-01-18  8:21 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-01-18  8:21 UTC (permalink / raw
  To: gentoo-commits

commit:     3904511c86c7f56174bdf387c81c6786bebbd8f8
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 18 07:21:36 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jan 18 07:21:36 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3904511c

llvm-runtimes/compiler-rt-sanitizers: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   2 -
 ...ompiler-rt-sanitizers-20.0.0_pre20241227.ebuild | 222 ---------------------
 ...ompiler-rt-sanitizers-20.0.0_pre20250104.ebuild | 222 ---------------------
 3 files changed, 446 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index a2e751ac3e17..89f322fead81 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -16,6 +16,4 @@ DIST llvm-project-19.1.6.src.tar.xz 141248428 BLAKE2B b35ab0c754f28c850ac6fd4ee5
 DIST llvm-project-19.1.6.src.tar.xz.sig 438 BLAKE2B 1791e98252ab78a9a762ef601ff9edee115385181781c8100f14ec80061d7888ee4c4c519297a0e89b9c7ab2203aa9d5bb3084ea1d0f0024c2acf84826fd370b SHA512 8e79a39a4f54da3579794f9b5a009ea8ee56c7bc1805187274794ce56e81aa492ea93f5c7839a59beedcf7d657acded5ecb75d5803658cce1f9e8f753439c6c4
 DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8
 DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
-DIST llvm-project-2529a8df53af9bc6cecfd6c83404ffa5e89e3370.tar.gz 224493461 BLAKE2B 0d3c757a8f34a9bf6b2ac0ad394cc1f8125cfee534c8bd0c5875eba56fe0171892586ec05b6f1e859e5962f81c76c9a315f60bcda012df73a3bd66709b265038 SHA512 a49fa1da2fd398b279a90292704e30d8ff7163219bfd91c4a80fa5123d957cdef52d2ee41710a8bcbfea3d9a5eec269dfc756584fcc27a495f7f381176de4e69
 DIST llvm-project-8af4d206e0f979f68925a08f9dffd60a98ce97e2.tar.gz 224825146 BLAKE2B 36e9c8f9615d65fc72beb699c4ce5959676975267a4c4288a01009d26ab84ae411f2855e4e6475957b91ddc21da29251ab22e331395bc9fee0f9bc907a05384a SHA512 ec72cdd7cc6d9bef31ae9295606d18e4935468fe60ab632aced21261d437e76f11d83d0d7199a6028689990260d9155098f7d64e97db0e0af28ea6c75a773bcc
-DIST llvm-project-ccfe0de0e1e37ed369c9bf89dd0188ba0afb2e9a.tar.gz 224396427 BLAKE2B 6e13c65d2ba83fdaf2db20a58b878106568406f07f9c2ceb47e4d2572fb041211384ed67c43801764060101ec4a1b04c18bf4097f37512d2751aa5860c1a8dc3 SHA512 ef4512b735568aaa627a7f4e9bac3fc4722db7a2b8bd1610faaf066856be9474fb297fd75b3c0dcc76f60ab35c3110fd329faad3e8d9b75e93844d56f41c03d1

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20241227.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20241227.ebuild
deleted file mode 100644
index cea1ae243486..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20241227.ebuild
+++ /dev/null
@@ -1,222 +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 check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250104.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250104.ebuild
deleted file mode 100644
index 5efa81abbe9b..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250104.ebuild
+++ /dev/null
@@ -1,222 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
-}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-01-18 15:09 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-01-18 15:09 UTC (permalink / raw
  To: gentoo-commits

commit:     c85397c6bbb1ee744de39edc01fbd20cc881aa08
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 18 15:00:46 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jan 18 15:03:00 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c85397c6

llvm-runtimes/compiler-rt-sanitizers: Add 20.0.0_pre20250118 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-20.0.0_pre20250118.ebuild | 222 +++++++++++++++++++++
 2 files changed, 223 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 89f322fead81..cea7f2698228 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -17,3 +17,4 @@ DIST llvm-project-19.1.6.src.tar.xz.sig 438 BLAKE2B 1791e98252ab78a9a762ef601ff9
 DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8
 DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
 DIST llvm-project-8af4d206e0f979f68925a08f9dffd60a98ce97e2.tar.gz 224825146 BLAKE2B 36e9c8f9615d65fc72beb699c4ce5959676975267a4c4288a01009d26ab84ae411f2855e4e6475957b91ddc21da29251ab22e331395bc9fee0f9bc907a05384a SHA512 ec72cdd7cc6d9bef31ae9295606d18e4935468fe60ab632aced21261d437e76f11d83d0d7199a6028689990260d9155098f7d64e97db0e0af28ea6c75a773bcc
+DIST llvm-project-c3a935e3f967f8f22f5db240d145459ee621c1e0.tar.gz 225133913 BLAKE2B ced922010bad14df6bce0dbbb9323ee3cc9d7bf2f764f8c982d134d7a97e38d84b0b81635bbb16031aa1899c744e7c036cec5d1957733bbed7a2f18f89db0b6f SHA512 0ea083defb3c0ecaa5d8d28682f140c68ec6b3ab6cbfc60fc38a9265a8eb88b618c075d6ae03170ed54c5e7dcb3b7003eaacea2fcb115e9864b64a17cea0013d

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250118.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250118.ebuild
new file mode 100644
index 000000000000..5efa81abbe9b
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250118.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-01-22 19:15 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-01-22 19:15 UTC (permalink / raw
  To: gentoo-commits

commit:     b54236be0e3ff584eaf2a668ba3841ff654516f6
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 22 16:33:37 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jan 22 19:15:28 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b54236be

llvm-runtimes/compiler-rt-sanitizers: Add 20.0.0_pre20250122 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-20.0.0_pre20250122.ebuild | 222 +++++++++++++++++++++
 2 files changed, 223 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index cea7f2698228..c2252964ea90 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -17,4 +17,5 @@ DIST llvm-project-19.1.6.src.tar.xz.sig 438 BLAKE2B 1791e98252ab78a9a762ef601ff9
 DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8
 DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
 DIST llvm-project-8af4d206e0f979f68925a08f9dffd60a98ce97e2.tar.gz 224825146 BLAKE2B 36e9c8f9615d65fc72beb699c4ce5959676975267a4c4288a01009d26ab84ae411f2855e4e6475957b91ddc21da29251ab22e331395bc9fee0f9bc907a05384a SHA512 ec72cdd7cc6d9bef31ae9295606d18e4935468fe60ab632aced21261d437e76f11d83d0d7199a6028689990260d9155098f7d64e97db0e0af28ea6c75a773bcc
+DIST llvm-project-97c3a990f05606cb807faf53bc41302fb62c7980.tar.gz 226261635 BLAKE2B 9dd0bdfaa6ee984747f2d9d8b9606cd8d2e75fa64d45fd7c87227ddca7cffe888a1d932d73c123b25360690fd687554cc333fb3d871ab0e72ddd2b1158bae2e0 SHA512 466ae8aea014fd396f3fd6b77055238a672f012b79f25ed0b215e01f968a56dd4eeaf148d03246701b1ac4cbb8f02a4325142d6e5503fb6231e330c2e49e28e7
 DIST llvm-project-c3a935e3f967f8f22f5db240d145459ee621c1e0.tar.gz 225133913 BLAKE2B ced922010bad14df6bce0dbbb9323ee3cc9d7bf2f764f8c982d134d7a97e38d84b0b81635bbb16031aa1899c744e7c036cec5d1957733bbed7a2f18f89db0b6f SHA512 0ea083defb3c0ecaa5d8d28682f140c68ec6b3ab6cbfc60fc38a9265a8eb88b618c075d6ae03170ed54c5e7dcb3b7003eaacea2fcb115e9864b64a17cea0013d

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250122.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250122.ebuild
new file mode 100644
index 000000000000..5efa81abbe9b
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250122.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-01-25 13:33 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-01-25 13:33 UTC (permalink / raw
  To: gentoo-commits

commit:     52ba289753deca70ec2f0d093fd7db44805974d0
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 25 13:08:04 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jan 25 13:33:04 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=52ba2897

llvm-runtimes/compiler-rt-sanitizers: Add 20.0.0_pre20250125 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-20.0.0_pre20250125.ebuild | 222 +++++++++++++++++++++
 2 files changed, 223 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index c2252964ea90..6406e0878775 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -16,6 +16,7 @@ DIST llvm-project-19.1.6.src.tar.xz 141248428 BLAKE2B b35ab0c754f28c850ac6fd4ee5
 DIST llvm-project-19.1.6.src.tar.xz.sig 438 BLAKE2B 1791e98252ab78a9a762ef601ff9edee115385181781c8100f14ec80061d7888ee4c4c519297a0e89b9c7ab2203aa9d5bb3084ea1d0f0024c2acf84826fd370b SHA512 8e79a39a4f54da3579794f9b5a009ea8ee56c7bc1805187274794ce56e81aa492ea93f5c7839a59beedcf7d657acded5ecb75d5803658cce1f9e8f753439c6c4
 DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8
 DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
+DIST llvm-project-1f26ac10ca1bef40a80be8f81a6f109713bc586f.tar.gz 226424755 BLAKE2B 642befb8d6923f335d1d68129ebb7357f8ba22e110df494dd956c8097e4e5db4b2a88fcc069ab67184b03558f072c68e002bdaf90eba865e38b1473a0ef29eed SHA512 e9bb4fd31bbad5ec864c662515b5ec2e5511cce975040f9f3cd8f009c92f76077928feae0467fd9519a001a379c857f7539c506953d8d5a9209a9f358f414aac
 DIST llvm-project-8af4d206e0f979f68925a08f9dffd60a98ce97e2.tar.gz 224825146 BLAKE2B 36e9c8f9615d65fc72beb699c4ce5959676975267a4c4288a01009d26ab84ae411f2855e4e6475957b91ddc21da29251ab22e331395bc9fee0f9bc907a05384a SHA512 ec72cdd7cc6d9bef31ae9295606d18e4935468fe60ab632aced21261d437e76f11d83d0d7199a6028689990260d9155098f7d64e97db0e0af28ea6c75a773bcc
 DIST llvm-project-97c3a990f05606cb807faf53bc41302fb62c7980.tar.gz 226261635 BLAKE2B 9dd0bdfaa6ee984747f2d9d8b9606cd8d2e75fa64d45fd7c87227ddca7cffe888a1d932d73c123b25360690fd687554cc333fb3d871ab0e72ddd2b1158bae2e0 SHA512 466ae8aea014fd396f3fd6b77055238a672f012b79f25ed0b215e01f968a56dd4eeaf148d03246701b1ac4cbb8f02a4325142d6e5503fb6231e330c2e49e28e7
 DIST llvm-project-c3a935e3f967f8f22f5db240d145459ee621c1e0.tar.gz 225133913 BLAKE2B ced922010bad14df6bce0dbbb9323ee3cc9d7bf2f764f8c982d134d7a97e38d84b0b81635bbb16031aa1899c744e7c036cec5d1957733bbed7a2f18f89db0b6f SHA512 0ea083defb3c0ecaa5d8d28682f140c68ec6b3ab6cbfc60fc38a9265a8eb88b618c075d6ae03170ed54c5e7dcb3b7003eaacea2fcb115e9864b64a17cea0013d

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250125.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250125.ebuild
new file mode 100644
index 000000000000..5efa81abbe9b
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250125.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-01-31 21:51 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-01-31 21:51 UTC (permalink / raw
  To: gentoo-commits

commit:     836020a4fccf9bfbc0bf9a25d9d01507f50b9b92
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 31 19:51:31 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jan 31 21:50:46 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=836020a4

llvm-runtimes/compiler-rt-sanitizers: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   5 -
 .../compiler-rt-sanitizers-19.1.6.ebuild           | 223 ---------------------
 ...ompiler-rt-sanitizers-20.0.0_pre20250111.ebuild | 222 --------------------
 ...ompiler-rt-sanitizers-20.0.0_pre20250118.ebuild | 222 --------------------
 ...ompiler-rt-sanitizers-20.0.0_pre20250122.ebuild | 222 --------------------
 5 files changed, 894 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 6406e0878775..6fc4f342b1f3 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -12,11 +12,6 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-19.1.4.src.tar.xz 141255156 BLAKE2B b99cd8a96e38dbcfb582ee5d2250268df36fb94fa0fd5b3611484094fbd7962051978334d2c623d2ff5a0209dbb2c6c6492be0146507ae982a7d3e9705a689c5 SHA512 a586f8a41dde5e0d9ca6d8c58e9ef2a2e59b70a86d2e2c46106dc31b5c096bb80af0cdbdb486179e9cc676a540099f49a1c2db9e5e84c50362db1f72e9af6906
 DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e29430bc09ef2b81be763aa5c853793631d7b7fdd65eb4dae7a1e3b4daa15d189c24cd1e14f065f79fdbf75429fa34be9b330e SHA512 3fb4a6c7594cb43680860698dac47062dde30de60f515dcecdad63812ea1edfb2cb209d0a7ac2254589c245a95b7c0f571b582e0d4b97a6ae8242563483ea764
-DIST llvm-project-19.1.6.src.tar.xz 141248428 BLAKE2B b35ab0c754f28c850ac6fd4ee584e963b1d5cf06885c59827ee4ac11f93cde5b8e0268fbed560839137de2c495c9da2b889331cd12a8a02958d8e0cbdbed2607 SHA512 d411a6d913d6a1e1f3c16cfc1ce81c1e6292ea370703f55fb67c7af62f02193d53f5ef7823c8679d6f25cbe47b40236fcaf37044ad7cdfada8166efe7eb106b3
-DIST llvm-project-19.1.6.src.tar.xz.sig 438 BLAKE2B 1791e98252ab78a9a762ef601ff9edee115385181781c8100f14ec80061d7888ee4c4c519297a0e89b9c7ab2203aa9d5bb3084ea1d0f0024c2acf84826fd370b SHA512 8e79a39a4f54da3579794f9b5a009ea8ee56c7bc1805187274794ce56e81aa492ea93f5c7839a59beedcf7d657acded5ecb75d5803658cce1f9e8f753439c6c4
 DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8
 DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
 DIST llvm-project-1f26ac10ca1bef40a80be8f81a6f109713bc586f.tar.gz 226424755 BLAKE2B 642befb8d6923f335d1d68129ebb7357f8ba22e110df494dd956c8097e4e5db4b2a88fcc069ab67184b03558f072c68e002bdaf90eba865e38b1473a0ef29eed SHA512 e9bb4fd31bbad5ec864c662515b5ec2e5511cce975040f9f3cd8f009c92f76077928feae0467fd9519a001a379c857f7539c506953d8d5a9209a9f358f414aac
-DIST llvm-project-8af4d206e0f979f68925a08f9dffd60a98ce97e2.tar.gz 224825146 BLAKE2B 36e9c8f9615d65fc72beb699c4ce5959676975267a4c4288a01009d26ab84ae411f2855e4e6475957b91ddc21da29251ab22e331395bc9fee0f9bc907a05384a SHA512 ec72cdd7cc6d9bef31ae9295606d18e4935468fe60ab632aced21261d437e76f11d83d0d7199a6028689990260d9155098f7d64e97db0e0af28ea6c75a773bcc
-DIST llvm-project-97c3a990f05606cb807faf53bc41302fb62c7980.tar.gz 226261635 BLAKE2B 9dd0bdfaa6ee984747f2d9d8b9606cd8d2e75fa64d45fd7c87227ddca7cffe888a1d932d73c123b25360690fd687554cc333fb3d871ab0e72ddd2b1158bae2e0 SHA512 466ae8aea014fd396f3fd6b77055238a672f012b79f25ed0b215e01f968a56dd4eeaf148d03246701b1ac4cbb8f02a4325142d6e5503fb6231e330c2e49e28e7
-DIST llvm-project-c3a935e3f967f8f22f5db240d145459ee621c1e0.tar.gz 225133913 BLAKE2B ced922010bad14df6bce0dbbb9323ee3cc9d7bf2f764f8c982d134d7a97e38d84b0b81635bbb16031aa1899c744e7c036cec5d1957733bbed7a2f18f89db0b6f SHA512 0ea083defb3c0ecaa5d8d28682f140c68ec6b3ab6cbfc60fc38a9265a8eb88b618c075d6ae03170ed54c5e7dcb3b7003eaacea2fcb115e9864b64a17cea0013d

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.6.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.6.ebuild
deleted file mode 100644
index d859114a0b3d..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.6.ebuild
+++ /dev/null
@@ -1,223 +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 check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
-IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
-# base targets
-IUSE+=" +ctx-profile +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="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250111.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250111.ebuild
deleted file mode 100644
index 5efa81abbe9b..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250111.ebuild
+++ /dev/null
@@ -1,222 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250118.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250118.ebuild
deleted file mode 100644
index 5efa81abbe9b..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250118.ebuild
+++ /dev/null
@@ -1,222 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250122.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250122.ebuild
deleted file mode 100644
index 5efa81abbe9b..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250122.ebuild
+++ /dev/null
@@ -1,222 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
-}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-02-01  8:05 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-02-01  8:05 UTC (permalink / raw
  To: gentoo-commits

commit:     bf8f1631a01334d7460d183150d889b77fc607ab
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Feb  1 07:59:19 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Feb  1 08:05:48 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bf8f1631

llvm-runtimes/compiler-rt-sanitizers: main is now 21*

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 ...ers-20.0.0.9999.ebuild => compiler-rt-sanitizers-21.0.0.9999.ebuild} | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0.9999.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0.9999.ebuild
similarity index 99%
rename from llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0.9999.ebuild
rename to llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0.9999.ebuild
index cea1ae243486..5efa81abbe9b 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0.9999.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0.9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-02-01 13:15 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-02-01 13:15 UTC (permalink / raw
  To: gentoo-commits

commit:     68585615e254734d3202c65fdd0230530b0d3b0a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Feb  1 13:12:51 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Feb  1 13:14:49 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=68585615

llvm-runtimes/compiler-rt-sanitizers: Add 21.0.0_pre20250201 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-21.0.0_pre20250201.ebuild | 222 +++++++++++++++++++++
 2 files changed, 223 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 6fc4f342b1f3..aef825bc8b03 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -15,3 +15,4 @@ DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e2
 DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8
 DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
 DIST llvm-project-1f26ac10ca1bef40a80be8f81a6f109713bc586f.tar.gz 226424755 BLAKE2B 642befb8d6923f335d1d68129ebb7357f8ba22e110df494dd956c8097e4e5db4b2a88fcc069ab67184b03558f072c68e002bdaf90eba865e38b1473a0ef29eed SHA512 e9bb4fd31bbad5ec864c662515b5ec2e5511cce975040f9f3cd8f009c92f76077928feae0467fd9519a001a379c857f7539c506953d8d5a9209a9f358f414aac
+DIST llvm-project-bfa7edcc6652bdb37d53e0cec64926aab3f280eb.tar.gz 226735989 BLAKE2B 165837dc526e618b44c49d5fa3dceda373452e010a09746bff248903fe77874637d05ab9f5d2f63de7ebce5c14e3b19a131313a4a557adfd20fe9cb93ab60476 SHA512 e9e19176fcf1302727ee34d69eaa820b94959d64ceaf754d8a93ebd5e262cec7fe35e87b08f705b09e42c3ea26b671318eecf10e9137c635b12f481f80fbac23

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250201.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250201.ebuild
new file mode 100644
index 000000000000..5efa81abbe9b
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250201.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-02-02 18:25 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-02-02 18:25 UTC (permalink / raw
  To: gentoo-commits

commit:     f23a80faf8fe6cfb90ffc1ee7681e49fb01719f8
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Feb  2 15:58:53 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Feb  2 18:25:09 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f23a80fa

llvm-runtimes/compiler-rt-sanitizers: Add 20.1.0_rc1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   2 +
 .../compiler-rt-sanitizers-20.1.0_rc1.ebuild       | 222 +++++++++++++++++++++
 2 files changed, 224 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index aef825bc8b03..88d22e19c009 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -15,4 +15,6 @@ DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e2
 DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8
 DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
 DIST llvm-project-1f26ac10ca1bef40a80be8f81a6f109713bc586f.tar.gz 226424755 BLAKE2B 642befb8d6923f335d1d68129ebb7357f8ba22e110df494dd956c8097e4e5db4b2a88fcc069ab67184b03558f072c68e002bdaf90eba865e38b1473a0ef29eed SHA512 e9bb4fd31bbad5ec864c662515b5ec2e5511cce975040f9f3cd8f009c92f76077928feae0467fd9519a001a379c857f7539c506953d8d5a9209a9f358f414aac
+DIST llvm-project-20.1.0-rc1.src.tar.xz 147144668 BLAKE2B ea4733962f38ea5897c73e91840818921739909c3671749bc8a0b1d2798e5a0815bbe750ade3a2a7414836ab7158754818b2f9370a4ee1bbbd52c96b1e95ef9b SHA512 c23c4b1227b6b0b7c3059358e64a00ee98893236bb1a0a41d7e821bdf2aa8353aea8f9f7b9498899c6807b9b8e2ceb06c3cd62e32fd07a786a319135055541b4
+DIST llvm-project-20.1.0-rc1.src.tar.xz.sig 566 BLAKE2B 32eb278ec4ff1bb9d258b584922b0d227f4126a957ba75af44dcaa63b6a12ef73db56d6a86f24244af47803ddf6a243149d784f08137cbea60b49700be537705 SHA512 d7a334326201f8ca78284b33c325f180538667a0401bc30931e790aacc96dd78f6559c45929b6c335d40ef1dbe772738c0ce55d881ae3d7401733778b485408c
 DIST llvm-project-bfa7edcc6652bdb37d53e0cec64926aab3f280eb.tar.gz 226735989 BLAKE2B 165837dc526e618b44c49d5fa3dceda373452e010a09746bff248903fe77874637d05ab9f5d2f63de7ebce5c14e3b19a131313a4a557adfd20fe9cb93ab60476 SHA512 e9e19176fcf1302727ee34d69eaa820b94959d64ceaf754d8a93ebd5e262cec7fe35e87b08f705b09e42c3ea26b671318eecf10e9137c635b12f481f80fbac23

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0_rc1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0_rc1.ebuild
new file mode 100644
index 000000000000..5efa81abbe9b
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0_rc1.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-02-07 20:08 Arthur Zamarin
  0 siblings, 0 replies; 106+ messages in thread
From: Arthur Zamarin @ 2025-02-07 20:08 UTC (permalink / raw
  To: gentoo-commits

commit:     49232c2c790c1913abdd927481479734380ddd33
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Fri Feb  7 20:07:47 2025 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Fri Feb  7 20:07:47 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=49232c2c

llvm-runtimes/compiler-rt-sanitizers: Stabilize 19.1.7 arm64, #946879

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 .../compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild         | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
index f530ced0a62c..ff8c736f7dff 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
@@ -11,7 +11,7 @@ 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 ~ppc-macos ~x64-macos"
+KEYWORDS="amd64 ~arm arm64 ~loong ~mips ~ppc64 ~riscv x86 ~amd64-linux ~ppc-macos ~x64-macos"
 IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
 # base targets
 IUSE+=" +ctx-profile +libfuzzer +memprof +orc +profile +xray"


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-02-08 11:51 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-02-08 11:51 UTC (permalink / raw
  To: gentoo-commits

commit:     49affda7a7c1ea9de10da5748137d0edcb60b623
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Feb  8 11:48:57 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Feb  8 11:48:57 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=49affda7

llvm-runtimes/compiler-rt-sanitizers: Add 21.0.0_pre20250208 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-21.0.0_pre20250208.ebuild | 222 +++++++++++++++++++++
 2 files changed, 223 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 88d22e19c009..9767c1faca49 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -17,4 +17,5 @@ DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf
 DIST llvm-project-1f26ac10ca1bef40a80be8f81a6f109713bc586f.tar.gz 226424755 BLAKE2B 642befb8d6923f335d1d68129ebb7357f8ba22e110df494dd956c8097e4e5db4b2a88fcc069ab67184b03558f072c68e002bdaf90eba865e38b1473a0ef29eed SHA512 e9bb4fd31bbad5ec864c662515b5ec2e5511cce975040f9f3cd8f009c92f76077928feae0467fd9519a001a379c857f7539c506953d8d5a9209a9f358f414aac
 DIST llvm-project-20.1.0-rc1.src.tar.xz 147144668 BLAKE2B ea4733962f38ea5897c73e91840818921739909c3671749bc8a0b1d2798e5a0815bbe750ade3a2a7414836ab7158754818b2f9370a4ee1bbbd52c96b1e95ef9b SHA512 c23c4b1227b6b0b7c3059358e64a00ee98893236bb1a0a41d7e821bdf2aa8353aea8f9f7b9498899c6807b9b8e2ceb06c3cd62e32fd07a786a319135055541b4
 DIST llvm-project-20.1.0-rc1.src.tar.xz.sig 566 BLAKE2B 32eb278ec4ff1bb9d258b584922b0d227f4126a957ba75af44dcaa63b6a12ef73db56d6a86f24244af47803ddf6a243149d784f08137cbea60b49700be537705 SHA512 d7a334326201f8ca78284b33c325f180538667a0401bc30931e790aacc96dd78f6559c45929b6c335d40ef1dbe772738c0ce55d881ae3d7401733778b485408c
+DIST llvm-project-6f241e36831927e3aea113cfc017c34fdeda340a.tar.gz 227203285 BLAKE2B 8d5e424c1836acc82ea766cd2cef104593c44d197ebeb64f18dbe74b1b5baeb4bc84084f5b68bd87ac36f7df25689dd2522cb6674a97da4f96f4f10f7bae5b06 SHA512 2b6e4bd6445eabfa3ace9b45d20797c7afc23f4553a8938399aeba227e3b8ca6a53a7d7762925a845bfed031c37af692b9c08180fbab80db2f3166940e560077
 DIST llvm-project-bfa7edcc6652bdb37d53e0cec64926aab3f280eb.tar.gz 226735989 BLAKE2B 165837dc526e618b44c49d5fa3dceda373452e010a09746bff248903fe77874637d05ab9f5d2f63de7ebce5c14e3b19a131313a4a557adfd20fe9cb93ab60476 SHA512 e9e19176fcf1302727ee34d69eaa820b94959d64ceaf754d8a93ebd5e262cec7fe35e87b08f705b09e42c3ea26b671318eecf10e9137c635b12f481f80fbac23

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250208.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250208.ebuild
new file mode 100644
index 000000000000..5efa81abbe9b
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250208.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-02-11 11:29 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-02-11 11:29 UTC (permalink / raw
  To: gentoo-commits

commit:     134a4a2d0739b360f4fbf0a4367b332db5c3d07b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 11 10:56:53 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Feb 11 11:29:41 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=134a4a2d

llvm-runtimes/compiler-rt-sanitizers: Add 21.0.0_pre20250211 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-21.0.0_pre20250211.ebuild | 222 +++++++++++++++++++++
 2 files changed, 223 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 9767c1faca49..a0d4fd2db870 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -17,5 +17,6 @@ DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf
 DIST llvm-project-1f26ac10ca1bef40a80be8f81a6f109713bc586f.tar.gz 226424755 BLAKE2B 642befb8d6923f335d1d68129ebb7357f8ba22e110df494dd956c8097e4e5db4b2a88fcc069ab67184b03558f072c68e002bdaf90eba865e38b1473a0ef29eed SHA512 e9bb4fd31bbad5ec864c662515b5ec2e5511cce975040f9f3cd8f009c92f76077928feae0467fd9519a001a379c857f7539c506953d8d5a9209a9f358f414aac
 DIST llvm-project-20.1.0-rc1.src.tar.xz 147144668 BLAKE2B ea4733962f38ea5897c73e91840818921739909c3671749bc8a0b1d2798e5a0815bbe750ade3a2a7414836ab7158754818b2f9370a4ee1bbbd52c96b1e95ef9b SHA512 c23c4b1227b6b0b7c3059358e64a00ee98893236bb1a0a41d7e821bdf2aa8353aea8f9f7b9498899c6807b9b8e2ceb06c3cd62e32fd07a786a319135055541b4
 DIST llvm-project-20.1.0-rc1.src.tar.xz.sig 566 BLAKE2B 32eb278ec4ff1bb9d258b584922b0d227f4126a957ba75af44dcaa63b6a12ef73db56d6a86f24244af47803ddf6a243149d784f08137cbea60b49700be537705 SHA512 d7a334326201f8ca78284b33c325f180538667a0401bc30931e790aacc96dd78f6559c45929b6c335d40ef1dbe772738c0ce55d881ae3d7401733778b485408c
+DIST llvm-project-2cd8207b26ea4269630feba661f68554d7ae3c15.tar.gz 227261597 BLAKE2B 51ce992b651fcf08b7fd520420040803b59f1260947953325400c50bec576c418b162d8ae2d2307e70b885b1185c302a97409bcfe48cdb14b8e1384f4e2dfa9e SHA512 a41749943508ea4a18b47c4e947917b5268544e64372c0c3347f9ab8172a2c229d8b1d813d1e842be1b98aedd624524857ed3bb23fe98ad5f36e7a71581abb4b
 DIST llvm-project-6f241e36831927e3aea113cfc017c34fdeda340a.tar.gz 227203285 BLAKE2B 8d5e424c1836acc82ea766cd2cef104593c44d197ebeb64f18dbe74b1b5baeb4bc84084f5b68bd87ac36f7df25689dd2522cb6674a97da4f96f4f10f7bae5b06 SHA512 2b6e4bd6445eabfa3ace9b45d20797c7afc23f4553a8938399aeba227e3b8ca6a53a7d7762925a845bfed031c37af692b9c08180fbab80db2f3166940e560077
 DIST llvm-project-bfa7edcc6652bdb37d53e0cec64926aab3f280eb.tar.gz 226735989 BLAKE2B 165837dc526e618b44c49d5fa3dceda373452e010a09746bff248903fe77874637d05ab9f5d2f63de7ebce5c14e3b19a131313a4a557adfd20fe9cb93ab60476 SHA512 e9e19176fcf1302727ee34d69eaa820b94959d64ceaf754d8a93ebd5e262cec7fe35e87b08f705b09e42c3ea26b671318eecf10e9137c635b12f481f80fbac23

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250211.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250211.ebuild
new file mode 100644
index 000000000000..5efa81abbe9b
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250211.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-02-13  7:53 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-02-13  7:53 UTC (permalink / raw
  To: gentoo-commits

commit:     88bdab3544d15143032b7c5bb85d1a588656f41d
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Feb 13 07:48:05 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Feb 13 07:53:00 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=88bdab35

llvm-runtimes/compiler-rt-sanitizers: Add 20.1.0_rc2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   2 +
 .../compiler-rt-sanitizers-20.1.0_rc2.ebuild       | 222 +++++++++++++++++++++
 2 files changed, 224 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index a0d4fd2db870..98bd1e21ba7c 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -17,6 +17,8 @@ DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf
 DIST llvm-project-1f26ac10ca1bef40a80be8f81a6f109713bc586f.tar.gz 226424755 BLAKE2B 642befb8d6923f335d1d68129ebb7357f8ba22e110df494dd956c8097e4e5db4b2a88fcc069ab67184b03558f072c68e002bdaf90eba865e38b1473a0ef29eed SHA512 e9bb4fd31bbad5ec864c662515b5ec2e5511cce975040f9f3cd8f009c92f76077928feae0467fd9519a001a379c857f7539c506953d8d5a9209a9f358f414aac
 DIST llvm-project-20.1.0-rc1.src.tar.xz 147144668 BLAKE2B ea4733962f38ea5897c73e91840818921739909c3671749bc8a0b1d2798e5a0815bbe750ade3a2a7414836ab7158754818b2f9370a4ee1bbbd52c96b1e95ef9b SHA512 c23c4b1227b6b0b7c3059358e64a00ee98893236bb1a0a41d7e821bdf2aa8353aea8f9f7b9498899c6807b9b8e2ceb06c3cd62e32fd07a786a319135055541b4
 DIST llvm-project-20.1.0-rc1.src.tar.xz.sig 566 BLAKE2B 32eb278ec4ff1bb9d258b584922b0d227f4126a957ba75af44dcaa63b6a12ef73db56d6a86f24244af47803ddf6a243149d784f08137cbea60b49700be537705 SHA512 d7a334326201f8ca78284b33c325f180538667a0401bc30931e790aacc96dd78f6559c45929b6c335d40ef1dbe772738c0ce55d881ae3d7401733778b485408c
+DIST llvm-project-20.1.0-rc2.src.tar.xz 147160684 BLAKE2B 6adc1226f022272d78fb0ed361c190d369a2afc53bf868409fe8f4e092d5ffb9894c71870f072bb68162610782f48088468b4a49cdb1bc731d6689c791a5b5e3 SHA512 f303deaec8f25e1b122a7e85df192b6ea10c51472b78a3d14ad9d0b976a533cfbb9164aff0bc99e447e30938cf43363552c5493b4693e1f23291ea7a9b824bbb
+DIST llvm-project-20.1.0-rc2.src.tar.xz.sig 566 BLAKE2B aa91f7be228e51b0f2234bb5e0df173e3ddc90b6db4350a9008c2f8ba53220da6eef0c69778aecac3caecf918a0c54a0d910177ffe7643ad7fc5624a97262b7f SHA512 e5563a8a79b5e9ef26d62dc6d4385c1c86d12a652b4b1e7fc9ce45a2ea66e5118112746a61b439823bf99d65aea82285eabf5e07714eec77e6e5cd02feab82ce
 DIST llvm-project-2cd8207b26ea4269630feba661f68554d7ae3c15.tar.gz 227261597 BLAKE2B 51ce992b651fcf08b7fd520420040803b59f1260947953325400c50bec576c418b162d8ae2d2307e70b885b1185c302a97409bcfe48cdb14b8e1384f4e2dfa9e SHA512 a41749943508ea4a18b47c4e947917b5268544e64372c0c3347f9ab8172a2c229d8b1d813d1e842be1b98aedd624524857ed3bb23fe98ad5f36e7a71581abb4b
 DIST llvm-project-6f241e36831927e3aea113cfc017c34fdeda340a.tar.gz 227203285 BLAKE2B 8d5e424c1836acc82ea766cd2cef104593c44d197ebeb64f18dbe74b1b5baeb4bc84084f5b68bd87ac36f7df25689dd2522cb6674a97da4f96f4f10f7bae5b06 SHA512 2b6e4bd6445eabfa3ace9b45d20797c7afc23f4553a8938399aeba227e3b8ca6a53a7d7762925a845bfed031c37af692b9c08180fbab80db2f3166940e560077
 DIST llvm-project-bfa7edcc6652bdb37d53e0cec64926aab3f280eb.tar.gz 226735989 BLAKE2B 165837dc526e618b44c49d5fa3dceda373452e010a09746bff248903fe77874637d05ab9f5d2f63de7ebce5c14e3b19a131313a4a557adfd20fe9cb93ab60476 SHA512 e9e19176fcf1302727ee34d69eaa820b94959d64ceaf754d8a93ebd5e262cec7fe35e87b08f705b09e42c3ea26b671318eecf10e9137c635b12f481f80fbac23

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0_rc2.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0_rc2.ebuild
new file mode 100644
index 000000000000..5efa81abbe9b
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0_rc2.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-02-15  7:19 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-02-15  7:19 UTC (permalink / raw
  To: gentoo-commits

commit:     e0b8c2007bbb4b03b5c46e066b916cc21dfd9b05
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 15 07:17:55 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Feb 15 07:17:55 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e0b8c200

llvm-runtimes/compiler-rt-sanitizers: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   5 -
 ...ompiler-rt-sanitizers-20.0.0_pre20250125.ebuild | 222 ---------------------
 .../compiler-rt-sanitizers-20.1.0_rc1.ebuild       | 222 ---------------------
 ...ompiler-rt-sanitizers-21.0.0_pre20250201.ebuild | 222 ---------------------
 ...ompiler-rt-sanitizers-21.0.0_pre20250208.ebuild | 222 ---------------------
 5 files changed, 893 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 98bd1e21ba7c..fbc9e111ec89 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -14,11 +14,6 @@ DIST llvm-project-19.1.4.src.tar.xz 141255156 BLAKE2B b99cd8a96e38dbcfb582ee5d22
 DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e29430bc09ef2b81be763aa5c853793631d7b7fdd65eb4dae7a1e3b4daa15d189c24cd1e14f065f79fdbf75429fa34be9b330e SHA512 3fb4a6c7594cb43680860698dac47062dde30de60f515dcecdad63812ea1edfb2cb209d0a7ac2254589c245a95b7c0f571b582e0d4b97a6ae8242563483ea764
 DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8
 DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
-DIST llvm-project-1f26ac10ca1bef40a80be8f81a6f109713bc586f.tar.gz 226424755 BLAKE2B 642befb8d6923f335d1d68129ebb7357f8ba22e110df494dd956c8097e4e5db4b2a88fcc069ab67184b03558f072c68e002bdaf90eba865e38b1473a0ef29eed SHA512 e9bb4fd31bbad5ec864c662515b5ec2e5511cce975040f9f3cd8f009c92f76077928feae0467fd9519a001a379c857f7539c506953d8d5a9209a9f358f414aac
-DIST llvm-project-20.1.0-rc1.src.tar.xz 147144668 BLAKE2B ea4733962f38ea5897c73e91840818921739909c3671749bc8a0b1d2798e5a0815bbe750ade3a2a7414836ab7158754818b2f9370a4ee1bbbd52c96b1e95ef9b SHA512 c23c4b1227b6b0b7c3059358e64a00ee98893236bb1a0a41d7e821bdf2aa8353aea8f9f7b9498899c6807b9b8e2ceb06c3cd62e32fd07a786a319135055541b4
-DIST llvm-project-20.1.0-rc1.src.tar.xz.sig 566 BLAKE2B 32eb278ec4ff1bb9d258b584922b0d227f4126a957ba75af44dcaa63b6a12ef73db56d6a86f24244af47803ddf6a243149d784f08137cbea60b49700be537705 SHA512 d7a334326201f8ca78284b33c325f180538667a0401bc30931e790aacc96dd78f6559c45929b6c335d40ef1dbe772738c0ce55d881ae3d7401733778b485408c
 DIST llvm-project-20.1.0-rc2.src.tar.xz 147160684 BLAKE2B 6adc1226f022272d78fb0ed361c190d369a2afc53bf868409fe8f4e092d5ffb9894c71870f072bb68162610782f48088468b4a49cdb1bc731d6689c791a5b5e3 SHA512 f303deaec8f25e1b122a7e85df192b6ea10c51472b78a3d14ad9d0b976a533cfbb9164aff0bc99e447e30938cf43363552c5493b4693e1f23291ea7a9b824bbb
 DIST llvm-project-20.1.0-rc2.src.tar.xz.sig 566 BLAKE2B aa91f7be228e51b0f2234bb5e0df173e3ddc90b6db4350a9008c2f8ba53220da6eef0c69778aecac3caecf918a0c54a0d910177ffe7643ad7fc5624a97262b7f SHA512 e5563a8a79b5e9ef26d62dc6d4385c1c86d12a652b4b1e7fc9ce45a2ea66e5118112746a61b439823bf99d65aea82285eabf5e07714eec77e6e5cd02feab82ce
 DIST llvm-project-2cd8207b26ea4269630feba661f68554d7ae3c15.tar.gz 227261597 BLAKE2B 51ce992b651fcf08b7fd520420040803b59f1260947953325400c50bec576c418b162d8ae2d2307e70b885b1185c302a97409bcfe48cdb14b8e1384f4e2dfa9e SHA512 a41749943508ea4a18b47c4e947917b5268544e64372c0c3347f9ab8172a2c229d8b1d813d1e842be1b98aedd624524857ed3bb23fe98ad5f36e7a71581abb4b
-DIST llvm-project-6f241e36831927e3aea113cfc017c34fdeda340a.tar.gz 227203285 BLAKE2B 8d5e424c1836acc82ea766cd2cef104593c44d197ebeb64f18dbe74b1b5baeb4bc84084f5b68bd87ac36f7df25689dd2522cb6674a97da4f96f4f10f7bae5b06 SHA512 2b6e4bd6445eabfa3ace9b45d20797c7afc23f4553a8938399aeba227e3b8ca6a53a7d7762925a845bfed031c37af692b9c08180fbab80db2f3166940e560077
-DIST llvm-project-bfa7edcc6652bdb37d53e0cec64926aab3f280eb.tar.gz 226735989 BLAKE2B 165837dc526e618b44c49d5fa3dceda373452e010a09746bff248903fe77874637d05ab9f5d2f63de7ebce5c14e3b19a131313a4a557adfd20fe9cb93ab60476 SHA512 e9e19176fcf1302727ee34d69eaa820b94959d64ceaf754d8a93ebd5e262cec7fe35e87b08f705b09e42c3ea26b671318eecf10e9137c635b12f481f80fbac23

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250125.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250125.ebuild
deleted file mode 100644
index 5efa81abbe9b..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.0.0_pre20250125.ebuild
+++ /dev/null
@@ -1,222 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0_rc1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0_rc1.ebuild
deleted file mode 100644
index 5efa81abbe9b..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0_rc1.ebuild
+++ /dev/null
@@ -1,222 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250201.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250201.ebuild
deleted file mode 100644
index 5efa81abbe9b..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250201.ebuild
+++ /dev/null
@@ -1,222 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250208.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250208.ebuild
deleted file mode 100644
index 5efa81abbe9b..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250208.ebuild
+++ /dev/null
@@ -1,222 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
-}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-02-22 15:19 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-02-22 15:19 UTC (permalink / raw
  To: gentoo-commits

commit:     0e314dd827952184d5c9b68edbbb0498dd71599c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 22 15:10:06 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Feb 22 15:19:13 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0e314dd8

llvm-runtimes/compiler-rt-sanitizers: Add 21.0.0_pre20250221 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-21.0.0_pre20250221.ebuild | 222 +++++++++++++++++++++
 2 files changed, 223 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 4a981efa8ad7..7f09ed052347 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -17,4 +17,5 @@ DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf
 DIST llvm-project-20.1.0-rc2.src.tar.xz 147160684 BLAKE2B 6adc1226f022272d78fb0ed361c190d369a2afc53bf868409fe8f4e092d5ffb9894c71870f072bb68162610782f48088468b4a49cdb1bc731d6689c791a5b5e3 SHA512 f303deaec8f25e1b122a7e85df192b6ea10c51472b78a3d14ad9d0b976a533cfbb9164aff0bc99e447e30938cf43363552c5493b4693e1f23291ea7a9b824bbb
 DIST llvm-project-20.1.0-rc2.src.tar.xz.sig 566 BLAKE2B aa91f7be228e51b0f2234bb5e0df173e3ddc90b6db4350a9008c2f8ba53220da6eef0c69778aecac3caecf918a0c54a0d910177ffe7643ad7fc5624a97262b7f SHA512 e5563a8a79b5e9ef26d62dc6d4385c1c86d12a652b4b1e7fc9ce45a2ea66e5118112746a61b439823bf99d65aea82285eabf5e07714eec77e6e5cd02feab82ce
 DIST llvm-project-2cd8207b26ea4269630feba661f68554d7ae3c15.tar.gz 227261597 BLAKE2B 51ce992b651fcf08b7fd520420040803b59f1260947953325400c50bec576c418b162d8ae2d2307e70b885b1185c302a97409bcfe48cdb14b8e1384f4e2dfa9e SHA512 a41749943508ea4a18b47c4e947917b5268544e64372c0c3347f9ab8172a2c229d8b1d813d1e842be1b98aedd624524857ed3bb23fe98ad5f36e7a71581abb4b
+DIST llvm-project-581599096e8a1a89ccd3e053a1209c69a9079083.tar.gz 227830555 BLAKE2B 28a04dd5ce96716d389fe049c4b877f55d6e5cad5c77d8867dd7e3a448213ef413e4f4d7d5f77b0702b26a8eb25f53e08d90e2a5a97eaa3f89245531d9f6626d SHA512 d775aea9bf71d60673e966a689ff6b933afecab2c133a1f64a158551ba9db049221148eab5087bab0ce0ff917456b85fb4ea4d7284886326f54617d167a385a5
 DIST llvm-project-c30a7f459452d5766da244564bc1d5888346c364.tar.gz 227560986 BLAKE2B c1c833aa6d488530826d96db81ca8be2fcf842ccf5b10a65ff18269fdfa32fa2742fb0a547eb315c2a9ee383e1b6b6cce4a78136e1740e04d322c79fb6a66a86 SHA512 0b68d3462e5eac89f50cff5e64603758ab74c701ff2de88c8569dd45b7e702b5d13b26c2745615c0c355d46d13765f47e4d43e61cde735240c6f386c0090becb

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250221.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250221.ebuild
new file mode 100644
index 000000000000..5efa81abbe9b
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250221.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-02-25 14:03 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-02-25 14:03 UTC (permalink / raw
  To: gentoo-commits

commit:     d10c4a6043cc5258ee742efe2390f167305f308f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 25 12:50:18 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Feb 25 14:03:12 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d10c4a60

llvm-runtimes/compiler-rt-sanitizers: Add 21.0.0_pre20250225 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-21.0.0_pre20250225.ebuild | 222 +++++++++++++++++++++
 2 files changed, 223 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 7f09ed052347..f002e05aba67 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -19,3 +19,4 @@ DIST llvm-project-20.1.0-rc2.src.tar.xz.sig 566 BLAKE2B aa91f7be228e51b0f2234bb5
 DIST llvm-project-2cd8207b26ea4269630feba661f68554d7ae3c15.tar.gz 227261597 BLAKE2B 51ce992b651fcf08b7fd520420040803b59f1260947953325400c50bec576c418b162d8ae2d2307e70b885b1185c302a97409bcfe48cdb14b8e1384f4e2dfa9e SHA512 a41749943508ea4a18b47c4e947917b5268544e64372c0c3347f9ab8172a2c229d8b1d813d1e842be1b98aedd624524857ed3bb23fe98ad5f36e7a71581abb4b
 DIST llvm-project-581599096e8a1a89ccd3e053a1209c69a9079083.tar.gz 227830555 BLAKE2B 28a04dd5ce96716d389fe049c4b877f55d6e5cad5c77d8867dd7e3a448213ef413e4f4d7d5f77b0702b26a8eb25f53e08d90e2a5a97eaa3f89245531d9f6626d SHA512 d775aea9bf71d60673e966a689ff6b933afecab2c133a1f64a158551ba9db049221148eab5087bab0ce0ff917456b85fb4ea4d7284886326f54617d167a385a5
 DIST llvm-project-c30a7f459452d5766da244564bc1d5888346c364.tar.gz 227560986 BLAKE2B c1c833aa6d488530826d96db81ca8be2fcf842ccf5b10a65ff18269fdfa32fa2742fb0a547eb315c2a9ee383e1b6b6cce4a78136e1740e04d322c79fb6a66a86 SHA512 0b68d3462e5eac89f50cff5e64603758ab74c701ff2de88c8569dd45b7e702b5d13b26c2745615c0c355d46d13765f47e4d43e61cde735240c6f386c0090becb
+DIST llvm-project-d254fa877f419e61e54709f0a6f2e891da893a60.tar.gz 228028122 BLAKE2B 3321f3b205dfcd672d52122d7ba8e4e737916e01f5041a0dc140722f64359476632e036da0e0692cd366b080a073292cfdb4963e973bf800afabc20d06a2e86b SHA512 135c4864973b682cf41953d43d977eaa219a4a898fceb4b4a8cacbbc6a5dd271d26010b1db6c6c90e761bf3495036f3e7528ab259d48c9c4dc4a064332c0326f

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250225.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250225.ebuild
new file mode 100644
index 000000000000..5efa81abbe9b
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250225.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-02-26 18:55 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-02-26 18:55 UTC (permalink / raw
  To: gentoo-commits

commit:     afb6cd0e9c96bdca4c7998525040baee30c98a70
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Feb 26 18:51:18 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Feb 26 18:55:19 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=afb6cd0e

llvm-runtimes/compiler-rt-sanitizers: Add 20.1.0_rc3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   2 +
 .../compiler-rt-sanitizers-20.1.0_rc3.ebuild       | 222 +++++++++++++++++++++
 2 files changed, 224 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index f002e05aba67..a4d819d13ca2 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -16,6 +16,8 @@ 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.0-rc2.src.tar.xz 147160684 BLAKE2B 6adc1226f022272d78fb0ed361c190d369a2afc53bf868409fe8f4e092d5ffb9894c71870f072bb68162610782f48088468b4a49cdb1bc731d6689c791a5b5e3 SHA512 f303deaec8f25e1b122a7e85df192b6ea10c51472b78a3d14ad9d0b976a533cfbb9164aff0bc99e447e30938cf43363552c5493b4693e1f23291ea7a9b824bbb
 DIST llvm-project-20.1.0-rc2.src.tar.xz.sig 566 BLAKE2B aa91f7be228e51b0f2234bb5e0df173e3ddc90b6db4350a9008c2f8ba53220da6eef0c69778aecac3caecf918a0c54a0d910177ffe7643ad7fc5624a97262b7f SHA512 e5563a8a79b5e9ef26d62dc6d4385c1c86d12a652b4b1e7fc9ce45a2ea66e5118112746a61b439823bf99d65aea82285eabf5e07714eec77e6e5cd02feab82ce
+DIST llvm-project-20.1.0-rc3.src.tar.xz 147194560 BLAKE2B 888764927782b01e968c9ec326315375c6b1050d3852c7ebe7fbd06b3b4052307162f77a76f1e8976879178116ea909c581b8d1ee99dc7a4c5368b01d5597d23 SHA512 9de97104681de9c8039f03e94adc25fe1765280f826342fb4f616266aa0e4afe63db09a8cc3458252d8b2834e4efb2d17ed0226c62c7bb06d948ba8172ee078c
+DIST llvm-project-20.1.0-rc3.src.tar.xz.sig 566 BLAKE2B 411ad085c3ab83c1599d110d93a9279206885a01e4748b8ac015a9a94b89fe25c35eab38b213cafb7f733be03826ffc4a01eb52788e2742d44d41a487aff2e26 SHA512 53c5aaa963e883ff06ac7ec9b821dcc4476b79f5be0169667843b18cd8836e8993856a045f2aab23bc77faefc2983fd822cfb1219d5644cec67132d647c877d8
 DIST llvm-project-2cd8207b26ea4269630feba661f68554d7ae3c15.tar.gz 227261597 BLAKE2B 51ce992b651fcf08b7fd520420040803b59f1260947953325400c50bec576c418b162d8ae2d2307e70b885b1185c302a97409bcfe48cdb14b8e1384f4e2dfa9e SHA512 a41749943508ea4a18b47c4e947917b5268544e64372c0c3347f9ab8172a2c229d8b1d813d1e842be1b98aedd624524857ed3bb23fe98ad5f36e7a71581abb4b
 DIST llvm-project-581599096e8a1a89ccd3e053a1209c69a9079083.tar.gz 227830555 BLAKE2B 28a04dd5ce96716d389fe049c4b877f55d6e5cad5c77d8867dd7e3a448213ef413e4f4d7d5f77b0702b26a8eb25f53e08d90e2a5a97eaa3f89245531d9f6626d SHA512 d775aea9bf71d60673e966a689ff6b933afecab2c133a1f64a158551ba9db049221148eab5087bab0ce0ff917456b85fb4ea4d7284886326f54617d167a385a5
 DIST llvm-project-c30a7f459452d5766da244564bc1d5888346c364.tar.gz 227560986 BLAKE2B c1c833aa6d488530826d96db81ca8be2fcf842ccf5b10a65ff18269fdfa32fa2742fb0a547eb315c2a9ee383e1b6b6cce4a78136e1740e04d322c79fb6a66a86 SHA512 0b68d3462e5eac89f50cff5e64603758ab74c701ff2de88c8569dd45b7e702b5d13b26c2745615c0c355d46d13765f47e4d43e61cde735240c6f386c0090becb

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0_rc3.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0_rc3.ebuild
new file mode 100644
index 000000000000..5efa81abbe9b
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0_rc3.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-03-01  8:34 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-03-01  8:34 UTC (permalink / raw
  To: gentoo-commits

commit:     f849647521414361b23bcc0d41ca650ead3f1ac6
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Mar  1 08:32:50 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Mar  1 08:32:50 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f8496475

llvm-runtimes/compiler-rt-sanitizers: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   5 -
 .../compiler-rt-sanitizers-20.1.0_rc2.ebuild       | 222 ---------------------
 ...ompiler-rt-sanitizers-21.0.0_pre20250211.ebuild | 222 ---------------------
 ...ompiler-rt-sanitizers-21.0.0_pre20250215.ebuild | 222 ---------------------
 ...ompiler-rt-sanitizers-21.0.0_pre20250221.ebuild | 222 ---------------------
 5 files changed, 893 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index a4d819d13ca2..183dfa9028fe 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -14,11 +14,6 @@ DIST llvm-project-19.1.4.src.tar.xz 141255156 BLAKE2B b99cd8a96e38dbcfb582ee5d22
 DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e29430bc09ef2b81be763aa5c853793631d7b7fdd65eb4dae7a1e3b4daa15d189c24cd1e14f065f79fdbf75429fa34be9b330e SHA512 3fb4a6c7594cb43680860698dac47062dde30de60f515dcecdad63812ea1edfb2cb209d0a7ac2254589c245a95b7c0f571b582e0d4b97a6ae8242563483ea764
 DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8
 DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
-DIST llvm-project-20.1.0-rc2.src.tar.xz 147160684 BLAKE2B 6adc1226f022272d78fb0ed361c190d369a2afc53bf868409fe8f4e092d5ffb9894c71870f072bb68162610782f48088468b4a49cdb1bc731d6689c791a5b5e3 SHA512 f303deaec8f25e1b122a7e85df192b6ea10c51472b78a3d14ad9d0b976a533cfbb9164aff0bc99e447e30938cf43363552c5493b4693e1f23291ea7a9b824bbb
-DIST llvm-project-20.1.0-rc2.src.tar.xz.sig 566 BLAKE2B aa91f7be228e51b0f2234bb5e0df173e3ddc90b6db4350a9008c2f8ba53220da6eef0c69778aecac3caecf918a0c54a0d910177ffe7643ad7fc5624a97262b7f SHA512 e5563a8a79b5e9ef26d62dc6d4385c1c86d12a652b4b1e7fc9ce45a2ea66e5118112746a61b439823bf99d65aea82285eabf5e07714eec77e6e5cd02feab82ce
 DIST llvm-project-20.1.0-rc3.src.tar.xz 147194560 BLAKE2B 888764927782b01e968c9ec326315375c6b1050d3852c7ebe7fbd06b3b4052307162f77a76f1e8976879178116ea909c581b8d1ee99dc7a4c5368b01d5597d23 SHA512 9de97104681de9c8039f03e94adc25fe1765280f826342fb4f616266aa0e4afe63db09a8cc3458252d8b2834e4efb2d17ed0226c62c7bb06d948ba8172ee078c
 DIST llvm-project-20.1.0-rc3.src.tar.xz.sig 566 BLAKE2B 411ad085c3ab83c1599d110d93a9279206885a01e4748b8ac015a9a94b89fe25c35eab38b213cafb7f733be03826ffc4a01eb52788e2742d44d41a487aff2e26 SHA512 53c5aaa963e883ff06ac7ec9b821dcc4476b79f5be0169667843b18cd8836e8993856a045f2aab23bc77faefc2983fd822cfb1219d5644cec67132d647c877d8
-DIST llvm-project-2cd8207b26ea4269630feba661f68554d7ae3c15.tar.gz 227261597 BLAKE2B 51ce992b651fcf08b7fd520420040803b59f1260947953325400c50bec576c418b162d8ae2d2307e70b885b1185c302a97409bcfe48cdb14b8e1384f4e2dfa9e SHA512 a41749943508ea4a18b47c4e947917b5268544e64372c0c3347f9ab8172a2c229d8b1d813d1e842be1b98aedd624524857ed3bb23fe98ad5f36e7a71581abb4b
-DIST llvm-project-581599096e8a1a89ccd3e053a1209c69a9079083.tar.gz 227830555 BLAKE2B 28a04dd5ce96716d389fe049c4b877f55d6e5cad5c77d8867dd7e3a448213ef413e4f4d7d5f77b0702b26a8eb25f53e08d90e2a5a97eaa3f89245531d9f6626d SHA512 d775aea9bf71d60673e966a689ff6b933afecab2c133a1f64a158551ba9db049221148eab5087bab0ce0ff917456b85fb4ea4d7284886326f54617d167a385a5
-DIST llvm-project-c30a7f459452d5766da244564bc1d5888346c364.tar.gz 227560986 BLAKE2B c1c833aa6d488530826d96db81ca8be2fcf842ccf5b10a65ff18269fdfa32fa2742fb0a547eb315c2a9ee383e1b6b6cce4a78136e1740e04d322c79fb6a66a86 SHA512 0b68d3462e5eac89f50cff5e64603758ab74c701ff2de88c8569dd45b7e702b5d13b26c2745615c0c355d46d13765f47e4d43e61cde735240c6f386c0090becb
 DIST llvm-project-d254fa877f419e61e54709f0a6f2e891da893a60.tar.gz 228028122 BLAKE2B 3321f3b205dfcd672d52122d7ba8e4e737916e01f5041a0dc140722f64359476632e036da0e0692cd366b080a073292cfdb4963e973bf800afabc20d06a2e86b SHA512 135c4864973b682cf41953d43d977eaa219a4a898fceb4b4a8cacbbc6a5dd271d26010b1db6c6c90e761bf3495036f3e7528ab259d48c9c4dc4a064332c0326f

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0_rc2.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0_rc2.ebuild
deleted file mode 100644
index 5efa81abbe9b..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0_rc2.ebuild
+++ /dev/null
@@ -1,222 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250211.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250211.ebuild
deleted file mode 100644
index 5efa81abbe9b..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250211.ebuild
+++ /dev/null
@@ -1,222 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250215.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250215.ebuild
deleted file mode 100644
index 5efa81abbe9b..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250215.ebuild
+++ /dev/null
@@ -1,222 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250221.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250221.ebuild
deleted file mode 100644
index 5efa81abbe9b..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250221.ebuild
+++ /dev/null
@@ -1,222 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
-}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-03-01 12:58 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-03-01 12:58 UTC (permalink / raw
  To: gentoo-commits

commit:     a4b056c12406ca2837270732ec25dc16d06caa3a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Mar  1 12:56:21 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Mar  1 12:58:28 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a4b056c1

llvm-runtimes/compiler-rt-sanitizers: Add 21.0.0_pre20250301 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-21.0.0_pre20250301.ebuild | 222 +++++++++++++++++++++
 2 files changed, 223 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 183dfa9028fe..14492a6c5772 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -16,4 +16,5 @@ 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.0-rc3.src.tar.xz 147194560 BLAKE2B 888764927782b01e968c9ec326315375c6b1050d3852c7ebe7fbd06b3b4052307162f77a76f1e8976879178116ea909c581b8d1ee99dc7a4c5368b01d5597d23 SHA512 9de97104681de9c8039f03e94adc25fe1765280f826342fb4f616266aa0e4afe63db09a8cc3458252d8b2834e4efb2d17ed0226c62c7bb06d948ba8172ee078c
 DIST llvm-project-20.1.0-rc3.src.tar.xz.sig 566 BLAKE2B 411ad085c3ab83c1599d110d93a9279206885a01e4748b8ac015a9a94b89fe25c35eab38b213cafb7f733be03826ffc4a01eb52788e2742d44d41a487aff2e26 SHA512 53c5aaa963e883ff06ac7ec9b821dcc4476b79f5be0169667843b18cd8836e8993856a045f2aab23bc77faefc2983fd822cfb1219d5644cec67132d647c877d8
+DIST llvm-project-7e8a06cfa4a2951b8ee77e19e34926e6e535b4d1.tar.gz 228792296 BLAKE2B cd9357bdca9342770820f9fadfbd0b129a83324847f18e2ebac1fed8df4afb101aba2dc19d90264ae1e2d5692e34149ca24ef82a4973e7aeddb157268bb411b6 SHA512 9821a34a559e1db596940d76ce9388360baea43c1a9de814f567bfcf1428a0c6e3ced61b1e07537058454785d9c3aa3f443cbcf742a01fb40dd20b476a906442
 DIST llvm-project-d254fa877f419e61e54709f0a6f2e891da893a60.tar.gz 228028122 BLAKE2B 3321f3b205dfcd672d52122d7ba8e4e737916e01f5041a0dc140722f64359476632e036da0e0692cd366b080a073292cfdb4963e973bf800afabc20d06a2e86b SHA512 135c4864973b682cf41953d43d977eaa219a4a898fceb4b4a8cacbbc6a5dd271d26010b1db6c6c90e761bf3495036f3e7528ab259d48c9c4dc4a064332c0326f

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250301.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250301.ebuild
new file mode 100644
index 000000000000..5efa81abbe9b
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250301.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-03-05  6:25 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-03-05  6:25 UTC (permalink / raw
  To: gentoo-commits

commit:     9677ddd311514d0973912db4a576c15ec7b356d1
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Mar  5 06:13:29 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Mar  5 06:13:29 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9677ddd3

llvm-runtimes/compiler-rt-sanitizers: Add 20.1.0 (unkeyworded)

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   2 +
 .../compiler-rt-sanitizers-20.1.0.ebuild           | 222 +++++++++++++++++++++
 2 files changed, 224 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 14492a6c5772..4bb7871e2939 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -16,5 +16,7 @@ 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.0-rc3.src.tar.xz 147194560 BLAKE2B 888764927782b01e968c9ec326315375c6b1050d3852c7ebe7fbd06b3b4052307162f77a76f1e8976879178116ea909c581b8d1ee99dc7a4c5368b01d5597d23 SHA512 9de97104681de9c8039f03e94adc25fe1765280f826342fb4f616266aa0e4afe63db09a8cc3458252d8b2834e4efb2d17ed0226c62c7bb06d948ba8172ee078c
 DIST llvm-project-20.1.0-rc3.src.tar.xz.sig 566 BLAKE2B 411ad085c3ab83c1599d110d93a9279206885a01e4748b8ac015a9a94b89fe25c35eab38b213cafb7f733be03826ffc4a01eb52788e2742d44d41a487aff2e26 SHA512 53c5aaa963e883ff06ac7ec9b821dcc4476b79f5be0169667843b18cd8836e8993856a045f2aab23bc77faefc2983fd822cfb1219d5644cec67132d647c877d8
+DIST llvm-project-20.1.0.src.tar.xz 147206476 BLAKE2B 8e8bd8aa995a84d17ac7d634098a6b72a47c30f1752029b620f4541a2de4039edf09117286094ae7bc59c4e84374dcffb8e5ee6ef5feaf4ea7ddb58dd04ea803 SHA512 c90fbc43c40e148357912adc40d799a79cce3d3a929136c137421f6342ed7338659e651f1dedfa8e10b94b9f2897e25b2962e17709add02857f89f10615a2397
+DIST llvm-project-20.1.0.src.tar.xz.sig 566 BLAKE2B 98979ce89f3fe6e95eef6096066cf855245a585608e7d1fddb5bbb2c73077f3ee28204260e18d7e45e3051daae3639520c39bc3d0dc51524873ac213e2511456 SHA512 68da1c2a13aaa48a67bbb9e716f9f030cf372edc651bca2861453378a6a9172a207ff59e29b175001f042888bf1f9c118fbf938f757e1f4c966943baa7e2696a
 DIST llvm-project-7e8a06cfa4a2951b8ee77e19e34926e6e535b4d1.tar.gz 228792296 BLAKE2B cd9357bdca9342770820f9fadfbd0b129a83324847f18e2ebac1fed8df4afb101aba2dc19d90264ae1e2d5692e34149ca24ef82a4973e7aeddb157268bb411b6 SHA512 9821a34a559e1db596940d76ce9388360baea43c1a9de814f567bfcf1428a0c6e3ced61b1e07537058454785d9c3aa3f443cbcf742a01fb40dd20b476a906442
 DIST llvm-project-d254fa877f419e61e54709f0a6f2e891da893a60.tar.gz 228028122 BLAKE2B 3321f3b205dfcd672d52122d7ba8e4e737916e01f5041a0dc140722f64359476632e036da0e0692cd366b080a073292cfdb4963e973bf800afabc20d06a2e86b SHA512 135c4864973b682cf41953d43d977eaa219a4a898fceb4b4a8cacbbc6a5dd271d26010b1db6c6c90e761bf3495036f3e7528ab259d48c9c4dc4a064332c0326f

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0.ebuild
new file mode 100644
index 000000000000..5efa81abbe9b
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-03-05 10:13 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-03-05 10:13 UTC (permalink / raw
  To: gentoo-commits

commit:     09e642dfbf296bb2b4e27f0ebeb39958f9588d28
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Mar  5 10:01:37 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Mar  5 10:12:57 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=09e642df

llvm-runtimes/compiler-rt-sanitizers: Add keywords to 20.1.0

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 .../compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0.ebuild        | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0.ebuild
index 5efa81abbe9b..a0044659b365 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0.ebuild
@@ -11,7 +11,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 ~ppc-macos ~x64-macos"
+IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
 # base targets
 IUSE+=" +ctx-profile +libfuzzer +memprof +orc +profile +xray"
 # sanitizer targets, keep in sync with config-ix.cmake


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-03-08 16:42 Arthur Zamarin
  0 siblings, 0 replies; 106+ messages in thread
From: Arthur Zamarin @ 2025-03-08 16:42 UTC (permalink / raw
  To: gentoo-commits

commit:     d4c72d9b48b3a8f6d64238af63c70337a282acba
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Sat Mar  8 16:09:02 2025 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Sat Mar  8 16:41:53 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d4c72d9b

llvm-runtimes/compiler-rt-sanitizers: fix UnquotedVariable [QA]

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 .../compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild    | 4 ++--
 .../compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild    | 4 ++--
 .../compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild    | 4 ++--
 .../compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild    | 4 ++--
 .../compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.4.ebuild       | 4 ++--
 .../compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild       | 2 +-
 .../compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0.ebuild       | 2 +-
 .../compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0.9999.ebuild  | 2 +-
 .../compiler-rt-sanitizers-21.0.0_pre20250301.ebuild                  | 2 +-
 9 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild
index 302e0394854a..3978b415cb59 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -181,7 +181,7 @@ src_configure() {
 			# 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/')"
+			-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"
 		)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild
index 09ad2eaaf751..2c54b12ac9c8 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -186,7 +186,7 @@ src_configure() {
 			# 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/')"
+			-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"
 		)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild
index 99972f122d59..fad0933985bd 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -181,7 +181,7 @@ src_configure() {
 			# 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/')"
+			-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"
 		)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
index 8a734d4c9ef2..64fc59dae7cc 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -179,7 +179,7 @@ src_configure() {
 			# 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/')"
+			-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"
 		)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.4.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.4.ebuild
index 98eccb06d035..b774d86e2d5a 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.4.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -181,7 +181,7 @@ src_configure() {
 			# 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/')"
+			-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"
 		)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
index ff8c736f7dff..40b38799d05f 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
@@ -181,7 +181,7 @@ src_configure() {
 			# 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/')"
+			-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"
 		)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0.ebuild
index a0044659b365..2a111afc93eb 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0.ebuild
@@ -181,7 +181,7 @@ src_configure() {
 			# 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/')"
+			-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"
 		)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0.9999.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0.9999.ebuild
index 5efa81abbe9b..09cf1645bd1a 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0.9999.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0.9999.ebuild
@@ -180,7 +180,7 @@ src_configure() {
 			# 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/')"
+			-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"
 		)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250301.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250301.ebuild
index 5efa81abbe9b..09cf1645bd1a 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250301.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250301.ebuild
@@ -180,7 +180,7 @@ src_configure() {
 			# 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/')"
+			-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"
 		)


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-03-11 14:56 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-03-11 14:56 UTC (permalink / raw
  To: gentoo-commits

commit:     1f08238efc390e08306aa73ae9e3bf306a4a8902
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 11 14:51:42 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Mar 11 14:56:28 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1f08238e

llvm-runtimes/compiler-rt-sanitizers: Add 21.0.0_pre20250311 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-21.0.0_pre20250311.ebuild | 222 +++++++++++++++++++++
 2 files changed, 223 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 012b501acd55..f7ef39d17cd7 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -17,3 +17,4 @@ DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf
 DIST llvm-project-20.1.0.src.tar.xz 147206476 BLAKE2B 8e8bd8aa995a84d17ac7d634098a6b72a47c30f1752029b620f4541a2de4039edf09117286094ae7bc59c4e84374dcffb8e5ee6ef5feaf4ea7ddb58dd04ea803 SHA512 c90fbc43c40e148357912adc40d799a79cce3d3a929136c137421f6342ed7338659e651f1dedfa8e10b94b9f2897e25b2962e17709add02857f89f10615a2397
 DIST llvm-project-20.1.0.src.tar.xz.sig 566 BLAKE2B 98979ce89f3fe6e95eef6096066cf855245a585608e7d1fddb5bbb2c73077f3ee28204260e18d7e45e3051daae3639520c39bc3d0dc51524873ac213e2511456 SHA512 68da1c2a13aaa48a67bbb9e716f9f030cf372edc651bca2861453378a6a9172a207ff59e29b175001f042888bf1f9c118fbf938f757e1f4c966943baa7e2696a
 DIST llvm-project-7e8a06cfa4a2951b8ee77e19e34926e6e535b4d1.tar.gz 228792296 BLAKE2B cd9357bdca9342770820f9fadfbd0b129a83324847f18e2ebac1fed8df4afb101aba2dc19d90264ae1e2d5692e34149ca24ef82a4973e7aeddb157268bb411b6 SHA512 9821a34a559e1db596940d76ce9388360baea43c1a9de814f567bfcf1428a0c6e3ced61b1e07537058454785d9c3aa3f443cbcf742a01fb40dd20b476a906442
+DIST llvm-project-cb7298f66d62a3548fcf3bd230304067ecf30d17.tar.gz 229200711 BLAKE2B 1910569812e7423cf566b0dec67269404ba8db8232ab293bc603a88914f2b756e3088bf2133c0fca612cc58d39691c7b813b3c5839a7ac9a3d177fe6bde766c6 SHA512 07c3f6ce34e7d32c5ebce1d2efb77e6a1dde49f9eedf7191733a20bdcb6ffd0c03f8fc8de85fd00bd9465b209f140639a68a367d2218c028bfa6e06067cc3e14

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250311.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250311.ebuild
new file mode 100644
index 000000000000..09cf1645bd1a
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250311.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-03-16 17:41 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-03-16 17:41 UTC (permalink / raw
  To: gentoo-commits

commit:     1bf610c35921bc41cc9145d2771cbffd0b3e8cf3
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 16 17:30:32 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Mar 16 17:30:32 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1bf610c3

llvm-runtimes/compiler-rt-sanitizers: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 -
 ...ompiler-rt-sanitizers-21.0.0_pre20250301.ebuild | 222 ---------------------
 2 files changed, 223 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index f7ef39d17cd7..dae916ecac50 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -16,5 +16,4 @@ 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.0.src.tar.xz 147206476 BLAKE2B 8e8bd8aa995a84d17ac7d634098a6b72a47c30f1752029b620f4541a2de4039edf09117286094ae7bc59c4e84374dcffb8e5ee6ef5feaf4ea7ddb58dd04ea803 SHA512 c90fbc43c40e148357912adc40d799a79cce3d3a929136c137421f6342ed7338659e651f1dedfa8e10b94b9f2897e25b2962e17709add02857f89f10615a2397
 DIST llvm-project-20.1.0.src.tar.xz.sig 566 BLAKE2B 98979ce89f3fe6e95eef6096066cf855245a585608e7d1fddb5bbb2c73077f3ee28204260e18d7e45e3051daae3639520c39bc3d0dc51524873ac213e2511456 SHA512 68da1c2a13aaa48a67bbb9e716f9f030cf372edc651bca2861453378a6a9172a207ff59e29b175001f042888bf1f9c118fbf938f757e1f4c966943baa7e2696a
-DIST llvm-project-7e8a06cfa4a2951b8ee77e19e34926e6e535b4d1.tar.gz 228792296 BLAKE2B cd9357bdca9342770820f9fadfbd0b129a83324847f18e2ebac1fed8df4afb101aba2dc19d90264ae1e2d5692e34149ca24ef82a4973e7aeddb157268bb411b6 SHA512 9821a34a559e1db596940d76ce9388360baea43c1a9de814f567bfcf1428a0c6e3ced61b1e07537058454785d9c3aa3f443cbcf742a01fb40dd20b476a906442
 DIST llvm-project-cb7298f66d62a3548fcf3bd230304067ecf30d17.tar.gz 229200711 BLAKE2B 1910569812e7423cf566b0dec67269404ba8db8232ab293bc603a88914f2b756e3088bf2133c0fca612cc58d39691c7b813b3c5839a7ac9a3d177fe6bde766c6 SHA512 07c3f6ce34e7d32c5ebce1d2efb77e6a1dde49f9eedf7191733a20bdcb6ffd0c03f8fc8de85fd00bd9465b209f140639a68a367d2218c028bfa6e06067cc3e14

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250301.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250301.ebuild
deleted file mode 100644
index 09cf1645bd1a..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250301.ebuild
+++ /dev/null
@@ -1,222 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
-}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-03-17 20:13 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-03-17 20:13 UTC (permalink / raw
  To: gentoo-commits

commit:     86e7183ddce2fd9ea7376414aa19e266bf4834cc
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 17 17:57:36 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Mar 17 20:13:25 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=86e7183d

llvm-runtimes/compiler-rt-sanitizers: Add 21.0.0_pre20250317 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-21.0.0_pre20250317.ebuild | 222 +++++++++++++++++++++
 2 files changed, 223 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index dae916ecac50..10b16546d199 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -14,6 +14,7 @@ DIST llvm-project-19.1.4.src.tar.xz 141255156 BLAKE2B b99cd8a96e38dbcfb582ee5d22
 DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e29430bc09ef2b81be763aa5c853793631d7b7fdd65eb4dae7a1e3b4daa15d189c24cd1e14f065f79fdbf75429fa34be9b330e SHA512 3fb4a6c7594cb43680860698dac47062dde30de60f515dcecdad63812ea1edfb2cb209d0a7ac2254589c245a95b7c0f571b582e0d4b97a6ae8242563483ea764
 DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8
 DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
+DIST llvm-project-1c3a9a853ce68c3c539e7cab21380b9d8b18f426.tar.gz 229448743 BLAKE2B c1eacc2ed05c460f56cf83f16b982e3fa4ac530483d7cf003034239aff3b3dbffbdd3042a3f295a83ec94fcf32f802714e4937fd3761a5e03d4ed1b4093e81bf SHA512 98b7e9fa330a6fce33ca9757caf5d2e41d0b73117cb24b2aed880274c2d6f8a8c1a0028dd0e773fa42deb61dbe3b9dd4fb2f44e50814b966fcdeae8e5b417e6d
 DIST llvm-project-20.1.0.src.tar.xz 147206476 BLAKE2B 8e8bd8aa995a84d17ac7d634098a6b72a47c30f1752029b620f4541a2de4039edf09117286094ae7bc59c4e84374dcffb8e5ee6ef5feaf4ea7ddb58dd04ea803 SHA512 c90fbc43c40e148357912adc40d799a79cce3d3a929136c137421f6342ed7338659e651f1dedfa8e10b94b9f2897e25b2962e17709add02857f89f10615a2397
 DIST llvm-project-20.1.0.src.tar.xz.sig 566 BLAKE2B 98979ce89f3fe6e95eef6096066cf855245a585608e7d1fddb5bbb2c73077f3ee28204260e18d7e45e3051daae3639520c39bc3d0dc51524873ac213e2511456 SHA512 68da1c2a13aaa48a67bbb9e716f9f030cf372edc651bca2861453378a6a9172a207ff59e29b175001f042888bf1f9c118fbf938f757e1f4c966943baa7e2696a
 DIST llvm-project-cb7298f66d62a3548fcf3bd230304067ecf30d17.tar.gz 229200711 BLAKE2B 1910569812e7423cf566b0dec67269404ba8db8232ab293bc603a88914f2b756e3088bf2133c0fca612cc58d39691c7b813b3c5839a7ac9a3d177fe6bde766c6 SHA512 07c3f6ce34e7d32c5ebce1d2efb77e6a1dde49f9eedf7191733a20bdcb6ffd0c03f8fc8de85fd00bd9465b209f140639a68a367d2218c028bfa6e06067cc3e14

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250317.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250317.ebuild
new file mode 100644
index 000000000000..09cf1645bd1a
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250317.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-03-20 16:50 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-03-20 16:50 UTC (permalink / raw
  To: gentoo-commits

commit:     4c5626bddf5012e0c992a23b70ab5419e1ad85cf
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 20 12:53:33 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Mar 20 16:50:22 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4c5626bd

llvm-runtimes/compiler-rt-sanitizers: Add 20.1.1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   2 +
 .../compiler-rt-sanitizers-20.1.1.ebuild           | 223 +++++++++++++++++++++
 2 files changed, 225 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 10b16546d199..60bff3dac4a9 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -17,4 +17,6 @@ DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf
 DIST llvm-project-1c3a9a853ce68c3c539e7cab21380b9d8b18f426.tar.gz 229448743 BLAKE2B c1eacc2ed05c460f56cf83f16b982e3fa4ac530483d7cf003034239aff3b3dbffbdd3042a3f295a83ec94fcf32f802714e4937fd3761a5e03d4ed1b4093e81bf SHA512 98b7e9fa330a6fce33ca9757caf5d2e41d0b73117cb24b2aed880274c2d6f8a8c1a0028dd0e773fa42deb61dbe3b9dd4fb2f44e50814b966fcdeae8e5b417e6d
 DIST llvm-project-20.1.0.src.tar.xz 147206476 BLAKE2B 8e8bd8aa995a84d17ac7d634098a6b72a47c30f1752029b620f4541a2de4039edf09117286094ae7bc59c4e84374dcffb8e5ee6ef5feaf4ea7ddb58dd04ea803 SHA512 c90fbc43c40e148357912adc40d799a79cce3d3a929136c137421f6342ed7338659e651f1dedfa8e10b94b9f2897e25b2962e17709add02857f89f10615a2397
 DIST llvm-project-20.1.0.src.tar.xz.sig 566 BLAKE2B 98979ce89f3fe6e95eef6096066cf855245a585608e7d1fddb5bbb2c73077f3ee28204260e18d7e45e3051daae3639520c39bc3d0dc51524873ac213e2511456 SHA512 68da1c2a13aaa48a67bbb9e716f9f030cf372edc651bca2861453378a6a9172a207ff59e29b175001f042888bf1f9c118fbf938f757e1f4c966943baa7e2696a
+DIST llvm-project-20.1.1.src.tar.xz 147215020 BLAKE2B d1774d060036b5340f765d68cc23cbd1e00730874cb3e65b7236303238d7922a7fa191b631c20c3bf17e54c933672a355d4424f2beea17cd25fcf9f5c4c625dd SHA512 b851d3e24a2775f6e789720614a8192d72956f447a39d75e5160a8acf6bd3a3386fab2cca5590b7e020b65e408ccf32432f8dc03519fd4cf60b4b5674fe0547e
+DIST llvm-project-20.1.1.src.tar.xz.sig 566 BLAKE2B 76c49401d9b8e283fc29586c32fc1b5205d76b3b83d0f99aa2ac09a63b058478e08588dcfbfc728110172b639eeaf04a884f4e6d707b94cad0dbf2d0dcb30a4f SHA512 469b03f3ddbe56b074724375b09a45ee2730bee0ba4b25f64f93d93ef609c33d39136f051c216a74a35d98a70ffcd3d7507e38d19a20d5006c29a954ca32813b
 DIST llvm-project-cb7298f66d62a3548fcf3bd230304067ecf30d17.tar.gz 229200711 BLAKE2B 1910569812e7423cf566b0dec67269404ba8db8232ab293bc603a88914f2b756e3088bf2133c0fca612cc58d39691c7b813b3c5839a7ac9a3d177fe6bde766c6 SHA512 07c3f6ce34e7d32c5ebce1d2efb77e6a1dde49f9eedf7191733a20bdcb6ffd0c03f8fc8de85fd00bd9465b209f140639a68a367d2218c028bfa6e06067cc3e14

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.1.ebuild
new file mode 100644
index 000000000000..2a111afc93eb
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.1.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
+IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-03-22 10:43 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-03-22 10:43 UTC (permalink / raw
  To: gentoo-commits

commit:     dd8dc1b955b1158ad7afe8f448ce237cec39fbe8
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Mar 22 10:41:26 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Mar 22 10:41:26 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dd8dc1b9

llvm-runtimes/compiler-rt-sanitizers: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   3 -
 .../compiler-rt-sanitizers-20.1.0.ebuild           | 223 ---------------------
 ...ompiler-rt-sanitizers-21.0.0_pre20250311.ebuild | 222 --------------------
 3 files changed, 448 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 276f241a2518..32e8cbab1caf 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -16,8 +16,5 @@ 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-1c3a9a853ce68c3c539e7cab21380b9d8b18f426.tar.gz 229448743 BLAKE2B c1eacc2ed05c460f56cf83f16b982e3fa4ac530483d7cf003034239aff3b3dbffbdd3042a3f295a83ec94fcf32f802714e4937fd3761a5e03d4ed1b4093e81bf SHA512 98b7e9fa330a6fce33ca9757caf5d2e41d0b73117cb24b2aed880274c2d6f8a8c1a0028dd0e773fa42deb61dbe3b9dd4fb2f44e50814b966fcdeae8e5b417e6d
 DIST llvm-project-1d133420dc512487e2be0e9d86755f2a7c3497a7.tar.gz 229268288 BLAKE2B aca79bcca631deeab429a03cd2732d78d8ecf0c9615bce181445ed875436806609dc85a57d4f97109492833d620d060ea93fed450a4912c2d94597aeabf84974 SHA512 24ecadfccdf785bfbf27d5007afd2a4d5868493b2c5f48d6cf07c335bfbfef5cba4f12a639971e5f95877ae3b8c7b7fc0c210e404d21036af553de82a5059037
-DIST llvm-project-20.1.0.src.tar.xz 147206476 BLAKE2B 8e8bd8aa995a84d17ac7d634098a6b72a47c30f1752029b620f4541a2de4039edf09117286094ae7bc59c4e84374dcffb8e5ee6ef5feaf4ea7ddb58dd04ea803 SHA512 c90fbc43c40e148357912adc40d799a79cce3d3a929136c137421f6342ed7338659e651f1dedfa8e10b94b9f2897e25b2962e17709add02857f89f10615a2397
-DIST llvm-project-20.1.0.src.tar.xz.sig 566 BLAKE2B 98979ce89f3fe6e95eef6096066cf855245a585608e7d1fddb5bbb2c73077f3ee28204260e18d7e45e3051daae3639520c39bc3d0dc51524873ac213e2511456 SHA512 68da1c2a13aaa48a67bbb9e716f9f030cf372edc651bca2861453378a6a9172a207ff59e29b175001f042888bf1f9c118fbf938f757e1f4c966943baa7e2696a
 DIST llvm-project-20.1.1.src.tar.xz 147215020 BLAKE2B d1774d060036b5340f765d68cc23cbd1e00730874cb3e65b7236303238d7922a7fa191b631c20c3bf17e54c933672a355d4424f2beea17cd25fcf9f5c4c625dd SHA512 b851d3e24a2775f6e789720614a8192d72956f447a39d75e5160a8acf6bd3a3386fab2cca5590b7e020b65e408ccf32432f8dc03519fd4cf60b4b5674fe0547e
 DIST llvm-project-20.1.1.src.tar.xz.sig 566 BLAKE2B 76c49401d9b8e283fc29586c32fc1b5205d76b3b83d0f99aa2ac09a63b058478e08588dcfbfc728110172b639eeaf04a884f4e6d707b94cad0dbf2d0dcb30a4f SHA512 469b03f3ddbe56b074724375b09a45ee2730bee0ba4b25f64f93d93ef609c33d39136f051c216a74a35d98a70ffcd3d7507e38d19a20d5006c29a954ca32813b
-DIST llvm-project-cb7298f66d62a3548fcf3bd230304067ecf30d17.tar.gz 229200711 BLAKE2B 1910569812e7423cf566b0dec67269404ba8db8232ab293bc603a88914f2b756e3088bf2133c0fca612cc58d39691c7b813b3c5839a7ac9a3d177fe6bde766c6 SHA512 07c3f6ce34e7d32c5ebce1d2efb77e6a1dde49f9eedf7191733a20bdcb6ffd0c03f8fc8de85fd00bd9465b209f140639a68a367d2218c028bfa6e06067cc3e14

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0.ebuild
deleted file mode 100644
index 2a111afc93eb..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.0.ebuild
+++ /dev/null
@@ -1,223 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
-IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250311.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250311.ebuild
deleted file mode 100644
index 09cf1645bd1a..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250311.ebuild
+++ /dev/null
@@ -1,222 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
-}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-03-23 13:46 Arthur Zamarin
  0 siblings, 0 replies; 106+ messages in thread
From: Arthur Zamarin @ 2025-03-23 13:46 UTC (permalink / raw
  To: gentoo-commits

commit:     c31d7486880e3c90438fb7a554a9c93336db372d
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 23 13:32:33 2025 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Sun Mar 23 13:46:12 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c31d7486

llvm-runtimes/compiler-rt-sanitizers: Stabilize 19.1.7 arm, #946879

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 .../compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild         | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
index 40b38799d05f..110b3ff40679 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
@@ -11,7 +11,7 @@ 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 ~ppc-macos ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ~ppc64 ~riscv x86 ~amd64-linux ~ppc-macos ~x64-macos"
 IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
 # base targets
 IUSE+=" +ctx-profile +libfuzzer +memprof +orc +profile +xray"


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-03-23 13:46 Arthur Zamarin
  0 siblings, 0 replies; 106+ messages in thread
From: Arthur Zamarin @ 2025-03-23 13:46 UTC (permalink / raw
  To: gentoo-commits

commit:     0fbee9b7795d9f10f02c8ae34c29527c63357732
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 23 13:32:40 2025 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Sun Mar 23 13:46:14 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0fbee9b7

llvm-runtimes/compiler-rt-sanitizers: Stabilize 19.1.7 ppc64, #946879

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 .../compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild         | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
index 110b3ff40679..b774d86e2d5a 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
@@ -11,7 +11,7 @@ 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 ~ppc-macos ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc64 ~riscv x86 ~amd64-linux ~ppc-macos ~x64-macos"
 IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
 # base targets
 IUSE+=" +ctx-profile +libfuzzer +memprof +orc +profile +xray"


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-03-29 10:27 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-03-29 10:27 UTC (permalink / raw
  To: gentoo-commits

commit:     a720d1602d70f9ec3ed9838a329caacb0ce6cf21
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Mar 29 10:25:44 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Mar 29 10:25:44 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a720d160

llvm-runtimes/compiler-rt-sanitizers: Add 21.0.0_pre20250329 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-21.0.0_pre20250329.ebuild | 222 +++++++++++++++++++++
 2 files changed, 223 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 32e8cbab1caf..42770fa3a9c7 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -18,3 +18,4 @@ DIST llvm-project-1c3a9a853ce68c3c539e7cab21380b9d8b18f426.tar.gz 229448743 BLAK
 DIST llvm-project-1d133420dc512487e2be0e9d86755f2a7c3497a7.tar.gz 229268288 BLAKE2B aca79bcca631deeab429a03cd2732d78d8ecf0c9615bce181445ed875436806609dc85a57d4f97109492833d620d060ea93fed450a4912c2d94597aeabf84974 SHA512 24ecadfccdf785bfbf27d5007afd2a4d5868493b2c5f48d6cf07c335bfbfef5cba4f12a639971e5f95877ae3b8c7b7fc0c210e404d21036af553de82a5059037
 DIST llvm-project-20.1.1.src.tar.xz 147215020 BLAKE2B d1774d060036b5340f765d68cc23cbd1e00730874cb3e65b7236303238d7922a7fa191b631c20c3bf17e54c933672a355d4424f2beea17cd25fcf9f5c4c625dd SHA512 b851d3e24a2775f6e789720614a8192d72956f447a39d75e5160a8acf6bd3a3386fab2cca5590b7e020b65e408ccf32432f8dc03519fd4cf60b4b5674fe0547e
 DIST llvm-project-20.1.1.src.tar.xz.sig 566 BLAKE2B 76c49401d9b8e283fc29586c32fc1b5205d76b3b83d0f99aa2ac09a63b058478e08588dcfbfc728110172b639eeaf04a884f4e6d707b94cad0dbf2d0dcb30a4f SHA512 469b03f3ddbe56b074724375b09a45ee2730bee0ba4b25f64f93d93ef609c33d39136f051c216a74a35d98a70ffcd3d7507e38d19a20d5006c29a954ca32813b
+DIST llvm-project-21eeca3db0341fef4ab4a6464ffe38b2eba5810c.tar.gz 229546432 BLAKE2B e783f08b93498b252741a07fd3aa3383ca93f66688f9bbdb2e11185c660dfff1020ab4a1ca803ab69ab28dc2fd8b5c3855f45c0b77851b8e6edeb0dc5bf6cbd4 SHA512 54420956b36f3bccabea2171a4103ca20d6b136e1d1f7f217e0ec735be4542bbd840ef228c55f3e9103ad2f9fb41393e611d5aaa1521d01fdd163b770b80ba0b

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250329.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250329.ebuild
new file mode 100644
index 000000000000..09cf1645bd1a
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250329.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-04-03 11:29 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-04-03 11:29 UTC (permalink / raw
  To: gentoo-commits

commit:     20c2a4d77b59ab4bd1bdc3afd35d047770541d8e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Apr  3 08:04:02 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Apr  3 11:29:14 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=20c2a4d7

llvm-runtimes/compiler-rt-sanitizers: Bump to 20.1.2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   2 +
 .../compiler-rt-sanitizers-20.1.2.ebuild           | 223 +++++++++++++++++++++
 2 files changed, 225 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 42770fa3a9c7..7788c7f5d66a 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -18,4 +18,6 @@ DIST llvm-project-1c3a9a853ce68c3c539e7cab21380b9d8b18f426.tar.gz 229448743 BLAK
 DIST llvm-project-1d133420dc512487e2be0e9d86755f2a7c3497a7.tar.gz 229268288 BLAKE2B aca79bcca631deeab429a03cd2732d78d8ecf0c9615bce181445ed875436806609dc85a57d4f97109492833d620d060ea93fed450a4912c2d94597aeabf84974 SHA512 24ecadfccdf785bfbf27d5007afd2a4d5868493b2c5f48d6cf07c335bfbfef5cba4f12a639971e5f95877ae3b8c7b7fc0c210e404d21036af553de82a5059037
 DIST llvm-project-20.1.1.src.tar.xz 147215020 BLAKE2B d1774d060036b5340f765d68cc23cbd1e00730874cb3e65b7236303238d7922a7fa191b631c20c3bf17e54c933672a355d4424f2beea17cd25fcf9f5c4c625dd SHA512 b851d3e24a2775f6e789720614a8192d72956f447a39d75e5160a8acf6bd3a3386fab2cca5590b7e020b65e408ccf32432f8dc03519fd4cf60b4b5674fe0547e
 DIST llvm-project-20.1.1.src.tar.xz.sig 566 BLAKE2B 76c49401d9b8e283fc29586c32fc1b5205d76b3b83d0f99aa2ac09a63b058478e08588dcfbfc728110172b639eeaf04a884f4e6d707b94cad0dbf2d0dcb30a4f SHA512 469b03f3ddbe56b074724375b09a45ee2730bee0ba4b25f64f93d93ef609c33d39136f051c216a74a35d98a70ffcd3d7507e38d19a20d5006c29a954ca32813b
+DIST llvm-project-20.1.2.src.tar.xz 147229028 BLAKE2B 90be4c8b69d44bc3a295f3f63081f999cf35d05e9157ab104d403a5d5b6c3ff97b57a89598d2ec0413988f93a23f97f485b2216bbf0630cade754e9830246621 SHA512 c95e088e471d49c6692c8af1a7e40924467e4c269dada019c44455687c9f0e6a213b9b3ac8afa4e3d20cb3e757afc3400152e7cd06981aeebd61591cac15580d
+DIST llvm-project-20.1.2.src.tar.xz.sig 566 BLAKE2B fa4637cd41bddb0425567b17bcb0ba4800ec9a689897610febfba7f49f8218d6aff7bb8f7ecf6bb927397096ca49c0c1817b243e5ba7fc0ba51993ef532dadeb SHA512 d3f6a350ebd9884878442ea202f58328f8e85c30cfb150371e4af7fa8dc560bb421cd0f49f49e6bc95f57de6c06543633f0b2799aab9590750f440e099424e01
 DIST llvm-project-21eeca3db0341fef4ab4a6464ffe38b2eba5810c.tar.gz 229546432 BLAKE2B e783f08b93498b252741a07fd3aa3383ca93f66688f9bbdb2e11185c660dfff1020ab4a1ca803ab69ab28dc2fd8b5c3855f45c0b77851b8e6edeb0dc5bf6cbd4 SHA512 54420956b36f3bccabea2171a4103ca20d6b136e1d1f7f217e0ec735be4542bbd840ef228c55f3e9103ad2f9fb41393e611d5aaa1521d01fdd163b770b80ba0b

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.2.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.2.ebuild
new file mode 100644
index 000000000000..2a111afc93eb
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.2.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
+IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-04-05 12:24 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-04-05 12:24 UTC (permalink / raw
  To: gentoo-commits

commit:     ce2db80a65bc001f32eb4e37f55f277e79a23f6d
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Apr  5 10:51:42 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Apr  5 12:23:51 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ce2db80a

llvm-runtimes/compiler-rt-sanitizers: Add 21.0.0_pre20250405 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-21.0.0_pre20250405.ebuild | 222 +++++++++++++++++++++
 2 files changed, 223 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 7788c7f5d66a..d7e10bd4b0e4 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -21,3 +21,4 @@ DIST llvm-project-20.1.1.src.tar.xz.sig 566 BLAKE2B 76c49401d9b8e283fc29586c32fc
 DIST llvm-project-20.1.2.src.tar.xz 147229028 BLAKE2B 90be4c8b69d44bc3a295f3f63081f999cf35d05e9157ab104d403a5d5b6c3ff97b57a89598d2ec0413988f93a23f97f485b2216bbf0630cade754e9830246621 SHA512 c95e088e471d49c6692c8af1a7e40924467e4c269dada019c44455687c9f0e6a213b9b3ac8afa4e3d20cb3e757afc3400152e7cd06981aeebd61591cac15580d
 DIST llvm-project-20.1.2.src.tar.xz.sig 566 BLAKE2B fa4637cd41bddb0425567b17bcb0ba4800ec9a689897610febfba7f49f8218d6aff7bb8f7ecf6bb927397096ca49c0c1817b243e5ba7fc0ba51993ef532dadeb SHA512 d3f6a350ebd9884878442ea202f58328f8e85c30cfb150371e4af7fa8dc560bb421cd0f49f49e6bc95f57de6c06543633f0b2799aab9590750f440e099424e01
 DIST llvm-project-21eeca3db0341fef4ab4a6464ffe38b2eba5810c.tar.gz 229546432 BLAKE2B e783f08b93498b252741a07fd3aa3383ca93f66688f9bbdb2e11185c660dfff1020ab4a1ca803ab69ab28dc2fd8b5c3855f45c0b77851b8e6edeb0dc5bf6cbd4 SHA512 54420956b36f3bccabea2171a4103ca20d6b136e1d1f7f217e0ec735be4542bbd840ef228c55f3e9103ad2f9fb41393e611d5aaa1521d01fdd163b770b80ba0b
+DIST llvm-project-f3e6473df46fd920e09e06e57a5549eb8e3a8bd3.tar.gz 229893133 BLAKE2B 20a14a99fb55070c30b05298916875d7f7b5476bc47c72f675204adb62daf1126bc83f2e7e51867042cb0ea415f04ef32653118116d01f666a82dc888fb6e999 SHA512 f11eac15fc1d96232267d588fa1c41ebbff3367b1fccf1cfd43f3290f682b73ffa78f2336a2a155c41ef67cf4e6f43019b152996d790f03acf4b9b732a3cf4b7

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250405.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250405.ebuild
new file mode 100644
index 000000000000..09cf1645bd1a
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250405.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-04-12  4:57 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-04-12  4:57 UTC (permalink / raw
  To: gentoo-commits

commit:     faa2bf0081151879cd0943ad283964f597ac3e2f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 12 04:55:24 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Apr 12 04:55:24 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=faa2bf00

llvm-runtimes/compiler-rt-sanitizers: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   5 -
 .../compiler-rt-sanitizers-20.1.1.ebuild           | 223 ---------------------
 ...ompiler-rt-sanitizers-21.0.0_pre20250317.ebuild | 222 --------------------
 ...ompiler-rt-sanitizers-21.0.0_pre20250322.ebuild | 222 --------------------
 ...ompiler-rt-sanitizers-21.0.0_pre20250329.ebuild | 222 --------------------
 5 files changed, 894 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index d7e10bd4b0e4..6b46e487860f 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -14,11 +14,6 @@ DIST llvm-project-19.1.4.src.tar.xz 141255156 BLAKE2B b99cd8a96e38dbcfb582ee5d22
 DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e29430bc09ef2b81be763aa5c853793631d7b7fdd65eb4dae7a1e3b4daa15d189c24cd1e14f065f79fdbf75429fa34be9b330e SHA512 3fb4a6c7594cb43680860698dac47062dde30de60f515dcecdad63812ea1edfb2cb209d0a7ac2254589c245a95b7c0f571b582e0d4b97a6ae8242563483ea764
 DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8
 DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
-DIST llvm-project-1c3a9a853ce68c3c539e7cab21380b9d8b18f426.tar.gz 229448743 BLAKE2B c1eacc2ed05c460f56cf83f16b982e3fa4ac530483d7cf003034239aff3b3dbffbdd3042a3f295a83ec94fcf32f802714e4937fd3761a5e03d4ed1b4093e81bf SHA512 98b7e9fa330a6fce33ca9757caf5d2e41d0b73117cb24b2aed880274c2d6f8a8c1a0028dd0e773fa42deb61dbe3b9dd4fb2f44e50814b966fcdeae8e5b417e6d
-DIST llvm-project-1d133420dc512487e2be0e9d86755f2a7c3497a7.tar.gz 229268288 BLAKE2B aca79bcca631deeab429a03cd2732d78d8ecf0c9615bce181445ed875436806609dc85a57d4f97109492833d620d060ea93fed450a4912c2d94597aeabf84974 SHA512 24ecadfccdf785bfbf27d5007afd2a4d5868493b2c5f48d6cf07c335bfbfef5cba4f12a639971e5f95877ae3b8c7b7fc0c210e404d21036af553de82a5059037
-DIST llvm-project-20.1.1.src.tar.xz 147215020 BLAKE2B d1774d060036b5340f765d68cc23cbd1e00730874cb3e65b7236303238d7922a7fa191b631c20c3bf17e54c933672a355d4424f2beea17cd25fcf9f5c4c625dd SHA512 b851d3e24a2775f6e789720614a8192d72956f447a39d75e5160a8acf6bd3a3386fab2cca5590b7e020b65e408ccf32432f8dc03519fd4cf60b4b5674fe0547e
-DIST llvm-project-20.1.1.src.tar.xz.sig 566 BLAKE2B 76c49401d9b8e283fc29586c32fc1b5205d76b3b83d0f99aa2ac09a63b058478e08588dcfbfc728110172b639eeaf04a884f4e6d707b94cad0dbf2d0dcb30a4f SHA512 469b03f3ddbe56b074724375b09a45ee2730bee0ba4b25f64f93d93ef609c33d39136f051c216a74a35d98a70ffcd3d7507e38d19a20d5006c29a954ca32813b
 DIST llvm-project-20.1.2.src.tar.xz 147229028 BLAKE2B 90be4c8b69d44bc3a295f3f63081f999cf35d05e9157ab104d403a5d5b6c3ff97b57a89598d2ec0413988f93a23f97f485b2216bbf0630cade754e9830246621 SHA512 c95e088e471d49c6692c8af1a7e40924467e4c269dada019c44455687c9f0e6a213b9b3ac8afa4e3d20cb3e757afc3400152e7cd06981aeebd61591cac15580d
 DIST llvm-project-20.1.2.src.tar.xz.sig 566 BLAKE2B fa4637cd41bddb0425567b17bcb0ba4800ec9a689897610febfba7f49f8218d6aff7bb8f7ecf6bb927397096ca49c0c1817b243e5ba7fc0ba51993ef532dadeb SHA512 d3f6a350ebd9884878442ea202f58328f8e85c30cfb150371e4af7fa8dc560bb421cd0f49f49e6bc95f57de6c06543633f0b2799aab9590750f440e099424e01
-DIST llvm-project-21eeca3db0341fef4ab4a6464ffe38b2eba5810c.tar.gz 229546432 BLAKE2B e783f08b93498b252741a07fd3aa3383ca93f66688f9bbdb2e11185c660dfff1020ab4a1ca803ab69ab28dc2fd8b5c3855f45c0b77851b8e6edeb0dc5bf6cbd4 SHA512 54420956b36f3bccabea2171a4103ca20d6b136e1d1f7f217e0ec735be4542bbd840ef228c55f3e9103ad2f9fb41393e611d5aaa1521d01fdd163b770b80ba0b
 DIST llvm-project-f3e6473df46fd920e09e06e57a5549eb8e3a8bd3.tar.gz 229893133 BLAKE2B 20a14a99fb55070c30b05298916875d7f7b5476bc47c72f675204adb62daf1126bc83f2e7e51867042cb0ea415f04ef32653118116d01f666a82dc888fb6e999 SHA512 f11eac15fc1d96232267d588fa1c41ebbff3367b1fccf1cfd43f3290f682b73ffa78f2336a2a155c41ef67cf4e6f43019b152996d790f03acf4b9b732a3cf4b7

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.1.ebuild
deleted file mode 100644
index 2a111afc93eb..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.1.ebuild
+++ /dev/null
@@ -1,223 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
-IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250317.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250317.ebuild
deleted file mode 100644
index 09cf1645bd1a..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250317.ebuild
+++ /dev/null
@@ -1,222 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250322.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250322.ebuild
deleted file mode 100644
index 09cf1645bd1a..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250322.ebuild
+++ /dev/null
@@ -1,222 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250329.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250329.ebuild
deleted file mode 100644
index 09cf1645bd1a..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250329.ebuild
+++ /dev/null
@@ -1,222 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
-}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-04-12  8:59 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-04-12  8:59 UTC (permalink / raw
  To: gentoo-commits

commit:     21315cf8983186e3f729275a213af8f826fb0cae
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 12 08:57:53 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Apr 12 08:59:13 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=21315cf8

llvm-runtimes/compiler-rt-sanitizers: Add 21.0.0_pre20250412 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-21.0.0_pre20250412.ebuild | 222 +++++++++++++++++++++
 2 files changed, 223 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 6b46e487860f..5857fa10cc7b 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -17,3 +17,4 @@ DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf
 DIST llvm-project-20.1.2.src.tar.xz 147229028 BLAKE2B 90be4c8b69d44bc3a295f3f63081f999cf35d05e9157ab104d403a5d5b6c3ff97b57a89598d2ec0413988f93a23f97f485b2216bbf0630cade754e9830246621 SHA512 c95e088e471d49c6692c8af1a7e40924467e4c269dada019c44455687c9f0e6a213b9b3ac8afa4e3d20cb3e757afc3400152e7cd06981aeebd61591cac15580d
 DIST llvm-project-20.1.2.src.tar.xz.sig 566 BLAKE2B fa4637cd41bddb0425567b17bcb0ba4800ec9a689897610febfba7f49f8218d6aff7bb8f7ecf6bb927397096ca49c0c1817b243e5ba7fc0ba51993ef532dadeb SHA512 d3f6a350ebd9884878442ea202f58328f8e85c30cfb150371e4af7fa8dc560bb421cd0f49f49e6bc95f57de6c06543633f0b2799aab9590750f440e099424e01
 DIST llvm-project-f3e6473df46fd920e09e06e57a5549eb8e3a8bd3.tar.gz 229893133 BLAKE2B 20a14a99fb55070c30b05298916875d7f7b5476bc47c72f675204adb62daf1126bc83f2e7e51867042cb0ea415f04ef32653118116d01f666a82dc888fb6e999 SHA512 f11eac15fc1d96232267d588fa1c41ebbff3367b1fccf1cfd43f3290f682b73ffa78f2336a2a155c41ef67cf4e6f43019b152996d790f03acf4b9b732a3cf4b7
+DIST llvm-project-fa4ac19f0fc937e30fd7711dad98d0fcdb34f8ba.tar.gz 230556403 BLAKE2B 8fde662380b5a9889cb6399ceeffedf0b42a5b6c329768f2cad15338a4fd4650217057955014de53b56825a6f5770042f5678d8df4118b6310d4d1b12a19c888 SHA512 ef8a3ac7aed43f14b490d198de27f15bad0a63b89273d47daca0aa33a1edf79eecafb26f7f7ec64e6482b99fba5d7e9080c59887e33bb1ce18d8e3ae1938a1ae

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250412.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250412.ebuild
new file mode 100644
index 000000000000..09cf1645bd1a
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250412.ebuild
@@ -0,0 +1,222 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-04-12 10:21 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-04-12 10:21 UTC (permalink / raw
  To: gentoo-commits

commit:     bd5c86aad282c9a5704f1aa3e1452c7cf50da5d3
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 12 10:19:41 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Apr 12 10:19:41 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bd5c86aa

llvm-runtimes/compiler-rt-sanitizers: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   2 -
 .../compiler-rt-sanitizers-19.1.4.ebuild           | 223 ---------------------
 2 files changed, 225 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 5857fa10cc7b..85a1d7deebb1 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -10,8 +10,6 @@ DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e06541
 DIST llvm-project-17.0.6.src.tar.xz.sig 438 BLAKE2B 186e75b6a0fbfe1e85408589c149e1800fcc47d685b74e4260018e05cd08bc793d1d1197c9c50e177eea941a3d0c65cb0c583ce6dae449099b920adf8a508ef7 SHA512 f78c55053a6450625f3e95f52c305110b4468a9854fec75831b65b8d6ceee3c9206ab9e63c4b5fda8be9bd344f72cfbdaae0520ed240abd505e08ebeaa25d340
 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-19.1.4.src.tar.xz 141255156 BLAKE2B b99cd8a96e38dbcfb582ee5d2250268df36fb94fa0fd5b3611484094fbd7962051978334d2c623d2ff5a0209dbb2c6c6492be0146507ae982a7d3e9705a689c5 SHA512 a586f8a41dde5e0d9ca6d8c58e9ef2a2e59b70a86d2e2c46106dc31b5c096bb80af0cdbdb486179e9cc676a540099f49a1c2db9e5e84c50362db1f72e9af6906
-DIST llvm-project-19.1.4.src.tar.xz.sig 438 BLAKE2B b0925bdb761046d69779e0b035e29430bc09ef2b81be763aa5c853793631d7b7fdd65eb4dae7a1e3b4daa15d189c24cd1e14f065f79fdbf75429fa34be9b330e SHA512 3fb4a6c7594cb43680860698dac47062dde30de60f515dcecdad63812ea1edfb2cb209d0a7ac2254589c245a95b7c0f571b582e0d4b97a6ae8242563483ea764
 DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8
 DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
 DIST llvm-project-20.1.2.src.tar.xz 147229028 BLAKE2B 90be4c8b69d44bc3a295f3f63081f999cf35d05e9157ab104d403a5d5b6c3ff97b57a89598d2ec0413988f93a23f97f485b2216bbf0630cade754e9830246621 SHA512 c95e088e471d49c6692c8af1a7e40924467e4c269dada019c44455687c9f0e6a213b9b3ac8afa4e3d20cb3e757afc3400152e7cd06981aeebd61591cac15580d

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.4.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.4.ebuild
deleted file mode 100644
index b774d86e2d5a..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.4.ebuild
+++ /dev/null
@@ -1,223 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc64 ~riscv x86 ~amd64-linux ~ppc-macos ~x64-macos"
-IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
-# base targets
-IUSE+=" +ctx-profile +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="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
-}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-04-15 10:15 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-04-15 10:15 UTC (permalink / raw
  To: gentoo-commits

commit:     4aa715f19c2aa05665adc6fbcb9a0521032d4846
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 15 08:43:59 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Apr 15 10:15:25 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4aa715f1

llvm-runtimes/compiler-rt-sanitizers: Update resource dir search

Update clang resource dir search logic to handle additional directories
created by flang-runtime.  Rather than expecting a single directory
to exist in /usr/lib/clang/*/lib, determine the correct subdirectory
by looking at the build directory prepared by CMake.

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 .../compiler-rt-sanitizers-21.0.0.9999.ebuild                 | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0.9999.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0.9999.ebuild
index 09cf1645bd1a..4e87f3ac02fa 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0.9999.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0.9999.ebuild
@@ -189,9 +189,11 @@ src_configure() {
 	cmake_src_configure
 
 	if use test; then
-		local sys_dir=( "${EPREFIX}"/usr/lib/clang/${LLVM_MAJOR}/lib/* )
-		[[ -e ${sys_dir} ]] || die "Unable to find ${sys_dir}"
-		[[ ${#sys_dir[@]} -eq 1 ]] || die "Non-deterministic compiler-rt install: ${sys_dir[*]}"
+		local sys_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
 
 		# copy clang over since resource_dir is located relatively to binary
 		# therefore, we can put our new libraries in it
@@ -200,8 +202,7 @@ src_configure() {
 			"${BUILD_DIR}"/lib/llvm/${LLVM_MAJOR}/bin/ || die
 		cp "${EPREFIX}"/usr/lib/clang/${LLVM_MAJOR}/include/*.h \
 			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/lib/${sys_dir##*/}/" || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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 \


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-04-15 10:15 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-04-15 10:15 UTC (permalink / raw
  To: gentoo-commits

commit:     7d200e88581da1de0fab2ff6635d84ab2e8e5443
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 15 10:04:54 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Apr 15 10:15:41 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7d200e88

llvm-runtimes/compiler-rt-sanitizers: Add 21.0.0_pre20250415 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-21.0.0_pre20250415.ebuild | 223 +++++++++++++++++++++
 2 files changed, 224 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 85a1d7deebb1..20de970a2997 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -12,6 +12,7 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8
 DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
+DIST llvm-project-1cf9f764ac41fb3492e10c78640dd50e616388db.tar.gz 230651433 BLAKE2B b71d459de99a741f9eb5809fcb44e6d9a17d3295bf11755d2b04a83fff6257eb4e5856826581c000e3b2868ff1cfb155ee18c692654f8083af04574d414c8fa2 SHA512 5b8d1e493830b7838b3ca76148dfc2e2af1cbaa660bd80958777698210c3347a1308f0725d40b10f8f12877daf99c4ba4837e4fa857a781ae912ee167369bafd
 DIST llvm-project-20.1.2.src.tar.xz 147229028 BLAKE2B 90be4c8b69d44bc3a295f3f63081f999cf35d05e9157ab104d403a5d5b6c3ff97b57a89598d2ec0413988f93a23f97f485b2216bbf0630cade754e9830246621 SHA512 c95e088e471d49c6692c8af1a7e40924467e4c269dada019c44455687c9f0e6a213b9b3ac8afa4e3d20cb3e757afc3400152e7cd06981aeebd61591cac15580d
 DIST llvm-project-20.1.2.src.tar.xz.sig 566 BLAKE2B fa4637cd41bddb0425567b17bcb0ba4800ec9a689897610febfba7f49f8218d6aff7bb8f7ecf6bb927397096ca49c0c1817b243e5ba7fc0ba51993ef532dadeb SHA512 d3f6a350ebd9884878442ea202f58328f8e85c30cfb150371e4af7fa8dc560bb421cd0f49f49e6bc95f57de6c06543633f0b2799aab9590750f440e099424e01
 DIST llvm-project-f3e6473df46fd920e09e06e57a5549eb8e3a8bd3.tar.gz 229893133 BLAKE2B 20a14a99fb55070c30b05298916875d7f7b5476bc47c72f675204adb62daf1126bc83f2e7e51867042cb0ea415f04ef32653118116d01f666a82dc888fb6e999 SHA512 f11eac15fc1d96232267d588fa1c41ebbff3367b1fccf1cfd43f3290f682b73ffa78f2336a2a155c41ef67cf4e6f43019b152996d790f03acf4b9b732a3cf4b7

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250415.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250415.ebuild
new file mode 100644
index 000000000000..4e87f3ac02fa
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250415.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-04-16 18:34 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-04-16 18:34 UTC (permalink / raw
  To: gentoo-commits

commit:     efd9cb294cb43816a6d586b7638c79c4da91a70d
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 16 12:07:20 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Apr 16 18:34:04 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=efd9cb29

llvm-runtimes/compiler-rt-sanitizers: Add 20.1.3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   2 +
 .../compiler-rt-sanitizers-20.1.3.ebuild           | 223 +++++++++++++++++++++
 2 files changed, 225 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 20de970a2997..62e4f723bdb8 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -15,5 +15,7 @@ DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf
 DIST llvm-project-1cf9f764ac41fb3492e10c78640dd50e616388db.tar.gz 230651433 BLAKE2B b71d459de99a741f9eb5809fcb44e6d9a17d3295bf11755d2b04a83fff6257eb4e5856826581c000e3b2868ff1cfb155ee18c692654f8083af04574d414c8fa2 SHA512 5b8d1e493830b7838b3ca76148dfc2e2af1cbaa660bd80958777698210c3347a1308f0725d40b10f8f12877daf99c4ba4837e4fa857a781ae912ee167369bafd
 DIST llvm-project-20.1.2.src.tar.xz 147229028 BLAKE2B 90be4c8b69d44bc3a295f3f63081f999cf35d05e9157ab104d403a5d5b6c3ff97b57a89598d2ec0413988f93a23f97f485b2216bbf0630cade754e9830246621 SHA512 c95e088e471d49c6692c8af1a7e40924467e4c269dada019c44455687c9f0e6a213b9b3ac8afa4e3d20cb3e757afc3400152e7cd06981aeebd61591cac15580d
 DIST llvm-project-20.1.2.src.tar.xz.sig 566 BLAKE2B fa4637cd41bddb0425567b17bcb0ba4800ec9a689897610febfba7f49f8218d6aff7bb8f7ecf6bb927397096ca49c0c1817b243e5ba7fc0ba51993ef532dadeb SHA512 d3f6a350ebd9884878442ea202f58328f8e85c30cfb150371e4af7fa8dc560bb421cd0f49f49e6bc95f57de6c06543633f0b2799aab9590750f440e099424e01
+DIST llvm-project-20.1.3.src.tar.xz 147212776 BLAKE2B c738abb66dc82580a8f511829bcf87dd8deb8381bd073cd547e4eb02097c0190fa06488e5500cefce95953315432ee6ae3c103c491d08eca4b019e043691fc12 SHA512 79d6cfd10075ec9d05b9a359c09579e07a2caff9167518519457daee3e37a818100da6712804916880797ecb0b4891b18dc52a03b534e1b9d1d4bb5ba8d5ad1e
+DIST llvm-project-20.1.3.src.tar.xz.sig 566 BLAKE2B 1b584b61f773013f3964dbd0ee026c00e702cfe758acdacc7bffb6793c42eea638cc812bd1a3cddf210a9ad7d98f707d4f1e748d360b66427fded79f24d8610b SHA512 4fd3815cd94113234e66083f955993a95c888cbb89d5baf611b76765511e102af9f1e880cbacc709f0be8785abd5abbfb0ce391793308dfec3c248a9b348e492
 DIST llvm-project-f3e6473df46fd920e09e06e57a5549eb8e3a8bd3.tar.gz 229893133 BLAKE2B 20a14a99fb55070c30b05298916875d7f7b5476bc47c72f675204adb62daf1126bc83f2e7e51867042cb0ea415f04ef32653118116d01f666a82dc888fb6e999 SHA512 f11eac15fc1d96232267d588fa1c41ebbff3367b1fccf1cfd43f3290f682b73ffa78f2336a2a155c41ef67cf4e6f43019b152996d790f03acf4b9b732a3cf4b7
 DIST llvm-project-fa4ac19f0fc937e30fd7711dad98d0fcdb34f8ba.tar.gz 230556403 BLAKE2B 8fde662380b5a9889cb6399ceeffedf0b42a5b6c329768f2cad15338a4fd4650217057955014de53b56825a6f5770042f5678d8df4118b6310d4d1b12a19c888 SHA512 ef8a3ac7aed43f14b490d198de27f15bad0a63b89273d47daca0aa33a1edf79eecafb26f7f7ec64e6482b99fba5d7e9080c59887e33bb1ce18d8e3ae1938a1ae

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.3.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.3.ebuild
new file mode 100644
index 000000000000..2a111afc93eb
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.3.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
+IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-04-19  6:29 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-04-19  6:29 UTC (permalink / raw
  To: gentoo-commits

commit:     7337b2757396f2158f92bae925cfc328a5d5b494
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 19 06:25:53 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Apr 19 06:25:53 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7337b275

llvm-runtimes/compiler-rt-sanitizers: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   4 -
 .../compiler-rt-sanitizers-20.1.2.ebuild           | 223 ---------------------
 ...ompiler-rt-sanitizers-21.0.0_pre20250405.ebuild | 222 --------------------
 ...ompiler-rt-sanitizers-21.0.0_pre20250412.ebuild | 222 --------------------
 4 files changed, 671 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 62e4f723bdb8..2a102604e01a 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -13,9 +13,5 @@ DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b8577
 DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8
 DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
 DIST llvm-project-1cf9f764ac41fb3492e10c78640dd50e616388db.tar.gz 230651433 BLAKE2B b71d459de99a741f9eb5809fcb44e6d9a17d3295bf11755d2b04a83fff6257eb4e5856826581c000e3b2868ff1cfb155ee18c692654f8083af04574d414c8fa2 SHA512 5b8d1e493830b7838b3ca76148dfc2e2af1cbaa660bd80958777698210c3347a1308f0725d40b10f8f12877daf99c4ba4837e4fa857a781ae912ee167369bafd
-DIST llvm-project-20.1.2.src.tar.xz 147229028 BLAKE2B 90be4c8b69d44bc3a295f3f63081f999cf35d05e9157ab104d403a5d5b6c3ff97b57a89598d2ec0413988f93a23f97f485b2216bbf0630cade754e9830246621 SHA512 c95e088e471d49c6692c8af1a7e40924467e4c269dada019c44455687c9f0e6a213b9b3ac8afa4e3d20cb3e757afc3400152e7cd06981aeebd61591cac15580d
-DIST llvm-project-20.1.2.src.tar.xz.sig 566 BLAKE2B fa4637cd41bddb0425567b17bcb0ba4800ec9a689897610febfba7f49f8218d6aff7bb8f7ecf6bb927397096ca49c0c1817b243e5ba7fc0ba51993ef532dadeb SHA512 d3f6a350ebd9884878442ea202f58328f8e85c30cfb150371e4af7fa8dc560bb421cd0f49f49e6bc95f57de6c06543633f0b2799aab9590750f440e099424e01
 DIST llvm-project-20.1.3.src.tar.xz 147212776 BLAKE2B c738abb66dc82580a8f511829bcf87dd8deb8381bd073cd547e4eb02097c0190fa06488e5500cefce95953315432ee6ae3c103c491d08eca4b019e043691fc12 SHA512 79d6cfd10075ec9d05b9a359c09579e07a2caff9167518519457daee3e37a818100da6712804916880797ecb0b4891b18dc52a03b534e1b9d1d4bb5ba8d5ad1e
 DIST llvm-project-20.1.3.src.tar.xz.sig 566 BLAKE2B 1b584b61f773013f3964dbd0ee026c00e702cfe758acdacc7bffb6793c42eea638cc812bd1a3cddf210a9ad7d98f707d4f1e748d360b66427fded79f24d8610b SHA512 4fd3815cd94113234e66083f955993a95c888cbb89d5baf611b76765511e102af9f1e880cbacc709f0be8785abd5abbfb0ce391793308dfec3c248a9b348e492
-DIST llvm-project-f3e6473df46fd920e09e06e57a5549eb8e3a8bd3.tar.gz 229893133 BLAKE2B 20a14a99fb55070c30b05298916875d7f7b5476bc47c72f675204adb62daf1126bc83f2e7e51867042cb0ea415f04ef32653118116d01f666a82dc888fb6e999 SHA512 f11eac15fc1d96232267d588fa1c41ebbff3367b1fccf1cfd43f3290f682b73ffa78f2336a2a155c41ef67cf4e6f43019b152996d790f03acf4b9b732a3cf4b7
-DIST llvm-project-fa4ac19f0fc937e30fd7711dad98d0fcdb34f8ba.tar.gz 230556403 BLAKE2B 8fde662380b5a9889cb6399ceeffedf0b42a5b6c329768f2cad15338a4fd4650217057955014de53b56825a6f5770042f5678d8df4118b6310d4d1b12a19c888 SHA512 ef8a3ac7aed43f14b490d198de27f15bad0a63b89273d47daca0aa33a1edf79eecafb26f7f7ec64e6482b99fba5d7e9080c59887e33bb1ce18d8e3ae1938a1ae

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.2.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.2.ebuild
deleted file mode 100644
index 2a111afc93eb..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.2.ebuild
+++ /dev/null
@@ -1,223 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
-IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250405.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250405.ebuild
deleted file mode 100644
index 09cf1645bd1a..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250405.ebuild
+++ /dev/null
@@ -1,222 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250412.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250412.ebuild
deleted file mode 100644
index 09cf1645bd1a..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250412.ebuild
+++ /dev/null
@@ -1,222 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
-}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-04-20 11:50 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-04-20 11:50 UTC (permalink / raw
  To: gentoo-commits

commit:     b2e69931b52656d20afabe3995f29e1d7c09ed15
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 20 11:49:35 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Apr 20 11:49:35 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b2e69931

llvm-runtimes/compiler-rt-sanitizers: Add 21.0.0_pre20250420 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-21.0.0_pre20250420.ebuild | 223 +++++++++++++++++++++
 2 files changed, 224 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 2a102604e01a..851e946b2e64 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -15,3 +15,4 @@ DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf
 DIST llvm-project-1cf9f764ac41fb3492e10c78640dd50e616388db.tar.gz 230651433 BLAKE2B b71d459de99a741f9eb5809fcb44e6d9a17d3295bf11755d2b04a83fff6257eb4e5856826581c000e3b2868ff1cfb155ee18c692654f8083af04574d414c8fa2 SHA512 5b8d1e493830b7838b3ca76148dfc2e2af1cbaa660bd80958777698210c3347a1308f0725d40b10f8f12877daf99c4ba4837e4fa857a781ae912ee167369bafd
 DIST llvm-project-20.1.3.src.tar.xz 147212776 BLAKE2B c738abb66dc82580a8f511829bcf87dd8deb8381bd073cd547e4eb02097c0190fa06488e5500cefce95953315432ee6ae3c103c491d08eca4b019e043691fc12 SHA512 79d6cfd10075ec9d05b9a359c09579e07a2caff9167518519457daee3e37a818100da6712804916880797ecb0b4891b18dc52a03b534e1b9d1d4bb5ba8d5ad1e
 DIST llvm-project-20.1.3.src.tar.xz.sig 566 BLAKE2B 1b584b61f773013f3964dbd0ee026c00e702cfe758acdacc7bffb6793c42eea638cc812bd1a3cddf210a9ad7d98f707d4f1e748d360b66427fded79f24d8610b SHA512 4fd3815cd94113234e66083f955993a95c888cbb89d5baf611b76765511e102af9f1e880cbacc709f0be8785abd5abbfb0ce391793308dfec3c248a9b348e492
+DIST llvm-project-ac8fc09688e10e983b99224b5dc5cbbeeedb1879.tar.gz 231567089 BLAKE2B f7878f114c908b21d179854bc693716b34b963612c6b5172789a37cd21fa316720d4e9498bc7679058db3e822ed240bfdafd85bfd00154914d747d0c0ed1cb48 SHA512 4c39db8b22fa087ca96c3b4541ec77ba8a826a126b4e93b0650e59b3622b22b329f60fa3780dd4572fdece409fd5833eda473046d7547f6ee3ac8aadb8f2fc34

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250420.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250420.ebuild
new file mode 100644
index 000000000000..4e87f3ac02fa
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250420.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-04-26 15:59 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-04-26 15:59 UTC (permalink / raw
  To: gentoo-commits

commit:     88363d90cd86af6e245f183f55ba87c66f0e9c8c
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 26 13:11:37 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Apr 26 15:59:22 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=88363d90

llvm-runtimes/compiler-rt-sanitizers: Add 21.0.0_pre20250426 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-21.0.0_pre20250426.ebuild | 223 +++++++++++++++++++++
 2 files changed, 224 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 0d73de29f231..12b0a452d863 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -15,3 +15,4 @@ DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf
 DIST llvm-project-20.1.3.src.tar.xz 147212776 BLAKE2B c738abb66dc82580a8f511829bcf87dd8deb8381bd073cd547e4eb02097c0190fa06488e5500cefce95953315432ee6ae3c103c491d08eca4b019e043691fc12 SHA512 79d6cfd10075ec9d05b9a359c09579e07a2caff9167518519457daee3e37a818100da6712804916880797ecb0b4891b18dc52a03b534e1b9d1d4bb5ba8d5ad1e
 DIST llvm-project-20.1.3.src.tar.xz.sig 566 BLAKE2B 1b584b61f773013f3964dbd0ee026c00e702cfe758acdacc7bffb6793c42eea638cc812bd1a3cddf210a9ad7d98f707d4f1e748d360b66427fded79f24d8610b SHA512 4fd3815cd94113234e66083f955993a95c888cbb89d5baf611b76765511e102af9f1e880cbacc709f0be8785abd5abbfb0ce391793308dfec3c248a9b348e492
 DIST llvm-project-ac8fc09688e10e983b99224b5dc5cbbeeedb1879.tar.gz 231567089 BLAKE2B f7878f114c908b21d179854bc693716b34b963612c6b5172789a37cd21fa316720d4e9498bc7679058db3e822ed240bfdafd85bfd00154914d747d0c0ed1cb48 SHA512 4c39db8b22fa087ca96c3b4541ec77ba8a826a126b4e93b0650e59b3622b22b329f60fa3780dd4572fdece409fd5833eda473046d7547f6ee3ac8aadb8f2fc34
+DIST llvm-project-b9e32749d273a957e60170d6e7ef205fd1fb1834.tar.gz 232146799 BLAKE2B f7c02bf1e6b9958114f07827ff00264774a7ad54b51c6867d7e66d7c9a94a36fb84f371d7d30c2f094a0d539b565fb651786ed9e0641f2bea8d982073f1a8ac0 SHA512 2d81ead79c606e00549d5205584f1bd272e4d7adf4b376fdba19e7fb719710e80b00b22ee3500ab2b990178fa044ca9fcf45bd2063e62e6a217b11775bb3b163

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250426.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250426.ebuild
new file mode 100644
index 000000000000..4e87f3ac02fa
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250426.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-05-03 10:07 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-05-03 10:07 UTC (permalink / raw
  To: gentoo-commits

commit:     dad42969d3c75bf7cdca02196356c863c98126e9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat May  3 06:24:11 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat May  3 10:00:30 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dad42969

llvm-runtimes/compiler-rt-sanitizers: Bump to 20.1.4

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   2 +
 .../compiler-rt-sanitizers-20.1.4.ebuild           | 223 +++++++++++++++++++++
 2 files changed, 225 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 12b0a452d863..869f59ed31c3 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -14,5 +14,7 @@ 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.3.src.tar.xz 147212776 BLAKE2B c738abb66dc82580a8f511829bcf87dd8deb8381bd073cd547e4eb02097c0190fa06488e5500cefce95953315432ee6ae3c103c491d08eca4b019e043691fc12 SHA512 79d6cfd10075ec9d05b9a359c09579e07a2caff9167518519457daee3e37a818100da6712804916880797ecb0b4891b18dc52a03b534e1b9d1d4bb5ba8d5ad1e
 DIST llvm-project-20.1.3.src.tar.xz.sig 566 BLAKE2B 1b584b61f773013f3964dbd0ee026c00e702cfe758acdacc7bffb6793c42eea638cc812bd1a3cddf210a9ad7d98f707d4f1e748d360b66427fded79f24d8610b SHA512 4fd3815cd94113234e66083f955993a95c888cbb89d5baf611b76765511e102af9f1e880cbacc709f0be8785abd5abbfb0ce391793308dfec3c248a9b348e492
+DIST llvm-project-20.1.4.src.tar.xz 147228104 BLAKE2B 756799d104f94931a6bdca182c4b23983aad9c7ea5acf77f2f5519540137a8dc9a4ec227293c6ba7ddc7fb0fa10cc92e65808f1c07f04bea34a304bb0e2df612 SHA512 acace8175a5468c7e84a89d1564e147e81fe92b6d910f22b058edf72094b27176677c06dbe141fccfbabdad77165f957bbf1ec8aff7bffc85f0757c0103f7e59
+DIST llvm-project-20.1.4.src.tar.xz.sig 566 BLAKE2B 1f0f057dedf938190554ca1a51d9837da9faa38851edb7fe6f305769f3048b5507b010cb81b97550a13c9141e03480009602ff092ddd65b42483b0f79c1523e8 SHA512 634414ea877724ebdeeabe3bb1079d78938aa05dba2243d5458cf211c35444124dc01fa73a593548290196f8c0e40e1e6a4a72571dba4b716b5781c656c6f9b2
 DIST llvm-project-ac8fc09688e10e983b99224b5dc5cbbeeedb1879.tar.gz 231567089 BLAKE2B f7878f114c908b21d179854bc693716b34b963612c6b5172789a37cd21fa316720d4e9498bc7679058db3e822ed240bfdafd85bfd00154914d747d0c0ed1cb48 SHA512 4c39db8b22fa087ca96c3b4541ec77ba8a826a126b4e93b0650e59b3622b22b329f60fa3780dd4572fdece409fd5833eda473046d7547f6ee3ac8aadb8f2fc34
 DIST llvm-project-b9e32749d273a957e60170d6e7ef205fd1fb1834.tar.gz 232146799 BLAKE2B f7c02bf1e6b9958114f07827ff00264774a7ad54b51c6867d7e66d7c9a94a36fb84f371d7d30c2f094a0d539b565fb651786ed9e0641f2bea8d982073f1a8ac0 SHA512 2d81ead79c606e00549d5205584f1bd272e4d7adf4b376fdba19e7fb719710e80b00b22ee3500ab2b990178fa044ca9fcf45bd2063e62e6a217b11775bb3b163

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.4.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.4.ebuild
new file mode 100644
index 000000000000..2a111afc93eb
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.4.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
+IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-05-03 19:42 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-05-03 19:42 UTC (permalink / raw
  To: gentoo-commits

commit:     d56e82f4448671f6b4c3f00ffeb4b64c607a34e6
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat May  3 19:30:51 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat May  3 19:42:03 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d56e82f4

llvm-runtimes/compiler-rt-sanitizers: Add 21.0.0_pre20250503 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-21.0.0_pre20250503.ebuild | 223 +++++++++++++++++++++
 2 files changed, 224 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 869f59ed31c3..2489295b612d 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -18,3 +18,4 @@ DIST llvm-project-20.1.4.src.tar.xz 147228104 BLAKE2B 756799d104f94931a6bdca182c
 DIST llvm-project-20.1.4.src.tar.xz.sig 566 BLAKE2B 1f0f057dedf938190554ca1a51d9837da9faa38851edb7fe6f305769f3048b5507b010cb81b97550a13c9141e03480009602ff092ddd65b42483b0f79c1523e8 SHA512 634414ea877724ebdeeabe3bb1079d78938aa05dba2243d5458cf211c35444124dc01fa73a593548290196f8c0e40e1e6a4a72571dba4b716b5781c656c6f9b2
 DIST llvm-project-ac8fc09688e10e983b99224b5dc5cbbeeedb1879.tar.gz 231567089 BLAKE2B f7878f114c908b21d179854bc693716b34b963612c6b5172789a37cd21fa316720d4e9498bc7679058db3e822ed240bfdafd85bfd00154914d747d0c0ed1cb48 SHA512 4c39db8b22fa087ca96c3b4541ec77ba8a826a126b4e93b0650e59b3622b22b329f60fa3780dd4572fdece409fd5833eda473046d7547f6ee3ac8aadb8f2fc34
 DIST llvm-project-b9e32749d273a957e60170d6e7ef205fd1fb1834.tar.gz 232146799 BLAKE2B f7c02bf1e6b9958114f07827ff00264774a7ad54b51c6867d7e66d7c9a94a36fb84f371d7d30c2f094a0d539b565fb651786ed9e0641f2bea8d982073f1a8ac0 SHA512 2d81ead79c606e00549d5205584f1bd272e4d7adf4b376fdba19e7fb719710e80b00b22ee3500ab2b990178fa044ca9fcf45bd2063e62e6a217b11775bb3b163
+DIST llvm-project-d1e38eab95b07b422194427474521623916bbf29.tar.gz 232705423 BLAKE2B bf5200c2223d8cdf7c34c84876d8cfeb9429cb6535ced226b1bf9ab468b6401fe3da8759f0fc1ab3112927304c5f74db29b18be60fa961ce99471caa2c6a1f33 SHA512 8fae137725ad4eb0f5bab73895c65b34d1e36ea039c9fb3978c908ecc6023094d84919b97dc405b86e2dd32f585d87b29cee02293c8156d10a8371b516ca5e7a

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250503.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250503.ebuild
new file mode 100644
index 000000000000..4e87f3ac02fa
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250503.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-05-10 13:03 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-05-10 13:03 UTC (permalink / raw
  To: gentoo-commits

commit:     4734561f69322c8eee48ec7bdea5113f5e48cd59
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat May 10 13:01:00 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat May 10 13:01:00 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4734561f

llvm-runtimes/compiler-rt-sanitizers: Add 21.0.0_pre20250510 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-21.0.0_pre20250510.ebuild | 223 +++++++++++++++++++++
 2 files changed, 224 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 2489295b612d..89746b312629 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -19,3 +19,4 @@ DIST llvm-project-20.1.4.src.tar.xz.sig 566 BLAKE2B 1f0f057dedf938190554ca1a51d9
 DIST llvm-project-ac8fc09688e10e983b99224b5dc5cbbeeedb1879.tar.gz 231567089 BLAKE2B f7878f114c908b21d179854bc693716b34b963612c6b5172789a37cd21fa316720d4e9498bc7679058db3e822ed240bfdafd85bfd00154914d747d0c0ed1cb48 SHA512 4c39db8b22fa087ca96c3b4541ec77ba8a826a126b4e93b0650e59b3622b22b329f60fa3780dd4572fdece409fd5833eda473046d7547f6ee3ac8aadb8f2fc34
 DIST llvm-project-b9e32749d273a957e60170d6e7ef205fd1fb1834.tar.gz 232146799 BLAKE2B f7c02bf1e6b9958114f07827ff00264774a7ad54b51c6867d7e66d7c9a94a36fb84f371d7d30c2f094a0d539b565fb651786ed9e0641f2bea8d982073f1a8ac0 SHA512 2d81ead79c606e00549d5205584f1bd272e4d7adf4b376fdba19e7fb719710e80b00b22ee3500ab2b990178fa044ca9fcf45bd2063e62e6a217b11775bb3b163
 DIST llvm-project-d1e38eab95b07b422194427474521623916bbf29.tar.gz 232705423 BLAKE2B bf5200c2223d8cdf7c34c84876d8cfeb9429cb6535ced226b1bf9ab468b6401fe3da8759f0fc1ab3112927304c5f74db29b18be60fa961ce99471caa2c6a1f33 SHA512 8fae137725ad4eb0f5bab73895c65b34d1e36ea039c9fb3978c908ecc6023094d84919b97dc405b86e2dd32f585d87b29cee02293c8156d10a8371b516ca5e7a
+DIST llvm-project-fcb4bda9dcfcdb64d8b069e8416c75d7a1a62e52.tar.gz 233149231 BLAKE2B 95a7a012a1e747afcf83ace3785c8ef6a3e10f6075e59eb1c5b077cc9edae244b648f341bc0ac6a45b2afc8f7ffe130a90a741a04465523f30f8322566386703 SHA512 b46f0c90a1c56750cada24183ca382b267a2d2faa0db7d77a8bdd4e94e6303e57d565cf85447b3c0e0efdd3750efef1e10e8ce6f1fe8f1ae10ee31d25ddf3fb7

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250510.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250510.ebuild
new file mode 100644
index 000000000000..4e87f3ac02fa
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250510.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-05-16  9:31 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-05-16  9:31 UTC (permalink / raw
  To: gentoo-commits

commit:     bde64a95f91835aacaf119caf400bbe69b7c7a60
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu May 15 19:33:02 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri May 16 09:31:07 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bde64a95

llvm-runtimes/compiler-rt-sanitizers: Add 20.1.5

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   2 +
 .../compiler-rt-sanitizers-20.1.5.ebuild           | 223 +++++++++++++++++++++
 2 files changed, 225 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 89746b312629..6ca32fefe3e0 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -16,6 +16,8 @@ DIST llvm-project-20.1.3.src.tar.xz 147212776 BLAKE2B c738abb66dc82580a8f511829b
 DIST llvm-project-20.1.3.src.tar.xz.sig 566 BLAKE2B 1b584b61f773013f3964dbd0ee026c00e702cfe758acdacc7bffb6793c42eea638cc812bd1a3cddf210a9ad7d98f707d4f1e748d360b66427fded79f24d8610b SHA512 4fd3815cd94113234e66083f955993a95c888cbb89d5baf611b76765511e102af9f1e880cbacc709f0be8785abd5abbfb0ce391793308dfec3c248a9b348e492
 DIST llvm-project-20.1.4.src.tar.xz 147228104 BLAKE2B 756799d104f94931a6bdca182c4b23983aad9c7ea5acf77f2f5519540137a8dc9a4ec227293c6ba7ddc7fb0fa10cc92e65808f1c07f04bea34a304bb0e2df612 SHA512 acace8175a5468c7e84a89d1564e147e81fe92b6d910f22b058edf72094b27176677c06dbe141fccfbabdad77165f957bbf1ec8aff7bffc85f0757c0103f7e59
 DIST llvm-project-20.1.4.src.tar.xz.sig 566 BLAKE2B 1f0f057dedf938190554ca1a51d9837da9faa38851edb7fe6f305769f3048b5507b010cb81b97550a13c9141e03480009602ff092ddd65b42483b0f79c1523e8 SHA512 634414ea877724ebdeeabe3bb1079d78938aa05dba2243d5458cf211c35444124dc01fa73a593548290196f8c0e40e1e6a4a72571dba4b716b5781c656c6f9b2
+DIST llvm-project-20.1.5.src.tar.xz 147239812 BLAKE2B 992ebec16a11f32f234ba8b9f228f27939cdaeaaba474a08da2564ba3075bb10ab92a44be704666bdd77f8294321d43da40bb9245c411a86cd53cff88223a91f SHA512 3b7e657714fa9b943c75ec9eeb903018ab4713b1c3370746ba68893220729f178dabb971515741519f24e7ad0fa1dbce1345572bcf1d1fc1e5de97e4d2900a6b
+DIST llvm-project-20.1.5.src.tar.xz.sig 566 BLAKE2B c8be202b475726817893e1fe5fe2d3ab02ea1d3130ccfdf4c2c29b46e6aef79091de78e8a9aef59416ac1120bb3af6fdf47464db9b27b8fb4cb4194b0444e571 SHA512 c1bd30af5f7bfa6cac73994e9068d2791d9d27e86375fb15ad426422ad00cb43ade226c1b91ecc7daa950efae62c86300e4290d59649310f4e8fab5bdcb264fe
 DIST llvm-project-ac8fc09688e10e983b99224b5dc5cbbeeedb1879.tar.gz 231567089 BLAKE2B f7878f114c908b21d179854bc693716b34b963612c6b5172789a37cd21fa316720d4e9498bc7679058db3e822ed240bfdafd85bfd00154914d747d0c0ed1cb48 SHA512 4c39db8b22fa087ca96c3b4541ec77ba8a826a126b4e93b0650e59b3622b22b329f60fa3780dd4572fdece409fd5833eda473046d7547f6ee3ac8aadb8f2fc34
 DIST llvm-project-b9e32749d273a957e60170d6e7ef205fd1fb1834.tar.gz 232146799 BLAKE2B f7c02bf1e6b9958114f07827ff00264774a7ad54b51c6867d7e66d7c9a94a36fb84f371d7d30c2f094a0d539b565fb651786ed9e0641f2bea8d982073f1a8ac0 SHA512 2d81ead79c606e00549d5205584f1bd272e4d7adf4b376fdba19e7fb719710e80b00b22ee3500ab2b990178fa044ca9fcf45bd2063e62e6a217b11775bb3b163
 DIST llvm-project-d1e38eab95b07b422194427474521623916bbf29.tar.gz 232705423 BLAKE2B bf5200c2223d8cdf7c34c84876d8cfeb9429cb6535ced226b1bf9ab468b6401fe3da8759f0fc1ab3112927304c5f74db29b18be60fa961ce99471caa2c6a1f33 SHA512 8fae137725ad4eb0f5bab73895c65b34d1e36ea039c9fb3978c908ecc6023094d84919b97dc405b86e2dd32f585d87b29cee02293c8156d10a8371b516ca5e7a

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.5.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.5.ebuild
new file mode 100644
index 000000000000..2a111afc93eb
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.5.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
+IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-05-17  5:31 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-05-17  5:31 UTC (permalink / raw
  To: gentoo-commits

commit:     13f2de82ccad55f75ad953e40a1124e130b97bbf
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat May 17 05:27:52 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat May 17 05:27:52 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=13f2de82

llvm-runtimes/compiler-rt-sanitizers: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   7 -
 .../compiler-rt-sanitizers-20.1.3.ebuild           | 223 ---------------------
 .../compiler-rt-sanitizers-20.1.4.ebuild           | 223 ---------------------
 ...ompiler-rt-sanitizers-21.0.0_pre20250420.ebuild | 223 ---------------------
 ...ompiler-rt-sanitizers-21.0.0_pre20250426.ebuild | 223 ---------------------
 ...ompiler-rt-sanitizers-21.0.0_pre20250503.ebuild | 223 ---------------------
 6 files changed, 1122 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 6ca32fefe3e0..74ce45d02088 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -12,13 +12,6 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8
 DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
-DIST llvm-project-20.1.3.src.tar.xz 147212776 BLAKE2B c738abb66dc82580a8f511829bcf87dd8deb8381bd073cd547e4eb02097c0190fa06488e5500cefce95953315432ee6ae3c103c491d08eca4b019e043691fc12 SHA512 79d6cfd10075ec9d05b9a359c09579e07a2caff9167518519457daee3e37a818100da6712804916880797ecb0b4891b18dc52a03b534e1b9d1d4bb5ba8d5ad1e
-DIST llvm-project-20.1.3.src.tar.xz.sig 566 BLAKE2B 1b584b61f773013f3964dbd0ee026c00e702cfe758acdacc7bffb6793c42eea638cc812bd1a3cddf210a9ad7d98f707d4f1e748d360b66427fded79f24d8610b SHA512 4fd3815cd94113234e66083f955993a95c888cbb89d5baf611b76765511e102af9f1e880cbacc709f0be8785abd5abbfb0ce391793308dfec3c248a9b348e492
-DIST llvm-project-20.1.4.src.tar.xz 147228104 BLAKE2B 756799d104f94931a6bdca182c4b23983aad9c7ea5acf77f2f5519540137a8dc9a4ec227293c6ba7ddc7fb0fa10cc92e65808f1c07f04bea34a304bb0e2df612 SHA512 acace8175a5468c7e84a89d1564e147e81fe92b6d910f22b058edf72094b27176677c06dbe141fccfbabdad77165f957bbf1ec8aff7bffc85f0757c0103f7e59
-DIST llvm-project-20.1.4.src.tar.xz.sig 566 BLAKE2B 1f0f057dedf938190554ca1a51d9837da9faa38851edb7fe6f305769f3048b5507b010cb81b97550a13c9141e03480009602ff092ddd65b42483b0f79c1523e8 SHA512 634414ea877724ebdeeabe3bb1079d78938aa05dba2243d5458cf211c35444124dc01fa73a593548290196f8c0e40e1e6a4a72571dba4b716b5781c656c6f9b2
 DIST llvm-project-20.1.5.src.tar.xz 147239812 BLAKE2B 992ebec16a11f32f234ba8b9f228f27939cdaeaaba474a08da2564ba3075bb10ab92a44be704666bdd77f8294321d43da40bb9245c411a86cd53cff88223a91f SHA512 3b7e657714fa9b943c75ec9eeb903018ab4713b1c3370746ba68893220729f178dabb971515741519f24e7ad0fa1dbce1345572bcf1d1fc1e5de97e4d2900a6b
 DIST llvm-project-20.1.5.src.tar.xz.sig 566 BLAKE2B c8be202b475726817893e1fe5fe2d3ab02ea1d3130ccfdf4c2c29b46e6aef79091de78e8a9aef59416ac1120bb3af6fdf47464db9b27b8fb4cb4194b0444e571 SHA512 c1bd30af5f7bfa6cac73994e9068d2791d9d27e86375fb15ad426422ad00cb43ade226c1b91ecc7daa950efae62c86300e4290d59649310f4e8fab5bdcb264fe
-DIST llvm-project-ac8fc09688e10e983b99224b5dc5cbbeeedb1879.tar.gz 231567089 BLAKE2B f7878f114c908b21d179854bc693716b34b963612c6b5172789a37cd21fa316720d4e9498bc7679058db3e822ed240bfdafd85bfd00154914d747d0c0ed1cb48 SHA512 4c39db8b22fa087ca96c3b4541ec77ba8a826a126b4e93b0650e59b3622b22b329f60fa3780dd4572fdece409fd5833eda473046d7547f6ee3ac8aadb8f2fc34
-DIST llvm-project-b9e32749d273a957e60170d6e7ef205fd1fb1834.tar.gz 232146799 BLAKE2B f7c02bf1e6b9958114f07827ff00264774a7ad54b51c6867d7e66d7c9a94a36fb84f371d7d30c2f094a0d539b565fb651786ed9e0641f2bea8d982073f1a8ac0 SHA512 2d81ead79c606e00549d5205584f1bd272e4d7adf4b376fdba19e7fb719710e80b00b22ee3500ab2b990178fa044ca9fcf45bd2063e62e6a217b11775bb3b163
-DIST llvm-project-d1e38eab95b07b422194427474521623916bbf29.tar.gz 232705423 BLAKE2B bf5200c2223d8cdf7c34c84876d8cfeb9429cb6535ced226b1bf9ab468b6401fe3da8759f0fc1ab3112927304c5f74db29b18be60fa961ce99471caa2c6a1f33 SHA512 8fae137725ad4eb0f5bab73895c65b34d1e36ea039c9fb3978c908ecc6023094d84919b97dc405b86e2dd32f585d87b29cee02293c8156d10a8371b516ca5e7a
 DIST llvm-project-fcb4bda9dcfcdb64d8b069e8416c75d7a1a62e52.tar.gz 233149231 BLAKE2B 95a7a012a1e747afcf83ace3785c8ef6a3e10f6075e59eb1c5b077cc9edae244b648f341bc0ac6a45b2afc8f7ffe130a90a741a04465523f30f8322566386703 SHA512 b46f0c90a1c56750cada24183ca382b267a2d2faa0db7d77a8bdd4e94e6303e57d565cf85447b3c0e0efdd3750efef1e10e8ce6f1fe8f1ae10ee31d25ddf3fb7

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.3.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.3.ebuild
deleted file mode 100644
index 2a111afc93eb..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.3.ebuild
+++ /dev/null
@@ -1,223 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
-IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.4.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.4.ebuild
deleted file mode 100644
index 2a111afc93eb..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.4.ebuild
+++ /dev/null
@@ -1,223 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
-IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250420.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250420.ebuild
deleted file mode 100644
index 4e87f3ac02fa..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250420.ebuild
+++ /dev/null
@@ -1,223 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
-		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
-		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
-		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
-		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
-
-		# 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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250426.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250426.ebuild
deleted file mode 100644
index 4e87f3ac02fa..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250426.ebuild
+++ /dev/null
@@ -1,223 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
-		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
-		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
-		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
-		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
-
-		# 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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250503.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250503.ebuild
deleted file mode 100644
index 4e87f3ac02fa..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250503.ebuild
+++ /dev/null
@@ -1,223 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
-		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
-		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
-		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
-		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
-
-		# 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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
-}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-05-17 12:59 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-05-17 12:59 UTC (permalink / raw
  To: gentoo-commits

commit:     0d3280e17aefcb6646f045c04cd741c2c3bd3709
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat May 17 12:50:31 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat May 17 12:59:05 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0d3280e1

llvm-runtimes/compiler-rt-sanitizers: Add 21.0.0_pre20250517 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-21.0.0_pre20250517.ebuild | 223 +++++++++++++++++++++
 2 files changed, 224 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 74ce45d02088..762c383dd647 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -14,4 +14,5 @@ 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.5.src.tar.xz 147239812 BLAKE2B 992ebec16a11f32f234ba8b9f228f27939cdaeaaba474a08da2564ba3075bb10ab92a44be704666bdd77f8294321d43da40bb9245c411a86cd53cff88223a91f SHA512 3b7e657714fa9b943c75ec9eeb903018ab4713b1c3370746ba68893220729f178dabb971515741519f24e7ad0fa1dbce1345572bcf1d1fc1e5de97e4d2900a6b
 DIST llvm-project-20.1.5.src.tar.xz.sig 566 BLAKE2B c8be202b475726817893e1fe5fe2d3ab02ea1d3130ccfdf4c2c29b46e6aef79091de78e8a9aef59416ac1120bb3af6fdf47464db9b27b8fb4cb4194b0444e571 SHA512 c1bd30af5f7bfa6cac73994e9068d2791d9d27e86375fb15ad426422ad00cb43ade226c1b91ecc7daa950efae62c86300e4290d59649310f4e8fab5bdcb264fe
+DIST llvm-project-aaaae99663dbb220c6c27fa9cacf93fcb8f20e7c.tar.gz 235477577 BLAKE2B 46a3b7863cdfde75045dfcab95f8c9eee21f8ce80cee700284bc174adbb4038f23bba3b15635c88c2723ed0d20e6fddcf43c92b9e540c885af48e81bfa8c82aa SHA512 bf8e7f28622f91da57698220fca592105d109c38801b5e0312f5e290bca1ae32ef393179cfe912c194dbf85ece9bd6ee63b587157b0fcd6007bbaff3324e77ed
 DIST llvm-project-fcb4bda9dcfcdb64d8b069e8416c75d7a1a62e52.tar.gz 233149231 BLAKE2B 95a7a012a1e747afcf83ace3785c8ef6a3e10f6075e59eb1c5b077cc9edae244b648f341bc0ac6a45b2afc8f7ffe130a90a741a04465523f30f8322566386703 SHA512 b46f0c90a1c56750cada24183ca382b267a2d2faa0db7d77a8bdd4e94e6303e57d565cf85447b3c0e0efdd3750efef1e10e8ce6f1fe8f1ae10ee31d25ddf3fb7

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250517.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250517.ebuild
new file mode 100644
index 000000000000..4e87f3ac02fa
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250517.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-05-24 11:56 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-05-24 11:56 UTC (permalink / raw
  To: gentoo-commits

commit:     73f1bf43999a033f447259df5b6344bce6a38287
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat May 24 10:56:49 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat May 24 11:56:30 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=73f1bf43

llvm-runtimes/compiler-rt-sanitizers: Add 21.0.0_pre20250523 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-21.0.0_pre20250523.ebuild | 223 +++++++++++++++++++++
 2 files changed, 224 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 762c383dd647..793980209747 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -14,5 +14,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.5.src.tar.xz 147239812 BLAKE2B 992ebec16a11f32f234ba8b9f228f27939cdaeaaba474a08da2564ba3075bb10ab92a44be704666bdd77f8294321d43da40bb9245c411a86cd53cff88223a91f SHA512 3b7e657714fa9b943c75ec9eeb903018ab4713b1c3370746ba68893220729f178dabb971515741519f24e7ad0fa1dbce1345572bcf1d1fc1e5de97e4d2900a6b
 DIST llvm-project-20.1.5.src.tar.xz.sig 566 BLAKE2B c8be202b475726817893e1fe5fe2d3ab02ea1d3130ccfdf4c2c29b46e6aef79091de78e8a9aef59416ac1120bb3af6fdf47464db9b27b8fb4cb4194b0444e571 SHA512 c1bd30af5f7bfa6cac73994e9068d2791d9d27e86375fb15ad426422ad00cb43ade226c1b91ecc7daa950efae62c86300e4290d59649310f4e8fab5bdcb264fe
+DIST llvm-project-7dc7c155251c0008d5d59b84f0c9056365740f11.tar.gz 235921149 BLAKE2B 2867e313cd25fee6975da9bf65365fa51ed8780f3f8fc95983fb6e8f5b2c38c6d7f75a386b0ec2d74bafad74472973f4e4e603a5a0754465ac2b75942b8e90c6 SHA512 f8bc383ff2a1af836357150efa5728c7df3cd862f56ffaf12b5fc56ef631f1048276ff00b89fcf4d224576fa1eda9811d971886aae0855a4d29178060eb89a49
 DIST llvm-project-aaaae99663dbb220c6c27fa9cacf93fcb8f20e7c.tar.gz 235477577 BLAKE2B 46a3b7863cdfde75045dfcab95f8c9eee21f8ce80cee700284bc174adbb4038f23bba3b15635c88c2723ed0d20e6fddcf43c92b9e540c885af48e81bfa8c82aa SHA512 bf8e7f28622f91da57698220fca592105d109c38801b5e0312f5e290bca1ae32ef393179cfe912c194dbf85ece9bd6ee63b587157b0fcd6007bbaff3324e77ed
 DIST llvm-project-fcb4bda9dcfcdb64d8b069e8416c75d7a1a62e52.tar.gz 233149231 BLAKE2B 95a7a012a1e747afcf83ace3785c8ef6a3e10f6075e59eb1c5b077cc9edae244b648f341bc0ac6a45b2afc8f7ffe130a90a741a04465523f30f8322566386703 SHA512 b46f0c90a1c56750cada24183ca382b267a2d2faa0db7d77a8bdd4e94e6303e57d565cf85447b3c0e0efdd3750efef1e10e8ce6f1fe8f1ae10ee31d25ddf3fb7

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250523.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250523.ebuild
new file mode 100644
index 000000000000..4e87f3ac02fa
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250523.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-05-28 10:50 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-05-28 10:50 UTC (permalink / raw
  To: gentoo-commits

commit:     cdd7bc9660c99ad8404c03deddb4a4e99f842210
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed May 28 10:48:19 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed May 28 10:48:19 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cdd7bc96

llvm-runtimes/compiler-rt-sanitizers: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   2 -
 ...ompiler-rt-sanitizers-21.0.0_pre20250510.ebuild | 223 ---------------------
 ...ompiler-rt-sanitizers-21.0.0_pre20250517.ebuild | 223 ---------------------
 3 files changed, 448 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 793980209747..bdb5368d1c1e 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -15,5 +15,3 @@ DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf
 DIST llvm-project-20.1.5.src.tar.xz 147239812 BLAKE2B 992ebec16a11f32f234ba8b9f228f27939cdaeaaba474a08da2564ba3075bb10ab92a44be704666bdd77f8294321d43da40bb9245c411a86cd53cff88223a91f SHA512 3b7e657714fa9b943c75ec9eeb903018ab4713b1c3370746ba68893220729f178dabb971515741519f24e7ad0fa1dbce1345572bcf1d1fc1e5de97e4d2900a6b
 DIST llvm-project-20.1.5.src.tar.xz.sig 566 BLAKE2B c8be202b475726817893e1fe5fe2d3ab02ea1d3130ccfdf4c2c29b46e6aef79091de78e8a9aef59416ac1120bb3af6fdf47464db9b27b8fb4cb4194b0444e571 SHA512 c1bd30af5f7bfa6cac73994e9068d2791d9d27e86375fb15ad426422ad00cb43ade226c1b91ecc7daa950efae62c86300e4290d59649310f4e8fab5bdcb264fe
 DIST llvm-project-7dc7c155251c0008d5d59b84f0c9056365740f11.tar.gz 235921149 BLAKE2B 2867e313cd25fee6975da9bf65365fa51ed8780f3f8fc95983fb6e8f5b2c38c6d7f75a386b0ec2d74bafad74472973f4e4e603a5a0754465ac2b75942b8e90c6 SHA512 f8bc383ff2a1af836357150efa5728c7df3cd862f56ffaf12b5fc56ef631f1048276ff00b89fcf4d224576fa1eda9811d971886aae0855a4d29178060eb89a49
-DIST llvm-project-aaaae99663dbb220c6c27fa9cacf93fcb8f20e7c.tar.gz 235477577 BLAKE2B 46a3b7863cdfde75045dfcab95f8c9eee21f8ce80cee700284bc174adbb4038f23bba3b15635c88c2723ed0d20e6fddcf43c92b9e540c885af48e81bfa8c82aa SHA512 bf8e7f28622f91da57698220fca592105d109c38801b5e0312f5e290bca1ae32ef393179cfe912c194dbf85ece9bd6ee63b587157b0fcd6007bbaff3324e77ed
-DIST llvm-project-fcb4bda9dcfcdb64d8b069e8416c75d7a1a62e52.tar.gz 233149231 BLAKE2B 95a7a012a1e747afcf83ace3785c8ef6a3e10f6075e59eb1c5b077cc9edae244b648f341bc0ac6a45b2afc8f7ffe130a90a741a04465523f30f8322566386703 SHA512 b46f0c90a1c56750cada24183ca382b267a2d2faa0db7d77a8bdd4e94e6303e57d565cf85447b3c0e0efdd3750efef1e10e8ce6f1fe8f1ae10ee31d25ddf3fb7

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250510.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250510.ebuild
deleted file mode 100644
index 4e87f3ac02fa..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250510.ebuild
+++ /dev/null
@@ -1,223 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
-		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
-		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
-		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
-		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
-
-		# 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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250517.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250517.ebuild
deleted file mode 100644
index 4e87f3ac02fa..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250517.ebuild
+++ /dev/null
@@ -1,223 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..13} )
-inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
-		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
-		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
-		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
-		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
-
-		# 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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
-}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-05-28 11:54 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-05-28 11:54 UTC (permalink / raw
  To: gentoo-commits

commit:     1daa01c985fd520dac0dd89bac9535f002b603fc
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed May 28 10:52:57 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed May 28 11:53:52 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1daa01c9

llvm-runtimes/compiler-rt-sanitizers: Add 21.0.0_pre20250528 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-21.0.0_pre20250528.ebuild | 223 +++++++++++++++++++++
 2 files changed, 224 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index bdb5368d1c1e..dc0bbecc9b14 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -15,3 +15,4 @@ DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf
 DIST llvm-project-20.1.5.src.tar.xz 147239812 BLAKE2B 992ebec16a11f32f234ba8b9f228f27939cdaeaaba474a08da2564ba3075bb10ab92a44be704666bdd77f8294321d43da40bb9245c411a86cd53cff88223a91f SHA512 3b7e657714fa9b943c75ec9eeb903018ab4713b1c3370746ba68893220729f178dabb971515741519f24e7ad0fa1dbce1345572bcf1d1fc1e5de97e4d2900a6b
 DIST llvm-project-20.1.5.src.tar.xz.sig 566 BLAKE2B c8be202b475726817893e1fe5fe2d3ab02ea1d3130ccfdf4c2c29b46e6aef79091de78e8a9aef59416ac1120bb3af6fdf47464db9b27b8fb4cb4194b0444e571 SHA512 c1bd30af5f7bfa6cac73994e9068d2791d9d27e86375fb15ad426422ad00cb43ade226c1b91ecc7daa950efae62c86300e4290d59649310f4e8fab5bdcb264fe
 DIST llvm-project-7dc7c155251c0008d5d59b84f0c9056365740f11.tar.gz 235921149 BLAKE2B 2867e313cd25fee6975da9bf65365fa51ed8780f3f8fc95983fb6e8f5b2c38c6d7f75a386b0ec2d74bafad74472973f4e4e603a5a0754465ac2b75942b8e90c6 SHA512 f8bc383ff2a1af836357150efa5728c7df3cd862f56ffaf12b5fc56ef631f1048276ff00b89fcf4d224576fa1eda9811d971886aae0855a4d29178060eb89a49
+DIST llvm-project-f8ca9e59cb438bd35b29a6d7cf6d72f50673aec9.tar.gz 236069626 BLAKE2B 5547770a22e5fd0240c0e435d0b0af0ebd789aa72d6829250917f2df605f9a95c6756bc1afc9b611b176c1ba8394c757b94789511b98b38c6ade6cca4c9ce7f6 SHA512 b1fffd7d4f5ede9bcda759bc59cdd47373a44a3bbd31a50d1d213e438a59f1da3cc96780a1d17ecaeb14454822921476406a6c37493354169f72e1fab7b3a3be

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250528.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250528.ebuild
new file mode 100644
index 000000000000..8c72f1a6a3e9
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250528.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..13} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-05-29  4:22 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-05-29  4:22 UTC (permalink / raw
  To: gentoo-commits

commit:     336ff8136fc69a76a757b8db651336ee0bb5391b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed May 28 16:06:37 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu May 29 04:16:17 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=336ff813

llvm-runtimes/compiler-rt-sanitizers: Enable py3.14 in 21.0.0.9999

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 .../compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0.9999.ebuild    | 2 +-
 .../compiler-rt-sanitizers-21.0.0_pre20250528.ebuild                    | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0.9999.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0.9999.ebuild
index 4e87f3ac02fa..e0bba032ceec 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0.9999.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0.9999.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-PYTHON_COMPAT=( python3_{10..13} )
+PYTHON_COMPAT=( python3_{11..14} )
 inherit check-reqs cmake flag-o-matic llvm.org llvm-utils python-any-r1
 
 DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)"

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250528.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250528.ebuild
index 8c72f1a6a3e9..e0bba032ceec 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250528.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250528.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-PYTHON_COMPAT=( python3_{11..13} )
+PYTHON_COMPAT=( python3_{11..14} )
 inherit check-reqs cmake flag-o-matic llvm.org llvm-utils python-any-r1
 
 DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)"


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-05-29 20:22 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-05-29 20:22 UTC (permalink / raw
  To: gentoo-commits

commit:     95328884512271c684be03952d1094a4bf0225c0
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu May 29 15:14:43 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu May 29 20:22:33 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=95328884

llvm-runtimes/compiler-rt-sanitizers: Bump to 20.1.6

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   2 +
 .../compiler-rt-sanitizers-20.1.6.ebuild           | 223 +++++++++++++++++++++
 2 files changed, 225 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index dc0bbecc9b14..9a4c4a87ddf6 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -14,5 +14,7 @@ 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.5.src.tar.xz 147239812 BLAKE2B 992ebec16a11f32f234ba8b9f228f27939cdaeaaba474a08da2564ba3075bb10ab92a44be704666bdd77f8294321d43da40bb9245c411a86cd53cff88223a91f SHA512 3b7e657714fa9b943c75ec9eeb903018ab4713b1c3370746ba68893220729f178dabb971515741519f24e7ad0fa1dbce1345572bcf1d1fc1e5de97e4d2900a6b
 DIST llvm-project-20.1.5.src.tar.xz.sig 566 BLAKE2B c8be202b475726817893e1fe5fe2d3ab02ea1d3130ccfdf4c2c29b46e6aef79091de78e8a9aef59416ac1120bb3af6fdf47464db9b27b8fb4cb4194b0444e571 SHA512 c1bd30af5f7bfa6cac73994e9068d2791d9d27e86375fb15ad426422ad00cb43ade226c1b91ecc7daa950efae62c86300e4290d59649310f4e8fab5bdcb264fe
+DIST llvm-project-20.1.6.src.tar.xz 147239668 BLAKE2B ccd86730fdea3dd40ebf054661b854b9332204389db2205e1e7b2a7f140fc187cacb34de68aa9a63c15c1e17b1d0976c080cfdee7e2cb6b0dd5570001d84be12 SHA512 aae652fdc61bda3f80b1340a3270b687355bfb6817f4bc05dac2268a2f8c5fc677eadb515cda7c8518005f1dc39e7ce5d1c34bbc5a25f106ef8e6c8f1ecfdf6d
+DIST llvm-project-20.1.6.src.tar.xz.sig 566 BLAKE2B b7c48cfc1f6c9f513dadb8837b150e22043c215bf4958a8036c4077aeebdcf7c18223b0ce0ffbcacb2c7ddfeb06611b1022528ee04d3efda1ee1aa58367a9203 SHA512 0884048ff164a1f5caed0f1aabec173630a08ece98cf793d21b77fc969501e4f03daec39ae0fb124ad34a3436ceae66452e36a42c309f19790b7a87652482691
 DIST llvm-project-7dc7c155251c0008d5d59b84f0c9056365740f11.tar.gz 235921149 BLAKE2B 2867e313cd25fee6975da9bf65365fa51ed8780f3f8fc95983fb6e8f5b2c38c6d7f75a386b0ec2d74bafad74472973f4e4e603a5a0754465ac2b75942b8e90c6 SHA512 f8bc383ff2a1af836357150efa5728c7df3cd862f56ffaf12b5fc56ef631f1048276ff00b89fcf4d224576fa1eda9811d971886aae0855a4d29178060eb89a49
 DIST llvm-project-f8ca9e59cb438bd35b29a6d7cf6d72f50673aec9.tar.gz 236069626 BLAKE2B 5547770a22e5fd0240c0e435d0b0af0ebd789aa72d6829250917f2df605f9a95c6756bc1afc9b611b176c1ba8394c757b94789511b98b38c6ade6cca4c9ce7f6 SHA512 b1fffd7d4f5ede9bcda759bc59cdd47373a44a3bbd31a50d1d213e438a59f1da3cc96780a1d17ecaeb14454822921476406a6c37493354169f72e1fab7b3a3be

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.6.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.6.ebuild
new file mode 100644
index 000000000000..d1d4a88f6acd
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.6.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
+IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-06-07 18:05 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-06-07 18:05 UTC (permalink / raw
  To: gentoo-commits

commit:     f24ee23ec834295cbdb2a645e80cd177bff21bd5
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jun  7 17:36:43 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jun  7 18:05:24 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f24ee23e

llvm-runtimes/compiler-rt-sanitizers: Add 21.0.0_pre20250607 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-21.0.0_pre20250607.ebuild | 223 +++++++++++++++++++++
 2 files changed, 224 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 34227a35ffde..1325c868dd87 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -14,4 +14,5 @@ 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.6.src.tar.xz 147239668 BLAKE2B ccd86730fdea3dd40ebf054661b854b9332204389db2205e1e7b2a7f140fc187cacb34de68aa9a63c15c1e17b1d0976c080cfdee7e2cb6b0dd5570001d84be12 SHA512 aae652fdc61bda3f80b1340a3270b687355bfb6817f4bc05dac2268a2f8c5fc677eadb515cda7c8518005f1dc39e7ce5d1c34bbc5a25f106ef8e6c8f1ecfdf6d
 DIST llvm-project-20.1.6.src.tar.xz.sig 566 BLAKE2B b7c48cfc1f6c9f513dadb8837b150e22043c215bf4958a8036c4077aeebdcf7c18223b0ce0ffbcacb2c7ddfeb06611b1022528ee04d3efda1ee1aa58367a9203 SHA512 0884048ff164a1f5caed0f1aabec173630a08ece98cf793d21b77fc969501e4f03daec39ae0fb124ad34a3436ceae66452e36a42c309f19790b7a87652482691
+DIST llvm-project-23d0c7348aacdfcb145a69e533a14131bae830cc.tar.gz 237123683 BLAKE2B 6713c82809a9793510615f54c3ad9b8b1d2449939b0c48ab10acd1a0db43b712b229356173c90b514bc91c08e9b2be7f8e54f797661b9743ae8c3aaa9acee15f SHA512 de94ab38f1d46124638d6e0650142a1612db27871ffa339c56224aba94a77f8ae6eb8c68ad0a5ed3fe000d7bff309d324cdb66a095be3c8211abfe600659bf1a
 DIST llvm-project-f8ca9e59cb438bd35b29a6d7cf6d72f50673aec9.tar.gz 236069626 BLAKE2B 5547770a22e5fd0240c0e435d0b0af0ebd789aa72d6829250917f2df605f9a95c6756bc1afc9b611b176c1ba8394c757b94789511b98b38c6ade6cca4c9ce7f6 SHA512 b1fffd7d4f5ede9bcda759bc59cdd47373a44a3bbd31a50d1d213e438a59f1da3cc96780a1d17ecaeb14454822921476406a6c37493354169f72e1fab7b3a3be

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250607.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250607.ebuild
new file mode 100644
index 000000000000..e0bba032ceec
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250607.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-06-14  7:15 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-06-14  7:15 UTC (permalink / raw
  To: gentoo-commits

commit:     1b9e9ad64c326a8d18ad78fb31a3550464242c4a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 14 03:37:42 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jun 14 07:15:38 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1b9e9ad6

llvm-runtimes/compiler-rt-sanitizers: Bump to 20.1.7

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   2 +
 .../compiler-rt-sanitizers-20.1.7.ebuild           | 223 +++++++++++++++++++++
 2 files changed, 225 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 1325c868dd87..b1e6bba031b5 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -14,5 +14,7 @@ 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.6.src.tar.xz 147239668 BLAKE2B ccd86730fdea3dd40ebf054661b854b9332204389db2205e1e7b2a7f140fc187cacb34de68aa9a63c15c1e17b1d0976c080cfdee7e2cb6b0dd5570001d84be12 SHA512 aae652fdc61bda3f80b1340a3270b687355bfb6817f4bc05dac2268a2f8c5fc677eadb515cda7c8518005f1dc39e7ce5d1c34bbc5a25f106ef8e6c8f1ecfdf6d
 DIST llvm-project-20.1.6.src.tar.xz.sig 566 BLAKE2B b7c48cfc1f6c9f513dadb8837b150e22043c215bf4958a8036c4077aeebdcf7c18223b0ce0ffbcacb2c7ddfeb06611b1022528ee04d3efda1ee1aa58367a9203 SHA512 0884048ff164a1f5caed0f1aabec173630a08ece98cf793d21b77fc969501e4f03daec39ae0fb124ad34a3436ceae66452e36a42c309f19790b7a87652482691
+DIST llvm-project-20.1.7.src.tar.xz 147245448 BLAKE2B f7c57d1eba4e97e875b624dec3fb1b261a0203de7200366de5b3edcfbca2a170c41df46e91cd9cb78ae2af66120aef95334f5eb9628a1489e921c6bdf4cccfe8 SHA512 c2dbf6a468a8152409db7ff52902ecf8768a1d0328e386999f4f3672613903e1c10bddbba66b8553a6222952f8edb66266947f1fb21d0b09ae741e6249b6d1fa
+DIST llvm-project-20.1.7.src.tar.xz.sig 566 BLAKE2B 72ce2a18c211cfce9581a9e3e71f1c55cf18672aa355267581220e1a89e3327f9e16107970b69bb8f10f390baa5e286487bdc4cc0a7d9155ec13a4977cd3f472 SHA512 eff885059d547f57b98bda1fc9631f716ca6c650cd48203d9ed5443a6afb9a2d4d91d3f5c8618e307c0a44b3040bce61fdc6bce965073adc537655755d9f2112
 DIST llvm-project-23d0c7348aacdfcb145a69e533a14131bae830cc.tar.gz 237123683 BLAKE2B 6713c82809a9793510615f54c3ad9b8b1d2449939b0c48ab10acd1a0db43b712b229356173c90b514bc91c08e9b2be7f8e54f797661b9743ae8c3aaa9acee15f SHA512 de94ab38f1d46124638d6e0650142a1612db27871ffa339c56224aba94a77f8ae6eb8c68ad0a5ed3fe000d7bff309d324cdb66a095be3c8211abfe600659bf1a
 DIST llvm-project-f8ca9e59cb438bd35b29a6d7cf6d72f50673aec9.tar.gz 236069626 BLAKE2B 5547770a22e5fd0240c0e435d0b0af0ebd789aa72d6829250917f2df605f9a95c6756bc1afc9b611b176c1ba8394c757b94789511b98b38c6ade6cca4c9ce7f6 SHA512 b1fffd7d4f5ede9bcda759bc59cdd47373a44a3bbd31a50d1d213e438a59f1da3cc96780a1d17ecaeb14454822921476406a6c37493354169f72e1fab7b3a3be

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.7.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.7.ebuild
new file mode 100644
index 000000000000..d1d4a88f6acd
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.7.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
+IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-06-14 11:02 Arthur Zamarin
  0 siblings, 0 replies; 106+ messages in thread
From: Arthur Zamarin @ 2025-06-14 11:02 UTC (permalink / raw
  To: gentoo-commits

commit:     a6b0ad1a2288a3c89497218813d9282f29eb43de
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 14 11:01:51 2025 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Sat Jun 14 11:01:51 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a6b0ad1a

llvm-runtimes/compiler-rt-sanitizers: Stabilize 20.1.7 arm64, #958081

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 .../compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.7.ebuild         | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.7.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.7.ebuild
index d1d4a88f6acd..29148fce1bf6 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.7.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.7.ebuild
@@ -11,7 +11,7 @@ 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 ~ppc-macos ~x64-macos"
+KEYWORDS="~amd64 ~arm arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
 IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
 # base targets
 IUSE+=" +ctx-profile +libfuzzer +memprof +orc +profile +xray"


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-06-14 14:24 Sam James
  0 siblings, 0 replies; 106+ messages in thread
From: Sam James @ 2025-06-14 14:24 UTC (permalink / raw
  To: gentoo-commits

commit:     14bc85a61a68542fe6937b05aa6dc92b0f5e2680
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 14 14:21:59 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Jun 14 14:23:29 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=14bc85a6

llvm-runtimes/compiler-rt-sanitizers: Stabilize 20.1.7 x86, #958081

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.7.ebuild         | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.7.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.7.ebuild
index 9b0ed4659780..efd752c1da5c 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.7.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.7.ebuild
@@ -11,7 +11,7 @@ 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 ~ppc-macos ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc64 ~riscv x86 ~amd64-linux ~ppc-macos ~x64-macos"
 IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
 # base targets
 IUSE+=" +ctx-profile +libfuzzer +memprof +orc +profile +xray"


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-06-28 14:55 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-06-28 14:55 UTC (permalink / raw
  To: gentoo-commits

commit:     349a72da953eea7823395ffa9c2c68b6cc35cb0a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 28 14:52:55 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jun 28 14:54:50 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=349a72da

llvm-runtimes/compiler-rt-sanitizers: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 -
 ...ompiler-rt-sanitizers-21.0.0_pre20250607.ebuild | 223 ---------------------
 2 files changed, 224 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index d29bb20fca28..b4dde6a4218c 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -14,5 +14,4 @@ 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.7.src.tar.xz 147245448 BLAKE2B f7c57d1eba4e97e875b624dec3fb1b261a0203de7200366de5b3edcfbca2a170c41df46e91cd9cb78ae2af66120aef95334f5eb9628a1489e921c6bdf4cccfe8 SHA512 c2dbf6a468a8152409db7ff52902ecf8768a1d0328e386999f4f3672613903e1c10bddbba66b8553a6222952f8edb66266947f1fb21d0b09ae741e6249b6d1fa
 DIST llvm-project-20.1.7.src.tar.xz.sig 566 BLAKE2B 72ce2a18c211cfce9581a9e3e71f1c55cf18672aa355267581220e1a89e3327f9e16107970b69bb8f10f390baa5e286487bdc4cc0a7d9155ec13a4977cd3f472 SHA512 eff885059d547f57b98bda1fc9631f716ca6c650cd48203d9ed5443a6afb9a2d4d91d3f5c8618e307c0a44b3040bce61fdc6bce965073adc537655755d9f2112
-DIST llvm-project-23d0c7348aacdfcb145a69e533a14131bae830cc.tar.gz 237123683 BLAKE2B 6713c82809a9793510615f54c3ad9b8b1d2449939b0c48ab10acd1a0db43b712b229356173c90b514bc91c08e9b2be7f8e54f797661b9743ae8c3aaa9acee15f SHA512 de94ab38f1d46124638d6e0650142a1612db27871ffa339c56224aba94a77f8ae6eb8c68ad0a5ed3fe000d7bff309d324cdb66a095be3c8211abfe600659bf1a
 DIST llvm-project-814ac2e3735e52c1162ac495c24158e0ac256520.tar.gz 237400805 BLAKE2B 59cbf2f7f5c3c1c2c187c72a40b94b05b2d3286678f78764bc7555d75ead40d2fd60b1807bbe6470f012a5958d0466b1f6b2bc842bba36731e7697a79307532b SHA512 63f31f28b7f01b840d88bfa3ffc4107ccffc623b26c7d0dc3e720a864ce7ca907dcbdcfaec7e31a1711220528a89175334518711a83824c82389343c2e4008d7

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250607.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250607.ebuild
deleted file mode 100644
index e0bba032ceec..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250607.ebuild
+++ /dev/null
@@ -1,223 +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 check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
-		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
-		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
-		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
-		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
-
-		# 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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
-}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-06-28 15:03 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-06-28 15:03 UTC (permalink / raw
  To: gentoo-commits

commit:     1d953648627850e70102af70e0807f818647eeef
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jun 28 15:00:59 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jun 28 15:00:59 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1d953648

llvm-runtimes/compiler-rt-sanitizers: Add 21.0.0_pre20250628 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-21.0.0_pre20250628.ebuild | 223 +++++++++++++++++++++
 2 files changed, 224 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index b4dde6a4218c..4a228c982991 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -15,3 +15,4 @@ DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf
 DIST llvm-project-20.1.7.src.tar.xz 147245448 BLAKE2B f7c57d1eba4e97e875b624dec3fb1b261a0203de7200366de5b3edcfbca2a170c41df46e91cd9cb78ae2af66120aef95334f5eb9628a1489e921c6bdf4cccfe8 SHA512 c2dbf6a468a8152409db7ff52902ecf8768a1d0328e386999f4f3672613903e1c10bddbba66b8553a6222952f8edb66266947f1fb21d0b09ae741e6249b6d1fa
 DIST llvm-project-20.1.7.src.tar.xz.sig 566 BLAKE2B 72ce2a18c211cfce9581a9e3e71f1c55cf18672aa355267581220e1a89e3327f9e16107970b69bb8f10f390baa5e286487bdc4cc0a7d9155ec13a4977cd3f472 SHA512 eff885059d547f57b98bda1fc9631f716ca6c650cd48203d9ed5443a6afb9a2d4d91d3f5c8618e307c0a44b3040bce61fdc6bce965073adc537655755d9f2112
 DIST llvm-project-814ac2e3735e52c1162ac495c24158e0ac256520.tar.gz 237400805 BLAKE2B 59cbf2f7f5c3c1c2c187c72a40b94b05b2d3286678f78764bc7555d75ead40d2fd60b1807bbe6470f012a5958d0466b1f6b2bc842bba36731e7697a79307532b SHA512 63f31f28b7f01b840d88bfa3ffc4107ccffc623b26c7d0dc3e720a864ce7ca907dcbdcfaec7e31a1711220528a89175334518711a83824c82389343c2e4008d7
+DIST llvm-project-e34e02128ec5eb89e36a8f0f7307dcbcfecabbee.tar.gz 238210997 BLAKE2B 80ce4689e3c71a413e36645cdc83590f3492ac3ee39b8bf8844ec50d0b68f40da4c19a7f284625e3550eb78a90d433e74092b5639bcebadf0e0220c36b111cb3 SHA512 5c1ab21b242d1ba62172ae6268a126fd1b049f85b039434b4ff28b0411ec60d46e96e05560b9b85d0420494afdd573b4043999cb34ace508a48f763d4eb5b7aa

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250628.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250628.ebuild
new file mode 100644
index 000000000000..e0bba032ceec
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250628.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-07-09 18:49 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-07-09 18:49 UTC (permalink / raw
  To: gentoo-commits

commit:     cd7c460cfaf3c5d67485fecf503f54caa8cd91f5
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Jul  9 14:39:38 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Jul  9 18:48:54 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cd7c460c

llvm-runtimes/compiler-rt-sanitizers: Bump to 20.1.8

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   2 +
 .../compiler-rt-sanitizers-20.1.8.ebuild           | 223 +++++++++++++++++++++
 2 files changed, 225 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 4a228c982991..dd4d8aa8464a 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -14,5 +14,7 @@ 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.7.src.tar.xz 147245448 BLAKE2B f7c57d1eba4e97e875b624dec3fb1b261a0203de7200366de5b3edcfbca2a170c41df46e91cd9cb78ae2af66120aef95334f5eb9628a1489e921c6bdf4cccfe8 SHA512 c2dbf6a468a8152409db7ff52902ecf8768a1d0328e386999f4f3672613903e1c10bddbba66b8553a6222952f8edb66266947f1fb21d0b09ae741e6249b6d1fa
 DIST llvm-project-20.1.7.src.tar.xz.sig 566 BLAKE2B 72ce2a18c211cfce9581a9e3e71f1c55cf18672aa355267581220e1a89e3327f9e16107970b69bb8f10f390baa5e286487bdc4cc0a7d9155ec13a4977cd3f472 SHA512 eff885059d547f57b98bda1fc9631f716ca6c650cd48203d9ed5443a6afb9a2d4d91d3f5c8618e307c0a44b3040bce61fdc6bce965073adc537655755d9f2112
+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-814ac2e3735e52c1162ac495c24158e0ac256520.tar.gz 237400805 BLAKE2B 59cbf2f7f5c3c1c2c187c72a40b94b05b2d3286678f78764bc7555d75ead40d2fd60b1807bbe6470f012a5958d0466b1f6b2bc842bba36731e7697a79307532b SHA512 63f31f28b7f01b840d88bfa3ffc4107ccffc623b26c7d0dc3e720a864ce7ca907dcbdcfaec7e31a1711220528a89175334518711a83824c82389343c2e4008d7
 DIST llvm-project-e34e02128ec5eb89e36a8f0f7307dcbcfecabbee.tar.gz 238210997 BLAKE2B 80ce4689e3c71a413e36645cdc83590f3492ac3ee39b8bf8844ec50d0b68f40da4c19a7f284625e3550eb78a90d433e74092b5639bcebadf0e0220c36b111cb3 SHA512 5c1ab21b242d1ba62172ae6268a126fd1b049f85b039434b4ff28b0411ec60d46e96e05560b9b85d0420494afdd573b4043999cb34ace508a48f763d4eb5b7aa

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
new file mode 100644
index 000000000000..d1d4a88f6acd
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
+IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-07-13 20:03 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-07-13 20:03 UTC (permalink / raw
  To: gentoo-commits

commit:     e14ccfa3e6c3a504425155fa912c4ae7f777a3d9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 13 19:58:30 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Jul 13 20:03:32 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e14ccfa3

llvm-runtimes/compiler-rt-sanitizers: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 -
 ...ompiler-rt-sanitizers-21.0.0_pre20250614.ebuild | 223 ---------------------
 2 files changed, 224 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index c95afeffd5f3..8f974cb482ae 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -16,6 +16,5 @@ DIST llvm-project-20.1.7.src.tar.xz 147245448 BLAKE2B f7c57d1eba4e97e875b624dec3
 DIST llvm-project-20.1.7.src.tar.xz.sig 566 BLAKE2B 72ce2a18c211cfce9581a9e3e71f1c55cf18672aa355267581220e1a89e3327f9e16107970b69bb8f10f390baa5e286487bdc4cc0a7d9155ec13a4977cd3f472 SHA512 eff885059d547f57b98bda1fc9631f716ca6c650cd48203d9ed5443a6afb9a2d4d91d3f5c8618e307c0a44b3040bce61fdc6bce965073adc537655755d9f2112
 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-814ac2e3735e52c1162ac495c24158e0ac256520.tar.gz 237400805 BLAKE2B 59cbf2f7f5c3c1c2c187c72a40b94b05b2d3286678f78764bc7555d75ead40d2fd60b1807bbe6470f012a5958d0466b1f6b2bc842bba36731e7697a79307532b SHA512 63f31f28b7f01b840d88bfa3ffc4107ccffc623b26c7d0dc3e720a864ce7ca907dcbdcfaec7e31a1711220528a89175334518711a83824c82389343c2e4008d7
 DIST llvm-project-b6313b381ac0e83012ea11b4549cd8cb39b686d2.tar.gz 242588863 BLAKE2B 81e7db20b849ce7a5c7c6b03d1e62a2e225eb68473509baf0adc9e74a2f759d251b61b018528d5db93f77b65ac355a71ede81bec7e97f9c71a41f34a5d8625bd SHA512 258b99ef79d7efd4ec58d6a5370969b8032149f05fea4dfa841398ed59a550219f4223cd79581bc6fc4428dd9b09f44abf9f5369348831f463b9eb401a614d61
 DIST llvm-project-e34e02128ec5eb89e36a8f0f7307dcbcfecabbee.tar.gz 238210997 BLAKE2B 80ce4689e3c71a413e36645cdc83590f3492ac3ee39b8bf8844ec50d0b68f40da4c19a7f284625e3550eb78a90d433e74092b5639bcebadf0e0220c36b111cb3 SHA512 5c1ab21b242d1ba62172ae6268a126fd1b049f85b039434b4ff28b0411ec60d46e96e05560b9b85d0420494afdd573b4043999cb34ace508a48f763d4eb5b7aa

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250614.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250614.ebuild
deleted file mode 100644
index e0bba032ceec..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250614.ebuild
+++ /dev/null
@@ -1,223 +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 check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
-		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
-		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
-		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
-		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
-
-		# 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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
-}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-07-19  6:50 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-07-19  6:50 UTC (permalink / raw
  To: gentoo-commits

commit:     4edfd0970316160907eb2c1ac9b7fd56751d10ef
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 19 06:44:45 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jul 19 06:44:45 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4edfd097

llvm-runtimes/compiler-rt-sanitizers: 21.x live is now 21.1.0.9999

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 ...izers-21.0.0.9999.ebuild => compiler-rt-sanitizers-21.1.0.9999.ebuild} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0.9999.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0.9999.ebuild
similarity index 100%
rename from llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0.9999.ebuild
rename to llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0.9999.ebuild


^ permalink raw reply	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-07-20  8:24 Sam James
  0 siblings, 0 replies; 106+ messages in thread
From: Sam James @ 2025-07-20  8:24 UTC (permalink / raw
  To: gentoo-commits

commit:     de56bf0a6d509c6fb2ae4b81c7a102e03267dbf0
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 20 08:23:05 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Jul 20 08:23:05 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=de56bf0a

llvm-runtimes/compiler-rt-sanitizers: Stabilize 20.1.8 x86, #960372

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild         | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
index d1d4a88f6acd..e6aea4e38d0c 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
@@ -11,7 +11,7 @@ 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 ~ppc-macos ~x64-macos"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv x86 ~amd64-linux ~ppc-macos ~x64-macos"
 IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
 # base targets
 IUSE+=" +ctx-profile +libfuzzer +memprof +orc +profile +xray"


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-07-20 14:15 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-07-20 14:15 UTC (permalink / raw
  To: gentoo-commits

commit:     6443d7964c88058d0a57a833d0848eea3c6fbde4
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 19 17:54:59 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Jul 20 14:14:48 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6443d796

llvm-runtimes/compiler-rt-sanitizers: Bump to 21.1.0_rc1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   3 +
 .../compiler-rt-sanitizers-21.1.0_rc1.ebuild       | 224 +++++++++++++++++++++
 2 files changed, 227 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 08717830b806..ec18344f7949 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -2,6 +2,7 @@ DIST llvm-gentoo-patchset-15.0.7-r6.tar.xz 25208 BLAKE2B c9fca31a053ee059c3060a9
 DIST llvm-gentoo-patchset-16.0.6-r5.tar.xz 19728 BLAKE2B 36b605401893034b2b560d26cfb57512c81eddbc35b25d9c3d1fe051b8825c38cae1b8ed999faf8fef564ca5578402d3979bc56ba0a5514dc62594d893696f41 SHA512 20a36b69dfc2b4796ce33318a28529ebdc213945ee67a983e4218117d2ee2c93be1ecb38b0e8189249c5806a442cba708e0890e1b7bf6376edec4403bcc71425
 DIST llvm-gentoo-patchset-17.0.6-r3.tar.xz 4648 BLAKE2B c709162068e83575f71a2ac2243665f47a3d42cac078daa5762bbd339d8593e8c1c5c58e2e415ba6659fe2f3c3824bd098c9be579103362084079140c0386f76 SHA512 251a33f146fcbdbe51c9e1ad7b08c2cd7d062d0b136c833cda8a5155c86080c506d575e4288cde4ba8530ca7f230c2afa63621878a8df0f23076a93c924e7d65
 DIST llvm-gentoo-patchset-18.1.8-r6.tar.xz 24816 BLAKE2B a7e9e007b05205fa7adba032ba932eba1996dd7ed6cd4cfb460a731f0d2e5fda2174f46c2ee5554ca7f82297a4baddbabc7fdfbd530056471853df957c221f2f SHA512 e1666bba6678eff3ee3666818a656ba7b8f964acb8466bd220bfbf0cc2922820e84b9daaa84c3a8ed26f3160fddea63fbc13872b007eb6922eaee462c08aeaef
+DIST llvm-gentoo-patchset-21.1.0-rc1-r1.tar.xz 13524 BLAKE2B 38644d60ac12ad8c91e8caf9a1bcb1c29b1aa03e8064dad5305eac4f13e56709d6bff053746b2f74330fabd0c3700a303ed079c351ba4c83c26ede83213a5370 SHA512 9a152dd7c52f0b6c8d3a3189c12f95cac4e6597d093eafb521715289f7e3136d8e85443782f87149edf1ec4e3d3a31d5f7dddb80e031f0c6ef568b0dadddce28
 DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5 SHA512 4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52
 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
 DIST llvm-project-16.0.6.src.tar.xz 118013488 BLAKE2B 95192d39cbd2914e5609db365965f1c00bfea6c2d653b3996bd2acef8a2b37e37f6fc8a9d2b65711ad72657e0ef52c42f733053cf65051e7822f27396c30406d SHA512 89a67ebfbbc764cc456e8825ecfa90707741f8835b1b2adffae0b227ab1fe5ca9cce75b0efaffc9ca8431cae528dc54fd838867a56a2b645344d9e82d19ab1b7
@@ -16,4 +17,6 @@ DIST llvm-project-20.1.7.src.tar.xz 147245448 BLAKE2B f7c57d1eba4e97e875b624dec3
 DIST llvm-project-20.1.7.src.tar.xz.sig 566 BLAKE2B 72ce2a18c211cfce9581a9e3e71f1c55cf18672aa355267581220e1a89e3327f9e16107970b69bb8f10f390baa5e286487bdc4cc0a7d9155ec13a4977cd3f472 SHA512 eff885059d547f57b98bda1fc9631f716ca6c650cd48203d9ed5443a6afb9a2d4d91d3f5c8618e307c0a44b3040bce61fdc6bce965073adc537655755d9f2112
 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-rc1.src.tar.xz 158955624 BLAKE2B 6a33d48f41f92cd8731011678afdf4c6f6a4581af04483626c511d1c9410d62788eb660e05cdfe418085509b576c29eec5bb07ae7ddc993e9931287657c11e03 SHA512 7ab3d1bb49bd3c5c9c1490cd865fdef027c25d64bb7f6a2a16c11c311670d08b7a214323ae4781aa0f49973deb0039ebea9d04887089df8dedf65080acdfc871
+DIST llvm-project-21.1.0-rc1.src.tar.xz.sig 438 BLAKE2B d3736b7f4bb6133e542fb3f52d1b76acc2920558e61bbbeeec6e5b7639ca54e229803b27baa4aedd2134c11fb4439064ac36e90c8c1831a503dd1754efee8da6 SHA512 6b9565f270fae4e534a160916bbd01ccd0e1295bf17df13f3be05bed4f058c0e935ba7385aba74a195d3a13868d81f2a0cf4be966b216fc6d7b56002f33eb4a0
 DIST llvm-project-b6313b381ac0e83012ea11b4549cd8cb39b686d2.tar.gz 242588863 BLAKE2B 81e7db20b849ce7a5c7c6b03d1e62a2e225eb68473509baf0adc9e74a2f759d251b61b018528d5db93f77b65ac355a71ede81bec7e97f9c71a41f34a5d8625bd SHA512 258b99ef79d7efd4ec58d6a5370969b8032149f05fea4dfa841398ed59a550219f4223cd79581bc6fc4428dd9b09f44abf9f5369348831f463b9eb401a614d61

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0_rc1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0_rc1.ebuild
new file mode 100644
index 000000000000..fca31720f844
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0_rc1.ebuild
@@ -0,0 +1,224 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_PATCHSET=${PV/_/-}-r1
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-07-22  9:20 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-07-22  9:20 UTC (permalink / raw
  To: gentoo-commits

commit:     906f603ca614eed8b7fe6a6dd660ce82485ccbac
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 22 09:15:14 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jul 22 09:15:14 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=906f603c

llvm-runtimes/compiler-rt-sanitizers: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 -
 ...ompiler-rt-sanitizers-21.0.0_pre20250713.ebuild | 223 ---------------------
 2 files changed, 224 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 019661d5635e..e9e54de83101 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -19,5 +19,4 @@ DIST llvm-project-20.1.8.src.tar.xz 147242952 BLAKE2B 7657ac0b26acc5affb1bfc91b9
 DIST llvm-project-20.1.8.src.tar.xz.sig 566 BLAKE2B 85beedfcff1195a974fab2c667b9efd4b715b3480c1b44b1b887fe32c69f72aca0d3b8fb276c03b6cc5a866622f669047aeee5ccb976640b4008ccd31dce77a4 SHA512 d74369bdb4d1b82775161ea53c9c5f3a23ce810f4df5ff617123023f9d8ce720e7d6ecc9e17f8ebd39fd9e7a9de79560abdf2ffe73bcb907a43148d43665d619
 DIST llvm-project-21.1.0-rc1.src.tar.xz 158955624 BLAKE2B 6a33d48f41f92cd8731011678afdf4c6f6a4581af04483626c511d1c9410d62788eb660e05cdfe418085509b576c29eec5bb07ae7ddc993e9931287657c11e03 SHA512 7ab3d1bb49bd3c5c9c1490cd865fdef027c25d64bb7f6a2a16c11c311670d08b7a214323ae4781aa0f49973deb0039ebea9d04887089df8dedf65080acdfc871
 DIST llvm-project-21.1.0-rc1.src.tar.xz.sig 438 BLAKE2B d3736b7f4bb6133e542fb3f52d1b76acc2920558e61bbbeeec6e5b7639ca54e229803b27baa4aedd2134c11fb4439064ac36e90c8c1831a503dd1754efee8da6 SHA512 6b9565f270fae4e534a160916bbd01ccd0e1295bf17df13f3be05bed4f058c0e935ba7385aba74a195d3a13868d81f2a0cf4be966b216fc6d7b56002f33eb4a0
-DIST llvm-project-b6313b381ac0e83012ea11b4549cd8cb39b686d2.tar.gz 242588863 BLAKE2B 81e7db20b849ce7a5c7c6b03d1e62a2e225eb68473509baf0adc9e74a2f759d251b61b018528d5db93f77b65ac355a71ede81bec7e97f9c71a41f34a5d8625bd SHA512 258b99ef79d7efd4ec58d6a5370969b8032149f05fea4dfa841398ed59a550219f4223cd79581bc6fc4428dd9b09f44abf9f5369348831f463b9eb401a614d61
 DIST llvm-project-b956f049b186fafafebc88b861982644ec3f5291.tar.gz 243231046 BLAKE2B 473de217c29f168101976e0cd8b17f22c4a310c7f5bc7f8301a63d3abe1295fe75819178ff23bc22a475753cba097ef69042b0d40d1d9e3baef159aa9f8bea93 SHA512 0fb567ad5ea357c4aacfda4c256e78098017492a14998a409d4d5f5625384810a108420589ac22e700050fdd695bea870e64d18e7a6c8e8836a581aba263d40a

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250713.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250713.ebuild
deleted file mode 100644
index e0bba032ceec..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.0.0_pre20250713.ebuild
+++ /dev/null
@@ -1,223 +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 check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
-		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
-		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
-		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
-		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
-
-		# 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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
-}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-07-26 19:53 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-07-26 19:53 UTC (permalink / raw
  To: gentoo-commits

commit:     226ded2344709f5b2d53e727b9316888968cb8d0
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Jul 26 19:22:19 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jul 26 19:22:19 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=226ded23

llvm-runtimes/compiler-rt-sanitizers: Add 22.0.0_pre20250726 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-22.0.0_pre20250726.ebuild | 223 +++++++++++++++++++++
 2 files changed, 224 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index e9e54de83101..6765e86d37d2 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -13,6 +13,7 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8
 DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
+DIST llvm-project-190fcc28af585cb06480b026afd14ed87b18adb8.tar.gz 243483242 BLAKE2B f53d743ca332dfffe1f98d51f0528e14b61e4c11904ec20c4b4c9b285f8ca7eb25eb2ce8549e21566e63ab393697c74acd4a41fddc7bab282535aa8ccf9195da SHA512 b6bcf8647f35fee209fbd8a8c297f7d89f1aac9cac4e3c62abd73171350c4c7a98572ccd175ca0a8fce8d2fe00bf5cfbeea329689b687ab6261586e894397150
 DIST llvm-project-20.1.7.src.tar.xz 147245448 BLAKE2B f7c57d1eba4e97e875b624dec3fb1b261a0203de7200366de5b3edcfbca2a170c41df46e91cd9cb78ae2af66120aef95334f5eb9628a1489e921c6bdf4cccfe8 SHA512 c2dbf6a468a8152409db7ff52902ecf8768a1d0328e386999f4f3672613903e1c10bddbba66b8553a6222952f8edb66266947f1fb21d0b09ae741e6249b6d1fa
 DIST llvm-project-20.1.7.src.tar.xz.sig 566 BLAKE2B 72ce2a18c211cfce9581a9e3e71f1c55cf18672aa355267581220e1a89e3327f9e16107970b69bb8f10f390baa5e286487bdc4cc0a7d9155ec13a4977cd3f472 SHA512 eff885059d547f57b98bda1fc9631f716ca6c650cd48203d9ed5443a6afb9a2d4d91d3f5c8618e307c0a44b3040bce61fdc6bce965073adc537655755d9f2112
 DIST llvm-project-20.1.8.src.tar.xz 147242952 BLAKE2B 7657ac0b26acc5affb1bfc91b912ade3191c5d77f3979d5a80d5f6ce52f56a7d1c448bd257398390bf10838f02faa6f3ece37a7327cced69d165ec2e2e699316 SHA512 f330e72e6a1da468569049437cc0ba7a41abb816ccece7367189344f7ebfef730f4788ac7af2bef0aa8a49341c15ab1d31e941ffa782f264d11fe0dc05470773

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250726.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250726.ebuild
new file mode 100644
index 000000000000..e0bba032ceec
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250726.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-07-29 19:04 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-07-29 19:04 UTC (permalink / raw
  To: gentoo-commits

commit:     3b4618a56073cd0100aa0270b8f92b3c0a6608c0
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 29 15:41:03 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jul 29 19:04:06 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3b4618a5

llvm-runtimes/compiler-rt-sanitizers: Add 21.1.0_rc2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   3 +
 .../compiler-rt-sanitizers-21.1.0_rc2.ebuild       | 224 +++++++++++++++++++++
 2 files changed, 227 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 6765e86d37d2..79d6bcc37173 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -3,6 +3,7 @@ DIST llvm-gentoo-patchset-16.0.6-r5.tar.xz 19728 BLAKE2B 36b605401893034b2b560d2
 DIST llvm-gentoo-patchset-17.0.6-r3.tar.xz 4648 BLAKE2B c709162068e83575f71a2ac2243665f47a3d42cac078daa5762bbd339d8593e8c1c5c58e2e415ba6659fe2f3c3824bd098c9be579103362084079140c0386f76 SHA512 251a33f146fcbdbe51c9e1ad7b08c2cd7d062d0b136c833cda8a5155c86080c506d575e4288cde4ba8530ca7f230c2afa63621878a8df0f23076a93c924e7d65
 DIST llvm-gentoo-patchset-18.1.8-r6.tar.xz 24816 BLAKE2B a7e9e007b05205fa7adba032ba932eba1996dd7ed6cd4cfb460a731f0d2e5fda2174f46c2ee5554ca7f82297a4baddbabc7fdfbd530056471853df957c221f2f SHA512 e1666bba6678eff3ee3666818a656ba7b8f964acb8466bd220bfbf0cc2922820e84b9daaa84c3a8ed26f3160fddea63fbc13872b007eb6922eaee462c08aeaef
 DIST llvm-gentoo-patchset-21.1.0-rc1-r1.tar.xz 13524 BLAKE2B 38644d60ac12ad8c91e8caf9a1bcb1c29b1aa03e8064dad5305eac4f13e56709d6bff053746b2f74330fabd0c3700a303ed079c351ba4c83c26ede83213a5370 SHA512 9a152dd7c52f0b6c8d3a3189c12f95cac4e6597d093eafb521715289f7e3136d8e85443782f87149edf1ec4e3d3a31d5f7dddb80e031f0c6ef568b0dadddce28
+DIST llvm-gentoo-patchset-21.1.0-rc2.tar.xz 948 BLAKE2B 3e075b9f37616bd1734c65fbc8b2b47ef6760871a5790f2dda2d9de53d3176ab6fdea3379476e1bfbc19e542ddc49d50cdea49e67a9e532978d78f24d18814a5 SHA512 0ed3b48b23da927ffd49d62ebf2824f19eeebfcea145a13238a39cb741de4d2f9f9f56c2c286c4989c629047196ce8d1c44c6792e85e94fb238ec80a6ff907a4
 DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5 SHA512 4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52
 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
 DIST llvm-project-16.0.6.src.tar.xz 118013488 BLAKE2B 95192d39cbd2914e5609db365965f1c00bfea6c2d653b3996bd2acef8a2b37e37f6fc8a9d2b65711ad72657e0ef52c42f733053cf65051e7822f27396c30406d SHA512 89a67ebfbbc764cc456e8825ecfa90707741f8835b1b2adffae0b227ab1fe5ca9cce75b0efaffc9ca8431cae528dc54fd838867a56a2b645344d9e82d19ab1b7
@@ -20,4 +21,6 @@ DIST llvm-project-20.1.8.src.tar.xz 147242952 BLAKE2B 7657ac0b26acc5affb1bfc91b9
 DIST llvm-project-20.1.8.src.tar.xz.sig 566 BLAKE2B 85beedfcff1195a974fab2c667b9efd4b715b3480c1b44b1b887fe32c69f72aca0d3b8fb276c03b6cc5a866622f669047aeee5ccb976640b4008ccd31dce77a4 SHA512 d74369bdb4d1b82775161ea53c9c5f3a23ce810f4df5ff617123023f9d8ce720e7d6ecc9e17f8ebd39fd9e7a9de79560abdf2ffe73bcb907a43148d43665d619
 DIST llvm-project-21.1.0-rc1.src.tar.xz 158955624 BLAKE2B 6a33d48f41f92cd8731011678afdf4c6f6a4581af04483626c511d1c9410d62788eb660e05cdfe418085509b576c29eec5bb07ae7ddc993e9931287657c11e03 SHA512 7ab3d1bb49bd3c5c9c1490cd865fdef027c25d64bb7f6a2a16c11c311670d08b7a214323ae4781aa0f49973deb0039ebea9d04887089df8dedf65080acdfc871
 DIST llvm-project-21.1.0-rc1.src.tar.xz.sig 438 BLAKE2B d3736b7f4bb6133e542fb3f52d1b76acc2920558e61bbbeeec6e5b7639ca54e229803b27baa4aedd2134c11fb4439064ac36e90c8c1831a503dd1754efee8da6 SHA512 6b9565f270fae4e534a160916bbd01ccd0e1295bf17df13f3be05bed4f058c0e935ba7385aba74a195d3a13868d81f2a0cf4be966b216fc6d7b56002f33eb4a0
+DIST llvm-project-21.1.0-rc2.src.tar.xz 158947868 BLAKE2B 8de20b0bf5219de12240561c3049de09a3253e1ebe33f84533d3f1f2ee9794b09fe2b6aca0b2fb15542b37b901be7bd3e00306cfd266ab59e2703046bcbcaf3d SHA512 0599cbe3d11d9135c355d5c60fdfda98a9689768f41baba0b8981769cc836eba8d226364d601031413c5f43ae1c4dda080ab910d60c983367b438fa32903d173
+DIST llvm-project-21.1.0-rc2.src.tar.xz.sig 438 BLAKE2B 7090c7a98e01e7bf600e4fbb23ad28d2e3bd8e72938863b59c7be8be0de2e1b3e3e2a981955165b833a95992ee086fd525919af7bcd7761073800486b3be3363 SHA512 dbe6cdd544b84d18b51f187e612de8ec05eeb9f1b462b7c4921697aaf6c6b0a00a6f4d3cf320a61cf57a886f11d47049bb5fa817f8bf835991a01b5e4a2d8c0a
 DIST llvm-project-b956f049b186fafafebc88b861982644ec3f5291.tar.gz 243231046 BLAKE2B 473de217c29f168101976e0cd8b17f22c4a310c7f5bc7f8301a63d3abe1295fe75819178ff23bc22a475753cba097ef69042b0d40d1d9e3baef159aa9f8bea93 SHA512 0fb567ad5ea357c4aacfda4c256e78098017492a14998a409d4d5f5625384810a108420589ac22e700050fdd695bea870e64d18e7a6c8e8836a581aba263d40a

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0_rc2.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0_rc2.ebuild
new file mode 100644
index 000000000000..6b61a243ebf0
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0_rc2.ebuild
@@ -0,0 +1,224 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+LLVM_PATCHSET=${PV/_/-}
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-08-01 18:54 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-08-01 18:54 UTC (permalink / raw
  To: gentoo-commits

commit:     76af603a5fe42cf27d914e32cae3731c0b19071f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Aug  1 18:49:27 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Aug  1 18:54:19 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=76af603a

llvm-runtimes/compiler-rt-sanitizers: Backport glibc-2.42 fixes

Closes: https://bugs.gentoo.org/953040
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest                          | 2 ++
 .../compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild        | 3 ++-
 .../compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild        | 1 +
 3 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 79d6bcc37173..d3e2e24cd69b 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -2,6 +2,8 @@ DIST llvm-gentoo-patchset-15.0.7-r6.tar.xz 25208 BLAKE2B c9fca31a053ee059c3060a9
 DIST llvm-gentoo-patchset-16.0.6-r5.tar.xz 19728 BLAKE2B 36b605401893034b2b560d26cfb57512c81eddbc35b25d9c3d1fe051b8825c38cae1b8ed999faf8fef564ca5578402d3979bc56ba0a5514dc62594d893696f41 SHA512 20a36b69dfc2b4796ce33318a28529ebdc213945ee67a983e4218117d2ee2c93be1ecb38b0e8189249c5806a442cba708e0890e1b7bf6376edec4403bcc71425
 DIST llvm-gentoo-patchset-17.0.6-r3.tar.xz 4648 BLAKE2B c709162068e83575f71a2ac2243665f47a3d42cac078daa5762bbd339d8593e8c1c5c58e2e415ba6659fe2f3c3824bd098c9be579103362084079140c0386f76 SHA512 251a33f146fcbdbe51c9e1ad7b08c2cd7d062d0b136c833cda8a5155c86080c506d575e4288cde4ba8530ca7f230c2afa63621878a8df0f23076a93c924e7d65
 DIST llvm-gentoo-patchset-18.1.8-r6.tar.xz 24816 BLAKE2B a7e9e007b05205fa7adba032ba932eba1996dd7ed6cd4cfb460a731f0d2e5fda2174f46c2ee5554ca7f82297a4baddbabc7fdfbd530056471853df957c221f2f SHA512 e1666bba6678eff3ee3666818a656ba7b8f964acb8466bd220bfbf0cc2922820e84b9daaa84c3a8ed26f3160fddea63fbc13872b007eb6922eaee462c08aeaef
+DIST llvm-gentoo-patchset-19.1.7-r1.tar.xz 2644 BLAKE2B c9648797628ae84f81bb66947367d58fe7add9bb28f1e50b509c3d3eab15b6b50e6f58812fd67ce63c57310f1a90b56b10fb5909223d9b24998b3d30909caf0a SHA512 0ea8d8f86647cb28c443937b016b3cf46a2b921463815a85e32ab4488ef7368294a956f13c9b77f8fa70daeaa7bd165cb5975c3b4664ed6d11a6d24f11728d73
+DIST llvm-gentoo-patchset-20.1.8.tar.xz 2168 BLAKE2B ab44783c8d8b2f536192e801082f02769eb5bb092bb14d867df9fa854455e9d986ec1074605505c8b43b2cc0b0448474e3eaec3edd89e782922b5b232db9a6e2 SHA512 664018ac834fa0b8a9abc92d64facedc92d3f48818b72d7cdd28cb7c76234ca65c2a16b4d89b4fa5406d3ea97b1d326ae2b63fd5b21b4efa04b6f46f15014542
 DIST llvm-gentoo-patchset-21.1.0-rc1-r1.tar.xz 13524 BLAKE2B 38644d60ac12ad8c91e8caf9a1bcb1c29b1aa03e8064dad5305eac4f13e56709d6bff053746b2f74330fabd0c3700a303ed079c351ba4c83c26ede83213a5370 SHA512 9a152dd7c52f0b6c8d3a3189c12f95cac4e6597d093eafb521715289f7e3136d8e85443782f87149edf1ec4e3d3a31d5f7dddb80e031f0c6ef568b0dadddce28
 DIST llvm-gentoo-patchset-21.1.0-rc2.tar.xz 948 BLAKE2B 3e075b9f37616bd1734c65fbc8b2b47ef6760871a5790f2dda2d9de53d3176ab6fdea3379476e1bfbc19e542ddc49d50cdea49e67a9e532978d78f24d18814a5 SHA512 0ed3b48b23da927ffd49d62ebf2824f19eeebfcea145a13238a39cb741de4d2f9f9f56c2c286c4989c629047196ce8d1c44c6792e85e94fb238ec80a6ff907a4
 DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5 SHA512 4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
index b774d86e2d5a..a3c0032c0c6e 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-PYTHON_COMPAT=( python3_{10..13} )
+PYTHON_COMPAT=( python3_{11..13} )
 inherit check-reqs cmake flag-o-matic llvm.org llvm-utils python-any-r1
 
 DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)"
@@ -57,6 +57,7 @@ LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake )
 LLVM_TEST_COMPONENTS=(
 	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
 )
+LLVM_PATCHSET=${PV}-r1
 llvm.org_set_globals
 
 python_check_deps() {

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
index e6aea4e38d0c..93f34cb07ebc 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
@@ -57,6 +57,7 @@ LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake )
 LLVM_TEST_COMPONENTS=(
 	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
 )
+LLVM_PATCHSET=${PV}
 llvm.org_set_globals
 
 python_check_deps() {


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-08-01 18:54 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-08-01 18:54 UTC (permalink / raw
  To: gentoo-commits

commit:     440f59602cf9555b889595c9d564c07280983b71
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Aug  1 18:51:10 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Aug  1 18:54:20 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=440f5960

llvm-runtimes/compiler-rt-sanitizers: Remove unused tysan flag

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/metadata.xml | 1 -
 1 file changed, 1 deletion(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/metadata.xml b/llvm-runtimes/compiler-rt-sanitizers/metadata.xml
index 5cba240b20b2..fcbc16ad14a3 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/metadata.xml
+++ b/llvm-runtimes/compiler-rt-sanitizers/metadata.xml
@@ -30,7 +30,6 @@
 		<flag name="gwp-asan">Build GWP-ASAN runtime.</flag>
 		<flag name="nsan">Build Numerical Sanitizer runtime.</flag>
 		<flag name="rtsan">Build Realtime Sanitizer runtime.</flag>
-		<flag name="tysan">Build Type Sanitizer runtime.</flag>
 	</use>
 	<upstream>
 		<remote-id type="github">llvm/llvm-project</remote-id>


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-08-02 10:29 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-08-02 10:29 UTC (permalink / raw
  To: gentoo-commits

commit:     f72992d386e7b31bf719e6733390d9546b0d98da
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Aug  2 10:25:31 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Aug  2 10:29:02 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f72992d3

llvm-runtimes/compiler-rt-sanitizers: Add 22.0.0_pre20250802 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-22.0.0_pre20250802.ebuild | 223 +++++++++++++++++++++
 2 files changed, 224 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 29b075f0bf56..ee9d06be3481 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -22,3 +22,4 @@ DIST llvm-project-20.1.8.src.tar.xz 147242952 BLAKE2B 7657ac0b26acc5affb1bfc91b9
 DIST llvm-project-20.1.8.src.tar.xz.sig 566 BLAKE2B 85beedfcff1195a974fab2c667b9efd4b715b3480c1b44b1b887fe32c69f72aca0d3b8fb276c03b6cc5a866622f669047aeee5ccb976640b4008ccd31dce77a4 SHA512 d74369bdb4d1b82775161ea53c9c5f3a23ce810f4df5ff617123023f9d8ce720e7d6ecc9e17f8ebd39fd9e7a9de79560abdf2ffe73bcb907a43148d43665d619
 DIST llvm-project-21.1.0-rc2.src.tar.xz 158947868 BLAKE2B 8de20b0bf5219de12240561c3049de09a3253e1ebe33f84533d3f1f2ee9794b09fe2b6aca0b2fb15542b37b901be7bd3e00306cfd266ab59e2703046bcbcaf3d SHA512 0599cbe3d11d9135c355d5c60fdfda98a9689768f41baba0b8981769cc836eba8d226364d601031413c5f43ae1c4dda080ab910d60c983367b438fa32903d173
 DIST llvm-project-21.1.0-rc2.src.tar.xz.sig 438 BLAKE2B 7090c7a98e01e7bf600e4fbb23ad28d2e3bd8e72938863b59c7be8be0de2e1b3e3e2a981955165b833a95992ee086fd525919af7bcd7761073800486b3be3363 SHA512 dbe6cdd544b84d18b51f187e612de8ec05eeb9f1b462b7c4921697aaf6c6b0a00a6f4d3cf320a61cf57a886f11d47049bb5fa817f8bf835991a01b5e4a2d8c0a
+DIST llvm-project-b075dadbd3e0e928bdeddb3d36af64e8a383e305.tar.gz 244584834 BLAKE2B e6924d5fcc90431bdf859c3d728e44c348fa8ec336967c95fa9d253519c7bf9b3b200048ff8910eea78e5481a11704330ad72960fe753930036f75bca5b163b7 SHA512 80232cd00a2981392cf9fb22daceb164f965d5d5c9edb431226713a5e2f75ba5aaf747329ae5f4b852fd5e7f0be62ad978529080b4dce1bac7af480905b61c3b

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250802.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250802.ebuild
new file mode 100644
index 000000000000..e0bba032ceec
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250802.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-08-09  9:47 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-08-09  9:47 UTC (permalink / raw
  To: gentoo-commits

commit:     90b9648893ac4b9330a2e9442ff8e5d882c62c81
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Aug  9 09:45:21 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Aug  9 09:46:59 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=90b96488

llvm-runtimes/compiler-rt-sanitizers: Add 22.0.0_pre20250809 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-22.0.0_pre20250809.ebuild | 223 +++++++++++++++++++++
 2 files changed, 224 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index ee9d06be3481..d210735af926 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -22,4 +22,5 @@ DIST llvm-project-20.1.8.src.tar.xz 147242952 BLAKE2B 7657ac0b26acc5affb1bfc91b9
 DIST llvm-project-20.1.8.src.tar.xz.sig 566 BLAKE2B 85beedfcff1195a974fab2c667b9efd4b715b3480c1b44b1b887fe32c69f72aca0d3b8fb276c03b6cc5a866622f669047aeee5ccb976640b4008ccd31dce77a4 SHA512 d74369bdb4d1b82775161ea53c9c5f3a23ce810f4df5ff617123023f9d8ce720e7d6ecc9e17f8ebd39fd9e7a9de79560abdf2ffe73bcb907a43148d43665d619
 DIST llvm-project-21.1.0-rc2.src.tar.xz 158947868 BLAKE2B 8de20b0bf5219de12240561c3049de09a3253e1ebe33f84533d3f1f2ee9794b09fe2b6aca0b2fb15542b37b901be7bd3e00306cfd266ab59e2703046bcbcaf3d SHA512 0599cbe3d11d9135c355d5c60fdfda98a9689768f41baba0b8981769cc836eba8d226364d601031413c5f43ae1c4dda080ab910d60c983367b438fa32903d173
 DIST llvm-project-21.1.0-rc2.src.tar.xz.sig 438 BLAKE2B 7090c7a98e01e7bf600e4fbb23ad28d2e3bd8e72938863b59c7be8be0de2e1b3e3e2a981955165b833a95992ee086fd525919af7bcd7761073800486b3be3363 SHA512 dbe6cdd544b84d18b51f187e612de8ec05eeb9f1b462b7c4921697aaf6c6b0a00a6f4d3cf320a61cf57a886f11d47049bb5fa817f8bf835991a01b5e4a2d8c0a
+DIST llvm-project-92164faf17d553359418b9f49c1a41d680d0de49.tar.gz 245033829 BLAKE2B 7bf707e6455259417864a40c53beba4c4a9f6e4cf983671075016b95e537d2c249f97444089734718b5f2c989a2614028bd22142ccadae9c382e66b28758ecab SHA512 bf4105173144e6bb9cdc99ae67b7350228b37eae248c15aae2ce29877a8ee4cb76781a6beff366961fa366d31683b43421d684d019e25f0280735ccd6c22a432
 DIST llvm-project-b075dadbd3e0e928bdeddb3d36af64e8a383e305.tar.gz 244584834 BLAKE2B e6924d5fcc90431bdf859c3d728e44c348fa8ec336967c95fa9d253519c7bf9b3b200048ff8910eea78e5481a11704330ad72960fe753930036f75bca5b163b7 SHA512 80232cd00a2981392cf9fb22daceb164f965d5d5c9edb431226713a5e2f75ba5aaf747329ae5f4b852fd5e7f0be62ad978529080b4dce1bac7af480905b61c3b

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250809.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250809.ebuild
new file mode 100644
index 000000000000..e0bba032ceec
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250809.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-08-12 17:09 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-08-12 17:09 UTC (permalink / raw
  To: gentoo-commits

commit:     d410a310b9798187c12b2f401938d9229b543d95
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 12 12:23:18 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Aug 12 17:08:54 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d410a310

llvm-runtimes/compiler-rt-sanitizers: Add 21.1.0_rc3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   2 +
 .../compiler-rt-sanitizers-21.1.0_rc3.ebuild       | 223 +++++++++++++++++++++
 2 files changed, 225 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index d210735af926..5cb933c8e0a1 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -22,5 +22,7 @@ DIST llvm-project-20.1.8.src.tar.xz 147242952 BLAKE2B 7657ac0b26acc5affb1bfc91b9
 DIST llvm-project-20.1.8.src.tar.xz.sig 566 BLAKE2B 85beedfcff1195a974fab2c667b9efd4b715b3480c1b44b1b887fe32c69f72aca0d3b8fb276c03b6cc5a866622f669047aeee5ccb976640b4008ccd31dce77a4 SHA512 d74369bdb4d1b82775161ea53c9c5f3a23ce810f4df5ff617123023f9d8ce720e7d6ecc9e17f8ebd39fd9e7a9de79560abdf2ffe73bcb907a43148d43665d619
 DIST llvm-project-21.1.0-rc2.src.tar.xz 158947868 BLAKE2B 8de20b0bf5219de12240561c3049de09a3253e1ebe33f84533d3f1f2ee9794b09fe2b6aca0b2fb15542b37b901be7bd3e00306cfd266ab59e2703046bcbcaf3d SHA512 0599cbe3d11d9135c355d5c60fdfda98a9689768f41baba0b8981769cc836eba8d226364d601031413c5f43ae1c4dda080ab910d60c983367b438fa32903d173
 DIST llvm-project-21.1.0-rc2.src.tar.xz.sig 438 BLAKE2B 7090c7a98e01e7bf600e4fbb23ad28d2e3bd8e72938863b59c7be8be0de2e1b3e3e2a981955165b833a95992ee086fd525919af7bcd7761073800486b3be3363 SHA512 dbe6cdd544b84d18b51f187e612de8ec05eeb9f1b462b7c4921697aaf6c6b0a00a6f4d3cf320a61cf57a886f11d47049bb5fa817f8bf835991a01b5e4a2d8c0a
+DIST llvm-project-21.1.0-rc3.src.tar.xz 158924056 BLAKE2B 5f3f46a499120c810a944361468cdea64cc29fa41a1c1f4549b1a845e6a36c891cd4af0a9fafda00663f73de61ef2658bf0640b68020cdebb7cb8446ba1cbf09 SHA512 3b84b2c9d8b164983890f797301591b5e20a54adc035b196db9a7f6a19e6ac13fe24d1c7816fe62ac87f853e5b4b9decf177046c43caed8e62ab8e8df574a2ef
+DIST llvm-project-21.1.0-rc3.src.tar.xz.sig 438 BLAKE2B 1a339fe00c27cddc508b369c4007e501266df42fbe0f448df3eecbf853ffa2915a6beef26e69c38169d37c12edcf60ac7c8ca5c0ae671b4c593356ccc6f3e3d5 SHA512 df8b3f747858fbb8c662899e6ea792556405cee2318be125a04e7b94c6dcebbed3ff01890f5e0c52e13b251243cfd1194806cf5ef52b482ae67d68be585574ad
 DIST llvm-project-92164faf17d553359418b9f49c1a41d680d0de49.tar.gz 245033829 BLAKE2B 7bf707e6455259417864a40c53beba4c4a9f6e4cf983671075016b95e537d2c249f97444089734718b5f2c989a2614028bd22142ccadae9c382e66b28758ecab SHA512 bf4105173144e6bb9cdc99ae67b7350228b37eae248c15aae2ce29877a8ee4cb76781a6beff366961fa366d31683b43421d684d019e25f0280735ccd6c22a432
 DIST llvm-project-b075dadbd3e0e928bdeddb3d36af64e8a383e305.tar.gz 244584834 BLAKE2B e6924d5fcc90431bdf859c3d728e44c348fa8ec336967c95fa9d253519c7bf9b3b200048ff8910eea78e5481a11704330ad72960fe753930036f75bca5b163b7 SHA512 80232cd00a2981392cf9fb22daceb164f965d5d5c9edb431226713a5e2f75ba5aaf747329ae5f4b852fd5e7f0be62ad978529080b4dce1bac7af480905b61c3b

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0_rc3.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0_rc3.ebuild
new file mode 100644
index 000000000000..e0bba032ceec
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0_rc3.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-08-16 13:51 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-08-16 13:51 UTC (permalink / raw
  To: gentoo-commits

commit:     ab3fc5d883b9f7b16d5f133789822880903757f7
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Aug 16 13:05:07 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Aug 16 13:50:50 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ab3fc5d8

llvm-runtimes/compiler-rt-sanitizers: Add 22.0.0_pre20250815 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-22.0.0_pre20250815.ebuild | 223 +++++++++++++++++++++
 2 files changed, 224 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 5cb933c8e0a1..f8ed3a9044c5 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -16,6 +16,7 @@ DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b8577
 DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8
 DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
 DIST llvm-project-190fcc28af585cb06480b026afd14ed87b18adb8.tar.gz 243483242 BLAKE2B f53d743ca332dfffe1f98d51f0528e14b61e4c11904ec20c4b4c9b285f8ca7eb25eb2ce8549e21566e63ab393697c74acd4a41fddc7bab282535aa8ccf9195da SHA512 b6bcf8647f35fee209fbd8a8c297f7d89f1aac9cac4e3c62abd73171350c4c7a98572ccd175ca0a8fce8d2fe00bf5cfbeea329689b687ab6261586e894397150
+DIST llvm-project-1c7720ef78dc5eb9196d6c178afe03b60f201b78.tar.gz 245239122 BLAKE2B 74342ef3a8105915201f6260aa8c633ccd67821894d33605d82ca0f02d0d0766fe3198e834c4c5cae8123d911b5a20849c04ea02aea52f57f8d1a09e17c18199 SHA512 10a63bdf7d790c5964274414dc01b480a976318f27b5807ca47d9149b97106530264a75930c689ca7cc417de3df44142280cd92559ff7873190f1045d79e7856
 DIST llvm-project-20.1.7.src.tar.xz 147245448 BLAKE2B f7c57d1eba4e97e875b624dec3fb1b261a0203de7200366de5b3edcfbca2a170c41df46e91cd9cb78ae2af66120aef95334f5eb9628a1489e921c6bdf4cccfe8 SHA512 c2dbf6a468a8152409db7ff52902ecf8768a1d0328e386999f4f3672613903e1c10bddbba66b8553a6222952f8edb66266947f1fb21d0b09ae741e6249b6d1fa
 DIST llvm-project-20.1.7.src.tar.xz.sig 566 BLAKE2B 72ce2a18c211cfce9581a9e3e71f1c55cf18672aa355267581220e1a89e3327f9e16107970b69bb8f10f390baa5e286487bdc4cc0a7d9155ec13a4977cd3f472 SHA512 eff885059d547f57b98bda1fc9631f716ca6c650cd48203d9ed5443a6afb9a2d4d91d3f5c8618e307c0a44b3040bce61fdc6bce965073adc537655755d9f2112
 DIST llvm-project-20.1.8.src.tar.xz 147242952 BLAKE2B 7657ac0b26acc5affb1bfc91b912ade3191c5d77f3979d5a80d5f6ce52f56a7d1c448bd257398390bf10838f02faa6f3ece37a7327cced69d165ec2e2e699316 SHA512 f330e72e6a1da468569049437cc0ba7a41abb816ccece7367189344f7ebfef730f4788ac7af2bef0aa8a49341c15ab1d31e941ffa782f264d11fe0dc05470773

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250815.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250815.ebuild
new file mode 100644
index 000000000000..e0bba032ceec
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250815.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-08-21  8:18 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-08-21  8:18 UTC (permalink / raw
  To: gentoo-commits

commit:     2bbcce72faac53c2504583e9d142785ca96a46fc
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 21 08:12:57 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Aug 21 08:13:42 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2bbcce72

llvm-runtimes/compiler-rt-sanitizers: Add 22.0.0_pre20250820 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-22.0.0_pre20250820.ebuild | 223 +++++++++++++++++++++
 2 files changed, 224 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index f8ed3a9044c5..7f686e774827 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -27,3 +27,4 @@ DIST llvm-project-21.1.0-rc3.src.tar.xz 158924056 BLAKE2B 5f3f46a499120c810a9443
 DIST llvm-project-21.1.0-rc3.src.tar.xz.sig 438 BLAKE2B 1a339fe00c27cddc508b369c4007e501266df42fbe0f448df3eecbf853ffa2915a6beef26e69c38169d37c12edcf60ac7c8ca5c0ae671b4c593356ccc6f3e3d5 SHA512 df8b3f747858fbb8c662899e6ea792556405cee2318be125a04e7b94c6dcebbed3ff01890f5e0c52e13b251243cfd1194806cf5ef52b482ae67d68be585574ad
 DIST llvm-project-92164faf17d553359418b9f49c1a41d680d0de49.tar.gz 245033829 BLAKE2B 7bf707e6455259417864a40c53beba4c4a9f6e4cf983671075016b95e537d2c249f97444089734718b5f2c989a2614028bd22142ccadae9c382e66b28758ecab SHA512 bf4105173144e6bb9cdc99ae67b7350228b37eae248c15aae2ce29877a8ee4cb76781a6beff366961fa366d31683b43421d684d019e25f0280735ccd6c22a432
 DIST llvm-project-b075dadbd3e0e928bdeddb3d36af64e8a383e305.tar.gz 244584834 BLAKE2B e6924d5fcc90431bdf859c3d728e44c348fa8ec336967c95fa9d253519c7bf9b3b200048ff8910eea78e5481a11704330ad72960fe753930036f75bca5b163b7 SHA512 80232cd00a2981392cf9fb22daceb164f965d5d5c9edb431226713a5e2f75ba5aaf747329ae5f4b852fd5e7f0be62ad978529080b4dce1bac7af480905b61c3b
+DIST llvm-project-d76bb2bb894a4641ed62447327b40a347a6ae883.tar.gz 245754836 BLAKE2B 487e6396f1b381743dfbbd13e8f55728f1f915c042c717433e498127ecdeb4405a67e998059f5eb1f84e851437b805ba9e9c0e390c61092c7ee336a801d6f342 SHA512 42e38f917357918e8d62d8893a1ba34b431cd8aabf924b89e5352013bb8984c10c0b2796fa9a725bab71e52f99216604b75606bde3b795d20082d97d0f7a82ad

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250820.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250820.ebuild
new file mode 100644
index 000000000000..e0bba032ceec
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250820.ebuild
@@ -0,0 +1,223 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-08-21  8:22 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-08-21  8:22 UTC (permalink / raw
  To: gentoo-commits

commit:     1c30b59c5ae6189222c498567879e040690e772e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 21 08:19:47 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Aug 21 08:19:47 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1c30b59c

llvm-runtimes/compiler-rt-sanitizers: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   6 -
 .../compiler-rt-sanitizers-21.1.0_rc2.ebuild       | 224 ---------------------
 ...ompiler-rt-sanitizers-22.0.0_pre20250726.ebuild | 223 --------------------
 ...ompiler-rt-sanitizers-22.0.0_pre20250802.ebuild | 223 --------------------
 ...ompiler-rt-sanitizers-22.0.0_pre20250809.ebuild | 223 --------------------
 5 files changed, 899 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 7f686e774827..278b0ea45511 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -4,7 +4,6 @@ DIST llvm-gentoo-patchset-17.0.6-r3.tar.xz 4648 BLAKE2B c709162068e83575f71a2ac2
 DIST llvm-gentoo-patchset-18.1.8-r6.tar.xz 24816 BLAKE2B a7e9e007b05205fa7adba032ba932eba1996dd7ed6cd4cfb460a731f0d2e5fda2174f46c2ee5554ca7f82297a4baddbabc7fdfbd530056471853df957c221f2f SHA512 e1666bba6678eff3ee3666818a656ba7b8f964acb8466bd220bfbf0cc2922820e84b9daaa84c3a8ed26f3160fddea63fbc13872b007eb6922eaee462c08aeaef
 DIST llvm-gentoo-patchset-19.1.7-r1.tar.xz 2644 BLAKE2B c9648797628ae84f81bb66947367d58fe7add9bb28f1e50b509c3d3eab15b6b50e6f58812fd67ce63c57310f1a90b56b10fb5909223d9b24998b3d30909caf0a SHA512 0ea8d8f86647cb28c443937b016b3cf46a2b921463815a85e32ab4488ef7368294a956f13c9b77f8fa70daeaa7bd165cb5975c3b4664ed6d11a6d24f11728d73
 DIST llvm-gentoo-patchset-20.1.8.tar.xz 2168 BLAKE2B ab44783c8d8b2f536192e801082f02769eb5bb092bb14d867df9fa854455e9d986ec1074605505c8b43b2cc0b0448474e3eaec3edd89e782922b5b232db9a6e2 SHA512 664018ac834fa0b8a9abc92d64facedc92d3f48818b72d7cdd28cb7c76234ca65c2a16b4d89b4fa5406d3ea97b1d326ae2b63fd5b21b4efa04b6f46f15014542
-DIST llvm-gentoo-patchset-21.1.0-rc2.tar.xz 948 BLAKE2B 3e075b9f37616bd1734c65fbc8b2b47ef6760871a5790f2dda2d9de53d3176ab6fdea3379476e1bfbc19e542ddc49d50cdea49e67a9e532978d78f24d18814a5 SHA512 0ed3b48b23da927ffd49d62ebf2824f19eeebfcea145a13238a39cb741de4d2f9f9f56c2c286c4989c629047196ce8d1c44c6792e85e94fb238ec80a6ff907a4
 DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5 SHA512 4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52
 DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
 DIST llvm-project-16.0.6.src.tar.xz 118013488 BLAKE2B 95192d39cbd2914e5609db365965f1c00bfea6c2d653b3996bd2acef8a2b37e37f6fc8a9d2b65711ad72657e0ef52c42f733053cf65051e7822f27396c30406d SHA512 89a67ebfbbc764cc456e8825ecfa90707741f8835b1b2adffae0b227ab1fe5ca9cce75b0efaffc9ca8431cae528dc54fd838867a56a2b645344d9e82d19ab1b7
@@ -15,16 +14,11 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8
 DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
-DIST llvm-project-190fcc28af585cb06480b026afd14ed87b18adb8.tar.gz 243483242 BLAKE2B f53d743ca332dfffe1f98d51f0528e14b61e4c11904ec20c4b4c9b285f8ca7eb25eb2ce8549e21566e63ab393697c74acd4a41fddc7bab282535aa8ccf9195da SHA512 b6bcf8647f35fee209fbd8a8c297f7d89f1aac9cac4e3c62abd73171350c4c7a98572ccd175ca0a8fce8d2fe00bf5cfbeea329689b687ab6261586e894397150
 DIST llvm-project-1c7720ef78dc5eb9196d6c178afe03b60f201b78.tar.gz 245239122 BLAKE2B 74342ef3a8105915201f6260aa8c633ccd67821894d33605d82ca0f02d0d0766fe3198e834c4c5cae8123d911b5a20849c04ea02aea52f57f8d1a09e17c18199 SHA512 10a63bdf7d790c5964274414dc01b480a976318f27b5807ca47d9149b97106530264a75930c689ca7cc417de3df44142280cd92559ff7873190f1045d79e7856
 DIST llvm-project-20.1.7.src.tar.xz 147245448 BLAKE2B f7c57d1eba4e97e875b624dec3fb1b261a0203de7200366de5b3edcfbca2a170c41df46e91cd9cb78ae2af66120aef95334f5eb9628a1489e921c6bdf4cccfe8 SHA512 c2dbf6a468a8152409db7ff52902ecf8768a1d0328e386999f4f3672613903e1c10bddbba66b8553a6222952f8edb66266947f1fb21d0b09ae741e6249b6d1fa
 DIST llvm-project-20.1.7.src.tar.xz.sig 566 BLAKE2B 72ce2a18c211cfce9581a9e3e71f1c55cf18672aa355267581220e1a89e3327f9e16107970b69bb8f10f390baa5e286487bdc4cc0a7d9155ec13a4977cd3f472 SHA512 eff885059d547f57b98bda1fc9631f716ca6c650cd48203d9ed5443a6afb9a2d4d91d3f5c8618e307c0a44b3040bce61fdc6bce965073adc537655755d9f2112
 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-rc2.src.tar.xz 158947868 BLAKE2B 8de20b0bf5219de12240561c3049de09a3253e1ebe33f84533d3f1f2ee9794b09fe2b6aca0b2fb15542b37b901be7bd3e00306cfd266ab59e2703046bcbcaf3d SHA512 0599cbe3d11d9135c355d5c60fdfda98a9689768f41baba0b8981769cc836eba8d226364d601031413c5f43ae1c4dda080ab910d60c983367b438fa32903d173
-DIST llvm-project-21.1.0-rc2.src.tar.xz.sig 438 BLAKE2B 7090c7a98e01e7bf600e4fbb23ad28d2e3bd8e72938863b59c7be8be0de2e1b3e3e2a981955165b833a95992ee086fd525919af7bcd7761073800486b3be3363 SHA512 dbe6cdd544b84d18b51f187e612de8ec05eeb9f1b462b7c4921697aaf6c6b0a00a6f4d3cf320a61cf57a886f11d47049bb5fa817f8bf835991a01b5e4a2d8c0a
 DIST llvm-project-21.1.0-rc3.src.tar.xz 158924056 BLAKE2B 5f3f46a499120c810a944361468cdea64cc29fa41a1c1f4549b1a845e6a36c891cd4af0a9fafda00663f73de61ef2658bf0640b68020cdebb7cb8446ba1cbf09 SHA512 3b84b2c9d8b164983890f797301591b5e20a54adc035b196db9a7f6a19e6ac13fe24d1c7816fe62ac87f853e5b4b9decf177046c43caed8e62ab8e8df574a2ef
 DIST llvm-project-21.1.0-rc3.src.tar.xz.sig 438 BLAKE2B 1a339fe00c27cddc508b369c4007e501266df42fbe0f448df3eecbf853ffa2915a6beef26e69c38169d37c12edcf60ac7c8ca5c0ae671b4c593356ccc6f3e3d5 SHA512 df8b3f747858fbb8c662899e6ea792556405cee2318be125a04e7b94c6dcebbed3ff01890f5e0c52e13b251243cfd1194806cf5ef52b482ae67d68be585574ad
-DIST llvm-project-92164faf17d553359418b9f49c1a41d680d0de49.tar.gz 245033829 BLAKE2B 7bf707e6455259417864a40c53beba4c4a9f6e4cf983671075016b95e537d2c249f97444089734718b5f2c989a2614028bd22142ccadae9c382e66b28758ecab SHA512 bf4105173144e6bb9cdc99ae67b7350228b37eae248c15aae2ce29877a8ee4cb76781a6beff366961fa366d31683b43421d684d019e25f0280735ccd6c22a432
-DIST llvm-project-b075dadbd3e0e928bdeddb3d36af64e8a383e305.tar.gz 244584834 BLAKE2B e6924d5fcc90431bdf859c3d728e44c348fa8ec336967c95fa9d253519c7bf9b3b200048ff8910eea78e5481a11704330ad72960fe753930036f75bca5b163b7 SHA512 80232cd00a2981392cf9fb22daceb164f965d5d5c9edb431226713a5e2f75ba5aaf747329ae5f4b852fd5e7f0be62ad978529080b4dce1bac7af480905b61c3b
 DIST llvm-project-d76bb2bb894a4641ed62447327b40a347a6ae883.tar.gz 245754836 BLAKE2B 487e6396f1b381743dfbbd13e8f55728f1f915c042c717433e498127ecdeb4405a67e998059f5eb1f84e851437b805ba9e9c0e390c61092c7ee336a801d6f342 SHA512 42e38f917357918e8d62d8893a1ba34b431cd8aabf924b89e5352013bb8984c10c0b2796fa9a725bab71e52f99216604b75606bde3b795d20082d97d0f7a82ad

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0_rc2.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0_rc2.ebuild
deleted file mode 100644
index 6b61a243ebf0..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0_rc2.ebuild
+++ /dev/null
@@ -1,224 +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 check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-LLVM_PATCHSET=${PV/_/-}
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
-		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
-		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
-		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
-		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
-
-		# 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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250726.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250726.ebuild
deleted file mode 100644
index e0bba032ceec..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250726.ebuild
+++ /dev/null
@@ -1,223 +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 check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
-		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
-		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
-		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
-		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
-
-		# 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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250802.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250802.ebuild
deleted file mode 100644
index e0bba032ceec..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250802.ebuild
+++ /dev/null
@@ -1,223 +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 check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
-		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
-		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
-		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
-		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
-
-		# 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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250809.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250809.ebuild
deleted file mode 100644
index e0bba032ceec..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250809.ebuild
+++ /dev/null
@@ -1,223 +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 check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
-		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
-		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
-		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
-		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
-
-		# 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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
-}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-08-24 18:51 Arthur Zamarin
  0 siblings, 0 replies; 106+ messages in thread
From: Arthur Zamarin @ 2025-08-24 18:51 UTC (permalink / raw
  To: gentoo-commits

commit:     b12a511a1b28666c809eb5a60254994661efccb0
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 24 18:50:18 2025 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Sun Aug 24 18:50:18 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b12a511a

llvm-runtimes/compiler-rt-sanitizers: Stabilize 20.1.8 arm64, #960372

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 .../compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild         | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
index 313c711be5fc..d35e95d3a979 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
@@ -11,7 +11,7 @@ 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 ~ppc-macos ~x64-macos"
+KEYWORDS="~amd64 arm arm64 ~loong ~mips ~ppc64 ~riscv x86 ~amd64-linux ~ppc-macos ~x64-macos"
 IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
 # base targets
 IUSE+=" +ctx-profile +libfuzzer +memprof +orc +profile +xray"


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-08-24 19:02 Arthur Zamarin
  0 siblings, 0 replies; 106+ messages in thread
From: Arthur Zamarin @ 2025-08-24 19:02 UTC (permalink / raw
  To: gentoo-commits

commit:     59ccaf89b24f17e8ebdf31f5dbceb50233ad9435
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 24 18:53:57 2025 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Sun Aug 24 19:02:45 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=59ccaf89

llvm-runtimes/compiler-rt-sanitizers: Stabilize 20.1.8 amd64, #960372

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 .../compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild         | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
index d35e95d3a979..97b66e27edad 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
@@ -11,7 +11,7 @@ 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 ~ppc-macos ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ~ppc64 ~riscv x86 ~amd64-linux ~ppc-macos ~x64-macos"
 IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
 # base targets
 IUSE+=" +ctx-profile +libfuzzer +memprof +orc +profile +xray"


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-08-26 19:38 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-08-26 19:38 UTC (permalink / raw
  To: gentoo-commits

commit:     0ea8bc7c29f71ddfcbf0dc318e08023a9fb37d0e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 26 19:24:33 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Aug 26 19:38:19 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0ea8bc7c

llvm-runtimes/compiler-rt-sanitizers: Keyword 21.1.0

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 .../compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0.ebuild        | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0.ebuild
index e0bba032ceec..4c58ed55d3ee 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0.ebuild
@@ -11,7 +11,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 ~ppc-macos ~x64-macos"
+IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
 # base targets
 IUSE+=" +ctx-profile +libfuzzer +memprof +orc +profile +xray"
 # sanitizer targets, keep in sync with config-ix.cmake


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-08-27 12:28 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-08-27 12:28 UTC (permalink / raw
  To: gentoo-commits

commit:     498c995a0ea1c22a94530984ff28dfd6d6f667d9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 27 12:25:33 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Aug 27 12:28:00 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=498c995a

llvm-runtimes/compiler-rt-sanitizers: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   2 -
 .../compiler-rt-sanitizers-20.1.7.ebuild           | 223 ---------------------
 2 files changed, 225 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 638dd6083e2d..432cdcc4cfb6 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -14,8 +14,6 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8
 DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
-DIST llvm-project-20.1.7.src.tar.xz 147245448 BLAKE2B f7c57d1eba4e97e875b624dec3fb1b261a0203de7200366de5b3edcfbca2a170c41df46e91cd9cb78ae2af66120aef95334f5eb9628a1489e921c6bdf4cccfe8 SHA512 c2dbf6a468a8152409db7ff52902ecf8768a1d0328e386999f4f3672613903e1c10bddbba66b8553a6222952f8edb66266947f1fb21d0b09ae741e6249b6d1fa
-DIST llvm-project-20.1.7.src.tar.xz.sig 566 BLAKE2B 72ce2a18c211cfce9581a9e3e71f1c55cf18672aa355267581220e1a89e3327f9e16107970b69bb8f10f390baa5e286487bdc4cc0a7d9155ec13a4977cd3f472 SHA512 eff885059d547f57b98bda1fc9631f716ca6c650cd48203d9ed5443a6afb9a2d4d91d3f5c8618e307c0a44b3040bce61fdc6bce965073adc537655755d9f2112
 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

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.7.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.7.ebuild
deleted file mode 100644
index efd752c1da5c..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.7.ebuild
+++ /dev/null
@@ -1,223 +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 check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc64 ~riscv x86 ~amd64-linux ~ppc-macos ~x64-macos"
-IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_MAJOR}/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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a \
-			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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
-}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-08-29  9:30 Eli Schwartz
  0 siblings, 0 replies; 106+ messages in thread
From: Eli Schwartz @ 2025-08-29  9:30 UTC (permalink / raw
  To: gentoo-commits

commit:     a69045d3f472dd1de111c8136e4d1540bfdeade4
Author:     Eli Schwartz <eschwartz <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 28 16:11:16 2025 +0000
Commit:     Eli Schwartz <eschwartz <AT> gentoo <DOT> org>
CommitDate: Fri Aug 29 09:30:21 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a69045d3

llvm-runtimes/compiler-rt-sanitizers: prevent -fstack-protector in *FLAGS

It causes the build to error since e.g. Sanitizer-x86_64-Test-Nolibc
builds with, unsurprisingly, `-static -nostdlib` resulting in

```
/usr/bin/x86_64-pc-linux-gnu-ld.bfd: sanitizer_nolibc_test_main.x86_64.o: in function `_start':
..../sanitizer_nolibc_test_main.cpp:(.text+0x29): undefined reference to `__stack_chk_fail'
```

The cmake files check for -fno-stack-protector support already, and pass
it to various parts if possible. But apparently not this. :P

Acked-by: Sam James <sam <AT> gentoo.org>
Signed-off-by: Eli Schwartz <eschwartz <AT> gentoo.org>

 .../compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild     | 3 +++
 .../compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild     | 3 +++
 .../compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild     | 3 +++
 .../compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild     | 3 +++
 .../compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild        | 3 +++
 .../compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild        | 3 +++
 .../compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0.ebuild        | 3 +++
 .../compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild   | 3 +++
 .../compiler-rt-sanitizers-22.0.0_pre20250820.ebuild                   | 3 +++
 9 files changed, 27 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild
index 3978b415cb59..cc708581a5f2 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild
@@ -84,6 +84,9 @@ pkg_setup() {
 src_prepare() {
 	sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
 
+	# builds freestanding code
+	filter-flags -fstack-protector*
+
 	local flag
 	for flag in "${SANITIZER_FLAGS[@]}"; do
 		if ! use "${flag}"; then

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild
index 2c54b12ac9c8..e23a58e49fdd 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild
@@ -83,6 +83,9 @@ pkg_setup() {
 src_prepare() {
 	sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
 
+	# builds freestanding code
+	filter-flags -fstack-protector*
+
 	local flag
 	for flag in "${SANITIZER_FLAGS[@]}"; do
 		if ! use "${flag}"; then

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild
index fad0933985bd..750aea5240b2 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild
@@ -83,6 +83,9 @@ pkg_setup() {
 src_prepare() {
 	sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
 
+	# builds freestanding code
+	filter-flags -fstack-protector*
+
 	local flag
 	for flag in "${SANITIZER_FLAGS[@]}"; do
 		if ! use "${flag}"; then

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
index 64fc59dae7cc..0098cadd0542 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
@@ -82,6 +82,9 @@ pkg_setup() {
 src_prepare() {
 	sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
 
+	# builds freestanding code
+	filter-flags -fstack-protector*
+
 	local flag
 	for flag in "${SANITIZER_FLAGS[@]}"; do
 		if ! use "${flag}"; then

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
index a3c0032c0c6e..8323457069c5 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
@@ -84,6 +84,9 @@ pkg_setup() {
 src_prepare() {
 	sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
 
+	# builds freestanding code
+	filter-flags -fstack-protector*
+
 	local flag
 	for flag in "${SANITIZER_FLAGS[@]}"; do
 		if ! use "${flag}"; then

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
index f2369c59d91e..de0decaa4f10 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
@@ -84,6 +84,9 @@ pkg_setup() {
 src_prepare() {
 	sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
 
+	# builds freestanding code
+	filter-flags -fstack-protector*
+
 	local flag
 	for flag in "${SANITIZER_FLAGS[@]}"; do
 		if ! use "${flag}"; then

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0.ebuild
index 4c58ed55d3ee..4b0884c09ab2 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0.ebuild
@@ -83,6 +83,9 @@ pkg_setup() {
 src_prepare() {
 	sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
 
+	# builds freestanding code
+	filter-flags -fstack-protector*
+
 	local flag
 	for flag in "${SANITIZER_FLAGS[@]}"; do
 		if ! use "${flag}"; then

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild
index e0bba032ceec..b6f74f8ebb9a 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild
@@ -82,6 +82,9 @@ pkg_setup() {
 src_prepare() {
 	sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
 
+	# builds freestanding code
+	filter-flags -fstack-protector*
+
 	local flag
 	for flag in "${SANITIZER_FLAGS[@]}"; do
 		if ! use "${flag}"; then

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250820.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250820.ebuild
index e0bba032ceec..b6f74f8ebb9a 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250820.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250820.ebuild
@@ -82,6 +82,9 @@ pkg_setup() {
 src_prepare() {
 	sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
 
+	# builds freestanding code
+	filter-flags -fstack-protector*
+
 	local flag
 	for flag in "${SANITIZER_FLAGS[@]}"; do
 		if ! use "${flag}"; then


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-08-29  9:30 Eli Schwartz
  0 siblings, 0 replies; 106+ messages in thread
From: Eli Schwartz @ 2025-08-29  9:30 UTC (permalink / raw
  To: gentoo-commits

commit:     6bce617346c5714aea9961459d71a6e87af2e1b5
Author:     Eli Schwartz <eschwartz <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 29 07:26:01 2025 +0000
Commit:     Eli Schwartz <eschwartz <AT> gentoo <DOT> org>
CommitDate: Fri Aug 29 09:30:21 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6bce6173

llvm-runtimes/compiler-rt-sanitizers: remove broken test for glibc 2.38

Upstream marked it to get skipped as UNSUPPORTED:
https://github.com/llvm/llvm-project/commit/deebf6b312227e028dd3258b162306b9cdb21cf7

Included in 19.1.0, make sure it gets skipped in older versions too. It
infinitely hangs the whole emerge.

Signed-off-by: Eli Schwartz <eschwartz <AT> gentoo.org>

 .../compiler-rt-sanitizers-15.0.7-r1.ebuild                      | 7 +++++++
 .../compiler-rt-sanitizers-16.0.6-r1.ebuild                      | 7 +++++++
 .../compiler-rt-sanitizers-17.0.6-r1.ebuild                      | 9 +++++++--
 .../compiler-rt-sanitizers-18.1.8-r6.ebuild                      | 9 +++++++--
 .../compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild  | 2 --
 .../compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild  | 2 --
 .../compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0.ebuild  | 2 --
 .../compiler-rt-sanitizers-22.0.0.9999.ebuild                    | 2 --
 .../compiler-rt-sanitizers-22.0.0_pre20250820.ebuild             | 2 --
 9 files changed, 28 insertions(+), 14 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild
index cc708581a5f2..cc90625548d1 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild
@@ -106,6 +106,13 @@ src_prepare() {
 	if use ubsan && ! use cfi; then
 		> test/cfi/CMakeLists.txt || die
 	fi
+	if has_version -b ">=sys-libs/glibc-2.38"; then
+		# On glibc 2.38, the "nohang" test fails by... hanging.
+		# "fixed" in llvm 19.
+		# https://github.com/google/sanitizers/issues/1733
+		# https://github.com/llvm/llvm-project/commit/deebf6b312227e028dd3258b162306b9cdb21cf7
+		rm test/tsan/getline_nohang.cpp || die
+	fi
 
 	llvm.org_src_prepare
 }

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild
index e23a58e49fdd..e90e63cb5f34 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild
@@ -112,6 +112,13 @@ src_prepare() {
 		rm test/dfsan/custom.cpp || die
 		rm test/dfsan/release_shadow_space.c || die
 	fi
+	if has_version -b ">=sys-libs/glibc-2.38"; then
+		# On glibc 2.38, the "nohang" test fails by... hanging.
+		# "fixed" in llvm 19.
+		# https://github.com/google/sanitizers/issues/1733
+		# https://github.com/llvm/llvm-project/commit/deebf6b312227e028dd3258b162306b9cdb21cf7
+		rm test/tsan/getline_nohang.cpp || die
+	fi
 
 	llvm.org_src_prepare
 }

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild
index 750aea5240b2..c8df8fbabb40 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild
@@ -105,8 +105,13 @@ src_prepare() {
 	if use ubsan && ! use cfi; then
 		> test/cfi/CMakeLists.txt || die
 	fi
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
+	if has_version -b ">=sys-libs/glibc-2.38"; then
+		# On glibc 2.38, the "nohang" test fails by... hanging.
+		# "fixed" in llvm 19.
+		# https://github.com/google/sanitizers/issues/1733
+		# https://github.com/llvm/llvm-project/commit/deebf6b312227e028dd3258b162306b9cdb21cf7
+		rm test/tsan/getline_nohang.cpp || die
+	fi
 
 	llvm.org_src_prepare
 }

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
index 0098cadd0542..8adf5792fd25 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
@@ -101,8 +101,13 @@ src_prepare() {
 	if use ubsan && ! use cfi; then
 		> test/cfi/CMakeLists.txt || die
 	fi
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
+	if has_version -b ">=sys-libs/glibc-2.38"; then
+		# On glibc 2.38, the "nohang" test fails by... hanging.
+		# "fixed" in llvm 19.
+		# https://github.com/google/sanitizers/issues/1733
+		# https://github.com/llvm/llvm-project/commit/deebf6b312227e028dd3258b162306b9cdb21cf7
+		rm test/tsan/getline_nohang.cpp || die
+	fi
 
 	llvm.org_src_prepare
 }

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
index 8323457069c5..d5936068acb4 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
@@ -103,8 +103,6 @@ src_prepare() {
 	if use ubsan && ! use cfi; then
 		> test/cfi/CMakeLists.txt || die
 	fi
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
 
 	llvm.org_src_prepare
 }

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
index de0decaa4f10..c6ab939b7ab1 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8.ebuild
@@ -103,8 +103,6 @@ src_prepare() {
 	if use ubsan && ! use cfi; then
 		> test/cfi/CMakeLists.txt || die
 	fi
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
 
 	llvm.org_src_prepare
 }

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0.ebuild
index 4b0884c09ab2..3f1c0f8ccec8 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0.ebuild
@@ -102,8 +102,6 @@ src_prepare() {
 	if use ubsan && ! use cfi; then
 		> test/cfi/CMakeLists.txt || die
 	fi
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
 
 	llvm.org_src_prepare
 }

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild
index b6f74f8ebb9a..333dd678b31e 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild
@@ -101,8 +101,6 @@ src_prepare() {
 	if use ubsan && ! use cfi; then
 		> test/cfi/CMakeLists.txt || die
 	fi
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
 
 	llvm.org_src_prepare
 }

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250820.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250820.ebuild
index b6f74f8ebb9a..333dd678b31e 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250820.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250820.ebuild
@@ -101,8 +101,6 @@ src_prepare() {
 	if use ubsan && ! use cfi; then
 		> test/cfi/CMakeLists.txt || die
 	fi
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
 
 	llvm.org_src_prepare
 }


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-08-29 16:40 Eli Schwartz
  0 siblings, 0 replies; 106+ messages in thread
From: Eli Schwartz @ 2025-08-29 16:40 UTC (permalink / raw
  To: gentoo-commits

commit:     a382f2d3d366c198c7a2e8b0f05c88a53a89a618
Author:     Eli Schwartz <eschwartz <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 29 16:34:59 2025 +0000
Commit:     Eli Schwartz <eschwartz <AT> gentoo <DOT> org>
CommitDate: Fri Aug 29 16:39:45 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a382f2d3

llvm-runtimes/compiler-rt-sanitizers: sync more glibc version test skips

reduces noise, at least a little bit, for test failures in old slots.
The printf-fortify skips were in older ebuilds for newer slots, that
since got obsoleted by cherry-picks. But they weren't synced down, so
add them now.

Signed-off-by: Eli Schwartz <eschwartz <AT> gentoo.org>

 .../compiler-rt-sanitizers-15.0.7-r1.ebuild                   | 11 +++++++++++
 .../compiler-rt-sanitizers-16.0.6-r1.ebuild                   |  4 ++++
 .../compiler-rt-sanitizers-17.0.6-r1.ebuild                   |  4 ++++
 3 files changed, 19 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild
index cc90625548d1..0953044302ff 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild
@@ -106,6 +106,13 @@ src_prepare() {
 	if use ubsan && ! use cfi; then
 		> test/cfi/CMakeLists.txt || die
 	fi
+
+	if has_version -b ">=sys-libs/glibc-2.37"; then
+		# known failures with glibc-2.37
+		# https://github.com/llvm/llvm-project/issues/60678
+		rm test/dfsan/custom.cpp || die
+		rm test/dfsan/release_shadow_space.c || die
+	fi
 	if has_version -b ">=sys-libs/glibc-2.38"; then
 		# On glibc 2.38, the "nohang" test fails by... hanging.
 		# "fixed" in llvm 19.
@@ -113,6 +120,10 @@ src_prepare() {
 		# https://github.com/llvm/llvm-project/commit/deebf6b312227e028dd3258b162306b9cdb21cf7
 		rm test/tsan/getline_nohang.cpp || die
 	fi
+	if has_version ">=sys-libs/glibc-2.40"; then
+		# https://github.com/llvm/llvm-project/issues/100877
+		rm test/asan/TestCases/Linux/printf-fortify-5.c || die
+	fi
 
 	llvm.org_src_prepare
 }

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild
index e90e63cb5f34..a0b644c7e945 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild
@@ -119,6 +119,10 @@ src_prepare() {
 		# https://github.com/llvm/llvm-project/commit/deebf6b312227e028dd3258b162306b9cdb21cf7
 		rm test/tsan/getline_nohang.cpp || die
 	fi
+	if has_version ">=sys-libs/glibc-2.40"; then
+		# https://github.com/llvm/llvm-project/issues/100877
+		rm test/asan/TestCases/Linux/printf-fortify-5.c || die
+	fi
 
 	llvm.org_src_prepare
 }

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild
index c8df8fbabb40..5ce45f2b76ec 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild
@@ -112,6 +112,10 @@ src_prepare() {
 		# https://github.com/llvm/llvm-project/commit/deebf6b312227e028dd3258b162306b9cdb21cf7
 		rm test/tsan/getline_nohang.cpp || die
 	fi
+	if has_version ">=sys-libs/glibc-2.40"; then
+		# https://github.com/llvm/llvm-project/issues/100877
+		rm test/asan/TestCases/Linux/printf-fortify-5.c || die
+	fi
 
 	llvm.org_src_prepare
 }


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-08-31  7:23 Eli Schwartz
  0 siblings, 0 replies; 106+ messages in thread
From: Eli Schwartz @ 2025-08-31  7:23 UTC (permalink / raw
  To: gentoo-commits

commit:     7cf791a95dfc73f8a5cb63927593cf095ff73a45
Author:     Eli Schwartz <eschwartz <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 31 07:19:07 2025 +0000
Commit:     Eli Schwartz <eschwartz <AT> gentoo <DOT> org>
CommitDate: Sun Aug 31 07:20:23 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7cf791a9

llvm-runtimes/compiler-rt-sanitizers: enable py3.1{2,3,4} for old slots

There are various test failures the further back you go. But the list of
test failures remains the same regardless of python version. So this
shouldn't block PYTHON_COMPAT bumps.

Probably the remaining test fails are just more glibc update issues
which remain un-backported. :/

Signed-off-by: Eli Schwartz <eschwartz <AT> gentoo.org>

 .../compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild      | 2 +-
 .../compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild      | 2 +-
 .../compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild      | 2 +-
 .../compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild      | 2 +-
 .../compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild         | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild
index 0953044302ff..b349c76f0d38 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_COMPAT=( python3_{11..14} )
 inherit check-reqs cmake flag-o-matic llvm llvm.org python-any-r1
 
 DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)"

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild
index a0b644c7e945..77dd84b2cd3b 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_COMPAT=( python3_{11..14} )
 inherit check-reqs cmake flag-o-matic llvm llvm.org python-any-r1
 
 DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)"

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild
index 5ce45f2b76ec..e759c8f9e446 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_COMPAT=( python3_{11..14} )
 inherit check-reqs cmake flag-o-matic llvm llvm.org python-any-r1
 
 DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)"

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
index 8adf5792fd25..56b957f528fa 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-PYTHON_COMPAT=( python3_{10..13} )
+PYTHON_COMPAT=( python3_{11..14} )
 inherit check-reqs cmake flag-o-matic llvm.org llvm-utils python-any-r1
 
 DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)"

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
index d5936068acb4..6577cd7603e8 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-19.1.7.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-PYTHON_COMPAT=( python3_{11..13} )
+PYTHON_COMPAT=( python3_{11..14} )
 inherit check-reqs cmake flag-o-matic llvm.org llvm-utils python-any-r1
 
 DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)"


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-08-31 13:28 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-08-31 13:28 UTC (permalink / raw
  To: gentoo-commits

commit:     88244fafbe97d409e1a33cf4823ffecbe765d8b4
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 31 13:26:10 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Aug 31 13:26:10 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=88244faf

llvm-runtimes/compiler-rt-sanitizers: Add 22.0.0_pre20250831 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-22.0.0_pre20250831.ebuild | 224 +++++++++++++++++++++
 2 files changed, 225 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 432cdcc4cfb6..db1ac575fce4 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -14,6 +14,7 @@ DIST llvm-project-18.1.8.src.tar.xz 132067260 BLAKE2B a950492f1dbfb874dff63b1ffe
 DIST llvm-project-18.1.8.src.tar.xz.sig 566 BLAKE2B 6ab0efc5b38d4483f4e32e8b85774b2edd5d88fdf29f23b88eb0b5130a7a7f0e80549612b025f927e92de4a08ff7c292cff224dbda91a5d598244e98f7ad0fbd SHA512 ddfd1e8a06756759af6cbe488c82a6d6a62ba91f3e8a0eb4cece561321824f5d165b08ed91010588790b76e19790931d2651b24dba8567e3b151d3cb43bec25b
 DIST llvm-project-19.1.7.src.tar.xz 141249332 BLAKE2B 1259ed7f9aca7b35e89d818befdee20fd8bed4d2dc2c2c6f6f56451fd43d35ac03a0a5a406e142d22b25137999dc5b17471c196f8fcf79f20a8296832d900f6d SHA512 c7d63286d662707a9cd54758c9e3aaf52794a91900c484c4a6efa62d90bc719d5e7a345e4192feeb0c9fd11c82570d64677c781e5be1d645556b6aa018e47ec8
 DIST llvm-project-19.1.7.src.tar.xz.sig 438 BLAKE2B 4015140f4ba77de45039bdbdfbaf6f30e75705123d067ea97175d91d7a5b6a75008df01d99ae7aa16aaa3b101f3f41e38d01f04158f95a261d617b3ede0254cd SHA512 195797b06ac80a742e0ccbc03a50dc06dd2e04377d783d5474e3e72c5a75203b60292b047929312a411d22b137a239943fba414a4d136a2be14cbff978eb6bda
+DIST llvm-project-1d8fdda7b0a9f47c443600bca6af2bc141e4abf7.tar.gz 246773192 BLAKE2B a61c1607586dd6f130c62a78a1f36d0e49d66d47d1244c3fe26df774131b3717cdbb2ab726428bd89d420190125dea5968d11b8094131c3214ab00e00a3ccd3b SHA512 3a1d83b6f016fa677da1eb18836b819e042d67a7a922cba83016147520eb2f44493c0cbc12015c4222804a641f410915efd0bb833a08c24efced7fc26801933b
 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

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250831.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250831.ebuild
new file mode 100644
index 000000000000..333dd678b31e
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250831.ebuild
@@ -0,0 +1,224 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	python-any-r1_pkg_setup
+}
+
+src_prepare() {
+	sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
+
+	# builds freestanding code
+	filter-flags -fstack-protector*
+
+	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_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}/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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-09-02 14:29 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-09-02 14:29 UTC (permalink / raw
  To: gentoo-commits

commit:     ee6c164f40e7dbf3ce58c13fc16975b94844c0a4
Author:     Michal Rostecki <vadorovsky <AT> protonmail <DOT> com>
AuthorDate: Mon Aug  4 08:07:17 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep  2 13:59:07 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ee6c164f

llvm-runtimes/compiler-rt-sanitizers: Use the partial clang cofiguration files

Initial installation or upgrade of compiler-rt-sanitizers happens before
the main slotted clang configuration file is created by
llvm-core/clang-runtime. Building compiler-rt-sanitizers requires
only the linker (`-fuse-ld`), rtlib (`--rtlib`) and C++ standard library
(`--stdlib`) configuration to be present. To fix the initial builds, we
can use the partial configuration provided by:

* llvm-core/clang-linker-config
* llvm-runtimes/clang-rtlib-config
+ llvm-runtimes/clang-stdlib-config

Signed-off-by: Michal Rostecki <vadorovsky <AT> protonmail.com>
Closes: https://bugs.gentoo.org/951445
Part-of: https://github.com/gentoo/gentoo/pull/42663
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Part-of: https://github.com/gentoo/gentoo/pull/42663
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 ...ild => compiler-rt-sanitizers-20.1.8-r1.ebuild} | 37 +++++++++++++++-------
 ...ild => compiler-rt-sanitizers-21.1.0-r1.ebuild} | 25 +++++++++++----
 .../compiler-rt-sanitizers-22.0.0.9999.ebuild      | 17 ++++++++--
 ...ompiler-rt-sanitizers-22.0.0_pre20250831.ebuild | 17 ++++++++--
 4 files changed, 74 insertions(+), 22 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8-r1.ebuild
similarity index 83%
copy from llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild
copy to llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8-r1.ebuild
index 333dd678b31e..e168e5638ab9 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-20.1.8-r1.ebuild
@@ -11,7 +11,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 ~ppc-macos ~x64-macos"
+IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
 # base targets
 IUSE+=" +ctx-profile +libfuzzer +memprof +orc +profile +xray"
 # sanitizer targets, keep in sync with config-ix.cmake
@@ -40,6 +41,9 @@ DEPEND="
 BDEPEND="
 	clang? (
 		llvm-core/clang:${LLVM_MAJOR}
+		llvm-core/clang-linker-config:${LLVM_MAJOR}
+		llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
+		llvm-runtimes/clang-stdlib-config:${LLVM_MAJOR}
 		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
 	)
 	elibc_glibc? ( net-libs/libtirpc )
@@ -56,6 +60,7 @@ LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake )
 LLVM_TEST_COMPONENTS=(
 	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
 )
+LLVM_PATCHSET=${PV}
 llvm.org_set_globals
 
 python_check_deps() {
@@ -82,9 +87,6 @@ pkg_setup() {
 src_prepare() {
 	sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
 
-	# builds freestanding code
-	filter-flags -fstack-protector*
-
 	local flag
 	for flag in "${SANITIZER_FLAGS[@]}"; do
 		if ! use "${flag}"; then
@@ -101,6 +103,8 @@ src_prepare() {
 	if use ubsan && ! use cfi; then
 		> test/cfi/CMakeLists.txt || die
 	fi
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
 
 	llvm.org_src_prepare
 }
@@ -115,9 +119,19 @@ src_configure() {
 	BUILD_DIR=${WORKDIR}/compiler-rt_build
 
 	if use clang; then
-		local -x CC=${CHOST}-clang
-		local -x CXX=${CHOST}-clang++
+		local -x CC=${CHOST}-clang-${LLVM_MAJOR}
+		local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
 		strip-unsupported-flags
+
+		# The full clang configuration might not be ready yet. Use the partial
+		# configuration files that are guaranteed to exist even during initial
+		# installations and upgrades.
+		local flags=(
+			--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,stdlib,linker}.cfg
+		)
+		local -x CFLAGS="${CFLAGS} ${flags[@]}"
+		local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
+		local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
 	fi
 
 	local flag want_sanitizer=OFF
@@ -190,11 +204,9 @@ src_configure() {
 	cmake_src_configure
 
 	if use test; then
-		local sys_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
-		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
-		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
-		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
-		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+		local sys_dir=( "${EPREFIX}"/usr/lib/clang/${LLVM_MAJOR}/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
@@ -203,7 +215,8 @@ src_configure() {
 			"${BUILD_DIR}"/lib/llvm/${LLVM_MAJOR}/bin/ || die
 		cp "${EPREFIX}"/usr/lib/clang/${LLVM_MAJOR}/include/*.h \
 			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || die
+		cp "${sys_dir}"/*builtins*.a \
+			"${BUILD_DIR}/lib/clang/${LLVM_MAJOR}/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 \

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0-r1.ebuild
similarity index 88%
copy from llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild
copy to llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0-r1.ebuild
index 333dd678b31e..bfe432ebdae7 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.0-r1.ebuild
@@ -11,7 +11,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 ~ppc-macos ~x64-macos"
+IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
 # base targets
 IUSE+=" +ctx-profile +libfuzzer +memprof +orc +profile +xray"
 # sanitizer targets, keep in sync with config-ix.cmake
@@ -40,6 +41,9 @@ DEPEND="
 BDEPEND="
 	clang? (
 		llvm-core/clang:${LLVM_MAJOR}
+		llvm-core/clang-linker-config:${LLVM_MAJOR}
+		llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
+		llvm-runtimes/clang-stdlib-config:${LLVM_MAJOR}
 		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
 	)
 	elibc_glibc? ( net-libs/libtirpc )
@@ -82,9 +86,6 @@ pkg_setup() {
 src_prepare() {
 	sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
 
-	# builds freestanding code
-	filter-flags -fstack-protector*
-
 	local flag
 	for flag in "${SANITIZER_FLAGS[@]}"; do
 		if ! use "${flag}"; then
@@ -101,6 +102,8 @@ src_prepare() {
 	if use ubsan && ! use cfi; then
 		> test/cfi/CMakeLists.txt || die
 	fi
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
 
 	llvm.org_src_prepare
 }
@@ -115,9 +118,19 @@ src_configure() {
 	BUILD_DIR=${WORKDIR}/compiler-rt_build
 
 	if use clang; then
-		local -x CC=${CHOST}-clang
-		local -x CXX=${CHOST}-clang++
+		local -x CC=${CHOST}-clang-${LLVM_MAJOR}
+		local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
 		strip-unsupported-flags
+
+		# The full clang configuration might not be ready yet. Use the partial
+		# configuration files that are guaranteed to exist even during initial
+		# installations and upgrades.
+		local flags=(
+			--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,stdlib,linker}.cfg
+		)
+		local -x CFLAGS="${CFLAGS} ${flags[@]}"
+		local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
+		local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
 	fi
 
 	local flag want_sanitizer=OFF

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild
index 333dd678b31e..fa3b0d22fd43 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0.9999.ebuild
@@ -40,6 +40,9 @@ DEPEND="
 BDEPEND="
 	clang? (
 		llvm-core/clang:${LLVM_MAJOR}
+		llvm-core/clang-linker-config:${LLVM_MAJOR}
+		llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
+		llvm-runtimes/clang-stdlib-config:${LLVM_MAJOR}
 		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
 	)
 	elibc_glibc? ( net-libs/libtirpc )
@@ -115,9 +118,19 @@ src_configure() {
 	BUILD_DIR=${WORKDIR}/compiler-rt_build
 
 	if use clang; then
-		local -x CC=${CHOST}-clang
-		local -x CXX=${CHOST}-clang++
+		local -x CC=${CHOST}-clang-${LLVM_MAJOR}
+		local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
 		strip-unsupported-flags
+
+		# The full clang configuration might not be ready yet. Use the partial
+		# configuration files that are guaranteed to exist even during initial
+		# installations and upgrades.
+		local flags=(
+			--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,stdlib,linker}.cfg
+		)
+		local -x CFLAGS="${CFLAGS} ${flags[@]}"
+		local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
+		local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
 	fi
 
 	local flag want_sanitizer=OFF

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250831.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250831.ebuild
index 333dd678b31e..fa3b0d22fd43 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250831.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250831.ebuild
@@ -40,6 +40,9 @@ DEPEND="
 BDEPEND="
 	clang? (
 		llvm-core/clang:${LLVM_MAJOR}
+		llvm-core/clang-linker-config:${LLVM_MAJOR}
+		llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
+		llvm-runtimes/clang-stdlib-config:${LLVM_MAJOR}
 		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
 	)
 	elibc_glibc? ( net-libs/libtirpc )
@@ -115,9 +118,19 @@ src_configure() {
 	BUILD_DIR=${WORKDIR}/compiler-rt_build
 
 	if use clang; then
-		local -x CC=${CHOST}-clang
-		local -x CXX=${CHOST}-clang++
+		local -x CC=${CHOST}-clang-${LLVM_MAJOR}
+		local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
 		strip-unsupported-flags
+
+		# The full clang configuration might not be ready yet. Use the partial
+		# configuration files that are guaranteed to exist even during initial
+		# installations and upgrades.
+		local flags=(
+			--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,stdlib,linker}.cfg
+		)
+		local -x CFLAGS="${CFLAGS} ${flags[@]}"
+		local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
+		local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
 	fi
 
 	local flag want_sanitizer=OFF


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-09-07 19:47 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-09-07 19:47 UTC (permalink / raw
  To: gentoo-commits

commit:     587ca016a15d592feaa3a9a6f56a92e2c5416fc6
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Sep  7 19:16:03 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Sep  7 19:47:26 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=587ca016

llvm-runtimes/compiler-rt-sanitizers: Add 22.0.0_pre20250907 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-22.0.0_pre20250907.ebuild | 237 +++++++++++++++++++++
 2 files changed, 238 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index db1ac575fce4..062b18f151f8 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -19,4 +19,5 @@ DIST llvm-project-20.1.8.src.tar.xz 147242952 BLAKE2B 7657ac0b26acc5affb1bfc91b9
 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-645dd324d1b7d028745c2a4045b69e745df2ae6a.tar.gz 247443586 BLAKE2B dd3229c32768e42fd2f311638f1e63f5503fabee3fa414bc3300313b36bbfa062d90900319e4fdbbafae17947537fba699fe5940e1b6553a2d9a716c0ce7b59c SHA512 659dc22e2fd1fd0bced13f941127797dc7703b8d810eeb7a0fc51cf55c274e69e2d6660867c191d5d90615ddee3a1faff7f7cd357ff2eb88d715762be50098c3
 DIST llvm-project-d76bb2bb894a4641ed62447327b40a347a6ae883.tar.gz 245754836 BLAKE2B 487e6396f1b381743dfbbd13e8f55728f1f915c042c717433e498127ecdeb4405a67e998059f5eb1f84e851437b805ba9e9c0e390c61092c7ee336a801d6f342 SHA512 42e38f917357918e8d62d8893a1ba34b431cd8aabf924b89e5352013bb8984c10c0b2796fa9a725bab71e52f99216604b75606bde3b795d20082d97d0f7a82ad

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250907.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250907.ebuild
new file mode 100644
index 000000000000..fa3b0d22fd43
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250907.ebuild
@@ -0,0 +1,237 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-core/clang-linker-config:${LLVM_MAJOR}
+		llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
+		llvm-runtimes/clang-stdlib-config:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	python-any-r1_pkg_setup
+}
+
+src_prepare() {
+	sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
+
+	# builds freestanding code
+	filter-flags -fstack-protector*
+
+	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_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}/compiler-rt_build
+
+	if use clang; then
+		local -x CC=${CHOST}-clang-${LLVM_MAJOR}
+		local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
+		strip-unsupported-flags
+
+		# The full clang configuration might not be ready yet. Use the partial
+		# configuration files that are guaranteed to exist even during initial
+		# installations and upgrades.
+		local flags=(
+			--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,stdlib,linker}.cfg
+		)
+		local -x CFLAGS="${CFLAGS} ${flags[@]}"
+		local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
+		local -x LDFLAGS="${LDFLAGS} ${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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-09-10 11:47 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-09-10 11:47 UTC (permalink / raw
  To: gentoo-commits

commit:     25c41f24edb8488ab97c8f345afe154918cb27f6
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 10 08:57:17 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Sep 10 11:47:15 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=25c41f24

llvm-runtimes/compiler-rt-sanitizers: Add 21.1.1

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   2 +
 .../compiler-rt-sanitizers-21.1.1.ebuild           | 237 +++++++++++++++++++++
 2 files changed, 239 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index ebed54612929..4bddacdeeb3b 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -18,5 +18,7 @@ DIST llvm-project-20.1.8.src.tar.xz 147242952 BLAKE2B 7657ac0b26acc5affb1bfc91b9
 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-sanitizers/compiler-rt-sanitizers-21.1.1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.1.ebuild
new file mode 100644
index 000000000000..bfe432ebdae7
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.1.ebuild
@@ -0,0 +1,237 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
+IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-core/clang-linker-config:${LLVM_MAJOR}
+		llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
+		llvm-runtimes/clang-stdlib-config:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/compiler-rt_build
+
+	if use clang; then
+		local -x CC=${CHOST}-clang-${LLVM_MAJOR}
+		local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
+		strip-unsupported-flags
+
+		# The full clang configuration might not be ready yet. Use the partial
+		# configuration files that are guaranteed to exist even during initial
+		# installations and upgrades.
+		local flags=(
+			--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,stdlib,linker}.cfg
+		)
+		local -x CFLAGS="${CFLAGS} ${flags[@]}"
+		local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
+		local -x LDFLAGS="${LDFLAGS} ${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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-09-24  2:27 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-09-24  2:27 UTC (permalink / raw
  To: gentoo-commits

commit:     f3159d81094b999dbcbc31a0b6c22b4d399bfb11
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 24 02:25:17 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Sep 24 02:25:17 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f3159d81

llvm-runtimes/compiler-rt-sanitizers: Add 22.0.0_pre20250923 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-22.0.0_pre20250923.ebuild | 237 +++++++++++++++++++++
 2 files changed, 238 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 8ef1fa4b9dae..96b833a22336 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -18,4 +18,5 @@ DIST llvm-project-20.1.8.src.tar.xz 147242952 BLAKE2B 7657ac0b26acc5affb1bfc91b9
 DIST llvm-project-20.1.8.src.tar.xz.sig 566 BLAKE2B 85beedfcff1195a974fab2c667b9efd4b715b3480c1b44b1b887fe32c69f72aca0d3b8fb276c03b6cc5a866622f669047aeee5ccb976640b4008ccd31dce77a4 SHA512 d74369bdb4d1b82775161ea53c9c5f3a23ce810f4df5ff617123023f9d8ce720e7d6ecc9e17f8ebd39fd9e7a9de79560abdf2ffe73bcb907a43148d43665d619
 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-70bd610e43853d575e22be1cda46614fe9f0072f.tar.gz 247904536 BLAKE2B f0ae7bd39d921ce28adb6e2aadd8b2b94ba7a48ba344ea6ea236b2507430fb1a0e23cd6186d79d445de31d46580e2ac9ec400fc686cd9a7513e0ae2d0f479c1d SHA512 1201acbcec20d00979e7f06075756926161123cfb11da146a3bfa5c81d607b61d94c645d0abba839614cbe5d44cacb0b1c754e1ae49fa871cb86d9f6d7c70e26
 DIST llvm-project-f059d2bac034acca39ad60a1b13aaec6afa0a3d6.tar.gz 248627883 BLAKE2B e1603ba38fcf70e7f3794a30a42057d0052a422bd0aaf423c65d1fd8f9ec7d3981cd651f309dc3ab5c28183291241732373b9bdb75fc2a11fc8d9f238388b8c3 SHA512 63a1627a8b3cc8f240cefe2066d7e306cab5091317f97dd808b9ad887d4e6eb2d21af3f79bccfdb9387f5f7a5ed0b772013b0261a647c8d50ffaa55914362dfb

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250923.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250923.ebuild
new file mode 100644
index 000000000000..fa3b0d22fd43
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250923.ebuild
@@ -0,0 +1,237 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-core/clang-linker-config:${LLVM_MAJOR}
+		llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
+		llvm-runtimes/clang-stdlib-config:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	python-any-r1_pkg_setup
+}
+
+src_prepare() {
+	sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
+
+	# builds freestanding code
+	filter-flags -fstack-protector*
+
+	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_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}/compiler-rt_build
+
+	if use clang; then
+		local -x CC=${CHOST}-clang-${LLVM_MAJOR}
+		local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
+		strip-unsupported-flags
+
+		# The full clang configuration might not be ready yet. Use the partial
+		# configuration files that are guaranteed to exist even during initial
+		# installations and upgrades.
+		local flags=(
+			--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,stdlib,linker}.cfg
+		)
+		local -x CFLAGS="${CFLAGS} ${flags[@]}"
+		local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
+		local -x LDFLAGS="${LDFLAGS} ${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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-09-24 16:18 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-09-24 16:18 UTC (permalink / raw
  To: gentoo-commits

commit:     1a3a0e49aed3c13e04a469a695bf78131e5c46fe
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 24 02:30:14 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Sep 24 16:18:09 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1a3a0e49

llvm-runtimes/compiler-rt-sanitizers: Add 21.1.2

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   2 +
 .../compiler-rt-sanitizers-21.1.2.ebuild           | 237 +++++++++++++++++++++
 2 files changed, 239 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 96b833a22336..b3323c324814 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -18,5 +18,7 @@ DIST llvm-project-20.1.8.src.tar.xz 147242952 BLAKE2B 7657ac0b26acc5affb1bfc91b9
 DIST llvm-project-20.1.8.src.tar.xz.sig 566 BLAKE2B 85beedfcff1195a974fab2c667b9efd4b715b3480c1b44b1b887fe32c69f72aca0d3b8fb276c03b6cc5a866622f669047aeee5ccb976640b4008ccd31dce77a4 SHA512 d74369bdb4d1b82775161ea53c9c5f3a23ce810f4df5ff617123023f9d8ce720e7d6ecc9e17f8ebd39fd9e7a9de79560abdf2ffe73bcb907a43148d43665d619
 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-21.1.2.src.tar.xz 158926856 BLAKE2B 1b5684586297ad637c6da0976854b24d746679e9d125a19e321dc28fa7f83949cc431f4b630e4976496660389e7abac09962c21e45b88dff7d0900ee1bda51d7 SHA512 f810ba8706872257715c05f80c304ceb396cf38b3a8e0bfb50e474e8d0a3417740b9afea170a7c06a33927037753a190471917e83d6740cb18bc50fd50cf4f3d
+DIST llvm-project-21.1.2.src.tar.xz.sig 566 BLAKE2B 6209caf851c681e6f63ed1bd9589ac139c104d6ee21f463aacda472e30a847c32f3bd74a04208af05bb6203d8fa31bdc0028c0e72736a3037940e75eda615415 SHA512 dd8aa57451752a9207c276117a4b8a86f41263ea3ccc4fa198cd40d6fec79acd0ba126c4b84a1acbb52bbb2bce029fbc336deac8131be94747dd04e4a0f69331
 DIST llvm-project-70bd610e43853d575e22be1cda46614fe9f0072f.tar.gz 247904536 BLAKE2B f0ae7bd39d921ce28adb6e2aadd8b2b94ba7a48ba344ea6ea236b2507430fb1a0e23cd6186d79d445de31d46580e2ac9ec400fc686cd9a7513e0ae2d0f479c1d SHA512 1201acbcec20d00979e7f06075756926161123cfb11da146a3bfa5c81d607b61d94c645d0abba839614cbe5d44cacb0b1c754e1ae49fa871cb86d9f6d7c70e26
 DIST llvm-project-f059d2bac034acca39ad60a1b13aaec6afa0a3d6.tar.gz 248627883 BLAKE2B e1603ba38fcf70e7f3794a30a42057d0052a422bd0aaf423c65d1fd8f9ec7d3981cd651f309dc3ab5c28183291241732373b9bdb75fc2a11fc8d9f238388b8c3 SHA512 63a1627a8b3cc8f240cefe2066d7e306cab5091317f97dd808b9ad887d4e6eb2d21af3f79bccfdb9387f5f7a5ed0b772013b0261a647c8d50ffaa55914362dfb

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.2.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.2.ebuild
new file mode 100644
index 000000000000..bfe432ebdae7
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.2.ebuild
@@ -0,0 +1,237 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
+IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-core/clang-linker-config:${LLVM_MAJOR}
+		llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
+		llvm-runtimes/clang-stdlib-config:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/compiler-rt_build
+
+	if use clang; then
+		local -x CC=${CHOST}-clang-${LLVM_MAJOR}
+		local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
+		strip-unsupported-flags
+
+		# The full clang configuration might not be ready yet. Use the partial
+		# configuration files that are guaranteed to exist even during initial
+		# installations and upgrades.
+		local flags=(
+			--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,stdlib,linker}.cfg
+		)
+		local -x CFLAGS="${CFLAGS} ${flags[@]}"
+		local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
+		local -x LDFLAGS="${LDFLAGS} ${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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-10-01  6:35 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-10-01  6:35 UTC (permalink / raw
  To: gentoo-commits

commit:     4cdb09830470a45c8cee70310a023a10a0895bea
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Oct  1 06:21:41 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Oct  1 06:21:41 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4cdb0983

llvm-runtimes/compiler-rt-sanitizers: Add 22.0.0_pre20251001 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-22.0.0_pre20251001.ebuild | 237 +++++++++++++++++++++
 2 files changed, 238 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index b3323c324814..2a05d183f49d 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -21,4 +21,5 @@ DIST llvm-project-21.1.1.src.tar.xz.sig 438 BLAKE2B 8fdf614e67e31382c65d70a551ef
 DIST llvm-project-21.1.2.src.tar.xz 158926856 BLAKE2B 1b5684586297ad637c6da0976854b24d746679e9d125a19e321dc28fa7f83949cc431f4b630e4976496660389e7abac09962c21e45b88dff7d0900ee1bda51d7 SHA512 f810ba8706872257715c05f80c304ceb396cf38b3a8e0bfb50e474e8d0a3417740b9afea170a7c06a33927037753a190471917e83d6740cb18bc50fd50cf4f3d
 DIST llvm-project-21.1.2.src.tar.xz.sig 566 BLAKE2B 6209caf851c681e6f63ed1bd9589ac139c104d6ee21f463aacda472e30a847c32f3bd74a04208af05bb6203d8fa31bdc0028c0e72736a3037940e75eda615415 SHA512 dd8aa57451752a9207c276117a4b8a86f41263ea3ccc4fa198cd40d6fec79acd0ba126c4b84a1acbb52bbb2bce029fbc336deac8131be94747dd04e4a0f69331
 DIST llvm-project-70bd610e43853d575e22be1cda46614fe9f0072f.tar.gz 247904536 BLAKE2B f0ae7bd39d921ce28adb6e2aadd8b2b94ba7a48ba344ea6ea236b2507430fb1a0e23cd6186d79d445de31d46580e2ac9ec400fc686cd9a7513e0ae2d0f479c1d SHA512 1201acbcec20d00979e7f06075756926161123cfb11da146a3bfa5c81d607b61d94c645d0abba839614cbe5d44cacb0b1c754e1ae49fa871cb86d9f6d7c70e26
+DIST llvm-project-89ed5255b9ee88119e409a6d986eb1ad0e8f08e3.tar.gz 248431210 BLAKE2B b98dfe5ae46190a5a2460c965f0ec51d2f65a9d1d14f82afa19a10f00a2c29520c52309ee66d71efed6361aa675abcc9bd1b5e61e1c3b1aa9bac4984050c2bc2 SHA512 f860f529f4eb67f4a5875d9931accae2f48b88486dd6715a2ca2add7d5aa1541a30e323612394162e65597054d61a879a9ba94e4dbf417c3fb5f8ff069c2d924
 DIST llvm-project-f059d2bac034acca39ad60a1b13aaec6afa0a3d6.tar.gz 248627883 BLAKE2B e1603ba38fcf70e7f3794a30a42057d0052a422bd0aaf423c65d1fd8f9ec7d3981cd651f309dc3ab5c28183291241732373b9bdb75fc2a11fc8d9f238388b8c3 SHA512 63a1627a8b3cc8f240cefe2066d7e306cab5091317f97dd808b9ad887d4e6eb2d21af3f79bccfdb9387f5f7a5ed0b772013b0261a647c8d50ffaa55914362dfb

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20251001.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20251001.ebuild
new file mode 100644
index 000000000000..fa3b0d22fd43
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20251001.ebuild
@@ -0,0 +1,237 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-core/clang-linker-config:${LLVM_MAJOR}
+		llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
+		llvm-runtimes/clang-stdlib-config:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	python-any-r1_pkg_setup
+}
+
+src_prepare() {
+	sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
+
+	# builds freestanding code
+	filter-flags -fstack-protector*
+
+	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_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}/compiler-rt_build
+
+	if use clang; then
+		local -x CC=${CHOST}-clang-${LLVM_MAJOR}
+		local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
+		strip-unsupported-flags
+
+		# The full clang configuration might not be ready yet. Use the partial
+		# configuration files that are guaranteed to exist even during initial
+		# installations and upgrades.
+		local flags=(
+			--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,stdlib,linker}.cfg
+		)
+		local -x CFLAGS="${CFLAGS} ${flags[@]}"
+		local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
+		local -x LDFLAGS="${LDFLAGS} ${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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-10-03 11:43 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-10-03 11:43 UTC (permalink / raw
  To: gentoo-commits

commit:     206b7b9ac164de9a626dc9a4cf8c7c74f7a2156e
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Oct  3 11:40:44 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Oct  3 11:40:44 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=206b7b9a

llvm-runtimes/compiler-rt-sanitizers: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   4 -
 .../compiler-rt-sanitizers-21.1.1.ebuild           | 237 ---------------------
 ...ompiler-rt-sanitizers-22.0.0_pre20250910.ebuild | 237 ---------------------
 ...ompiler-rt-sanitizers-22.0.0_pre20250923.ebuild | 237 ---------------------
 4 files changed, 715 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 2a05d183f49d..4468166b1c03 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -16,10 +16,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.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-21.1.2.src.tar.xz 158926856 BLAKE2B 1b5684586297ad637c6da0976854b24d746679e9d125a19e321dc28fa7f83949cc431f4b630e4976496660389e7abac09962c21e45b88dff7d0900ee1bda51d7 SHA512 f810ba8706872257715c05f80c304ceb396cf38b3a8e0bfb50e474e8d0a3417740b9afea170a7c06a33927037753a190471917e83d6740cb18bc50fd50cf4f3d
 DIST llvm-project-21.1.2.src.tar.xz.sig 566 BLAKE2B 6209caf851c681e6f63ed1bd9589ac139c104d6ee21f463aacda472e30a847c32f3bd74a04208af05bb6203d8fa31bdc0028c0e72736a3037940e75eda615415 SHA512 dd8aa57451752a9207c276117a4b8a86f41263ea3ccc4fa198cd40d6fec79acd0ba126c4b84a1acbb52bbb2bce029fbc336deac8131be94747dd04e4a0f69331
-DIST llvm-project-70bd610e43853d575e22be1cda46614fe9f0072f.tar.gz 247904536 BLAKE2B f0ae7bd39d921ce28adb6e2aadd8b2b94ba7a48ba344ea6ea236b2507430fb1a0e23cd6186d79d445de31d46580e2ac9ec400fc686cd9a7513e0ae2d0f479c1d SHA512 1201acbcec20d00979e7f06075756926161123cfb11da146a3bfa5c81d607b61d94c645d0abba839614cbe5d44cacb0b1c754e1ae49fa871cb86d9f6d7c70e26
 DIST llvm-project-89ed5255b9ee88119e409a6d986eb1ad0e8f08e3.tar.gz 248431210 BLAKE2B b98dfe5ae46190a5a2460c965f0ec51d2f65a9d1d14f82afa19a10f00a2c29520c52309ee66d71efed6361aa675abcc9bd1b5e61e1c3b1aa9bac4984050c2bc2 SHA512 f860f529f4eb67f4a5875d9931accae2f48b88486dd6715a2ca2add7d5aa1541a30e323612394162e65597054d61a879a9ba94e4dbf417c3fb5f8ff069c2d924
-DIST llvm-project-f059d2bac034acca39ad60a1b13aaec6afa0a3d6.tar.gz 248627883 BLAKE2B e1603ba38fcf70e7f3794a30a42057d0052a422bd0aaf423c65d1fd8f9ec7d3981cd651f309dc3ab5c28183291241732373b9bdb75fc2a11fc8d9f238388b8c3 SHA512 63a1627a8b3cc8f240cefe2066d7e306cab5091317f97dd808b9ad887d4e6eb2d21af3f79bccfdb9387f5f7a5ed0b772013b0261a647c8d50ffaa55914362dfb

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.1.ebuild
deleted file mode 100644
index bfe432ebdae7..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.1.ebuild
+++ /dev/null
@@ -1,237 +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 check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
-IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-core/clang-linker-config:${LLVM_MAJOR}
-		llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
-		llvm-runtimes/clang-stdlib-config:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	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
-	# hangs, sigh
-	rm test/tsan/getline_nohang.cpp || die
-
-	llvm.org_src_prepare
-}
-
-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}/compiler-rt_build
-
-	if use clang; then
-		local -x CC=${CHOST}-clang-${LLVM_MAJOR}
-		local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
-		strip-unsupported-flags
-
-		# The full clang configuration might not be ready yet. Use the partial
-		# configuration files that are guaranteed to exist even during initial
-		# installations and upgrades.
-		local flags=(
-			--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,stdlib,linker}.cfg
-		)
-		local -x CFLAGS="${CFLAGS} ${flags[@]}"
-		local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
-		local -x LDFLAGS="${LDFLAGS} ${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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
-		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
-		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
-		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
-		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
-
-		# 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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250910.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250910.ebuild
deleted file mode 100644
index fa3b0d22fd43..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250910.ebuild
+++ /dev/null
@@ -1,237 +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 check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-core/clang-linker-config:${LLVM_MAJOR}
-		llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
-		llvm-runtimes/clang-stdlib-config:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	python-any-r1_pkg_setup
-}
-
-src_prepare() {
-	sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
-
-	# builds freestanding code
-	filter-flags -fstack-protector*
-
-	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_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}/compiler-rt_build
-
-	if use clang; then
-		local -x CC=${CHOST}-clang-${LLVM_MAJOR}
-		local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
-		strip-unsupported-flags
-
-		# The full clang configuration might not be ready yet. Use the partial
-		# configuration files that are guaranteed to exist even during initial
-		# installations and upgrades.
-		local flags=(
-			--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,stdlib,linker}.cfg
-		)
-		local -x CFLAGS="${CFLAGS} ${flags[@]}"
-		local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
-		local -x LDFLAGS="${LDFLAGS} ${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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
-		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
-		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
-		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
-		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
-
-		# 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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250923.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250923.ebuild
deleted file mode 100644
index fa3b0d22fd43..000000000000
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20250923.ebuild
+++ /dev/null
@@ -1,237 +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 check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
-IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
-# base targets
-IUSE+=" +ctx-profile +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 nsan rtsan
-)
-IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
-REQUIRED_USE="
-	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
-	test? (
-		cfi? ( ubsan )
-		gwp-asan? ( scudo )
-	)
-"
-RESTRICT="
-	!clang? ( test )
-	!test? ( test )
-"
-
-DEPEND="
-	llvm-core/llvm:${LLVM_MAJOR}
-	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
-"
-BDEPEND="
-	clang? (
-		llvm-core/clang:${LLVM_MAJOR}
-		llvm-core/clang-linker-config:${LLVM_MAJOR}
-		llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
-		llvm-runtimes/clang-stdlib-config:${LLVM_MAJOR}
-		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
-	)
-	elibc_glibc? ( net-libs/libtirpc )
-	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 )
-LLVM_TEST_COMPONENTS=(
-	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
-)
-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
-	python-any-r1_pkg_setup
-}
-
-src_prepare() {
-	sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
-
-	# builds freestanding code
-	filter-flags -fstack-protector*
-
-	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_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}/compiler-rt_build
-
-	if use clang; then
-		local -x CC=${CHOST}-clang-${LLVM_MAJOR}
-		local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
-		strip-unsupported-flags
-
-		# The full clang configuration might not be ready yet. Use the partial
-		# configuration files that are guaranteed to exist even during initial
-		# installations and upgrades.
-		local flags=(
-			--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,stdlib,linker}.cfg
-		)
-		local -x CFLAGS="${CFLAGS} ${flags[@]}"
-		local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
-		local -x LDFLAGS="${LDFLAGS} ${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_MAJOR}"
-		# 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_MAJOR}"
-
-		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
-		# builtins & crt installed by llvm-runtimes/compiler-rt
-		-DCOMPILER_RT_BUILD_BUILTINS=OFF
-		-DCOMPILER_RT_BUILD_CRT=OFF
-		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
-		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
-		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
-		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
-		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
-
-		# 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_MAJOR}/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_MAJOR}/include/*.h \
-			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
-		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
-}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-10-04  9:16 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-10-04  9:16 UTC (permalink / raw
  To: gentoo-commits

commit:     64625b06f10298b07d5fe0d59be725600d6b9420
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Oct  4 08:53:02 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Oct  4 08:53:02 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=64625b06

llvm-runtimes/compiler-rt-sanitizers: Add 22.0.0_pre20251004 snapshot

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   1 +
 ...ompiler-rt-sanitizers-22.0.0_pre20251004.ebuild | 237 +++++++++++++++++++++
 2 files changed, 238 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 4468166b1c03..cce4e2a96c11 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -19,3 +19,4 @@ DIST llvm-project-20.1.8.src.tar.xz.sig 566 BLAKE2B 85beedfcff1195a974fab2c667b9
 DIST llvm-project-21.1.2.src.tar.xz 158926856 BLAKE2B 1b5684586297ad637c6da0976854b24d746679e9d125a19e321dc28fa7f83949cc431f4b630e4976496660389e7abac09962c21e45b88dff7d0900ee1bda51d7 SHA512 f810ba8706872257715c05f80c304ceb396cf38b3a8e0bfb50e474e8d0a3417740b9afea170a7c06a33927037753a190471917e83d6740cb18bc50fd50cf4f3d
 DIST llvm-project-21.1.2.src.tar.xz.sig 566 BLAKE2B 6209caf851c681e6f63ed1bd9589ac139c104d6ee21f463aacda472e30a847c32f3bd74a04208af05bb6203d8fa31bdc0028c0e72736a3037940e75eda615415 SHA512 dd8aa57451752a9207c276117a4b8a86f41263ea3ccc4fa198cd40d6fec79acd0ba126c4b84a1acbb52bbb2bce029fbc336deac8131be94747dd04e4a0f69331
 DIST llvm-project-89ed5255b9ee88119e409a6d986eb1ad0e8f08e3.tar.gz 248431210 BLAKE2B b98dfe5ae46190a5a2460c965f0ec51d2f65a9d1d14f82afa19a10f00a2c29520c52309ee66d71efed6361aa675abcc9bd1b5e61e1c3b1aa9bac4984050c2bc2 SHA512 f860f529f4eb67f4a5875d9931accae2f48b88486dd6715a2ca2add7d5aa1541a30e323612394162e65597054d61a879a9ba94e4dbf417c3fb5f8ff069c2d924
+DIST llvm-project-b1e29ec3b73b9dd06656c7e30ace597ff72cde70.tar.gz 248630276 BLAKE2B ea1532ba05661de37f3d6bac6643f2f3000710f4c4b8c508c9b980da64964e60cd46d0b8e18d666b75089f8ad8e2f653ac6098b4054ce8adf7cb0c36220cdf29 SHA512 36471abffd9202c637aa89c53072f0f286beffad2d3908ad50bb4c395a1be0c8138ddcbd67e0c764f59842bcc6c6c31f04a14986c7145c369217a156885ac506

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20251004.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20251004.ebuild
new file mode 100644
index 000000000000..fa3b0d22fd43
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.0.0_pre20251004.ebuild
@@ -0,0 +1,237 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-core/clang-linker-config:${LLVM_MAJOR}
+		llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
+		llvm-runtimes/clang-stdlib-config:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	python-any-r1_pkg_setup
+}
+
+src_prepare() {
+	sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
+
+	# builds freestanding code
+	filter-flags -fstack-protector*
+
+	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_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}/compiler-rt_build
+
+	if use clang; then
+		local -x CC=${CHOST}-clang-${LLVM_MAJOR}
+		local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
+		strip-unsupported-flags
+
+		# The full clang configuration might not be ready yet. Use the partial
+		# configuration files that are guaranteed to exist even during initial
+		# installations and upgrades.
+		local flags=(
+			--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,stdlib,linker}.cfg
+		)
+		local -x CFLAGS="${CFLAGS} ${flags[@]}"
+		local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
+		local -x LDFLAGS="${LDFLAGS} ${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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-10-08 17:29 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-10-08 17:29 UTC (permalink / raw
  To: gentoo-commits

commit:     aab997a7315ef02ebf8912954bc9edd2ee9d6bc0
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Oct  8 13:19:59 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Oct  8 17:28:47 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aab997a7

llvm-runtimes/compiler-rt-sanitizers: Add 21.1.3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest      |   2 +
 .../compiler-rt-sanitizers-21.1.3.ebuild           | 237 +++++++++++++++++++++
 2 files changed, 239 insertions(+)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index cce4e2a96c11..12c9501794f8 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -18,5 +18,7 @@ DIST llvm-project-20.1.8.src.tar.xz 147242952 BLAKE2B 7657ac0b26acc5affb1bfc91b9
 DIST llvm-project-20.1.8.src.tar.xz.sig 566 BLAKE2B 85beedfcff1195a974fab2c667b9efd4b715b3480c1b44b1b887fe32c69f72aca0d3b8fb276c03b6cc5a866622f669047aeee5ccb976640b4008ccd31dce77a4 SHA512 d74369bdb4d1b82775161ea53c9c5f3a23ce810f4df5ff617123023f9d8ce720e7d6ecc9e17f8ebd39fd9e7a9de79560abdf2ffe73bcb907a43148d43665d619
 DIST llvm-project-21.1.2.src.tar.xz 158926856 BLAKE2B 1b5684586297ad637c6da0976854b24d746679e9d125a19e321dc28fa7f83949cc431f4b630e4976496660389e7abac09962c21e45b88dff7d0900ee1bda51d7 SHA512 f810ba8706872257715c05f80c304ceb396cf38b3a8e0bfb50e474e8d0a3417740b9afea170a7c06a33927037753a190471917e83d6740cb18bc50fd50cf4f3d
 DIST llvm-project-21.1.2.src.tar.xz.sig 566 BLAKE2B 6209caf851c681e6f63ed1bd9589ac139c104d6ee21f463aacda472e30a847c32f3bd74a04208af05bb6203d8fa31bdc0028c0e72736a3037940e75eda615415 SHA512 dd8aa57451752a9207c276117a4b8a86f41263ea3ccc4fa198cd40d6fec79acd0ba126c4b84a1acbb52bbb2bce029fbc336deac8131be94747dd04e4a0f69331
+DIST llvm-project-21.1.3.src.tar.xz 158943752 BLAKE2B ad9ee083584cb72fea3722feb518f6c933c3a34ba91b1ca8b724f461aa744475a783512dd6f0ab60d533c73b37e42b32a06f905d4869f770a68180649656df44 SHA512 d3058e7c18ada2a6a6192c7e75970406520e0d2ba390dba3b89e99f05959198fd2976d38c200f8e6af37fb569d866b6367bf6e0e249fe4b340dfab74499e5723
+DIST llvm-project-21.1.3.src.tar.xz.sig 119 BLAKE2B 675873fb6ce9a6b682d0ecdc5ec6ca8691d7f8f6bc72e6039a90c21f99d753a4b595f06676f9b5c1a23ebce872320cc67bd1687e8324f163ecbc4f22032bdf52 SHA512 d218a4071451e32a77890dd2e7de7a3b8a310ca85c7e6d90b88d85bad128979cf6866c9d772b880b50da2ec117832e77ba162049478c1deb7b0299cae008151a
 DIST llvm-project-89ed5255b9ee88119e409a6d986eb1ad0e8f08e3.tar.gz 248431210 BLAKE2B b98dfe5ae46190a5a2460c965f0ec51d2f65a9d1d14f82afa19a10f00a2c29520c52309ee66d71efed6361aa675abcc9bd1b5e61e1c3b1aa9bac4984050c2bc2 SHA512 f860f529f4eb67f4a5875d9931accae2f48b88486dd6715a2ca2add7d5aa1541a30e323612394162e65597054d61a879a9ba94e4dbf417c3fb5f8ff069c2d924
 DIST llvm-project-b1e29ec3b73b9dd06656c7e30ace597ff72cde70.tar.gz 248630276 BLAKE2B ea1532ba05661de37f3d6bac6643f2f3000710f4c4b8c508c9b980da64964e60cd46d0b8e18d666b75089f8ad8e2f653ac6098b4054ce8adf7cb0c36220cdf29 SHA512 36471abffd9202c637aa89c53072f0f286beffad2d3908ad50bb4c395a1be0c8138ddcbd67e0c764f59842bcc6c6c31f04a14986c7145c369217a156885ac506

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.3.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.3.ebuild
new file mode 100644
index 000000000000..bfe432ebdae7
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-21.1.3.ebuild
@@ -0,0 +1,237 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..14} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils 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_MAJOR}"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~ppc-macos ~x64-macos"
+IUSE="+abi_x86_32 abi_x86_64 +clang debug test"
+# base targets
+IUSE+=" +ctx-profile +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 nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+	|| ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+	test? (
+		cfi? ( ubsan )
+		gwp-asan? ( scudo )
+	)
+"
+RESTRICT="
+	!clang? ( test )
+	!test? ( test )
+"
+
+DEPEND="
+	llvm-core/llvm:${LLVM_MAJOR}
+	virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+	clang? (
+		llvm-core/clang:${LLVM_MAJOR}
+		llvm-core/clang-linker-config:${LLVM_MAJOR}
+		llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
+		llvm-runtimes/clang-stdlib-config:${LLVM_MAJOR}
+		llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+	)
+	elibc_glibc? ( net-libs/libtirpc )
+	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 )
+LLVM_TEST_COMPONENTS=(
+	llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+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
+	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
+	# hangs, sigh
+	rm test/tsan/getline_nohang.cpp || die
+
+	llvm.org_src_prepare
+}
+
+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}/compiler-rt_build
+
+	if use clang; then
+		local -x CC=${CHOST}-clang-${LLVM_MAJOR}
+		local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
+		strip-unsupported-flags
+
+		# The full clang configuration might not be ready yet. Use the partial
+		# configuration files that are guaranteed to exist even during initial
+		# installations and upgrades.
+		local flags=(
+			--config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,stdlib,linker}.cfg
+		)
+		local -x CFLAGS="${CFLAGS} ${flags[@]}"
+		local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
+		local -x LDFLAGS="${LDFLAGS} ${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_MAJOR}"
+		# 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_MAJOR}"
+
+		-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+		# builtins & crt installed by llvm-runtimes/compiler-rt
+		-DCOMPILER_RT_BUILD_BUILTINS=OFF
+		-DCOMPILER_RT_BUILD_CRT=OFF
+		-DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+		-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_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_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+		[[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+		[[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+		local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+		[[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+		# 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_MAJOR}/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_MAJOR}/include/*.h \
+			"${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+		cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || 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
+}


^ permalink raw reply related	[flat|nested] 106+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/
@ 2025-10-09 16:17 Michał Górny
  0 siblings, 0 replies; 106+ messages in thread
From: Michał Górny @ 2025-10-09 16:17 UTC (permalink / raw
  To: gentoo-commits

commit:     f5b66056395fca332a52add2d8598db2c71d4729
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Oct  9 16:10:15 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Oct  9 16:17:14 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f5b66056

llvm-runtimes/compiler-rt-sanitizers: glibc-2.42 fixes to all

Backport glibc-2.42 fixes to all older versions.  The patches applied
cleanly, but I have no clue if they work or that there aren't other
bugs preventing theses versions from building.

Closes: https://bugs.gentoo.org/961694
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 llvm-runtimes/compiler-rt-sanitizers/Manifest                     | 8 ++++----
 .../compiler-rt-sanitizers-15.0.7-r1.ebuild                       | 2 +-
 .../compiler-rt-sanitizers-16.0.6-r1.ebuild                       | 2 +-
 .../compiler-rt-sanitizers-17.0.6-r1.ebuild                       | 2 +-
 .../compiler-rt-sanitizers-18.1.8-r6.ebuild                       | 2 +-
 5 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 12c9501794f8..f76894fb8dad 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -1,7 +1,7 @@
-DIST llvm-gentoo-patchset-15.0.7-r6.tar.xz 25208 BLAKE2B c9fca31a053ee059c3060a94dcf675d472fc1a59b5f927648de58fb4ff20bfc229890f789ed47b3d053bd466b860a0c60a53b4b024a8fe18c776e9a72434d6de SHA512 601cd923711839dca7cb5bfea53ded644777c6340265a797939a53409fd2ca27059a015fd6ca6832e60314699ade27919a9a59dab395cc27f8fdc479a0f3c034
-DIST llvm-gentoo-patchset-16.0.6-r5.tar.xz 19728 BLAKE2B 36b605401893034b2b560d26cfb57512c81eddbc35b25d9c3d1fe051b8825c38cae1b8ed999faf8fef564ca5578402d3979bc56ba0a5514dc62594d893696f41 SHA512 20a36b69dfc2b4796ce33318a28529ebdc213945ee67a983e4218117d2ee2c93be1ecb38b0e8189249c5806a442cba708e0890e1b7bf6376edec4403bcc71425
-DIST llvm-gentoo-patchset-17.0.6-r3.tar.xz 4648 BLAKE2B c709162068e83575f71a2ac2243665f47a3d42cac078daa5762bbd339d8593e8c1c5c58e2e415ba6659fe2f3c3824bd098c9be579103362084079140c0386f76 SHA512 251a33f146fcbdbe51c9e1ad7b08c2cd7d062d0b136c833cda8a5155c86080c506d575e4288cde4ba8530ca7f230c2afa63621878a8df0f23076a93c924e7d65
-DIST llvm-gentoo-patchset-18.1.8-r6.tar.xz 24816 BLAKE2B a7e9e007b05205fa7adba032ba932eba1996dd7ed6cd4cfb460a731f0d2e5fda2174f46c2ee5554ca7f82297a4baddbabc7fdfbd530056471853df957c221f2f SHA512 e1666bba6678eff3ee3666818a656ba7b8f964acb8466bd220bfbf0cc2922820e84b9daaa84c3a8ed26f3160fddea63fbc13872b007eb6922eaee462c08aeaef
+DIST llvm-gentoo-patchset-15.0.7-r8.tar.xz 27904 BLAKE2B 1fc5df0dc44484ea0225438f3d861ab23739773df58eaf2b531966baeeb5e717b2a3c03f62b1cfb8bb5e316393e8b295d4fbd8be3246381723f905304f005e12 SHA512 7f0ba8ef4291de87cc3220e63ad0ac088a81491d4a46b1053dd51d9725ca6c87d3d7720c2440908b10b1ace406f7ed1c523ca28b199a7a29ed06d0973a0829a2
+DIST llvm-gentoo-patchset-16.0.6-r6.tar.xz 21672 BLAKE2B b52c29a7c19b60ccd076c01014e374e35aa5da061917cdc6a9d321f9386ce4e9286d5a7cccfffc23e0f6737c6eeb32ef4ab030b9d3165f528d1c657b53b6ab17 SHA512 f8a6cdaded545219107505c57b194b3f4df8ee7a2f1f0756b8e8884633e389ad7462445e1522414615210c0a4407a0358c84882366a475441f681a2ba75dc985
+DIST llvm-gentoo-patchset-17.0.6-r4.tar.xz 6636 BLAKE2B 7b53f4b19e19b3493878ae9db925bfd07e81564e2ef01b10e6d7aa774a64928fd8d991a734ae5eca6a984489e18c288240187d2fe94f3b855643553e5fdaf024 SHA512 feffdd99b80f53c562ff2664b9b8a886132e400f1bc378e52d5f4559ee6a4139c5e7c4faee4fe015ce93ed4cff3a4b03844321254f3102b1f70f066ea84f7c10
+DIST llvm-gentoo-patchset-18.1.8-r7.tar.xz 26644 BLAKE2B 8d7bbbd363bd646fc139405a10f094aa314a19401fec7ba52e89ee200d304fc958e32886f607f59704a163ee2adf416be2756a9cda5a8394ce2bb9a2392a6f3f SHA512 e534f49c1a0428a490ef718e668e2db3294da181a835953457d29b711b1b3a5821d42f6ae81cfdac39c58302dd868652827ea4a04bc3aa2c147ab5c0a4d58a26
 DIST llvm-gentoo-patchset-19.1.7-r1.tar.xz 2644 BLAKE2B c9648797628ae84f81bb66947367d58fe7add9bb28f1e50b509c3d3eab15b6b50e6f58812fd67ce63c57310f1a90b56b10fb5909223d9b24998b3d30909caf0a SHA512 0ea8d8f86647cb28c443937b016b3cf46a2b921463815a85e32ab4488ef7368294a956f13c9b77f8fa70daeaa7bd165cb5975c3b4664ed6d11a6d24f11728d73
 DIST llvm-gentoo-patchset-20.1.8.tar.xz 2168 BLAKE2B ab44783c8d8b2f536192e801082f02769eb5bb092bb14d867df9fa854455e9d986ec1074605505c8b43b2cc0b0448474e3eaec3edd89e782922b5b232db9a6e2 SHA512 664018ac834fa0b8a9abc92d64facedc92d3f48818b72d7cdd28cb7c76234ca65c2a16b4d89b4fa5406d3ea97b1d326ae2b63fd5b21b4efa04b6f46f15014542
 DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5 SHA512 4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild
index b349c76f0d38..19cc981e26b7 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-15.0.7-r1.ebuild
@@ -56,7 +56,7 @@ BDEPEND="
 
 LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake )
 LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support llvm/utils/unittest )
-LLVM_PATCHSET=${PV/_/-}-r6
+LLVM_PATCHSET=${PV}-r8
 llvm.org_set_globals
 
 python_check_deps() {

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild
index 77dd84b2cd3b..dfe82c0f6e48 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-16.0.6-r1.ebuild
@@ -54,7 +54,7 @@ BDEPEND="
 "
 
 LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake )
-LLVM_PATCHSET=${PV}-r5
+LLVM_PATCHSET=${PV}-r6
 LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support third-party )
 llvm.org_set_globals
 

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild
index e759c8f9e446..12e481b8cfeb 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-17.0.6-r1.ebuild
@@ -54,7 +54,7 @@ BDEPEND="
 "
 
 LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake )
-LLVM_PATCHSET=${PV}-r3
+LLVM_PATCHSET=${PV}-r4
 LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support third-party )
 llvm.org_set_globals
 

diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
index 56b957f528fa..cb7cf259f79c 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.8-r6.ebuild
@@ -54,7 +54,7 @@ BDEPEND="
 "
 
 LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake )
-LLVM_PATCHSET=${PV}-r6
+LLVM_PATCHSET=${PV}-r7
 LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support third-party )
 llvm.org_set_globals
 


^ permalink raw reply related	[flat|nested] 106+ messages in thread

end of thread, other threads:[~2025-10-09 16:17 UTC | newest]

Thread overview: 106+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-29 20:22 [gentoo-commits] repo/gentoo:master commit in: llvm-runtimes/compiler-rt-sanitizers/ Michał Górny
  -- strict thread matches above, loose matches on Subject: below --
2025-10-09 16:17 Michał Górny
2025-10-08 17:29 Michał Górny
2025-10-04  9:16 Michał Górny
2025-10-03 11:43 Michał Górny
2025-10-01  6:35 Michał Górny
2025-09-24 16:18 Michał Górny
2025-09-24  2:27 Michał Górny
2025-09-10 11:47 Michał Górny
2025-09-07 19:47 Michał Górny
2025-09-02 14:29 Michał Górny
2025-08-31 13:28 Michał Górny
2025-08-31  7:23 Eli Schwartz
2025-08-29 16:40 Eli Schwartz
2025-08-29  9:30 Eli Schwartz
2025-08-29  9:30 Eli Schwartz
2025-08-27 12:28 Michał Górny
2025-08-26 19:38 Michał Górny
2025-08-24 19:02 Arthur Zamarin
2025-08-24 18:51 Arthur Zamarin
2025-08-21  8:22 Michał Górny
2025-08-21  8:18 Michał Górny
2025-08-16 13:51 Michał Górny
2025-08-12 17:09 Michał Górny
2025-08-09  9:47 Michał Górny
2025-08-02 10:29 Michał Górny
2025-08-01 18:54 Michał Górny
2025-08-01 18:54 Michał Górny
2025-07-29 19:04 Michał Górny
2025-07-26 19:53 Michał Górny
2025-07-22  9:20 Michał Górny
2025-07-20 14:15 Michał Górny
2025-07-20  8:24 Sam James
2025-07-19  6:50 Michał Górny
2025-07-13 20:03 Michał Górny
2025-07-09 18:49 Michał Górny
2025-06-28 15:03 Michał Górny
2025-06-28 14:55 Michał Górny
2025-06-14 14:24 Sam James
2025-06-14 11:02 Arthur Zamarin
2025-06-14  7:15 Michał Górny
2025-06-07 18:05 Michał Górny
2025-05-29  4:22 Michał Górny
2025-05-28 11:54 Michał Górny
2025-05-28 10:50 Michał Górny
2025-05-24 11:56 Michał Górny
2025-05-17 12:59 Michał Górny
2025-05-17  5:31 Michał Górny
2025-05-16  9:31 Michał Górny
2025-05-10 13:03 Michał Górny
2025-05-03 19:42 Michał Górny
2025-05-03 10:07 Michał Górny
2025-04-26 15:59 Michał Górny
2025-04-20 11:50 Michał Górny
2025-04-19  6:29 Michał Górny
2025-04-16 18:34 Michał Górny
2025-04-15 10:15 Michał Górny
2025-04-15 10:15 Michał Górny
2025-04-12 10:21 Michał Górny
2025-04-12  8:59 Michał Górny
2025-04-12  4:57 Michał Górny
2025-04-05 12:24 Michał Górny
2025-04-03 11:29 Michał Górny
2025-03-29 10:27 Michał Górny
2025-03-23 13:46 Arthur Zamarin
2025-03-23 13:46 Arthur Zamarin
2025-03-22 10:43 Michał Górny
2025-03-20 16:50 Michał Górny
2025-03-17 20:13 Michał Górny
2025-03-16 17:41 Michał Górny
2025-03-11 14:56 Michał Górny
2025-03-08 16:42 Arthur Zamarin
2025-03-05 10:13 Michał Górny
2025-03-05  6:25 Michał Górny
2025-03-01 12:58 Michał Górny
2025-03-01  8:34 Michał Górny
2025-02-26 18:55 Michał Górny
2025-02-25 14:03 Michał Górny
2025-02-22 15:19 Michał Górny
2025-02-15  7:19 Michał Górny
2025-02-13  7:53 Michał Górny
2025-02-11 11:29 Michał Górny
2025-02-08 11:51 Michał Górny
2025-02-07 20:08 Arthur Zamarin
2025-02-02 18:25 Michał Górny
2025-02-01 13:15 Michał Górny
2025-02-01  8:05 Michał Górny
2025-01-31 21:51 Michał Górny
2025-01-25 13:33 Michał Górny
2025-01-22 19:15 Michał Górny
2025-01-18 15:09 Michał Górny
2025-01-18  8:21 Michał Górny
2025-01-15  4:24 Michał Górny
2025-01-11 18:12 Michał Górny
2025-01-04 15:28 Michał Górny
2024-12-28 19:35 Michał Górny
2024-12-27 21:25 Michał Górny
2024-12-21 10:28 Michał Górny
2024-12-17 21:37 Michał Górny
2024-12-16  5:57 Michał Górny
2024-12-12 12:27 Michał Górny
2024-12-12  5:03 Sam James
2024-12-12  5:03 Sam James
2024-12-12  5:03 Sam James
2024-12-12  5:03 Sam James
2024-12-12  5:03 Sam James

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox