diff options
Diffstat (limited to 'sys-libs/compiler-rt-sanitizers')
6 files changed, 189 insertions, 12 deletions
diff --git a/sys-libs/compiler-rt-sanitizers/Manifest b/sys-libs/compiler-rt-sanitizers/Manifest index 93c3f47ee199..9fb8747628a3 100644 --- a/sys-libs/compiler-rt-sanitizers/Manifest +++ b/sys-libs/compiler-rt-sanitizers/Manifest @@ -1,3 +1,5 @@ +AUX 9999/0001-sanitizer_common-Fix-using-libtirpc-on-Linux.patch 2583 BLAKE2B be7e9a2cbab8b3bd110346f6c8bda30d104397601950c995b77388fcb91e53ca82f5d3574931c58244403eee698f01209ca9e704fd4c6b9b3ef08e68d41dbea7 SHA512 656a7bbdcf0f678814d0ad0ff56ce43b7fc48c7a549373a4ef77e74490437283c5834e86b1b4e8bcb85578953687d79474ef2bf494c7eed4cf7fa1f17003f385 +AUX 9999/0002-test-Support-using-libtirpc-on-Linux.patch 4161 BLAKE2B 3db2dcebf70ca3e7c399dfb22d8ae50d51863f7a8a15a10b0232f73d4fc2ee0b51ff67e8842b0e4d29dd41e60a326c90670f62a431ca593617f566e03bc7f90a SHA512 2f03f4d0232b600861de0c527d6bef26b0e3273865a7d7344e083a6a7de4033de6d30df3a6b22f4d23be74dfa8864ccaebd42c1f0d4474abc83a66f8997e19fb DIST compiler-rt-4.0.1.src.tar.xz 1434100 BLAKE2B ca6bf78fc07f387b7244a52ef648b06a5685effb46a66b241a9ee847ecafb17d02602f49b0dbe473d47202586874a043a6d75141400062f526d2f808da323e1e SHA512 cfeb625884b273f7c0e6767b81a8d3e5f24e0b96a510d5764d9d47a0e215fc841b4cb9d1843c8fb428cd21def720cfbfe8d3593ff5bb390548ebc8c32a902649 DIST compiler-rt-5.0.2.src.tar.xz 1543256 BLAKE2B 09fa84b8f3e9b8627a14387bc6eaa3d6b4588b9c8f1ac5a0114135fd830e3d45922408b237866789eb81bf38defde1186e0f7430a69f825bee12776b7cd9f74e SHA512 605a6d064877a860d6c9097e0220896dfceafed0a2392ad495c97aa347b97899d89f7e21932e29d3274f396615837414a3e730a915fe4f53eaa858ce3642a666 DIST compiler-rt-6.0.1.src.tar.xz 1686820 BLAKE2B 59fa3f6e478bd4d6dfa056c85dcdc4349cbce7cea7fc56519feddc9d66c88c9ca48bad7967432ceb81d754213577f12707035afd827cf630a58627575b73b798 SHA512 69850c1ad92c66977fa217cbfb42a6a3f502fbe3d1a08daa7fc4cfeb617a7736d231f8ad8d93b10b1ae29bd753315d2a2d70f9ff1f4d18a9a7cc81758d91f963 @@ -11,7 +13,7 @@ DIST llvm-7.0.0rc2.src.tar.xz 28320756 BLAKE2B 92707da30fe73a6dec2614acceada0656 EBUILD compiler-rt-sanitizers-4.0.1.ebuild 4778 BLAKE2B 5689080c9783d288206a9a7f4d8cee487ef73a951d95baf7083719c89239b299a7cb71361e060876a7564701c353a857e9a640ff5e8f5054d76c6ede66523b5e SHA512 937fab2e9791bd122005469704e5cbbc8907d0f52cb277d779bd93451178e49c8f369be0dec5bff22338a7ed3920f0e125337e9ede02c957c123f968b69ec442 EBUILD compiler-rt-sanitizers-5.0.2.ebuild 5095 BLAKE2B 0f3348e8800d24d01231b2460025eb83a3211c44fd2987a0b0d4361372fe4af5695a131886d55029459121e8952e394c526120f12212d20a8a5c995847a04cb0 SHA512 cf13df0bad1be887c621c16f12639e385fff395985007b17a1bf14b00f0dd9dfd609e83287fc890f105d2bd586b3457b1efe3b6f687096a205b1a96f3fd1139e EBUILD compiler-rt-sanitizers-6.0.1.ebuild 5248 BLAKE2B 02cd036059dc9a038a440dfc356f4b5a9d7bf2ec68790d95d391f05ec62404ecbcf422082d005a9b6a23f16e2500bdcb3bd606f2f5bc53ee04cfe3724caa0771 SHA512 22527b482c1e8fe80273de88e4bcef4fbdba7000149ab31e63fab6bd8b75587eed5ac5b01aaf1c257decfb9af96b3256f19dc462ca84ee5cbf40655328851337 -EBUILD compiler-rt-sanitizers-7.0.0_rc2.ebuild 5249 BLAKE2B 78e44391fafec066838519e5be36c97f2688913b6c06f53b36e280406ce5919df0145e3d78ff909aefb1f2ba7fcce9148e37513036a0138395b5e0588b0aa49a SHA512 5f618e32b8d1e15ae31e4f1ddaf2bb4ebd7b738737dd571d56674f2e7ebb35461c72420844925aac5630086a2ec4487318120a26375880fca083e3ed84c950e9 -EBUILD compiler-rt-sanitizers-7.0.9999.ebuild 4872 BLAKE2B 22d029bcbc59f49a261bce0cec4604c6c33c4e2da9bb6ca219f7b0d929f676788e098bce5af5b6960ce7af0fa6289b23766722f513e2ddd63974d6c22bd935a8 SHA512 869c47cfd1594daf4ec2afbb51344dbb9122e26f28f91cfbaa5e703d18463fa82295bd27964b42ecee755e19fa4a63b4028954b185dd9e0d3bf15f6644d1d321 -EBUILD compiler-rt-sanitizers-9999.ebuild 4847 BLAKE2B c7e291629e46ec963053524f9a1b69c8c8e007825c5fd56d07ccfd913ba68edf4d5e233fd6167626f8ac136982d357e517f228710327660e419bf19eb7b80136 SHA512 b2352d00b4947a51635e73ce1f54efe898d043d468b7c7550db707c94ae8e9e6aee4f37f25f9a12530be7d9334846c75be40d6298bbfe94638a0074cfdd97c51 +EBUILD compiler-rt-sanitizers-7.0.0_rc2.ebuild 5082 BLAKE2B e75c11a43986c477c5fc33e1d209e1380746fa732fecf604d0bbc7b96914ce178928978cc14160bf5a2a0c79de0f4915d1a7bc574079ef2f6c010cc5746898a4 SHA512 c27eddb4e4ed387a06cb75735425ba8cc85e2c4023a427c67142c920715595759cea87044d110788db9882d663d9a552cef5a691d498042afd3ba1e26f93ddaf +EBUILD compiler-rt-sanitizers-7.0.9999.ebuild 5105 BLAKE2B 9fe96037e941ef66c33efcef3ae66d9637417019fab4f2f4aaf137b2af0dbd9a8f6d9a4a24d964a82e35690e4bdcb30a15235a5f942963bdc8c293858b17017d SHA512 2df132a87b693becd3f6d0367b8c24854cd794c24b543bbbde7d8ae5d496b706cfb8e26c1b53ac9f5cf9f9efd6e376ef6834793d79f3f29c5ff28b799e483f81 +EBUILD compiler-rt-sanitizers-9999.ebuild 5080 BLAKE2B 81bd8cd6d8f1c13077cb15373b84293d76e77bb1600213d5c9a9a5f14a05a10248ce537a6e570960132e50b41519accd5142f9bb65f193fbe1b03edc8734b2fe SHA512 b9f83d788475fb9f12ad7d52218ede55de002d61f01e64874082aa266e0dda30c8411eb1cc6dc3a1271841e44b61d7305873904e093c9dc96312079686664f1e MISC metadata.xml 333 BLAKE2B 24e417cb7b8ab7730b18a3e1e5e29d008042e4fd53cf1ba3cc9d18719160b0410854ddfae52315c690138e61fb0196015968fa09b98af6470cd8bdecc09205ef SHA512 97daa7452a696b7297c47f5f637a33425f82b51426060a75b3de6bc812f9ddcd3c70ae068bc3e88ce937ab1eb10d59b0ab48a2d2c0397a112b8b6a754e333bdc diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.0_rc2.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.0_rc2.ebuild index f606ef2f383e..772234d377c1 100644 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.0_rc2.ebuild +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.0_rc2.ebuild @@ -17,7 +17,6 @@ LLVM_P=llvm-${PV/_/}.src DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)" HOMEPAGE="https://llvm.org/" SRC_URI="https://prereleases.llvm.org/${PV/_//}/${MY_P}.tar.xz - https://dev.gentoo.org/~mgorny/dist/llvm/${PN}-6.0.1-patchset.tar.xz test? ( https://releases.llvm.org/${PV/_//}/${LLVM_P}.tar.xz )" LICENSE="|| ( UoI-NCSA MIT )" @@ -29,6 +28,7 @@ RESTRICT="!test? ( test ) !clang? ( test )" CLANG_SLOT=${SLOT%%.*} # llvm-6 for new lit options DEPEND=" + net-libs/libtirpc >=sys-devel/llvm-6 clang? ( sys-devel/clang ) test? ( @@ -63,8 +63,6 @@ pkg_setup() { src_unpack() { einfo "Unpacking ${MY_P}.tar.xz ..." tar -xf "${DISTDIR}/${MY_P}.tar.xz" || die - einfo "Unpacking ${P}-patchset.tar.xz ..." - tar -xf "${DISTDIR}/${PN}-6.0.1-patchset.tar.xz" || die if use test; then einfo "Unpacking parts of ${LLVM_P}.tar.xz ..." @@ -77,12 +75,12 @@ src_unpack() { src_prepare() { cmake-utils_src_prepare - # apply the patchset (new glibc fixes) - eapply "${WORKDIR}/${PN}-6.0.1-patchset/0007-sanitizer_common-Fix-using-libtirpc-on-Linux.patch" - eapply "${WORKDIR}/${PN}-6.0.1-patchset/0008-test-Support-using-libtirpc-on-Linux.patch" + # apply the fixes for new glibc / split tirpc + eapply "${FILESDIR}/9999/0001-sanitizer_common-Fix-using-libtirpc-on-Linux.patch" + eapply "${FILESDIR}/9999/0002-test-Support-using-libtirpc-on-Linux.patch" if use test; then - # remove tests that are broken by new glibc + # remove tests that are (still) 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 diff --git a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.9999.ebuild b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.9999.ebuild index 3028242fe9f6..58cff642072b 100644 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.9999.ebuild +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-7.0.9999.ebuild @@ -28,6 +28,7 @@ RESTRICT="!test? ( test ) !clang? ( test )" CLANG_SLOT=${SLOT%%.*} # llvm-6 for new lit options DEPEND=" + net-libs/libtirpc >=sys-devel/llvm-6 clang? ( sys-devel/clang ) test? ( @@ -75,8 +76,12 @@ src_unpack() { src_prepare() { cmake-utils_src_prepare + # apply the fixes for new glibc / split tirpc + eapply "${FILESDIR}/9999/0001-sanitizer_common-Fix-using-libtirpc-on-Linux.patch" + eapply "${FILESDIR}/9999/0002-test-Support-using-libtirpc-on-Linux.patch" + if use test; then - # remove tests that are broken by new glibc + # remove tests that are (still) 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 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 6d2a4a7a40b7..9830402c1601 100644 --- a/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9999.ebuild +++ b/sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9999.ebuild @@ -27,6 +27,7 @@ RESTRICT="!test? ( test ) !clang? ( test )" CLANG_SLOT=${SLOT%%.*} # llvm-6 for new lit options DEPEND=" + net-libs/libtirpc >=sys-devel/llvm-6 clang? ( sys-devel/clang ) test? ( @@ -74,8 +75,12 @@ src_unpack() { src_prepare() { cmake-utils_src_prepare + # apply the fixes for new glibc / split tirpc + eapply "${FILESDIR}/9999/0001-sanitizer_common-Fix-using-libtirpc-on-Linux.patch" + eapply "${FILESDIR}/9999/0002-test-Support-using-libtirpc-on-Linux.patch" + if use test; then - # remove tests that are broken by new glibc + # remove tests that are (still) 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 diff --git a/sys-libs/compiler-rt-sanitizers/files/9999/0001-sanitizer_common-Fix-using-libtirpc-on-Linux.patch b/sys-libs/compiler-rt-sanitizers/files/9999/0001-sanitizer_common-Fix-using-libtirpc-on-Linux.patch new file mode 100644 index 000000000000..ca871c37b994 --- /dev/null +++ b/sys-libs/compiler-rt-sanitizers/files/9999/0001-sanitizer_common-Fix-using-libtirpc-on-Linux.patch @@ -0,0 +1,67 @@ +From e198d21b9a5851dbc061f60911e3b3da910bca0a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Wed, 6 Jun 2018 12:16:38 +0200 +Subject: [PATCH 7/8] [sanitizer_common] Fix using libtirpc on Linux + +Fix using libtirpc on Linux by using pkg-config to detect it, and append +appropriate include directory. The libtirpc headers reference one +another via '#include <rpc/...>', so attempting to include it via +'#include <tirpc/...>' just failed and resulted in RPC headers not being +detected at all. + +Additionally, perform the header check without -nodefaultlibs as that +apparently causes it to fail. +--- + lib/sanitizer_common/CMakeLists.txt | 11 ++++++++++- + .../sanitizer_platform_limits_posix.cc | 4 +--- + 2 files changed, 11 insertions(+), 4 deletions(-) + +diff --git a/lib/sanitizer_common/CMakeLists.txt b/lib/sanitizer_common/CMakeLists.txt +index e0226ae49..4071bc0e8 100644 +--- a/lib/sanitizer_common/CMakeLists.txt ++++ b/lib/sanitizer_common/CMakeLists.txt +@@ -151,9 +151,18 @@ include_directories(..) + + set(SANITIZER_COMMON_DEFINITIONS) + ++include(FindPkgConfig) ++pkg_check_modules(TIRPC libtirpc) ++if (TIRPC_FOUND) ++ include_directories(${TIRPC_INCLUDE_DIRS}) ++ set(CMAKE_REQUIRED_INCLUDES ${TIRPC_INCLUDE_DIRS}) ++endif() ++ + include(CheckIncludeFile) ++cmake_push_check_state() ++string(REPLACE "-nodefaultlibs" "" CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS}) + append_have_file_definition(rpc/xdr.h HAVE_RPC_XDR_H SANITIZER_COMMON_DEFINITIONS) +-append_have_file_definition(tirpc/rpc/xdr.h HAVE_TIRPC_RPC_XDR_H SANITIZER_COMMON_DEFINITIONS) ++cmake_pop_check_state() + + set(SANITIZER_CFLAGS ${SANITIZER_COMMON_CFLAGS}) + append_rtti_flag(OFF SANITIZER_CFLAGS) +diff --git a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc +index feb7bad6f..2e736ee26 100644 +--- a/lib/sanitizer_common/sanitizer_platform_limits_posix.cc ++++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.cc +@@ -146,8 +146,6 @@ typedef struct user_fpregs elf_fpregset_t; + #include <netrom/netrom.h> + #if HAVE_RPC_XDR_H + # include <rpc/xdr.h> +-#elif HAVE_TIRPC_RPC_XDR_H +-# include <tirpc/rpc/xdr.h> + #endif + #include <scsi/scsi.h> + #include <sys/mtio.h> +@@ -1236,7 +1234,7 @@ CHECK_SIZE_AND_OFFSET(group, gr_passwd); + CHECK_SIZE_AND_OFFSET(group, gr_gid); + CHECK_SIZE_AND_OFFSET(group, gr_mem); + +-#if HAVE_RPC_XDR_H || HAVE_TIRPC_RPC_XDR_H ++#if HAVE_RPC_XDR_H + CHECK_TYPE_SIZE(XDR); + CHECK_SIZE_AND_OFFSET(XDR, x_op); + CHECK_SIZE_AND_OFFSET(XDR, x_ops); +-- +2.18.0 + diff --git a/sys-libs/compiler-rt-sanitizers/files/9999/0002-test-Support-using-libtirpc-on-Linux.patch b/sys-libs/compiler-rt-sanitizers/files/9999/0002-test-Support-using-libtirpc-on-Linux.patch new file mode 100644 index 000000000000..880284775e22 --- /dev/null +++ b/sys-libs/compiler-rt-sanitizers/files/9999/0002-test-Support-using-libtirpc-on-Linux.patch @@ -0,0 +1,100 @@ +From 4fc99ef388e2f110759dc774428fd194b65614c8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Wed, 6 Jun 2018 12:45:55 +0200 +Subject: [PATCH 8/8] [test] Support using libtirpc on Linux + +Add compiler flags necessary for using libtirpc on Linux (RPC headers +split out of glibc). The flags are obtained via pkg-config. This fixes +test failures due to tests being unable to find <rpc/...> includes. +--- + cmake/base-config-ix.cmake | 4 ++++ + lib/sanitizer_common/CMakeLists.txt | 2 -- + test/msan/lit.cfg | 3 ++- + test/msan/lit.site.cfg.in | 1 + + test/tsan/lit.cfg | 3 ++- + test/tsan/lit.site.cfg.in | 1 + + 6 files changed, 10 insertions(+), 4 deletions(-) + +diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake +index b208f0852..46b88f72b 100644 +--- a/cmake/base-config-ix.cmake ++++ b/cmake/base-config-ix.cmake +@@ -8,6 +8,10 @@ include(CheckCXXSourceCompiles) + + check_include_file(unwind.h HAVE_UNWIND_H) + ++# used in sanitizer_common and tests ++include(FindPkgConfig) ++pkg_check_modules(TIRPC libtirpc) ++ + # Top level target used to build all compiler-rt libraries. + add_custom_target(compiler-rt ALL) + add_custom_target(install-compiler-rt) +diff --git a/lib/sanitizer_common/CMakeLists.txt b/lib/sanitizer_common/CMakeLists.txt +index 4071bc0e8..08d1781a6 100644 +--- a/lib/sanitizer_common/CMakeLists.txt ++++ b/lib/sanitizer_common/CMakeLists.txt +@@ -151,8 +151,6 @@ include_directories(..) + + set(SANITIZER_COMMON_DEFINITIONS) + +-include(FindPkgConfig) +-pkg_check_modules(TIRPC libtirpc) + if (TIRPC_FOUND) + include_directories(${TIRPC_INCLUDE_DIRS}) + set(CMAKE_REQUIRED_INCLUDES ${TIRPC_INCLUDE_DIRS}) +diff --git a/test/msan/lit.cfg b/test/msan/lit.cfg +index cac260999..fe8525047 100644 +--- a/test/msan/lit.cfg ++++ b/test/msan/lit.cfg +@@ -14,7 +14,8 @@ clang_msan_cflags = (["-fsanitize=memory", + "-fno-omit-frame-pointer", + "-fno-optimize-sibling-calls"] + + [config.target_cflags] + +- config.debug_info_flags) ++ config.debug_info_flags + ++ [config.rpc_cflags]) + # Some Msan tests leverage backtrace() which requires libexecinfo on FreeBSD. + if config.host_os == 'FreeBSD': + clang_msan_cflags += ["-lexecinfo"] +diff --git a/test/msan/lit.site.cfg.in b/test/msan/lit.site.cfg.in +index f744d71fd..35634d324 100644 +--- a/test/msan/lit.site.cfg.in ++++ b/test/msan/lit.site.cfg.in +@@ -6,6 +6,7 @@ config.target_cflags = "@MSAN_TEST_TARGET_CFLAGS@" + config.target_arch = "@MSAN_TEST_TARGET_ARCH@" + config.use_lld = @MSAN_TEST_USE_LLD@ + config.use_thinlto = @MSAN_TEST_USE_THINLTO@ ++config.rpc_cflags = "@TIRPC_CFLAGS@" + + # Load common config for all compiler-rt lit tests. + lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured") +diff --git a/test/tsan/lit.cfg b/test/tsan/lit.cfg +index fdbafefbc..82fd2f79d 100644 +--- a/test/tsan/lit.cfg ++++ b/test/tsan/lit.cfg +@@ -49,7 +49,8 @@ clang_tsan_cflags = (["-fsanitize=thread", + [config.target_cflags] + + config.debug_info_flags + + extra_cflags + +- ["-I%s" % tsan_incdir]) ++ ["-I%s" % tsan_incdir] + ++ [config.rpc_cflags]) + clang_tsan_cxxflags = config.cxx_mode_flags + clang_tsan_cflags + ["-std=c++11"] + ["-I%s" % tsan_incdir] + # Add additional flags if we're using instrumented libc++. + # Instrumented libcxx currently not supported on Darwin. +diff --git a/test/tsan/lit.site.cfg.in b/test/tsan/lit.site.cfg.in +index a215e664a..142d61bf2 100644 +--- a/test/tsan/lit.site.cfg.in ++++ b/test/tsan/lit.site.cfg.in +@@ -7,6 +7,7 @@ config.ios = @TSAN_TEST_IOS_PYBOOL@ + config.iossim = @TSAN_TEST_IOSSIM_PYBOOL@ + config.target_cflags = "@TSAN_TEST_TARGET_CFLAGS@" + config.target_arch = "@TSAN_TEST_TARGET_ARCH@" ++config.rpc_cflags = "@TIRPC_CFLAGS@" + + # Load common config for all compiler-rt lit tests. + lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured") +-- +2.18.0 + |