sys-libs/compiler-rt-sanitizers: rpc issues were fixed upstream
authorMichał Górny <mgorny@gentoo.org>
Wed, 16 Jan 2019 13:48:37 +0000 (14:48 +0100)
committerMichał Górny <mgorny@gentoo.org>
Wed, 16 Jan 2019 14:52:26 +0000 (15:52 +0100)
The rpc failures were fixed upstream, so remove the relevant patches.
Since interceptors are only meant to intercept libc functions, we just
disable relevant code when glibc does not include sunrpc routines.

Signed-off-by: Michał Górny <mgorny@gentoo.org>
sys-libs/compiler-rt-sanitizers/compiler-rt-sanitizers-9999.ebuild
sys-libs/compiler-rt-sanitizers/files/9999/0001-sanitizer_common-Fix-using-libtirpc-on-Linux.patch [deleted file]
sys-libs/compiler-rt-sanitizers/files/9999/0002-test-Support-using-libtirpc-on-Linux.patch [deleted file]

index 93f03059cd694bf8a42b341277f18e0aa8b66380..22e6a9b283cb96f00fdc1c155b2e48acc877e0dd 100644 (file)
@@ -77,10 +77,6 @@ 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 (still) broken by new glibc
                # https://bugs.llvm.org/show_bug.cgi?id=36065
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
deleted file mode 100644 (file)
index f396456..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-From 6d96ca43ca31bb69d07271696c43b4372ca534d9 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 1/2] [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 ad3aba005..f2a6bab51 100644
---- a/lib/sanitizer_common/CMakeLists.txt
-+++ b/lib/sanitizer_common/CMakeLists.txt
-@@ -191,9 +191,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 cd1b73d58..c6de2683d 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>
-@@ -1243,7 +1241,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.19.1
-
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
deleted file mode 100644 (file)
index c851cae..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-From a415328c75fe88c5e8e3bd0c01913a25b5705fec 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 2/2] [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 b92e29a2e..ec0b1b979 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 f2a6bab51..a560e7c15 100644
---- a/lib/sanitizer_common/CMakeLists.txt
-+++ b/lib/sanitizer_common/CMakeLists.txt
-@@ -191,8 +191,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 e08673d5c..e86f6091f 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", "-fPIC"]
-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 233d273f3..2776775eb 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 6dec5f92b..67020f3b9 100644
---- a/test/tsan/lit.site.cfg.in
-+++ b/test/tsan/lit.site.cfg.in
-@@ -6,6 +6,7 @@ config.has_libcxx = @TSAN_HAS_LIBCXX@
- config.apple_platform = "@TSAN_TEST_APPLE_PLATFORM@"
- 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.19.1
-