diff options
author | Dan Liew <dan@su-root.co.uk> | 2018-07-10 13:00:17 +0000 |
---|---|---|
committer | Dan Liew <dan@su-root.co.uk> | 2018-07-10 13:00:17 +0000 |
commit | 03ff187676c405d5b6b4e50ccaf347f7d6f48ffd (patch) | |
tree | 7a838bb7ef520e439e351716f0428194e7d2979e /lib | |
parent | bd0cb5dcb47a07022a7031220b01fd347f9df4bb (diff) |
[CMake] Add compiler-rt header files to the list of sources for targets
when building with an IDE so that header files show up in the UI.
This massively improves the development workflow in IDEs.
To implement this a new function `compiler_rt_process_sources(...)` has
been added that adds header files to the list of sources when the
generator is an IDE. For non-IDE generators (e.g. Ninja/Makefile) no
changes are made to the list of source files.
The function can be passed a list of headers via the
`ADDITIONAL_HEADERS` argument. For each runtime library a list of
explicit header files has been added and passed via
`ADDITIONAL_HEADERS`. For `tsan` and `sanitizer_common` a list of
headers was already present but it was stale and has been updated
to reflect the current state of the source tree.
The original version of this patch used file globbing (`*.{h,inc,def}`)
to find the headers but the approach was changed due to this being a
CMake anti-pattern (if the list of headers changes CMake won't
automatically re-generate if globbing is used).
The LLVM repo contains a similar function named `llvm_process_sources()`
but we don't use it here for several reasons:
* It depends on the `LLVM_ENABLE_OPTION` cache variable which is
not set in standalone compiler-rt builds.
* We would have to `include(LLVMProcessSources)` which I'd like to
avoid because it would include a bunch of stuff we don't need.
Differential Revision: https://reviews.llvm.org/D48422
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@336663 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/asan/CMakeLists.txt | 41 | ||||
-rw-r--r-- | lib/dfsan/CMakeLists.txt | 7 | ||||
-rw-r--r-- | lib/esan/CMakeLists.txt | 13 | ||||
-rw-r--r-- | lib/fuzzer/CMakeLists.txt | 26 | ||||
-rw-r--r-- | lib/hwasan/CMakeLists.txt | 22 | ||||
-rw-r--r-- | lib/interception/CMakeLists.txt | 10 | ||||
-rw-r--r-- | lib/lsan/CMakeLists.txt | 10 | ||||
-rw-r--r-- | lib/msan/CMakeLists.txt | 13 | ||||
-rw-r--r-- | lib/profile/CMakeLists.txt | 10 | ||||
-rw-r--r-- | lib/sanitizer_common/CMakeLists.txt | 36 | ||||
-rw-r--r-- | lib/scudo/CMakeLists.txt | 21 | ||||
-rw-r--r-- | lib/stats/CMakeLists.txt | 5 | ||||
-rw-r--r-- | lib/tsan/CMakeLists.txt | 7 | ||||
-rw-r--r-- | lib/ubsan/CMakeLists.txt | 37 | ||||
-rw-r--r-- | lib/xray/CMakeLists.txt | 45 |
15 files changed, 278 insertions, 25 deletions
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}) |