summaryrefslogtreecommitdiff
path: root/sys-libs/compiler-rt-sanitizers
diff options
context:
space:
mode:
Diffstat (limited to 'sys-libs/compiler-rt-sanitizers')
-rw-r--r--sys-libs/compiler-rt-sanitizers/Manifest10
-rw-r--r--sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-4.0.1.ebuild49
-rw-r--r--sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-5.0.1.ebuild53
-rw-r--r--sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-6.0.0.ebuild44
-rw-r--r--sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-6.0.9999.ebuild42
-rw-r--r--sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9999.ebuild42
6 files changed, 164 insertions, 76 deletions
diff --git a/sys-libs/compiler-rt-sanitizers/Manifest b/sys-libs/compiler-rt-sanitizers/Manifest
index c2e3842c6d46..3bd1bcc6eb71 100644
--- a/sys-libs/compiler-rt-sanitizers/Manifest
+++ b/sys-libs/compiler-rt-sanitizers/Manifest
@@ -5,9 +5,9 @@ DIST compiler-rt-sanitizers-4.0.1-patchset.tar.xz 2384 BLAKE2B 6f9eee711c8357076
DIST llvm-4.0.1.src.tar.xz 21065652 BLAKE2B 6327eed2d1feb108440f22d2581d1ff86c10a10c29793538d8d899c7e2dc83d3f7b147d3fd4bcce2bd2bf57c071b08c624aeafe40a3e7a3914506e7751727e6c SHA512 16adc39b34ddb628f81b171119a8e2a0e9138b25011e803ef0b688e2fbea116fc4953d3a1b61b90a98a75e33619f81566b7cb06a9a2ea4d04ac5e0eb303a2d1d
DIST llvm-5.0.1.src.tar.xz 23428720 BLAKE2B 3db4d33df21018d17eef0042c0d8d82a8412bd5daa99cfb5405a6ec83c5774178fa76b220e8731c2a9a64dabf898aa90fe29c685327bd63a4f078e8e94a9a77e SHA512 bee1d45fca15ce725b1f2b1339b13eb6f750a3a321cfd099075477ec25835a8ca55b5366172c4aad46592dfd8afe372349ecf264f581463d017f9cee2d63c1cb
DIST llvm-6.0.0.src.tar.xz 25296048 BLAKE2B 7ea90bb63d6f26cfbc1c1ed2f243b0fcd8ad2ceb7963cf768d262cd55e9a0c71a9cfdea0333fb220faacf4540d924d2512532774dcfb52b52490ad74e38c09e0 SHA512 a71fdd5ddc46f01327ad891cfcc198febdbe10769c57f14d8a4fb7d514621ee4080e1a641200d3353c16a16731d390270499ec6cd3dc98fadc570f3eb6b52b8c
-EBUILD compiler-rt-sanitizers-4.0.1.ebuild 3840 BLAKE2B 72c9943e4bafed115dabfa2fa33a035af9259bc764e8ac6797a9fc7c62aa60110feba43305b25595b6819e7fab261edc2619113deb5ef5629d0b433fc788717a SHA512 1d0d63f67b71a718bf7ed8bb422659a1b83f7c5dddd7d5cf436d5e7c266eb5ffd9096a2653c18b5272c79d659b898ec9fe489ba94d8786cce7823acea11724a9
-EBUILD compiler-rt-sanitizers-5.0.1.ebuild 4079 BLAKE2B 87863e4d0c754f6dacaa9a633c6fa97da803aabcad8be1ffa98c27e06e71d03c132fff3c34bbfda2b963f35ad8c9e9315dc08a8a63c489c0bb3a16b3b3646f7f SHA512 01f6dc8700713833961b223a82e9b0035701ef4a291b8ffb483e2b784ec345b5d58ccf84cd168dace95888260dd882a75b09e66b9c0f3001b826a91058a4508b
-EBUILD compiler-rt-sanitizers-6.0.0.ebuild 4568 BLAKE2B b1b4183f359b49ddb8f5310b7b30e375d34fae5b0f09a451e917d3d09f11489bdc1b866d48b3a370b43f8977b9fe8143823547ca937fdadaa640eb62fc7e4c88 SHA512 3c0b541f2e8a5899701fbf8a1e74cd332ddf831523ebdd7735204993327b676f661e8bd2612c3f90e811e18034422797136111e605b8f694c09c6159cb2eebb8
-EBUILD compiler-rt-sanitizers-6.0.9999.ebuild 4525 BLAKE2B f54b68d42e59efab9a1858c554bf8daa442d42e88c96ad004849b681229f3d8e8c2bfc78118b067644ecf21007893d41b46551984571e1bcdca88a79579d344f SHA512 63ec60e8e5b26f4b12e7309f77660b7b7d5643699da76af6c7f27af72ef637e7c284ff4010e175788703e0a1629dbc27fcb260950331563dfb17539edf5e12bb
-EBUILD compiler-rt-sanitizers-9999.ebuild 4500 BLAKE2B f5718fbbe6b9a10698fdfd230583a5fad1cc56ddbd66ce2f266c091b6cd71c57f787f6baf5ff3245d1743777f20ea5e581e98f68451a4dd05ae400215474f99a SHA512 267fe64aca0396391bdd0c047f5ca22af421586a472187f16973c4fc9b8e14b326ea46df21390e86cff352a8b43d1382dac50f4caa6ea7f189aee4ce6a28f20a
+EBUILD compiler-rt-sanitizers-4.0.1.ebuild 4548 BLAKE2B 92ab6b7854a5d8bfc5da3160e6d1bcaa4347ae4faa5ac4ad095902b61051a1b89afd74e6c7827958184ff9d5668efa226344bf0e631a8c85542e48ea6cfd659e SHA512 0f4f9b0497b17f0fabaa74c83ff946ffe55b828fc286c4e82ade53e54b10491f92bef91d06567d9d7e5dc50ea150f2b0ed5484ff599b01892428966ea630e121
+EBUILD compiler-rt-sanitizers-5.0.1.ebuild 4846 BLAKE2B b7723034964cf81192ac1d232ec35c099c5755d38fe7ed52b24413075fe1c4915015e69b0efb62dc4d84bfc0f64d1f9ff1ca7f6f7bf70d32e7f121e316382ac1 SHA512 1ee73ca6024f753ec05ff3bae518abf15587cd991c5917bb462ec5e87d27ad49038c572f6b936c3fd06410e8ae428c1b97d9c49b21804f26d09a180a1937bf81
+EBUILD compiler-rt-sanitizers-6.0.0.ebuild 5046 BLAKE2B 2f98d0b4e136b478d831a45632693f19f0e8c8dde47772d258180e8d868bab3950430fdf671584adc4feaa45055e3f32ca435afc94d4c7f9045f3b5800ecd92e SHA512 d4f6d2a8552100029a29b2e7a94bb017c4914da314bba8118c3610513c6dc53173af30bc50555cb12a47da15222e97d796bb1e03e8c0497dc45f5f10f4654d17
+EBUILD compiler-rt-sanitizers-6.0.9999.ebuild 4996 BLAKE2B d52e5a1144f4699793fe459521f1192c2ca2f0f469e3c9992f7b04eec3352f63b448ea98c552e55c2c2e868dc09d5d30cbd4be737d7d8eaaf0b837b7b67c6df8 SHA512 6259320ff164c440e120a755e4bb65b07c196fb0f40ddbcbaf860c17838f0c42e9ec7ad6c9f5ae8aa66fc29712a4bafc98c7bfca33c3add8aa0d4ca4b4ce53d4
+EBUILD compiler-rt-sanitizers-9999.ebuild 4971 BLAKE2B e2fe4f691f01c37c73ca93864d358d1091f976b69ae3c84f96ec8e50a7a584a4ec468f3e9127ee02be1ee0192b0cac54499951d53ee82f1177fa60a23b8f3017 SHA512 e8586923d94c8105a8b896365dbe4e7379a04277d0849aa1d16ab6099b7c5f6a9841a680e72ac2487386fb967fc84d4e6d8d049a4b01cbe0945f1eaf20bf4faf
MISC metadata.xml 333 BLAKE2B 24e417cb7b8ab7730b18a3e1e5e29d008042e4fd53cf1ba3cc9d18719160b0410854ddfae52315c690138e61fb0196015968fa09b98af6470cd8bdecc09205ef SHA512 97daa7452a696b7297c47f5f637a33425f82b51426060a75b3de6bc812f9ddcd3c70ae068bc3e88ce937ab1eb10d59b0ab48a2d2c0397a112b8b6a754e333bdc
diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-4.0.1.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-4.0.1.ebuild
index 70a21aa3a6f9..632e36150ded 100644
--- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-4.0.1.ebuild
+++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-4.0.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -19,17 +19,18 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/compiler-rt-${PV/_/}.src.tar.xz
LICENSE="|| ( UoI-NCSA MIT )"
SLOT="${PV%_*}"
KEYWORDS="amd64 ~arm64 x86"
-IUSE="test"
+IUSE="+clang test"
-LLVM_SLOT=${SLOT%%.*}
+LLVM_MAX_SLOT=${SLOT%%.*}
RDEPEND="!=sys-libs/compiler-rt-sanitizers-${SLOT}*:0"
# llvm-4 needed for --cmakedir
DEPEND="
>=sys-devel/llvm-4
+ clang? ( sys-devel/clang )
test? (
app-portage/unsandbox
$(python_gen_any_dep "~dev-python/lit-${PV}[\${PYTHON_USEDEP}]")
- =sys-devel/clang-${PV%_*}*:${LLVM_SLOT}
+ =sys-devel/clang-${PV%_*}*:${LLVM_MAX_SLOT}
sys-libs/compiler-rt:${SLOT} )
${PYTHON_DEPS}"
@@ -66,12 +67,32 @@ src_unpack() {
src_prepare() {
eapply "${WORKDIR}/${P}-patchset"
cmake-utils_src_prepare
+
+ if use test; then
+ # remove tests that are broken by new glibc
+ # (disabled in 6.0.0+, r313069)
+ if use elibc_glibc && has_version '>=sys-libs/glibc-2.24'; then
+ rm test/tsan/Linux/user_malloc.cc || die
+ fi
+ # https://bugs.llvm.org/show_bug.cgi?id=36065
+ if use elibc_glibc && has_version '>=sys-libs/glibc-2.25'; then
+ rm test/lsan/TestCases/use_tls_dynamic.cc || die
+ rm test/msan/dtls_test.c || die
+ rm test/sanitizer_common/TestCases/Posix/sanitizer_set_death_callback_test.cc || die
+ fi
+ fi
}
src_configure() {
# pre-set since we need to pass it to cmake
BUILD_DIR=${WORKDIR}/${P}_build
+ if use clang; then
+ local -x CC=${CHOST}-clang
+ local -x CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
local mycmakeargs=(
-DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}"
# use a build dir structure consistent with install
@@ -90,14 +111,14 @@ src_configure() {
-DLIT_COMMAND="${EPREFIX}/usr/bin/unsandbox;${EPREFIX}/usr/bin/lit"
# they are created during src_test()
- -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_SLOT}/bin/clang"
- -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_SLOT}/bin/clang++"
+ -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_MAX_SLOT}/bin/clang"
+ -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_MAX_SLOT}/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_SLOT}/bin/clang \
- CXX=${EPREFIX}/usr/lib/llvm/${LLVM_SLOT}/bin/clang++ \
+ CC=${EPREFIX}/usr/lib/llvm/${LLVM_MAX_SLOT}/bin/clang \
+ CXX=${EPREFIX}/usr/lib/llvm/${LLVM_MAX_SLOT}/bin/clang++ \
strip-unsupported-flags
fi
@@ -110,17 +131,17 @@ src_configure() {
# 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_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die
- cp "${EPREFIX}"/usr/lib/llvm/${LLVM_SLOT}/bin/clang{,++} \
- "${BUILD_DIR}"/lib/llvm/${LLVM_SLOT}/bin/ || die
+ mkdir -p "${BUILD_DIR}"/lib/{llvm/${LLVM_MAX_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die
+ cp "${EPREFIX}"/usr/lib/llvm/${LLVM_MAX_SLOT}/bin/clang{,++} \
+ "${BUILD_DIR}"/lib/llvm/${LLVM_MAX_SLOT}/bin/ || die
cp "${EPREFIX}"/usr/lib/clang/${SLOT}/include/*.h \
"${BUILD_DIR}"/lib/clang/${SLOT}/include/ || die
cp "${sys_dir}"/*builtins*.a \
"${BUILD_DIR}/lib/clang/${SLOT}/lib/${sys_dir##*/}/" || die
# we also need LLVMgold.so for gold-based tests
- if [[ -f ${EPREFIX}/usr/lib/llvm/${LLVM_SLOT}/$(get_libdir)/LLVMgold.so ]]; then
- ln -s "${EPREFIX}"/usr/lib/llvm/${LLVM_SLOT}/$(get_libdir)/LLVMgold.so \
- "${BUILD_DIR}"/lib/llvm/${LLVM_SLOT}/$(get_libdir)/ || die
+ if [[ -f ${EPREFIX}/usr/lib/llvm/${LLVM_MAX_SLOT}/$(get_libdir)/LLVMgold.so ]]; then
+ ln -s "${EPREFIX}"/usr/lib/llvm/${LLVM_MAX_SLOT}/$(get_libdir)/LLVMgold.so \
+ "${BUILD_DIR}"/lib/llvm/${LLVM_MAX_SLOT}/$(get_libdir)/ || die
fi
fi
}
diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-5.0.1.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-5.0.1.ebuild
index 2ed2435e66a5..db4e4d049b52 100644
--- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-5.0.1.ebuild
+++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-5.0.1.ebuild
@@ -21,16 +21,17 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${MY_P}.tar.xz
LICENSE="|| ( UoI-NCSA MIT )"
SLOT="${PV%_*}"
KEYWORDS="amd64 ~arm64 x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos"
-IUSE="test"
+IUSE="+clang test elibc_glibc"
-LLVM_SLOT=${SLOT%%.*}
+LLVM_MAX_SLOT=${SLOT%%.*}
# llvm-4 needed for --cmakedir
DEPEND="
>=sys-devel/llvm-4
+ clang? ( sys-devel/clang )
test? (
app-portage/unsandbox
- $(python_gen_any_dep "~dev-python/lit-${PV}[\${PYTHON_USEDEP}]")
- =sys-devel/clang-${PV%_*}*:${LLVM_SLOT}
+ $(python_gen_any_dep ">=dev-python/lit-5[\${PYTHON_USEDEP}]")
+ =sys-devel/clang-${PV%_*}*:${LLVM_MAX_SLOT}
sys-libs/compiler-rt:${SLOT} )
${PYTHON_DEPS}"
@@ -68,10 +69,34 @@ src_unpack() {
fi
}
+src_prepare() {
+ cmake-utils_src_prepare
+
+ if use test; then
+ # remove tests that are broken by new glibc
+ # (disabled in 6.0.0+, r313069)
+ if use elibc_glibc && has_version '>=sys-libs/glibc-2.24'; then
+ rm test/tsan/Linux/user_malloc.cc || die
+ fi
+ # https://bugs.llvm.org/show_bug.cgi?id=36065
+ if use elibc_glibc && has_version '>=sys-libs/glibc-2.25'; then
+ rm test/lsan/TestCases/Linux/use_tls_dynamic.cc || die
+ rm test/msan/dtls_test.c || die
+ rm test/sanitizer_common/TestCases/Posix/sanitizer_set_death_callback_test.cc || die
+ fi
+ fi
+}
+
src_configure() {
# pre-set since we need to pass it to cmake
BUILD_DIR=${WORKDIR}/${P}_build
+ if use clang; then
+ local -x CC=${CHOST}-clang
+ local -x CXX=${CHOST}-clang++
+ strip-unsupported-flags
+ fi
+
local mycmakeargs=(
-DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${SLOT}"
# use a build dir structure consistent with install
@@ -90,14 +115,14 @@ src_configure() {
-DLIT_COMMAND="${EPREFIX}/usr/bin/unsandbox;${EPREFIX}/usr/bin/lit"
# they are created during src_test()
- -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_SLOT}/bin/clang"
- -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_SLOT}/bin/clang++"
+ -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_MAX_SLOT}/bin/clang"
+ -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_MAX_SLOT}/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_SLOT}/bin/clang \
- CXX=${EPREFIX}/usr/lib/llvm/${LLVM_SLOT}/bin/clang++ \
+ CC=${EPREFIX}/usr/lib/llvm/${LLVM_MAX_SLOT}/bin/clang \
+ CXX=${EPREFIX}/usr/lib/llvm/${LLVM_MAX_SLOT}/bin/clang++ \
strip-unsupported-flags
fi
@@ -117,17 +142,17 @@ src_configure() {
# 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_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die
- cp "${EPREFIX}"/usr/lib/llvm/${LLVM_SLOT}/bin/clang{,++} \
- "${BUILD_DIR}"/lib/llvm/${LLVM_SLOT}/bin/ || die
+ mkdir -p "${BUILD_DIR}"/lib/{llvm/${LLVM_MAX_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die
+ cp "${EPREFIX}"/usr/lib/llvm/${LLVM_MAX_SLOT}/bin/clang{,++} \
+ "${BUILD_DIR}"/lib/llvm/${LLVM_MAX_SLOT}/bin/ || die
cp "${EPREFIX}"/usr/lib/clang/${SLOT}/include/*.h \
"${BUILD_DIR}"/lib/clang/${SLOT}/include/ || die
cp "${sys_dir}"/*builtins*.a \
"${BUILD_DIR}/lib/clang/${SLOT}/lib/${sys_dir##*/}/" || die
# we also need LLVMgold.so for gold-based tests
- if [[ -f ${EPREFIX}/usr/lib/llvm/${LLVM_SLOT}/$(get_libdir)/LLVMgold.so ]]; then
- ln -s "${EPREFIX}"/usr/lib/llvm/${LLVM_SLOT}/$(get_libdir)/LLVMgold.so \
- "${BUILD_DIR}"/lib/llvm/${LLVM_SLOT}/$(get_libdir)/ || die
+ if [[ -f ${EPREFIX}/usr/lib/llvm/${LLVM_MAX_SLOT}/$(get_libdir)/LLVMgold.so ]]; then
+ ln -s "${EPREFIX}"/usr/lib/llvm/${LLVM_MAX_SLOT}/$(get_libdir)/LLVMgold.so \
+ "${BUILD_DIR}"/lib/llvm/${LLVM_MAX_SLOT}/$(get_libdir)/ || die
fi
fi
}
diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-6.0.0.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-6.0.0.ebuild
index 1b1389c403af..ca7cb14d19fc 100644
--- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-6.0.0.ebuild
+++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-6.0.0.ebuild
@@ -21,19 +21,19 @@ SRC_URI="https://releases.llvm.org/${PV/_//}/${MY_P}.tar.xz
LICENSE="|| ( UoI-NCSA MIT )"
SLOT="${PV%_*}"
-KEYWORDS="~amd64 ~x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos"
-IUSE="+clang test"
+KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="+clang test elibc_glibc"
RESTRICT="!test? ( test ) !clang? ( test )"
-LLVM_SLOT=${SLOT%%.*}
+LLVM_MAX_SLOT=${SLOT%%.*}
# llvm-6 for new lit options
DEPEND="
>=sys-devel/llvm-6
clang? ( sys-devel/clang )
test? (
!<sys-apps/sandbox-2.13
- $(python_gen_any_dep "~dev-python/lit-${PV}[\${PYTHON_USEDEP}]")
- =sys-devel/clang-${PV%_*}*:${LLVM_SLOT}
+ $(python_gen_any_dep ">=dev-python/lit-5[\${PYTHON_USEDEP}]")
+ =sys-devel/clang-${PV%_*}*:${LLVM_MAX_SLOT}
sys-libs/compiler-rt:${SLOT} )
${PYTHON_DEPS}"
@@ -71,6 +71,20 @@ src_unpack() {
fi
}
+src_prepare() {
+ cmake-utils_src_prepare
+
+ if use test; then
+ # remove tests that are broken by new glibc
+ # https://bugs.llvm.org/show_bug.cgi?id=36065
+ if use elibc_glibc && has_version '>=sys-libs/glibc-2.25'; then
+ rm test/lsan/TestCases/Linux/use_tls_dynamic.cc || die
+ rm test/msan/dtls_test.c || die
+ rm test/sanitizer_common/TestCases/Posix/sanitizer_set_death_callback_test.cc || die
+ fi
+ fi
+}
+
src_configure() {
# pre-set since we need to pass it to cmake
BUILD_DIR=${WORKDIR}/${P}_build
@@ -102,14 +116,14 @@ src_configure() {
-DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}"
# they are created during src_test()
- -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_SLOT}/bin/clang"
- -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_SLOT}/bin/clang++"
+ -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_MAX_SLOT}/bin/clang"
+ -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_MAX_SLOT}/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_SLOT}/bin/clang \
- CXX=${EPREFIX}/usr/lib/llvm/${LLVM_SLOT}/bin/clang++ \
+ CC=${EPREFIX}/usr/lib/llvm/${LLVM_MAX_SLOT}/bin/clang \
+ CXX=${EPREFIX}/usr/lib/llvm/${LLVM_MAX_SLOT}/bin/clang++ \
strip-unsupported-flags
fi
@@ -129,17 +143,17 @@ src_configure() {
# 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_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die
- cp "${EPREFIX}"/usr/lib/llvm/${LLVM_SLOT}/bin/clang{,++} \
- "${BUILD_DIR}"/lib/llvm/${LLVM_SLOT}/bin/ || die
+ mkdir -p "${BUILD_DIR}"/lib/{llvm/${LLVM_MAX_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die
+ cp "${EPREFIX}"/usr/lib/llvm/${LLVM_MAX_SLOT}/bin/clang{,++} \
+ "${BUILD_DIR}"/lib/llvm/${LLVM_MAX_SLOT}/bin/ || die
cp "${EPREFIX}"/usr/lib/clang/${SLOT}/include/*.h \
"${BUILD_DIR}"/lib/clang/${SLOT}/include/ || die
cp "${sys_dir}"/*builtins*.a \
"${BUILD_DIR}/lib/clang/${SLOT}/lib/${sys_dir##*/}/" || die
# we also need LLVMgold.so for gold-based tests
- if [[ -f ${EPREFIX}/usr/lib/llvm/${LLVM_SLOT}/$(get_libdir)/LLVMgold.so ]]; then
- ln -s "${EPREFIX}"/usr/lib/llvm/${LLVM_SLOT}/$(get_libdir)/LLVMgold.so \
- "${BUILD_DIR}"/lib/llvm/${LLVM_SLOT}/$(get_libdir)/ || die
+ if [[ -f ${EPREFIX}/usr/lib/llvm/${LLVM_MAX_SLOT}/$(get_libdir)/LLVMgold.so ]]; then
+ ln -s "${EPREFIX}"/usr/lib/llvm/${LLVM_MAX_SLOT}/$(get_libdir)/LLVMgold.so \
+ "${BUILD_DIR}"/lib/llvm/${LLVM_MAX_SLOT}/$(get_libdir)/ || die
fi
fi
}
diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-6.0.9999.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-6.0.9999.ebuild
index 07a2dd56c858..52cda5eedce6 100644
--- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-6.0.9999.ebuild
+++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-6.0.9999.ebuild
@@ -22,18 +22,18 @@ LICENSE="|| ( UoI-NCSA MIT )"
# Note: this needs to be updated to match version of clang-9999
SLOT="6.0.0"
KEYWORDS=""
-IUSE="+clang test"
+IUSE="+clang test elibc_glibc"
RESTRICT="!test? ( test ) !clang? ( test )"
-LLVM_SLOT=${SLOT%%.*}
+LLVM_MAX_SLOT=${SLOT%%.*}
# llvm-6 for new lit options
DEPEND="
>=sys-devel/llvm-6
clang? ( sys-devel/clang )
test? (
!<sys-apps/sandbox-2.13
- $(python_gen_any_dep "~dev-python/lit-${PV}[\${PYTHON_USEDEP}]")
- =sys-devel/clang-${PV%_*}*:${LLVM_SLOT}
+ $(python_gen_any_dep ">=dev-python/lit-5[\${PYTHON_USEDEP}]")
+ =sys-devel/clang-${PV%_*}*:${LLVM_MAX_SLOT}
sys-libs/compiler-rt:${SLOT} )
${PYTHON_DEPS}"
@@ -72,6 +72,20 @@ src_unpack() {
git-r3_checkout
}
+src_prepare() {
+ cmake-utils_src_prepare
+
+ if use test; then
+ # remove tests that are broken by new glibc
+ # https://bugs.llvm.org/show_bug.cgi?id=36065
+ if use elibc_glibc && has_version '>=sys-libs/glibc-2.25'; then
+ rm test/lsan/TestCases/Linux/use_tls_dynamic.cc || die
+ rm test/msan/dtls_test.c || die
+ rm test/sanitizer_common/TestCases/Posix/sanitizer_set_death_callback_test.cc || die
+ fi
+ fi
+}
+
src_configure() {
# pre-set since we need to pass it to cmake
BUILD_DIR=${WORKDIR}/${P}_build
@@ -103,14 +117,14 @@ src_configure() {
-DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}"
# they are created during src_test()
- -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_SLOT}/bin/clang"
- -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_SLOT}/bin/clang++"
+ -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_MAX_SLOT}/bin/clang"
+ -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_MAX_SLOT}/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_SLOT}/bin/clang \
- CXX=${EPREFIX}/usr/lib/llvm/${LLVM_SLOT}/bin/clang++ \
+ CC=${EPREFIX}/usr/lib/llvm/${LLVM_MAX_SLOT}/bin/clang \
+ CXX=${EPREFIX}/usr/lib/llvm/${LLVM_MAX_SLOT}/bin/clang++ \
strip-unsupported-flags
fi
@@ -130,17 +144,17 @@ src_configure() {
# 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_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die
- cp "${EPREFIX}"/usr/lib/llvm/${LLVM_SLOT}/bin/clang{,++} \
- "${BUILD_DIR}"/lib/llvm/${LLVM_SLOT}/bin/ || die
+ mkdir -p "${BUILD_DIR}"/lib/{llvm/${LLVM_MAX_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die
+ cp "${EPREFIX}"/usr/lib/llvm/${LLVM_MAX_SLOT}/bin/clang{,++} \
+ "${BUILD_DIR}"/lib/llvm/${LLVM_MAX_SLOT}/bin/ || die
cp "${EPREFIX}"/usr/lib/clang/${SLOT}/include/*.h \
"${BUILD_DIR}"/lib/clang/${SLOT}/include/ || die
cp "${sys_dir}"/*builtins*.a \
"${BUILD_DIR}/lib/clang/${SLOT}/lib/${sys_dir##*/}/" || die
# we also need LLVMgold.so for gold-based tests
- if [[ -f ${EPREFIX}/usr/lib/llvm/${LLVM_SLOT}/$(get_libdir)/LLVMgold.so ]]; then
- ln -s "${EPREFIX}"/usr/lib/llvm/${LLVM_SLOT}/$(get_libdir)/LLVMgold.so \
- "${BUILD_DIR}"/lib/llvm/${LLVM_SLOT}/$(get_libdir)/ || die
+ if [[ -f ${EPREFIX}/usr/lib/llvm/${LLVM_MAX_SLOT}/$(get_libdir)/LLVMgold.so ]]; then
+ ln -s "${EPREFIX}"/usr/lib/llvm/${LLVM_MAX_SLOT}/$(get_libdir)/LLVMgold.so \
+ "${BUILD_DIR}"/lib/llvm/${LLVM_MAX_SLOT}/$(get_libdir)/ || die
fi
fi
}
diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9999.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9999.ebuild
index 83bd0ec18fa9..b232680519be 100644
--- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9999.ebuild
+++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9999.ebuild
@@ -21,18 +21,18 @@ LICENSE="|| ( UoI-NCSA MIT )"
# Note: this needs to be updated to match version of clang-9999
SLOT="7.0.0"
KEYWORDS=""
-IUSE="+clang test"
+IUSE="+clang test elibc_glibc"
RESTRICT="!test? ( test ) !clang? ( test )"
-LLVM_SLOT=${SLOT%%.*}
+LLVM_MAX_SLOT=${SLOT%%.*}
# llvm-6 for new lit options
DEPEND="
>=sys-devel/llvm-6
clang? ( sys-devel/clang )
test? (
!<sys-apps/sandbox-2.13
- $(python_gen_any_dep "~dev-python/lit-${PV}[\${PYTHON_USEDEP}]")
- =sys-devel/clang-${PV%_*}*:${LLVM_SLOT}
+ $(python_gen_any_dep ">=dev-python/lit-5[\${PYTHON_USEDEP}]")
+ =sys-devel/clang-${PV%_*}*:${LLVM_MAX_SLOT}
sys-libs/compiler-rt:${SLOT} )
${PYTHON_DEPS}"
@@ -71,6 +71,20 @@ src_unpack() {
git-r3_checkout
}
+src_prepare() {
+ cmake-utils_src_prepare
+
+ if use test; then
+ # remove tests that are broken by new glibc
+ # https://bugs.llvm.org/show_bug.cgi?id=36065
+ if use elibc_glibc && has_version '>=sys-libs/glibc-2.25'; then
+ rm test/lsan/TestCases/Linux/use_tls_dynamic.cc || die
+ rm test/msan/dtls_test.c || die
+ rm test/sanitizer_common/TestCases/Posix/sanitizer_set_death_callback_test.cc || die
+ fi
+ fi
+}
+
src_configure() {
# pre-set since we need to pass it to cmake
BUILD_DIR=${WORKDIR}/${P}_build
@@ -102,14 +116,14 @@ src_configure() {
-DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}"
# they are created during src_test()
- -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_SLOT}/bin/clang"
- -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_SLOT}/bin/clang++"
+ -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_MAX_SLOT}/bin/clang"
+ -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_MAX_SLOT}/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_SLOT}/bin/clang \
- CXX=${EPREFIX}/usr/lib/llvm/${LLVM_SLOT}/bin/clang++ \
+ CC=${EPREFIX}/usr/lib/llvm/${LLVM_MAX_SLOT}/bin/clang \
+ CXX=${EPREFIX}/usr/lib/llvm/${LLVM_MAX_SLOT}/bin/clang++ \
strip-unsupported-flags
fi
@@ -129,17 +143,17 @@ src_configure() {
# 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_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die
- cp "${EPREFIX}"/usr/lib/llvm/${LLVM_SLOT}/bin/clang{,++} \
- "${BUILD_DIR}"/lib/llvm/${LLVM_SLOT}/bin/ || die
+ mkdir -p "${BUILD_DIR}"/lib/{llvm/${LLVM_MAX_SLOT}/{bin,$(get_libdir)},clang/${SLOT}/include} || die
+ cp "${EPREFIX}"/usr/lib/llvm/${LLVM_MAX_SLOT}/bin/clang{,++} \
+ "${BUILD_DIR}"/lib/llvm/${LLVM_MAX_SLOT}/bin/ || die
cp "${EPREFIX}"/usr/lib/clang/${SLOT}/include/*.h \
"${BUILD_DIR}"/lib/clang/${SLOT}/include/ || die
cp "${sys_dir}"/*builtins*.a \
"${BUILD_DIR}/lib/clang/${SLOT}/lib/${sys_dir##*/}/" || die
# we also need LLVMgold.so for gold-based tests
- if [[ -f ${EPREFIX}/usr/lib/llvm/${LLVM_SLOT}/$(get_libdir)/LLVMgold.so ]]; then
- ln -s "${EPREFIX}"/usr/lib/llvm/${LLVM_SLOT}/$(get_libdir)/LLVMgold.so \
- "${BUILD_DIR}"/lib/llvm/${LLVM_SLOT}/$(get_libdir)/ || die
+ if [[ -f ${EPREFIX}/usr/lib/llvm/${LLVM_MAX_SLOT}/$(get_libdir)/LLVMgold.so ]]; then
+ ln -s "${EPREFIX}"/usr/lib/llvm/${LLVM_MAX_SLOT}/$(get_libdir)/LLVMgold.so \
+ "${BUILD_DIR}"/lib/llvm/${LLVM_MAX_SLOT}/$(get_libdir)/ || die
fi
fi
}