diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-02-07 21:58:53 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-02-07 21:58:53 +0000 |
commit | afb0b2f6a3d0dec97ba521230d62d0f9b9e0cd01 (patch) | |
tree | 615e36157bca77a49d7a0c35e26b4b5855e3c4cf /sys-libs/compiler-rt-sanitizers | |
parent | a704e825f55e39189114ffabe2634acee9ec0164 (diff) |
gentoo auto-resync : 07:02:2024 - 21:58:53
Diffstat (limited to 'sys-libs/compiler-rt-sanitizers')
-rw-r--r-- | sys-libs/compiler-rt-sanitizers/Manifest | 3 | ||||
-rw-r--r-- | sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.0_rc2.ebuild | 216 |
2 files changed, 219 insertions, 0 deletions
diff --git a/sys-libs/compiler-rt-sanitizers/Manifest b/sys-libs/compiler-rt-sanitizers/Manifest index 3a03a0d4d5c7..bc94801abbfd 100644 --- a/sys-libs/compiler-rt-sanitizers/Manifest +++ b/sys-libs/compiler-rt-sanitizers/Manifest @@ -7,12 +7,15 @@ 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.0rc1.src.tar.xz 131969632 BLAKE2B 0cc2f3049a89ee07182189a1ff7aec1751bfe6bbaed4887e139854737fe4eb0ec924b37d8d5b01e298d6a4b271735a615283465262345d0a288180edd6276139 SHA512 85afc331c8a023f4d8177cc42143b968b94d6987a7ed38b8be1170c6b4e1ef1a79d2d4e44d5fae98b713959b5d69bd4e44c6ba84355f59e8fe99588cbca03d7a DIST llvm-project-18.1.0rc1.src.tar.xz.sig 566 BLAKE2B c9fd7e92e0c6bb8291314ed388d518d15b75c5d4e7ba5da461c2176c5519d721c5ae95d8ecf99ce17bdc398cf23f13b540aacab306c2923e4c0ac8a5f059746f SHA512 0bb072ef2d3156241bcb74102c977db73720f38918e1a0b2cbe6191b6884ce5750ed9f5af69575599bad840c0151a04f81ebc5194c4ce258cbd6516d6c26d9cb +DIST llvm-project-18.1.0rc2.src.tar.xz 131993176 BLAKE2B 8df1e34a54214975efe1b9a649753a2dc20c04e3c763bd8648000f48dd18f27ccfdc597ff6e68e0f408310493dfa92f48c7eee53376501e8ebc3b7c614809c15 SHA512 b595bb5d029723fee4e8f8edeaddd6fdcd48d668f66f4239e3208fd19d3a3622e8e4f90ae3fa4b1216fca1621d6c6b6ebf4d99dec7febff2457d0ceb79e8617a +DIST llvm-project-18.1.0rc2.src.tar.xz.sig 566 BLAKE2B c765549386a92883bd348d9be25a3c92b1e66a1bac71385ef99978ec2af413a7616a2d9699c57554d927f95b80a3584572557d26e3df16b2ff6678359d5fd6b0 SHA512 83bb4c133f34faec8a0109689ed7aa18222c9a803ba8c95c571a18e854726024f106a1c8e3a820020255c426b7fa8bda26789ff1546972e233fbe3e3ab3a8e91 DIST llvm-project-1f13203029333ac99cc9844b8b6915aae3fc0902.tar.gz 205629630 BLAKE2B cd6c127bc7b63fffc4707863ab8a34e23371ce28878818723ba74d78a1be1b43c2f401fba7de2084f628f9418b7f0e7b9fe9c224b92dc44233cde2f5e3470333 SHA512 0b35754d6e8836267393d0d63effe04e1af5851b217252953ca3a75e7d71e32b1188991d34ff649f8c1cf2a1b49b844ca7e0704597655ffd37d151f4b9a0cf36 DIST llvm-project-78b4e7c5e349d8c101b50affbd260eb109748f8f.tar.gz 207433034 BLAKE2B ab7189fe82b5a9309348b499130295b3057dbb263ad9c60b1748e4ea92be3a85f0160baa1408dde5516650994951d9f948223d2d6260492a07b07dde51a51ff9 SHA512 366ecb02720d2b550ebeca989abf74ca1c93b2585a95fa378f44edc6c3329ee4e1548f5fa2cf7a19e59bc817abe6cc8850841415227380114c59b58867959a5a EBUILD compiler-rt-sanitizers-15.0.7.ebuild 6556 BLAKE2B e434e692cef521b574c9c566bb19f990910e25de620f284ae84204da588f4ed42996348ab1a9b58b4c4c4ae3f140fd8bcad42431416b15888f12e085cadcdbd6 SHA512 5f6b4ae9010ff21c7eefcb77cae85d73ef5d64cc961b0f6672e5158eb5242f55c6bf2bdadc3f18eb8a18fbdbd94442156539386d229aee3dbe6b953440cb39a6 EBUILD compiler-rt-sanitizers-16.0.6.ebuild 6523 BLAKE2B 9e81f29f1928262b3ea0fdec218f4430351da68a569bfaeea007a4d4e7552be1aa0232bfe5e74b164103d9908f7ac3fe1dd790ce06bb2e5b2b05a82879b271c4 SHA512 f04019755779116adadc66e6f4485c2b100d737e793d9f8532081688c195a6dd7f0dd8cf9077febf424d52d21982d0a266f3e4c8f453a34b4f16c05437d2cb28 EBUILD compiler-rt-sanitizers-17.0.6.ebuild 6357 BLAKE2B fc5e42e7b52d57e2ed4e3c83229569652b21250c9919d25623b349e90b9baf128eef97d98d863f5df2f10b799258e5faab8c9a69c9cc085e381e504b6d0d913c SHA512 ca0a3ddcd8b46bb060aa2e677820fc3fdd29237b3375a4e1fda5b74436ba819767dfa1c10a79c333a3662b9b1e0119c35812830666f4e5a176db23adba13ff1a EBUILD compiler-rt-sanitizers-18.1.0_rc1.ebuild 6270 BLAKE2B fc7f9fac67dbafe30768b6b61b8828dd9323813a102c432e8a211a7e909e9f8dc47421b44427906bbba981d63f0b8fa9262e721de492a47bf5cd0c9a4c40946f SHA512 66b72446f8aaf6b07af34dd5d43d5556183ca18949673ac313a5dda5c74562c02bc6691b0c95a75609173c587bd378968e46f40663c75fab22ec8782a813ac21 +EBUILD compiler-rt-sanitizers-18.1.0_rc2.ebuild 6270 BLAKE2B fc7f9fac67dbafe30768b6b61b8828dd9323813a102c432e8a211a7e909e9f8dc47421b44427906bbba981d63f0b8fa9262e721de492a47bf5cd0c9a4c40946f SHA512 66b72446f8aaf6b07af34dd5d43d5556183ca18949673ac313a5dda5c74562c02bc6691b0c95a75609173c587bd378968e46f40663c75fab22ec8782a813ac21 EBUILD compiler-rt-sanitizers-19.0.0.9999.ebuild 6270 BLAKE2B fc7f9fac67dbafe30768b6b61b8828dd9323813a102c432e8a211a7e909e9f8dc47421b44427906bbba981d63f0b8fa9262e721de492a47bf5cd0c9a4c40946f SHA512 66b72446f8aaf6b07af34dd5d43d5556183ca18949673ac313a5dda5c74562c02bc6691b0c95a75609173c587bd378968e46f40663c75fab22ec8782a813ac21 EBUILD compiler-rt-sanitizers-19.0.0_pre20240127.ebuild 6270 BLAKE2B fc7f9fac67dbafe30768b6b61b8828dd9323813a102c432e8a211a7e909e9f8dc47421b44427906bbba981d63f0b8fa9262e721de492a47bf5cd0c9a4c40946f SHA512 66b72446f8aaf6b07af34dd5d43d5556183ca18949673ac313a5dda5c74562c02bc6691b0c95a75609173c587bd378968e46f40663c75fab22ec8782a813ac21 EBUILD compiler-rt-sanitizers-19.0.0_pre20240203.ebuild 6270 BLAKE2B fc7f9fac67dbafe30768b6b61b8828dd9323813a102c432e8a211a7e909e9f8dc47421b44427906bbba981d63f0b8fa9262e721de492a47bf5cd0c9a4c40946f SHA512 66b72446f8aaf6b07af34dd5d43d5556183ca18949673ac313a5dda5c74562c02bc6691b0c95a75609173c587bd378968e46f40663c75fab22ec8782a813ac21 diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.0_rc2.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.0_rc2.ebuild new file mode 100644 index 000000000000..2ab1ae07e4c7 --- /dev/null +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-18.1.0_rc2.ebuild @@ -0,0 +1,216 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) +inherit check-reqs cmake flag-o-matic llvm llvm.org python-any-r1 + +DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="${LLVM_MAJOR}" +IUSE="+abi_x86_32 abi_x86_64 +clang +debug test" +# base targets +IUSE+=" +libfuzzer +memprof +orc +profile +xray" +# sanitizer targets, keep in sync with config-ix.cmake +# NB: ubsan, scudo deliberately match two entries +SANITIZER_FLAGS=( + asan dfsan lsan msan hwasan tsan ubsan safestack cfi scudo + shadowcallstack gwp-asan +) +IUSE+=" ${SANITIZER_FLAGS[@]/#/+}" +REQUIRED_USE=" + || ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray ) + test? ( + cfi? ( ubsan ) + gwp-asan? ( scudo ) + ) +" +RESTRICT=" + !clang? ( test ) + !test? ( test ) +" + +DEPEND=" + sys-devel/llvm:${LLVM_MAJOR} + virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?] +" +BDEPEND=" + clang? ( sys-devel/clang ) + elibc_glibc? ( net-libs/libtirpc ) + test? ( + $(python_gen_any_dep ">=dev-python/lit-15[\${PYTHON_USEDEP}]") + =sys-devel/clang-${LLVM_VERSION}*:${LLVM_MAJOR} + sys-libs/compiler-rt:${LLVM_MAJOR} + ) + !test? ( + ${PYTHON_DEPS} + ) +" + +LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake ) +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 + LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup + python-any-r1_pkg_setup +} + +src_prepare() { + sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die + + local flag + for flag in "${SANITIZER_FLAGS[@]}"; do + if ! use "${flag}"; then + local cmake_flag=${flag/-/_} + sed -i -e "/COMPILER_RT_HAS_${cmake_flag^^}/s:TRUE:FALSE:" \ + cmake/config-ix.cmake || die + fi + done + + # TODO: fix these tests to be skipped upstream + if use asan && ! use profile; then + rm test/asan/TestCases/asan_and_llvm_coverage_test.cpp || die + fi + if use ubsan && ! use cfi; then + > test/cfi/CMakeLists.txt || die + fi + # hangs, sigh + rm test/tsan/getline_nohang.cpp || die + + llvm.org_src_prepare +} + +src_configure() { + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + + # pre-set since we need to pass it to cmake + BUILD_DIR=${WORKDIR}/compiler-rt_build + + if use clang; then + local -x CC=${CHOST}-clang + local -x CXX=${CHOST}-clang++ + strip-unsupported-flags + fi + + local flag want_sanitizer=OFF + for flag in "${SANITIZER_FLAGS[@]}"; do + if use "${flag}"; then + want_sanitizer=ON + break + fi + done + + local mycmakeargs=( + -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${LLVM_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 sys-libs/compiler-rt + -DCOMPILER_RT_BUILD_BUILTINS=OFF + -DCOMPILER_RT_BUILD_CRT=OFF + -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer) + -DCOMPILER_RT_BUILD_MEMPROF=$(usex memprof) + -DCOMPILER_RT_BUILD_ORC=$(usex orc) + -DCOMPILER_RT_BUILD_PROFILE=$(usex profile) + -DCOMPILER_RT_BUILD_SANITIZERS="${want_sanitizer}" + -DCOMPILER_RT_BUILD_XRAY=$(usex xray) + + -DPython3_EXECUTABLE="${PYTHON}" + ) + + if use amd64; then + mycmakeargs+=( + -DCAN_TARGET_i386=$(usex abi_x86_32) + -DCAN_TARGET_x86_64=$(usex abi_x86_64) + ) + fi + + if use test; then + mycmakeargs+=( + -DLLVM_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 +} |