summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/Modules/AddCompilerRT.cmake30
-rw-r--r--cmake/Modules/CompilerRTUtils.cmake36
-rw-r--r--lib/asan/CMakeLists.txt41
-rw-r--r--lib/dfsan/CMakeLists.txt7
-rw-r--r--lib/esan/CMakeLists.txt13
-rw-r--r--lib/fuzzer/CMakeLists.txt26
-rw-r--r--lib/hwasan/CMakeLists.txt22
-rw-r--r--lib/interception/CMakeLists.txt10
-rw-r--r--lib/lsan/CMakeLists.txt10
-rw-r--r--lib/msan/CMakeLists.txt13
-rw-r--r--lib/profile/CMakeLists.txt10
-rw-r--r--lib/sanitizer_common/CMakeLists.txt36
-rw-r--r--lib/scudo/CMakeLists.txt21
-rw-r--r--lib/stats/CMakeLists.txt5
-rw-r--r--lib/tsan/CMakeLists.txt7
-rw-r--r--lib/ubsan/CMakeLists.txt37
-rw-r--r--lib/xray/CMakeLists.txt45
17 files changed, 340 insertions, 29 deletions
diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
index e7ec4bd28..cd4c704fc 100644
--- a/cmake/Modules/AddCompilerRT.cmake
+++ b/cmake/Modules/AddCompilerRT.cmake
@@ -32,9 +32,11 @@ endfunction()
# SOURCES <source files>
# CFLAGS <compile flags>
# DEFS <compile definitions>
-# DEPS <dependencies>)
+# DEPS <dependencies>
+# ADDITIONAL_HEADERS <header files>)
function(add_compiler_rt_object_libraries name)
- cmake_parse_arguments(LIB "" "" "OS;ARCHS;SOURCES;CFLAGS;DEFS;DEPS" ${ARGN})
+ cmake_parse_arguments(LIB "" "" "OS;ARCHS;SOURCES;CFLAGS;DEFS;DEPS;ADDITIONAL_HEADERS"
+ ${ARGN})
set(libnames)
if(APPLE)
foreach(os ${LIB_OS})
@@ -55,6 +57,13 @@ function(add_compiler_rt_object_libraries name)
endforeach()
endif()
+ # Add headers to LIB_SOURCES for IDEs
+ compiler_rt_process_sources(LIB_SOURCES
+ ${LIB_SOURCES}
+ ADDITIONAL_HEADERS
+ ${LIB_ADDITIONAL_HEADERS}
+ )
+
foreach(libname ${libnames})
add_library(${libname} OBJECT ${LIB_SOURCES})
if(LIB_DEPS)
@@ -132,7 +141,8 @@ endmacro()
# DEFS <compile definitions>
# LINK_LIBS <linked libraries> (only for shared library)
# OBJECT_LIBS <object libraries to use as sources>
-# PARENT_TARGET <convenience parent target>)
+# PARENT_TARGET <convenience parent target>
+# ADDITIONAL_HEADERS <header files>)
function(add_compiler_rt_runtime name type)
if(NOT type MATCHES "^(STATIC|SHARED)$")
message(FATAL_ERROR "type argument must be STATIC or SHARED")
@@ -141,7 +151,7 @@ function(add_compiler_rt_runtime name type)
cmake_parse_arguments(LIB
""
"PARENT_TARGET"
- "OS;ARCHS;SOURCES;CFLAGS;LINK_FLAGS;DEFS;LINK_LIBS;OBJECT_LIBS"
+ "OS;ARCHS;SOURCES;CFLAGS;LINK_FLAGS;DEFS;LINK_LIBS;OBJECT_LIBS;ADDITIONAL_HEADERS"
${ARGN})
set(libnames)
# Until we support this some other way, build compiler-rt runtime without LTO
@@ -152,6 +162,18 @@ function(add_compiler_rt_runtime name type)
set(NO_LTO_FLAGS "")
endif()
+ list(LENGTH LIB_SOURCES LIB_SOURCES_LENGTH)
+ if (${LIB_SOURCES_LENGTH} GREATER 0)
+ # Add headers to LIB_SOURCES for IDEs. It doesn't make sense to
+ # do this for a runtime library that only consists of OBJECT
+ # libraries, so only add the headers when source files are present.
+ compiler_rt_process_sources(LIB_SOURCES
+ ${LIB_SOURCES}
+ ADDITIONAL_HEADERS
+ ${LIB_ADDITIONAL_HEADERS}
+ )
+ endif()
+
if(APPLE)
foreach(os ${LIB_OS})
# Strip out -msse3 if this isn't macOS.
diff --git a/cmake/Modules/CompilerRTUtils.cmake b/cmake/Modules/CompilerRTUtils.cmake
index ea332d37d..e5651718f 100644
--- a/cmake/Modules/CompilerRTUtils.cmake
+++ b/cmake/Modules/CompilerRTUtils.cmake
@@ -344,3 +344,39 @@ function(get_compiler_rt_output_dir arch output_dir)
set(${output_dir} ${COMPILER_RT_LIBRARY_OUTPUT_DIR} PARENT_SCOPE)
endif()
endfunction()
+
+# compiler_rt_process_sources(
+# <OUTPUT_VAR>
+# <SOURCE_FILE> ...
+# [ADDITIONAL_HEADERS <header> ...]
+# )
+#
+# Process the provided sources and write the list of new sources
+# into `<OUTPUT_VAR>`.
+#
+# ADDITIONAL_HEADERS - Adds the supplied header to list of sources for IDEs.
+#
+# This function is very similar to `llvm_process_sources()` but exists here
+# because we need to support standalone builds of compiler-rt.
+function(compiler_rt_process_sources OUTPUT_VAR)
+ cmake_parse_arguments(
+ ARG
+ ""
+ ""
+ "ADDITIONAL_HEADERS"
+ ${ARGN}
+ )
+ set(sources ${ARG_UNPARSED_ARGUMENTS})
+ set(headers "")
+ if (XCODE OR MSVC_IDE OR CMAKE_EXTRA_GENERATOR)
+ # For IDEs we need to tell CMake about header files.
+ # Otherwise they won't show up in UI.
+ set(headers ${ARG_ADDITIONAL_HEADERS})
+ list(LENGTH headers headers_length)
+ if (${headers_length} GREATER 0)
+ set_source_files_properties(${headers}
+ PROPERTIES HEADER_FILE_ONLY ON)
+ endif()
+ endif()
+ set("${OUTPUT_VAR}" ${sources} ${headers} PARENT_SCOPE)
+endfunction()
diff --git a/lib/asan/CMakeLists.txt b/lib/asan/CMakeLists.txt
index ac8b17d4c..48ac7cc7e 100644
--- a/lib/asan/CMakeLists.txt
+++ b/lib/asan/CMakeLists.txt
@@ -38,6 +38,34 @@ set(ASAN_CXX_SOURCES
set(ASAN_PREINIT_SOURCES
asan_preinit.cc)
+SET(ASAN_HEADERS
+ asan_activation.h
+ asan_activation_flags.inc
+ asan_allocator.h
+ asan_descriptions.h
+ asan_errors.h
+ asan_fake_stack.h
+ asan_flags.h
+ asan_flags.inc
+ asan_init_version.h
+ asan_interceptors.h
+ asan_interceptors_memintrinsics.h
+ asan_interface.inc
+ asan_interface_internal.h
+ asan_internal.h
+ asan_lock.h
+ asan_malloc_local.h
+ asan_mapping.h
+ asan_mapping_myriad.h
+ asan_poisoning.h
+ asan_premap_shadow.h
+ asan_report.h
+ asan_scariness_score.h
+ asan_stack.h
+ asan_stats.h
+ asan_suppressions.h
+ asan_thread.h)
+
include_directories(..)
set(ASAN_CFLAGS ${SANITIZER_COMMON_CFLAGS})
@@ -84,21 +112,28 @@ add_compiler_rt_object_libraries(RTAsan_dynamic
OS ${SANITIZER_COMMON_SUPPORTED_OS}
ARCHS ${ASAN_SUPPORTED_ARCH}
SOURCES ${ASAN_SOURCES} ${ASAN_CXX_SOURCES}
+ ADDITIONAL_HEADERS ${ASAN_HEADERS}
CFLAGS ${ASAN_DYNAMIC_CFLAGS}
DEFS ${ASAN_DYNAMIC_DEFINITIONS})
if(NOT APPLE)
add_compiler_rt_object_libraries(RTAsan
ARCHS ${ASAN_SUPPORTED_ARCH}
- SOURCES ${ASAN_SOURCES} CFLAGS ${ASAN_CFLAGS}
+ SOURCES ${ASAN_SOURCES}
+ ADDITIONAL_HEADERS ${ASAN_HEADERS}
+ CFLAGS ${ASAN_CFLAGS}
DEFS ${ASAN_COMMON_DEFINITIONS})
add_compiler_rt_object_libraries(RTAsan_cxx
ARCHS ${ASAN_SUPPORTED_ARCH}
- SOURCES ${ASAN_CXX_SOURCES} CFLAGS ${ASAN_CFLAGS}
+ SOURCES ${ASAN_CXX_SOURCES}
+ ADDITIONAL_HEADERS ${ASAN_HEADERS}
+ CFLAGS ${ASAN_CFLAGS}
DEFS ${ASAN_COMMON_DEFINITIONS})
add_compiler_rt_object_libraries(RTAsan_preinit
ARCHS ${ASAN_SUPPORTED_ARCH}
- SOURCES ${ASAN_PREINIT_SOURCES} CFLAGS ${ASAN_CFLAGS}
+ SOURCES ${ASAN_PREINIT_SOURCES}
+ ADDITIONAL_HEADERS ${ASAN_HEADERS}
+ CFLAGS ${ASAN_CFLAGS}
DEFS ${ASAN_COMMON_DEFINITIONS})
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/dummy.cc "")
diff --git a/lib/dfsan/CMakeLists.txt b/lib/dfsan/CMakeLists.txt
index 8e88c3b62..b3ae713cf 100644
--- a/lib/dfsan/CMakeLists.txt
+++ b/lib/dfsan/CMakeLists.txt
@@ -5,6 +5,12 @@ set(DFSAN_RTL_SOURCES
dfsan.cc
dfsan_custom.cc
dfsan_interceptors.cc)
+
+set(DFSAN_RTL_HEADERS
+ dfsan.h
+ dfsan_flags.inc
+ dfsan_platform.h)
+
set(DFSAN_COMMON_CFLAGS ${SANITIZER_COMMON_CFLAGS})
append_rtti_flag(OFF DFSAN_COMMON_CFLAGS)
# Prevent clang from generating libc calls.
@@ -23,6 +29,7 @@ foreach(arch ${DFSAN_SUPPORTED_ARCH})
$<TARGET_OBJECTS:RTInterception.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
+ ADDITIONAL_HEADERS ${DFSAN_RTL_HEADERS}
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 2349fe2ff..4de5c0205 100644
--- a/lib/esan/CMakeLists.txt
+++ b/lib/esan/CMakeLists.txt
@@ -18,6 +18,18 @@ set(ESAN_SOURCES
working_set.cpp
working_set_posix.cpp)
+set(ESAN_HEADERS
+ cache_frag.h
+ esan.h
+ esan_circular_buffer.h
+ esan_flags.h
+ esan_flags.inc
+ esan_hashtable.h
+ esan_interface_internal.h
+ esan_shadow.h
+ esan_sideline.h
+ working_set.h)
+
foreach (arch ${ESAN_SUPPORTED_ARCH})
add_compiler_rt_runtime(clang_rt.esan
STATIC
@@ -27,6 +39,7 @@ foreach (arch ${ESAN_SUPPORTED_ARCH})
$<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommonSymbolizer.${arch}>
+ ADDITIONAL_HEADERS ${ESAN_HEADERS}
CFLAGS ${ESAN_RTL_CFLAGS})
add_sanitizer_rt_symbols(clang_rt.esan
ARCHS ${arch}
diff --git a/lib/fuzzer/CMakeLists.txt b/lib/fuzzer/CMakeLists.txt
index cb511b09b..bb32740a1 100644
--- a/lib/fuzzer/CMakeLists.txt
+++ b/lib/fuzzer/CMakeLists.txt
@@ -22,8 +22,29 @@ set(LIBFUZZER_SOURCES
FuzzerUtilFuchsia.cpp
FuzzerUtilLinux.cpp
FuzzerUtilPosix.cpp
- FuzzerUtilWindows.cpp
- )
+ FuzzerUtilWindows.cpp)
+
+set(LIBFUZZER_HEADERS
+ FuzzerCommand.h
+ FuzzerCorpus.h
+ FuzzerDataFlowTrace.h
+ FuzzerDefs.h
+ FuzzerDictionary.h
+ FuzzerExtFunctions.def
+ FuzzerExtFunctions.h
+ FuzzerFlags.def
+ FuzzerIO.h
+ FuzzerInterface.h
+ FuzzerInternal.h
+ FuzzerMerge.h
+ FuzzerMutate.h
+ FuzzerOptions.h
+ FuzzerRandom.h
+ FuzzerSHA1.h
+ FuzzerShmem.h
+ FuzzerTracePC.h
+ FuzzerUtil.h
+ FuzzerValueBitMap.h)
CHECK_CXX_SOURCE_COMPILES("
static thread_local int blah;
@@ -58,6 +79,7 @@ add_compiler_rt_object_libraries(RTfuzzer
OS ${FUZZER_SUPPORTED_OS}
ARCHS ${FUZZER_SUPPORTED_ARCH}
SOURCES ${LIBFUZZER_SOURCES}
+ ADDITIONAL_HEADERS ${LIBFUZZER_HEADERS}
CFLAGS ${LIBFUZZER_CFLAGS}
DEPS ${LIBFUZZER_DEPS})
diff --git a/lib/hwasan/CMakeLists.txt b/lib/hwasan/CMakeLists.txt
index d2e91ee37..ca53890d1 100644
--- a/lib/hwasan/CMakeLists.txt
+++ b/lib/hwasan/CMakeLists.txt
@@ -15,6 +15,18 @@ set(HWASAN_RTL_SOURCES
set(HWASAN_RTL_CXX_SOURCES
hwasan_new_delete.cc)
+set(HWASAN_RTL_HEADERS
+ hwasan.h
+ hwasan_allocator.h
+ hwasan_dynamic_shadow.h
+ hwasan_flags.h
+ hwasan_flags.inc
+ hwasan_interface_internal.h
+ hwasan_mapping.h
+ hwasan_poisoning.h
+ hwasan_report.h
+ hwasan_thread.h)
+
set(HWASAN_RTL_CFLAGS ${SANITIZER_COMMON_CFLAGS})
append_rtti_flag(OFF HWASAN_RTL_CFLAGS)
@@ -56,13 +68,19 @@ add_compiler_rt_component(hwasan)
add_compiler_rt_object_libraries(RTHwasan
ARCHS ${HWASAN_SUPPORTED_ARCH}
- SOURCES ${HWASAN_RTL_SOURCES} CFLAGS ${HWASAN_RTL_CFLAGS})
+ SOURCES ${HWASAN_RTL_SOURCES}
+ ADDITIONAL_HEADERS ${HWASAN_RTL_HEADERS}
+ CFLAGS ${HWASAN_RTL_CFLAGS})
add_compiler_rt_object_libraries(RTHwasan_cxx
ARCHS ${HWASAN_SUPPORTED_ARCH}
- SOURCES ${HWASAN_RTL_CXX_SOURCES} CFLAGS ${HWASAN_RTL_CFLAGS})
+ SOURCES ${HWASAN_RTL_CXX_SOURCES}
+ ADDITIONAL_HEADERS ${HWASAN_RTL_HEADERS}
+ CFLAGS ${HWASAN_RTL_CFLAGS})
add_compiler_rt_object_libraries(RTHwasan_dynamic
ARCHS ${HWASAN_SUPPORTED_ARCH}
+ # FIXME: Typo? Probably should be HWASAN_RTL_CXX_SOURCES
SOURCES ${HWASAN_RTL_SOURCES} ${TSAN_RTL_CXX_SOURCES}
+ ADDITIONAL_HEADERS ${HWASAN_RTL_HEADERS}
CFLAGS ${HWASAN_DYNAMIC_CFLAGS})
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/dummy.cc "")
diff --git a/lib/interception/CMakeLists.txt b/lib/interception/CMakeLists.txt
index 18d259481..c0ac974d7 100644
--- a/lib/interception/CMakeLists.txt
+++ b/lib/interception/CMakeLists.txt
@@ -4,8 +4,13 @@ set(INTERCEPTION_SOURCES
interception_linux.cc
interception_mac.cc
interception_win.cc
- interception_type_test.cc
- )
+ interception_type_test.cc)
+
+set(INTERCEPTION_HEADERS
+ interception.h
+ interception_linux.h
+ interception_mac.h
+ interception_win.h)
include_directories(..)
@@ -16,6 +21,7 @@ add_compiler_rt_object_libraries(RTInterception
OS ${SANITIZER_COMMON_SUPPORTED_OS}
ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH}
SOURCES ${INTERCEPTION_SOURCES}
+ ADDITIONAL_HEADERS ${INTERCEPTION_HEADERS}
CFLAGS ${INTERCEPTION_CFLAGS})
if(COMPILER_RT_INCLUDE_TESTS)
diff --git a/lib/lsan/CMakeLists.txt b/lib/lsan/CMakeLists.txt
index c1700dd06..34f686135 100644
--- a/lib/lsan/CMakeLists.txt
+++ b/lib/lsan/CMakeLists.txt
@@ -18,12 +18,20 @@ set(LSAN_SOURCES
lsan_preinit.cc
lsan_thread.cc)
+set(LSAN_HEADERS
+ lsan.h
+ lsan_allocator.h
+ lsan_common.h
+ lsan_flags.inc
+ lsan_thread.h)
+
set(LSAN_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR})
add_compiler_rt_object_libraries(RTLSanCommon
OS ${SANITIZER_COMMON_SUPPORTED_OS}
ARCHS ${LSAN_COMMON_SUPPORTED_ARCH}
SOURCES ${LSAN_COMMON_SOURCES}
+ ADDITIONAL_HEADERS ${LSAN_HEADERS}
CFLAGS ${LSAN_CFLAGS})
if(COMPILER_RT_HAS_LSAN)
@@ -39,6 +47,7 @@ if(COMPILER_RT_HAS_LSAN)
OS ${SANITIZER_COMMON_SUPPORTED_OS}
ARCHS ${LSAN_SUPPORTED_ARCH}
SOURCES ${LSAN_SOURCES}
+ ADDITIONAL_HEADERS ${LSAN_HEADERS}
OBJECT_LIBS RTLSanCommon
RTInterception
RTSanitizerCommon
@@ -61,6 +70,7 @@ if(COMPILER_RT_HAS_LSAN)
$<TARGET_OBJECTS:RTSanitizerCommonCoverage.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommonSymbolizer.${arch}>
$<TARGET_OBJECTS:RTLSanCommon.${arch}>
+ ADDITIONAL_HEADERS ${LSAN_HEADERS}
CFLAGS ${LSAN_CFLAGS}
PARENT_TARGET lsan)
endforeach()
diff --git a/lib/msan/CMakeLists.txt b/lib/msan/CMakeLists.txt
index 30566c4a4..15cc513c2 100644
--- a/lib/msan/CMakeLists.txt
+++ b/lib/msan/CMakeLists.txt
@@ -15,6 +15,17 @@ set(MSAN_RTL_SOURCES
set(MSAN_RTL_CXX_SOURCES
msan_new_delete.cc)
+set(MSAN_RTL_HEADERS
+ msan.h
+ msan_allocator.h
+ msan_chained_origin_depot.h
+ msan_flags.h
+ msan_flags.inc
+ msan_interface_internal.h
+ msan_origin.h
+ msan_poisoning.h
+ msan_report.h
+ msan_thread.h)
set(MSAN_RTL_CFLAGS ${SANITIZER_COMMON_CFLAGS})
if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
@@ -43,6 +54,7 @@ foreach(arch ${MSAN_SUPPORTED_ARCH})
$<TARGET_OBJECTS:RTSanitizerCommonCoverage.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommonSymbolizer.${arch}>
$<TARGET_OBJECTS:RTUbsan.${arch}>
+ ADDITIONAL_HEADERS ${MSAN_RTL_HEADERS}
CFLAGS ${MSAN_RTL_CFLAGS}
PARENT_TARGET msan)
add_compiler_rt_runtime(clang_rt.msan_cxx
@@ -50,6 +62,7 @@ foreach(arch ${MSAN_SUPPORTED_ARCH})
ARCHS ${arch}
SOURCES ${MSAN_RTL_CXX_SOURCES}
$<TARGET_OBJECTS:RTUbsan_cxx.${arch}>
+ ADDITIONAL_HEADERS ${MSAN_RTL_HEADERS}
CFLAGS ${MSAN_RTL_CFLAGS}
PARENT_TARGET msan)
list(APPEND MSAN_RUNTIME_LIBRARIES clang_rt.msan-${arch}
diff --git a/lib/profile/CMakeLists.txt b/lib/profile/CMakeLists.txt
index 9aab12522..44369b848 100644
--- a/lib/profile/CMakeLists.txt
+++ b/lib/profile/CMakeLists.txt
@@ -64,6 +64,14 @@ set(PROFILE_SOURCES
InstrProfilingRuntime.cc
InstrProfilingUtil.c)
+set(PROFILE_HEADERS
+ InstrProfData.inc
+ InstrProfiling.h
+ InstrProfilingInternal.h
+ InstrProfilingPort.h
+ InstrProfilingUtil.h
+ WindowsMMap.h)
+
if(WIN32)
list(APPEND PROFILE_SOURCES WindowsMMap.c)
endif()
@@ -104,6 +112,7 @@ if(APPLE)
ARCHS ${PROFILE_SUPPORTED_ARCH}
CFLAGS ${EXTRA_FLAGS}
SOURCES ${PROFILE_SOURCES}
+ ADDITIONAL_HEADERS ${PROFILE_HEADERS}
PARENT_TARGET profile)
else()
add_compiler_rt_runtime(clang_rt.profile
@@ -111,5 +120,6 @@ else()
ARCHS ${PROFILE_SUPPORTED_ARCH}
CFLAGS ${EXTRA_FLAGS}
SOURCES ${PROFILE_SOURCES}
+ ADDITIONAL_HEADERS ${PROFILE_HEADERS}
PARENT_TARGET profile)
endif()
diff --git a/lib/sanitizer_common/CMakeLists.txt b/lib/sanitizer_common/CMakeLists.txt
index 558fa6343..dfdaa9dfe 100644
--- a/lib/sanitizer_common/CMakeLists.txt
+++ b/lib/sanitizer_common/CMakeLists.txt
@@ -90,9 +90,12 @@ set(SANITIZER_SYMBOLIZER_SOURCES
# included in sanitizer_common source files, but we need to depend on
# headers when building our custom unit tests.
set(SANITIZER_HEADERS
+ sancov_flags.h
+ sancov_flags.inc
sanitizer_addrhashmap.h
sanitizer_allocator.h
sanitizer_allocator_bytemap.h
+ sanitizer_allocator_checks.h
sanitizer_allocator_combined.h
sanitizer_allocator_interface.h
sanitizer_allocator_internal.h
@@ -103,16 +106,24 @@ set(SANITIZER_HEADERS
sanitizer_allocator_secondary.h
sanitizer_allocator_size_class_map.h
sanitizer_allocator_stats.h
+ sanitizer_asm.h
sanitizer_atomic.h
sanitizer_atomic_clang.h
+ sanitizer_atomic_clang_mips.h
+ sanitizer_atomic_clang_other.h
+ sanitizer_atomic_clang_x86.h
sanitizer_atomic_msvc.h
sanitizer_bitvector.h
sanitizer_bvgraph.h
sanitizer_common.h
sanitizer_common_interceptors.inc
- sanitizer_common_interceptors_ioctl.inc
sanitizer_common_interceptors_format.inc
+ sanitizer_common_interceptors_ioctl.inc
+ sanitizer_common_interface.inc
+ sanitizer_common_interface_posix.inc
sanitizer_common_syscalls.inc
+ sanitizer_coverage_interface.inc
+ sanitizer_dbghelp.h
sanitizer_deadlock_detector.h
sanitizer_deadlock_detector_interface.h
sanitizer_errno.h
@@ -121,7 +132,9 @@ set(SANITIZER_HEADERS
sanitizer_flag_parser.h
sanitizer_flags.h
sanitizer_flags.inc
+ sanitizer_freebsd.h
sanitizer_fuchsia.h
+ sanitizer_getauxval.h
sanitizer_interceptors_ioctl_netbsd.inc
sanitizer_interface_internal.h
sanitizer_internal_defs.h
@@ -131,12 +144,14 @@ set(SANITIZER_HEADERS
sanitizer_linux.h
sanitizer_list.h
sanitizer_mac.h
+ sanitizer_malloc_mac.inc
sanitizer_mutex.h
sanitizer_persistent_allocator.h
sanitizer_placement_new.h
sanitizer_platform.h
sanitizer_platform_interceptors.h
sanitizer_platform_limits_netbsd.h
+ sanitizer_platform_limits_openbsd.h
sanitizer_platform_limits_posix.h
sanitizer_platform_limits_solaris.h
sanitizer_posix.h
@@ -144,6 +159,7 @@ set(SANITIZER_HEADERS
sanitizer_quarantine.h
sanitizer_report_decorator.h
sanitizer_rtems.h
+ sanitizer_signal_interceptors.inc
sanitizer_stackdepot.h
sanitizer_stackdepotbase.h
sanitizer_stacktrace.h
@@ -157,12 +173,17 @@ set(SANITIZER_HEADERS
sanitizer_symbolizer_mac.h
sanitizer_symbolizer_rtems.h
sanitizer_syscall_generic.inc
- sanitizer_syscall_linux_x86_64.inc
sanitizer_syscall_linux_aarch64.inc
+ sanitizer_syscall_linux_arm.inc
+ sanitizer_syscall_linux_x86_64.inc
sanitizer_syscalls_netbsd.inc
sanitizer_thread_registry.h
+ sanitizer_tls_get_addr.h
sanitizer_vector.h
- sanitizer_win.h)
+ sanitizer_win.h
+ sanitizer_win_defs.h
+ sanitizer_win_dll_thunk.h
+ sanitizer_win_weak_interception.h)
include_directories(..)
@@ -201,36 +222,42 @@ add_compiler_rt_object_libraries(RTSanitizerCommon
${OS_OPTION}
ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH}
SOURCES ${SANITIZER_SOURCES}
+ ADDITIONAL_HEADERS ${SANITIZER_HEADERS}
CFLAGS ${SANITIZER_CFLAGS}
DEFS ${SANITIZER_COMMON_DEFINITIONS})
add_compiler_rt_object_libraries(RTSanitizerCommonNoTermination
${OS_OPTION}
ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH}
SOURCES ${SANITIZER_SOURCES_NOTERMINATION}
+ ADDITIONAL_HEADERS ${SANITIZER_HEADERS}
CFLAGS ${SANITIZER_CFLAGS}
DEFS ${SANITIZER_COMMON_DEFINITIONS})
add_compiler_rt_object_libraries(RTSanitizerCommonNoLibc
${OS_OPTION}
ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH}
SOURCES ${SANITIZER_NOLIBC_SOURCES}
+ ADDITIONAL_HEADERS ${SANITIZER_HEADERS}
CFLAGS ${SANITIZER_CFLAGS}
DEFS ${SANITIZER_COMMON_DEFINITIONS})
add_compiler_rt_object_libraries(RTSanitizerCommonLibc
${OS_OPTION}
ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH}
SOURCES ${SANITIZER_LIBCDEP_SOURCES}
+ ADDITIONAL_HEADERS ${SANITIZER_HEADERS}
CFLAGS ${SANITIZER_CFLAGS}
DEFS ${SANITIZER_COMMON_DEFINITIONS})
add_compiler_rt_object_libraries(RTSanitizerCommonCoverage
${OS_OPTION}
ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH}
SOURCES ${SANITIZER_COVERAGE_SOURCES}
+ ADDITIONAL_HEADERS ${SANITIZER_HEADERS}
CFLAGS ${SANITIZER_CFLAGS}
DEFS ${SANITIZER_COMMON_DEFINITIONS})
add_compiler_rt_object_libraries(RTSanitizerCommonSymbolizer
${OS_OPTION}
ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH}
SOURCES ${SANITIZER_SYMBOLIZER_SOURCES}
+ ADDITIONAL_HEADERS ${SANITIZER_HEADERS}
CFLAGS ${SANITIZER_CFLAGS}
DEFS ${SANITIZER_COMMON_DEFINITIONS})
@@ -240,18 +267,21 @@ add_compiler_rt_object_libraries(RTSanitizerCommonNoHooks
${OS_OPTION}
ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH}
SOURCES ${SANITIZER_SOURCES}
+ ADDITIONAL_HEADERS ${SANITIZER_HEADERS}
CFLAGS ${SANITIZER_NO_WEAK_HOOKS_CFLAGS}
DEFS ${SANITIZER_COMMON_DEFINITIONS})
add_compiler_rt_object_libraries(RTSanitizerCommonLibcNoHooks
${OS_OPTION}
ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH}
SOURCES ${SANITIZER_LIBCDEP_SOURCES}
+ ADDITIONAL_HEADERS ${SANITIZER_HEADERS}
CFLAGS ${SANITIZER_NO_WEAK_HOOKS_CFLAGS}
DEFS ${SANITIZER_COMMON_DEFINITIONS})
add_compiler_rt_object_libraries(RTSanitizerCommonSymbolizerNoHooks
${OS_OPTION}
ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH}
SOURCES ${SANITIZER_SYMBOLIZER_SOURCES}
+ ADDITIONAL_HEADERS ${SANITIZER_HEADERS}
CFLAGS ${SANITIZER_NO_WEAK_HOOKS_CFLAGS}
DEFS ${SANITIZER_COMMON_DEFINITIONS})
diff --git a/lib/scudo/CMakeLists.txt b/lib/scudo/CMakeLists.txt
index ce0e5cce1..0646c3dd4 100644
--- a/lib/scudo/CMakeLists.txt
+++ b/lib/scudo/CMakeLists.txt
@@ -50,6 +50,21 @@ set(SCUDO_SOURCES
set(SCUDO_CXX_SOURCES
scudo_new_delete.cpp)
+set(SCUDO_HEADERS
+ scudo_allocator.h
+ scudo_allocator_combined.h
+ scudo_allocator_secondary.h
+ scudo_crc32.h
+ scudo_errors.h
+ scudo_flags.h
+ scudo_flags.inc
+ scudo_interface_internal.h
+ scudo_platform.h
+ scudo_tsd.h
+ scudo_tsd_exclusive.inc
+ scudo_tsd_shared.inc
+ scudo_utils.h)
+
# Enable the SSE 4.2 instruction set for scudo_crc32.cpp, if available.
if (COMPILER_RT_HAS_MSSE4_2_FLAG)
set_source_files_properties(scudo_crc32.cpp PROPERTIES COMPILE_FLAGS -msse4.2)
@@ -66,6 +81,7 @@ if(COMPILER_RT_HAS_SCUDO)
STATIC
ARCHS ${SCUDO_SUPPORTED_ARCH}
SOURCES ${SCUDO_SOURCES}
+ ADDITIONAL_HEADERS ${SCUDO_HEADERS}
OBJECT_LIBS ${SCUDO_MINIMAL_OBJECT_LIBS}
CFLAGS ${SCUDO_CFLAGS}
PARENT_TARGET scudo)
@@ -73,6 +89,7 @@ if(COMPILER_RT_HAS_SCUDO)
STATIC
ARCHS ${SCUDO_SUPPORTED_ARCH}
SOURCES ${SCUDO_CXX_SOURCES}
+ ADDITIONAL_HEADERS ${SCUDO_HEADERS}
CFLAGS ${SCUDO_CFLAGS}
PARENT_TARGET scudo)
@@ -80,6 +97,7 @@ if(COMPILER_RT_HAS_SCUDO)
STATIC
ARCHS ${SCUDO_SUPPORTED_ARCH}
SOURCES ${SCUDO_SOURCES}
+ ADDITIONAL_HEADERS ${SCUDO_HEADERS}
OBJECT_LIBS ${SCUDO_OBJECT_LIBS}
CFLAGS ${SCUDO_CFLAGS}
PARENT_TARGET scudo)
@@ -87,6 +105,7 @@ if(COMPILER_RT_HAS_SCUDO)
STATIC
ARCHS ${SCUDO_SUPPORTED_ARCH}
SOURCES ${SCUDO_CXX_SOURCES}
+ ADDITIONAL_HEADERS ${SCUDO_HEADERS}
OBJECT_LIBS RTUbsan_cxx
CFLAGS ${SCUDO_CFLAGS}
PARENT_TARGET scudo)
@@ -95,6 +114,7 @@ if(COMPILER_RT_HAS_SCUDO)
SHARED
ARCHS ${SCUDO_SUPPORTED_ARCH}
SOURCES ${SCUDO_SOURCES} ${SCUDO_CXX_SOURCES}
+ ADDITIONAL_HEADERS ${SCUDO_HEADERS}
OBJECT_LIBS ${SCUDO_MINIMAL_OBJECT_LIBS}
CFLAGS ${SCUDO_CFLAGS}
LINK_FLAGS ${SCUDO_DYNAMIC_LINK_FLAGS}
@@ -105,6 +125,7 @@ if(COMPILER_RT_HAS_SCUDO)
SHARED
ARCHS ${SCUDO_SUPPORTED_ARCH}
SOURCES ${SCUDO_SOURCES} ${SCUDO_CXX_SOURCES}
+ ADDITIONAL_HEADERS ${SCUDO_HEADERS}
OBJECT_LIBS ${SCUDO_OBJECT_LIBS}
CFLAGS ${SCUDO_CFLAGS}
LINK_FLAGS ${SCUDO_DYNAMIC_LINK_FLAGS}
diff --git a/lib/stats/CMakeLists.txt b/lib/stats/CMakeLists.txt
index d683d6b8f..23c808431 100644
--- a/lib/stats/CMakeLists.txt
+++ b/lib/stats/CMakeLists.txt
@@ -1,3 +1,6 @@
+set(STATS_HEADERS
+ stats.h)
+
include_directories(..)
add_custom_target(stats)
@@ -22,6 +25,7 @@ add_compiler_rt_runtime(clang_rt.stats
ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH}
OS ${SANITIZER_COMMON_SUPPORTED_OS}
SOURCES stats.cc
+ ADDITIONAL_HEADERS ${STATS_HEADERS}
OBJECT_LIBS RTSanitizerCommon
RTSanitizerCommonLibc
RTSanitizerCommonSymbolizer
@@ -35,6 +39,7 @@ add_compiler_rt_runtime(clang_rt.stats_client
ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH}
OS ${SANITIZER_COMMON_SUPPORTED_OS}
SOURCES stats_client.cc
+ ADDITIONAL_HEADERS ${STATS_HEADERS}
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 6b37a7fc9..4a2ea3f4a 100644
--- a/lib/tsan/CMakeLists.txt
+++ b/lib/tsan/CMakeLists.txt
@@ -80,14 +80,15 @@ set(TSAN_HEADERS
rtl/tsan_flags.inc
rtl/tsan_ignoreset.h
rtl/tsan_interceptors.h
- rtl/tsan_interface_ann.h
rtl/tsan_interface.h
+ rtl/tsan_interface_ann.h
rtl/tsan_interface_inl.h
rtl/tsan_interface_java.h
rtl/tsan_mman.h
rtl/tsan_mutex.h
rtl/tsan_mutexset.h
rtl/tsan_platform.h
+ rtl/tsan_ppc_regs.h
rtl/tsan_report.h
rtl/tsan_rtl.h
rtl/tsan_stack_trace.h
@@ -114,6 +115,7 @@ if(APPLE)
OS ${TSAN_SUPPORTED_OS}
ARCHS ${TSAN_SUPPORTED_ARCH}
SOURCES ${TSAN_SOURCES} ${TSAN_CXX_SOURCES} ${TSAN_ASM_SOURCES}
+ ADDITIONAL_HEADERS ${TSAN_HEADERS}
OBJECT_LIBS RTInterception
RTSanitizerCommon
RTSanitizerCommonLibc
@@ -128,6 +130,7 @@ if(APPLE)
OS ${TSAN_SUPPORTED_OS}
ARCHS ${TSAN_SUPPORTED_ARCH}
SOURCES ${TSAN_SOURCES} ${TSAN_CXX_SOURCES} ${TSAN_ASM_SOURCES}
+ ADDITIONAL_HEADERS ${TSAN_HEADERS}
CFLAGS ${TSAN_RTL_CFLAGS})
# Build and check Go runtime.
@@ -181,6 +184,7 @@ else()
$<TARGET_OBJECTS:RTSanitizerCommonCoverage.${arch}>
$<TARGET_OBJECTS:RTSanitizerCommonSymbolizer.${arch}>
$<TARGET_OBJECTS:RTUbsan.${arch}>
+ ADDITIONAL_HEADERS ${TSAN_HEADERS}
CFLAGS ${TSAN_RTL_CFLAGS}
PARENT_TARGET tsan)
add_compiler_rt_runtime(clang_rt.tsan_cxx
@@ -188,6 +192,7 @@ else()
ARCHS ${arch}
SOURCES ${TSAN_CXX_SOURCES}
$<TARGET_OBJECTS:RTUbsan_cxx.${arch}>
+ ADDITIONAL_HEADERS ${TSAN_HEADERS}
CFLAGS ${TSAN_RTL_CFLAGS}
PARENT_TARGET tsan)
list(APPEND TSAN_RUNTIME_LIBRARIES clang_rt.tsan-${arch}
diff --git a/lib/ubsan/CMakeLists.txt b/lib/ubsan/CMakeLists.txt
index 15bcbbef6..ab118ae4a 100644
--- a/lib/ubsan/CMakeLists.txt
+++ b/lib/ubsan/CMakeLists.txt
@@ -6,21 +6,34 @@ set(UBSAN_SOURCES
ubsan_flags.cc
ubsan_handlers.cc
ubsan_monitor.cc
- ubsan_value.cc
- )
+ ubsan_value.cc)
set(UBSAN_STANDALONE_SOURCES
ubsan_diag_standalone.cc
ubsan_init_standalone.cc
- ubsan_signals_standalone.cc
- )
+ ubsan_signals_standalone.cc)
set(UBSAN_CXXABI_SOURCES
ubsan_handlers_cxx.cc
ubsan_type_hash.cc
ubsan_type_hash_itanium.cc
- ubsan_type_hash_win.cc
- )
+ ubsan_type_hash_win.cc)
+
+set(UBSAN_HEADERS
+ ubsan_checks.inc
+ ubsan_diag.h
+ ubsan_flags.h
+ ubsan_flags.inc
+ ubsan_handlers.h
+ ubsan_handlers_cxx.h
+ ubsan_init.h
+ ubsan_interface.inc
+ ubsan_monitor.h
+ ubsan_platform.h
+ ubsan_signals_standalone.h
+ ubsan_type_hash.h
+ ubsan_value.h
+)
include_directories(..)
@@ -56,6 +69,7 @@ if(APPLE)
OS ${SANITIZER_COMMON_SUPPORTED_OS}
ARCHS ${UBSAN_COMMON_SUPPORTED_ARCH}
SOURCES ${UBSAN_COMMON_SOURCES}
+ ADDITIONAL_HEADERS ${UBSAN_HEADERS}
CFLAGS ${UBSAN_CXXFLAGS})
if(COMPILER_RT_HAS_UBSAN)
@@ -64,6 +78,7 @@ if(APPLE)
OS ${SANITIZER_COMMON_SUPPORTED_OS}
ARCHS ${UBSAN_SUPPORTED_ARCH}
SOURCES ${UBSAN_STANDALONE_SOURCES}
+ ADDITIONAL_HEADERS ${UBSAN_HEADERS}
CFLAGS ${UBSAN_STANDALONE_CFLAGS})
add_weak_symbols("ubsan" WEAK_SYMBOL_LINK_FLAGS)
@@ -102,7 +117,9 @@ else()
# Common parts of UBSan runtime.
add_compiler_rt_object_libraries(RTUbsan
ARCHS ${UBSAN_COMMON_SUPPORTED_ARCH}
- SOURCES ${UBSAN_SOURCES} CFLAGS ${UBSAN_CFLAGS})
+ SOURCES ${UBSAN_SOURCES}
+ ADDITIONAL_HEADERS ${UBSAN_HEADERS}
+ CFLAGS ${UBSAN_CFLAGS})
if(SANITIZER_CAN_USE_CXXABI)
# C++-specific parts of UBSan runtime. Requires a C++ ABI library.
@@ -115,7 +132,9 @@ else()
add_compiler_rt_object_libraries(RTUbsan_cxx
ARCHS ${UBSAN_COMMON_SUPPORTED_ARCH}
- SOURCES ${UBSAN_CXX_SOURCES} CFLAGS ${UBSAN_CXXFLAGS})
+ SOURCES ${UBSAN_CXX_SOURCES}
+ ADDITIONAL_HEADERS ${UBSAN_HEADERS}
+ CFLAGS ${UBSAN_CXXFLAGS})
if (WIN32)
add_compiler_rt_object_libraries(UbsanWeakInterception
@@ -150,6 +169,7 @@ else()
add_compiler_rt_object_libraries(RTUbsan_standalone
ARCHS ${UBSAN_SUPPORTED_ARCH}
SOURCES ${UBSAN_STANDALONE_SOURCES}
+ ADDITIONAL_HEADERS ${UBSAN_HEADERS}
CFLAGS ${UBSAN_STANDALONE_CFLAGS})
# Standalone UBSan runtimes.
@@ -157,6 +177,7 @@ else()
STATIC
ARCHS ${UBSAN_SUPPORTED_ARCH}
SOURCES ubsan_init_standalone_preinit.cc
+ ADDITIONAL_HEADERS ${UBSAN_HEADERS}
OBJECT_LIBS RTSanitizerCommon
RTSanitizerCommonLibc
RTSanitizerCommonCoverage
diff --git a/lib/xray/CMakeLists.txt b/lib/xray/CMakeLists.txt
index dab2511e2..5ff1d780a 100644
--- a/lib/xray/CMakeLists.txt
+++ b/lib/xray/CMakeLists.txt
@@ -60,6 +60,31 @@ set(powerpc64le_SOURCES
xray_trampoline_powerpc64.cc
xray_trampoline_powerpc64_asm.S)
+set(XRAY_HEADERS
+ xray_allocator.h
+ xray_basic_flags.h
+ xray_basic_flags.inc
+ xray_basic_logging.h
+ xray_buffer_queue.h
+ xray_defs.h
+ xray_fdr_flags.h
+ xray_fdr_flags.inc
+ xray_fdr_log_records.h
+ xray_fdr_logging.h
+ xray_flags.h
+ xray_flags.inc
+ xray_function_call_trie.h
+ xray_interface_internal.h
+ xray_powerpc64.inc
+ xray_profile_collector.h
+ xray_profiling_flags.h
+ xray_profiling_flags.inc
+ xray_recursion_guard.h
+ xray_segmented_array.h
+ xray_tsc.h
+ xray_utils.h
+ xray_x86_64.inc)
+
# Now put it all together...
include_directories(..)
include_directories(../../include)
@@ -96,6 +121,7 @@ if (APPLE)
OS ${XRAY_SUPPORTED_OS}
ARCHS ${XRAY_SUPPORTED_ARCH}
SOURCES ${x86_64_SOURCES}
+ ADDITIONAL_HEADERS ${XRAY_HEADERS}
CFLAGS ${XRAY_CFLAGS}
DEFS ${XRAY_COMMON_DEFINITIONS}
DEPS ${XRAY_DEPS})
@@ -103,6 +129,7 @@ if (APPLE)
OS ${XRAY_SUPPORTED_OS}
ARCHS ${XRAY_SUPPORTED_ARCH}
SOURCES ${XRAY_FDR_MODE_SOURCES}
+ ADDITIONAL_HEADERS ${XRAY_HEADERS}
CFLAGS ${XRAY_CFLAGS}
DEFS ${XRAY_COMMON_DEFINITIONS}
DEPS ${XRAY_DEPS})
@@ -110,6 +137,7 @@ if (APPLE)
OS ${XRAY_SUPPORTED_OS}
ARCHS ${XRAY_SUPPORTED_ARCH}
SOURCES ${XRAY_BASIC_MODE_SOURCES}
+ ADDITIONAL_HEADERS ${XRAY_HEADERS}
CFLAGS ${XRAY_CFLAGS}
DEFS ${XRAY_COMMON_DEFINITIONS}
DEPS ${XRAY_DEPS})
@@ -117,6 +145,7 @@ if (APPLE)
OS ${XRAY_SUPPORTED_OS}
ARCHS ${XRAY_SUPPORTED_ARCH}
SOURCES ${XRAY_PROFILING_MODE_SOURCES}
+ ADDITIONAL_HEADERS ${XRAY_HEADERS}
CFLAGS ${XRAY_CFLAGS}
DEFS ${XRAY_COMMON_DEFINITIONS}
DEPS ${XRAY_DEPS})
@@ -171,22 +200,30 @@ else() # not Apple
endif()
add_compiler_rt_object_libraries(RTXray
ARCHS ${arch}
- SOURCES ${XRAY_SOURCES} ${${arch}_SOURCES} CFLAGS ${XRAY_CFLAGS}
+ SOURCES ${XRAY_SOURCES} ${${arch}_SOURCES}
+ ADDITIONAL_HEADERS ${XRAY_HEADERS}
+ CFLAGS ${XRAY_CFLAGS}
DEFS ${XRAY_COMMON_DEFINITIONS}
DEPS ${XRAY_DEPS})
add_compiler_rt_object_libraries(RTXrayFDR
ARCHS ${arch}
- SOURCES ${XRAY_FDR_MODE_SOURCES} CFLAGS ${XRAY_CFLAGS}
+ SOURCES ${XRAY_FDR_MODE_SOURCES}
+ ADDITIONAL_HEADERS ${XRAY_HEADERS}
+ CFLAGS ${XRAY_CFLAGS}
DEFS ${XRAY_COMMON_DEFINITIONS}
DEPS ${XRAY_DEPS})
add_compiler_rt_object_libraries(RTXrayBASIC
ARCHS ${arch}
- SOURCES ${XRAY_BASIC_MODE_SOURCES} CFLAGS ${XRAY_CFLAGS}
+ SOURCES ${XRAY_BASIC_MODE_SOURCES}
+ ADDITIONAL_HEADERS ${XRAY_HEADERS}
+ CFLAGS ${XRAY_CFLAGS}
DEFS ${XRAY_COMMON_DEFINITIONS}
DEPS ${XRAY_DEPS})
add_compiler_rt_object_libraries(RTXrayPROFILING
ARCHS ${arch}
- SOURCES ${XRAY_PROFILING_MODE_SOURCES} CFLAGS ${XRAY_CFLAGS}
+ SOURCES ${XRAY_PROFILING_MODE_SOURCES}
+ ADDITIONAL_HEADERS ${XRAY_HEADERS}
+ CFLAGS ${XRAY_CFLAGS}
DEFS ${XRAY_COMMON_DEFINITIONS}
DEPS ${XRAY_DEPS})