summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/CMakeLists.txt4
-rw-r--r--lib/asan/CMakeLists.txt2
-rw-r--r--lib/asan/tests/CMakeLists.txt3
-rw-r--r--lib/cfi/CMakeLists.txt2
-rw-r--r--lib/dfsan/CMakeLists.txt1
-rw-r--r--lib/esan/CMakeLists.txt1
-rw-r--r--lib/lsan/CMakeLists.txt1
-rw-r--r--lib/msan/CMakeLists.txt1
-rw-r--r--lib/sancov/CMakeLists.txt16
-rw-r--r--lib/sancov/sancov_flags.cc (renamed from lib/sanitizer_common/sancov_flags.cc)4
-rw-r--r--lib/sancov/sancov_flags.h (renamed from lib/sanitizer_common/sancov_flags.h)4
-rw-r--r--lib/sancov/sancov_flags.inc (renamed from lib/sanitizer_common/sancov_flags.inc)0
-rw-r--r--lib/sancov/sanitizer_coverage_libcdep.cc (renamed from lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc)8
-rw-r--r--lib/sanitizer_common/CMakeLists.txt2
-rw-r--r--lib/sanitizer_common/sanitizer_coverage_libcdep.cc2
-rw-r--r--lib/sanitizer_common/tests/CMakeLists.txt9
-rw-r--r--lib/scudo/CMakeLists.txt1
-rw-r--r--lib/stats/CMakeLists.txt1
-rw-r--r--lib/tsan/CMakeLists.txt2
-rw-r--r--lib/tsan/dd/CMakeLists.txt2
-rw-r--r--lib/tsan/tests/CMakeLists.txt1
-rw-r--r--lib/ubsan/CMakeLists.txt2
-rw-r--r--lib/xray/CMakeLists.txt3
23 files changed, 58 insertions, 14 deletions
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index 4ab1e933a..461579068 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -36,6 +36,10 @@ function(compiler_rt_build_sanitizer sanitizer)
endif()
endfunction()
+if(COMPILER_RT_HAS_SANITIZER_COMMON)
+ add_subdirectory(sancov)
+endif()
+
if(COMPILER_RT_BUILD_SANITIZERS)
compiler_rt_build_runtime(interception)
diff --git a/lib/asan/CMakeLists.txt b/lib/asan/CMakeLists.txt
index 5ac5708a6..e265343ca 100644
--- a/lib/asan/CMakeLists.txt
+++ b/lib/asan/CMakeLists.txt
@@ -118,6 +118,7 @@ if(APPLE)
RTInterception
RTSanitizerCommon
RTSanitizerCommonLibc
+ RTSancovLibc
RTLSanCommon
RTUbsan
CFLAGS ${ASAN_DYNAMIC_CFLAGS}
@@ -131,6 +132,7 @@ else()
RTInterception
RTSanitizerCommon
RTSanitizerCommonLibc
+ RTSancovLibc
RTLSanCommon
RTUbsan)
diff --git a/lib/asan/tests/CMakeLists.txt b/lib/asan/tests/CMakeLists.txt
index 8089d51ef..0d53e0fee 100644
--- a/lib/asan/tests/CMakeLists.txt
+++ b/lib/asan/tests/CMakeLists.txt
@@ -281,6 +281,7 @@ macro(add_asan_tests_for_arch_and_kind arch kind)
$<TARGET_OBJECTS:RTInterception.osx>
$<TARGET_OBJECTS:RTSanitizerCommon.osx>
$<TARGET_OBJECTS:RTSanitizerCommonLibc.osx>
+ $<TARGET_OBJECTS:RTSancovLibc.osx>
$<TARGET_OBJECTS:RTLSanCommon.osx>
$<TARGET_OBJECTS:RTUbsan.osx>)
else()
@@ -290,6 +291,7 @@ macro(add_asan_tests_for_arch_and_kind arch kind)
$<TARGET_OBJECTS:RTInterception.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
+ $<TARGET_OBJECTS:RTSancovLibc.${arch}>
$<TARGET_OBJECTS:RTLSanCommon.${arch}>
$<TARGET_OBJECTS:RTUbsan.${arch}>
$<TARGET_OBJECTS:RTUbsan_cxx.${arch}>)
@@ -342,6 +344,7 @@ if(ANDROID)
$<TARGET_OBJECTS:RTInterception.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
+ $<TARGET_OBJECTS:RTSancovLibc.${arch}>
$<TARGET_OBJECTS:RTUbsan.${arch}>
$<TARGET_OBJECTS:RTUbsan_cxx.${arch}>
${COMPILER_RT_GTEST_SOURCE}
diff --git a/lib/cfi/CMakeLists.txt b/lib/cfi/CMakeLists.txt
index 206400201..cf0fb3e82 100644
--- a/lib/cfi/CMakeLists.txt
+++ b/lib/cfi/CMakeLists.txt
@@ -20,6 +20,7 @@ foreach(arch ${CFI_SUPPORTED_ARCH})
OBJECT_LIBS RTInterception
RTSanitizerCommon
RTSanitizerCommonLibc
+ RTSancovLibc
CFLAGS ${CFI_CFLAGS}
PARENT_TARGET cfi)
add_compiler_rt_runtime(clang_rt.cfi_diag
@@ -29,6 +30,7 @@ foreach(arch ${CFI_SUPPORTED_ARCH})
OBJECT_LIBS RTInterception
RTSanitizerCommon
RTSanitizerCommonLibc
+ RTSancovLibc
RTUbsan
CFLAGS ${CFI_CFLAGS} ${CFI_DIAG_CFLAGS}
PARENT_TARGET cfi)
diff --git a/lib/dfsan/CMakeLists.txt b/lib/dfsan/CMakeLists.txt
index 2c486bff8..cf843410e 100644
--- a/lib/dfsan/CMakeLists.txt
+++ b/lib/dfsan/CMakeLists.txt
@@ -23,6 +23,7 @@ foreach(arch ${DFSAN_SUPPORTED_ARCH})
$<TARGET_OBJECTS:RTInterception.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
+ $<TARGET_OBJECTS:RTSancovLibc.${arch}>
CFLAGS ${DFSAN_CFLAGS}
PARENT_TARGET dfsan)
add_sanitizer_rt_symbols(clang_rt.dfsan
diff --git a/lib/esan/CMakeLists.txt b/lib/esan/CMakeLists.txt
index 2012ab642..635f697de 100644
--- a/lib/esan/CMakeLists.txt
+++ b/lib/esan/CMakeLists.txt
@@ -26,6 +26,7 @@ foreach (arch ${ESAN_SUPPORTED_ARCH})
$<TARGET_OBJECTS:RTInterception.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
+ $<TARGET_OBJECTS:RTSancovLibc.${arch}>
CFLAGS ${ESAN_RTL_CFLAGS})
add_sanitizer_rt_symbols(clang_rt.esan
ARCHS ${arch}
diff --git a/lib/lsan/CMakeLists.txt b/lib/lsan/CMakeLists.txt
index b782f2421..eb2100318 100644
--- a/lib/lsan/CMakeLists.txt
+++ b/lib/lsan/CMakeLists.txt
@@ -32,6 +32,7 @@ if(COMPILER_RT_HAS_LSAN)
$<TARGET_OBJECTS:RTInterception.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
+ $<TARGET_OBJECTS:RTSancovLibc.${arch}>
$<TARGET_OBJECTS:RTLSanCommon.${arch}>
CFLAGS ${LSAN_CFLAGS}
PARENT_TARGET lsan)
diff --git a/lib/msan/CMakeLists.txt b/lib/msan/CMakeLists.txt
index 598ae5458..d9492760d 100644
--- a/lib/msan/CMakeLists.txt
+++ b/lib/msan/CMakeLists.txt
@@ -35,6 +35,7 @@ foreach(arch ${MSAN_SUPPORTED_ARCH})
$<TARGET_OBJECTS:RTInterception.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
+ $<TARGET_OBJECTS:RTSancovLibc.${arch}>
$<TARGET_OBJECTS:RTUbsan.${arch}>
CFLAGS ${MSAN_RTL_CFLAGS}
PARENT_TARGET msan)
diff --git a/lib/sancov/CMakeLists.txt b/lib/sancov/CMakeLists.txt
new file mode 100644
index 000000000..6ad03508b
--- /dev/null
+++ b/lib/sancov/CMakeLists.txt
@@ -0,0 +1,16 @@
+set(SANITIZER_CFLAGS ${SANITIZER_COMMON_CFLAGS})
+append_rtti_flag(OFF SANITIZER_CFLAGS)
+
+set(SANCOV_LIBCDEP_SOURCES
+ sancov_flags.cc
+ sanitizer_coverage_libcdep.cc)
+
+add_compiler_rt_object_libraries(RTSancovLibc
+ ${OS_OPTION}
+ ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH}
+ SOURCES ${SANCOV_LIBCDEP_SOURCES}
+ CFLAGS ${SANITIZER_CFLAGS}
+ DEFS ${SANITIZER_COMMON_DEFINITIONS})
+
+include_directories(..)
+
diff --git a/lib/sanitizer_common/sancov_flags.cc b/lib/sancov/sancov_flags.cc
index 08fd2a436..14473a381 100644
--- a/lib/sanitizer_common/sancov_flags.cc
+++ b/lib/sancov/sancov_flags.cc
@@ -12,8 +12,8 @@
//===----------------------------------------------------------------------===//
#include "sancov_flags.h"
-#include "sanitizer_flag_parser.h"
-#include "sanitizer_platform.h"
+#include "sanitizer_common/sanitizer_flag_parser.h"
+#include "sanitizer_common/sanitizer_platform.h"
#if !SANITIZER_LINUX
// other platforms do not have weak symbols out of the box.
diff --git a/lib/sanitizer_common/sancov_flags.h b/lib/sancov/sancov_flags.h
index 5fbd7ad06..3fe17dbf2 100644
--- a/lib/sanitizer_common/sancov_flags.h
+++ b/lib/sancov/sancov_flags.h
@@ -13,8 +13,8 @@
#ifndef SANCOV_FLAGS_H
#define SANCOV_FLAGS_H
-#include "sanitizer_flag_parser.h"
-#include "sanitizer_internal_defs.h"
+#include "sanitizer_common/sanitizer_flag_parser.h"
+#include "sanitizer_common/sanitizer_internal_defs.h"
namespace __sancov {
diff --git a/lib/sanitizer_common/sancov_flags.inc b/lib/sancov/sancov_flags.inc
index 63a1f0cbc..63a1f0cbc 100644
--- a/lib/sanitizer_common/sancov_flags.inc
+++ b/lib/sancov/sancov_flags.inc
diff --git a/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc b/lib/sancov/sanitizer_coverage_libcdep.cc
index df6d10f81..92026bae0 100644
--- a/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc
+++ b/lib/sancov/sanitizer_coverage_libcdep.cc
@@ -9,10 +9,10 @@
// Sanitizer Coverage Controller for Trace PC Guard.
#include "sancov_flags.h"
-#include "sanitizer_allocator_internal.h"
-#include "sanitizer_atomic.h"
-#include "sanitizer_common.h"
-#include "sanitizer_symbolizer.h"
+#include "sanitizer_common/sanitizer_allocator_internal.h"
+#include "sanitizer_common/sanitizer_atomic.h"
+#include "sanitizer_common/sanitizer_common.h"
+#include "sanitizer_common/sanitizer_symbolizer.h"
using namespace __sanitizer;
diff --git a/lib/sanitizer_common/CMakeLists.txt b/lib/sanitizer_common/CMakeLists.txt
index c70b8be6d..007d93cc1 100644
--- a/lib/sanitizer_common/CMakeLists.txt
+++ b/lib/sanitizer_common/CMakeLists.txt
@@ -52,9 +52,7 @@ set(SANITIZER_NOLIBC_SOURCES
set(SANITIZER_LIBCDEP_SOURCES
sanitizer_common_libcdep.cc
- sancov_flags.cc
sanitizer_coverage_libcdep.cc
- sanitizer_coverage_libcdep_new.cc
sanitizer_coverage_mapping_libcdep.cc
sanitizer_linux_libcdep.cc
sanitizer_posix_libcdep.cc
diff --git a/lib/sanitizer_common/sanitizer_coverage_libcdep.cc b/lib/sanitizer_common/sanitizer_coverage_libcdep.cc
index ebdee33d7..5945ebbe9 100644
--- a/lib/sanitizer_common/sanitizer_coverage_libcdep.cc
+++ b/lib/sanitizer_common/sanitizer_coverage_libcdep.cc
@@ -954,7 +954,9 @@ SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_cov_init() {
}
SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_cov_dump() {
coverage_data.DumpAll();
+#if SANITIZER_LINUX
__sanitizer_dump_trace_pc_guard_coverage();
+#endif
}
SANITIZER_INTERFACE_ATTRIBUTE void
__sanitizer_cov_module_init(s32 *guards, uptr npcs, u8 *counters,
diff --git a/lib/sanitizer_common/tests/CMakeLists.txt b/lib/sanitizer_common/tests/CMakeLists.txt
index 20698b9a8..f03b5a15c 100644
--- a/lib/sanitizer_common/tests/CMakeLists.txt
+++ b/lib/sanitizer_common/tests/CMakeLists.txt
@@ -200,7 +200,8 @@ if(COMPILER_RT_CAN_EXECUTE_TESTS AND NOT ANDROID)
if(APPLE)
add_sanitizer_common_lib("RTSanitizerCommon.test.osx"
$<TARGET_OBJECTS:RTSanitizerCommon.osx>
- $<TARGET_OBJECTS:RTSanitizerCommonLibc.osx>)
+ $<TARGET_OBJECTS:RTSanitizerCommonLibc.osx>
+ $<TARGET_OBJECTS:RTSancovLibc.osx>)
else()
if(CAN_TARGET_x86_64)
add_sanitizer_common_lib("RTSanitizerCommon.test.nolibc.x86_64"
@@ -210,7 +211,8 @@ if(COMPILER_RT_CAN_EXECUTE_TESTS AND NOT ANDROID)
foreach(arch ${SANITIZER_UNITTEST_SUPPORTED_ARCH})
add_sanitizer_common_lib("RTSanitizerCommon.test.${arch}"
$<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
- $<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>)
+ $<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
+ $<TARGET_OBJECTS:RTSancovLibc.${arch}>)
endforeach()
endif()
foreach(arch ${SANITIZER_UNITTEST_SUPPORTED_ARCH})
@@ -224,7 +226,8 @@ if(ANDROID)
${SANITIZER_UNITTESTS}
${COMPILER_RT_GTEST_SOURCE}
$<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
- $<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>)
+ $<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
+ $<TARGET_OBJECTS:RTSancovLibc.${arch}>)
set_target_compile_flags(SanitizerTest
${SANITIZER_COMMON_CFLAGS}
${SANITIZER_TEST_CFLAGS_COMMON})
diff --git a/lib/scudo/CMakeLists.txt b/lib/scudo/CMakeLists.txt
index 4f1acec78..7a386811a 100644
--- a/lib/scudo/CMakeLists.txt
+++ b/lib/scudo/CMakeLists.txt
@@ -29,6 +29,7 @@ if(COMPILER_RT_HAS_SCUDO)
$<TARGET_OBJECTS:RTInterception.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommonNoTermination.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
+ $<TARGET_OBJECTS:RTSancovLibc.${arch}>
CFLAGS ${SCUDO_CFLAGS}
PARENT_TARGET scudo)
endforeach()
diff --git a/lib/stats/CMakeLists.txt b/lib/stats/CMakeLists.txt
index 2b3d6474b..27f5fa0f1 100644
--- a/lib/stats/CMakeLists.txt
+++ b/lib/stats/CMakeLists.txt
@@ -22,6 +22,7 @@ add_compiler_rt_runtime(clang_rt.stats
SOURCES stats.cc
OBJECT_LIBS RTSanitizerCommon
RTSanitizerCommonLibc
+ RTSancovLibc
CFLAGS ${SANITIZER_COMMON_CFLAGS}
LINK_FLAGS ${WEAK_SYMBOL_LINK_FLAGS}
PARENT_TARGET stats)
diff --git a/lib/tsan/CMakeLists.txt b/lib/tsan/CMakeLists.txt
index d51954596..c0bb48083 100644
--- a/lib/tsan/CMakeLists.txt
+++ b/lib/tsan/CMakeLists.txt
@@ -119,6 +119,7 @@ if(APPLE)
OBJECT_LIBS RTInterception
RTSanitizerCommon
RTSanitizerCommonLibc
+ RTSancovLibc
RTUbsan
CFLAGS ${TSAN_RTL_CFLAGS}
LINK_FLAGS ${WEAK_SYMBOL_LINK_FLAGS}
@@ -179,6 +180,7 @@ else()
$<TARGET_OBJECTS:RTInterception.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
+ $<TARGET_OBJECTS:RTSancovLibc.${arch}>
$<TARGET_OBJECTS:RTUbsan.${arch}>
CFLAGS ${TSAN_RTL_CFLAGS})
add_compiler_rt_runtime(clang_rt.tsan_cxx
diff --git a/lib/tsan/dd/CMakeLists.txt b/lib/tsan/dd/CMakeLists.txt
index bcff35f20..be862d51c 100644
--- a/lib/tsan/dd/CMakeLists.txt
+++ b/lib/tsan/dd/CMakeLists.txt
@@ -26,6 +26,7 @@ if(CAN_TARGET_x86_64 AND UNIX AND NOT APPLE AND NOT ANDROID)
$<TARGET_OBJECTS:RTInterception.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
+ $<TARGET_OBJECTS:RTSancovLibc.${arch}>
CFLAGS ${DD_CFLAGS}
PARENT_TARGET dd)
@@ -40,6 +41,7 @@ if(CAN_TARGET_x86_64 AND UNIX AND NOT APPLE AND NOT ANDROID)
$<TARGET_OBJECTS:RTInterception.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
+ $<TARGET_OBJECTS:RTSancovLibc.${arch}>
LINK_LIBS ${DD_LINKLIBS}
PARENT_TARGET dd)
endif()
diff --git a/lib/tsan/tests/CMakeLists.txt b/lib/tsan/tests/CMakeLists.txt
index 87e14174a..d972f54de 100644
--- a/lib/tsan/tests/CMakeLists.txt
+++ b/lib/tsan/tests/CMakeLists.txt
@@ -69,6 +69,7 @@ macro(add_tsan_unittest testname)
$<TARGET_OBJECTS:RTInterception.osx>
$<TARGET_OBJECTS:RTSanitizerCommon.osx>
$<TARGET_OBJECTS:RTSanitizerCommonLibc.osx>
+ $<TARGET_OBJECTS:RTSancovLibc.osx>
$<TARGET_OBJECTS:RTUbsan.osx>)
set(TSAN_TEST_RUNTIME RTTsanTest.${testname}.${arch})
add_library(${TSAN_TEST_RUNTIME} STATIC ${TSAN_TEST_RUNTIME_OBJECTS})
diff --git a/lib/ubsan/CMakeLists.txt b/lib/ubsan/CMakeLists.txt
index 9bb36edc7..e3ad52eb9 100644
--- a/lib/ubsan/CMakeLists.txt
+++ b/lib/ubsan/CMakeLists.txt
@@ -67,6 +67,7 @@ if(APPLE)
RTUbsan_standalone
RTSanitizerCommon
RTSanitizerCommonLibc
+ RTSancovLibc
LINK_FLAGS ${WEAK_SYMBOL_LINK_FLAGS}
PARENT_TARGET ubsan)
endif()
@@ -102,6 +103,7 @@ else()
ARCHS ${UBSAN_SUPPORTED_ARCH}
OBJECT_LIBS RTSanitizerCommon
RTSanitizerCommonLibc
+ RTSancovLibc
RTUbsan
RTUbsan_standalone
CFLAGS ${UBSAN_CFLAGS}
diff --git a/lib/xray/CMakeLists.txt b/lib/xray/CMakeLists.txt
index 9c7cf6ce3..fc1e0909f 100644
--- a/lib/xray/CMakeLists.txt
+++ b/lib/xray/CMakeLists.txt
@@ -51,7 +51,8 @@ add_compiler_rt_component(xray-fdr)
set(XRAY_COMMON_RUNTIME_OBJECT_LIBS
RTSanitizerCommon
- RTSanitizerCommonLibc)
+ RTSanitizerCommonLibc
+ RTSancovLibc)
foreach(arch ${XRAY_SUPPORTED_ARCH})
if(CAN_TARGET_${arch})