diff options
Diffstat (limited to 'lib/sanitizer_common/CMakeLists.txt')
-rw-r--r-- | lib/sanitizer_common/CMakeLists.txt | 37 |
1 files changed, 29 insertions, 8 deletions
diff --git a/lib/sanitizer_common/CMakeLists.txt b/lib/sanitizer_common/CMakeLists.txt index ee0e1237c1a9..2683a37a32ca 100644 --- a/lib/sanitizer_common/CMakeLists.txt +++ b/lib/sanitizer_common/CMakeLists.txt @@ -8,18 +8,27 @@ set(SANITIZER_SOURCES sanitizer_libc.cc sanitizer_linux.cc sanitizer_mac.cc + sanitizer_platform_limits_posix.cc sanitizer_posix.cc sanitizer_printf.cc sanitizer_stackdepot.cc sanitizer_stacktrace.cc - sanitizer_symbolizer.cc sanitizer_symbolizer_itanium.cc - sanitizer_symbolizer_linux.cc sanitizer_symbolizer_mac.cc sanitizer_symbolizer_win.cc + sanitizer_thread_registry.cc sanitizer_win.cc ) +set(SANITIZER_LIBCDEP_SOURCES + sanitizer_common_libcdep.cc + sanitizer_linux_libcdep.cc + sanitizer_posix_libcdep.cc + sanitizer_stoptheworld_linux_libcdep.cc + sanitizer_symbolizer_libcdep.cc + sanitizer_symbolizer_linux_libcdep.cc + ) + # Explicitly list all sanitizer_common headers. Not all of these are # included in sanitizer_common source files, but we need to depend on # headers when building our custom unit tests. @@ -31,10 +40,12 @@ set(SANITIZER_HEADERS sanitizer_common.h sanitizer_common_interceptors.inc sanitizer_common_interceptors_scanf.inc + sanitizer_common_syscalls.inc sanitizer_flags.h sanitizer_internal_defs.h sanitizer_lfstack.h sanitizer_libc.h + sanitizer_linux.h sanitizer_list.h sanitizer_mutex.h sanitizer_placement_new.h @@ -45,20 +56,24 @@ set(SANITIZER_HEADERS sanitizer_stackdepot.h sanitizer_stacktrace.h sanitizer_symbolizer.h + sanitizer_thread_registry.h ) -set(SANITIZER_CFLAGS ${SANITIZER_COMMON_CFLAGS}) +set(SANITIZER_CFLAGS + ${SANITIZER_COMMON_CFLAGS} + -fno-rtti) set(SANITIZER_RUNTIME_LIBRARIES) if(APPLE) # Build universal binary on APPLE. - add_library(RTSanitizerCommon.osx OBJECT ${SANITIZER_SOURCES}) - set_target_compile_flags(RTSanitizerCommon.osx ${SANITIZER_CFLAGS}) - set_target_properties(RTSanitizerCommon.osx PROPERTIES - OSX_ARCHITECTURES "${SANITIZER_COMMON_SUPPORTED_ARCH}") + add_compiler_rt_osx_object_library(RTSanitizerCommon + ARCH ${SANITIZER_COMMON_SUPPORTED_ARCH} + SOURCES ${SANITIZER_SOURCES} ${SANITIZER_LIBCDEP_SOURCES} + CFLAGS ${SANITIZER_CFLAGS}) list(APPEND SANITIZER_RUNTIME_LIBRARIES RTSanitizerCommon.osx) elseif(ANDROID) - add_library(RTSanitizerCommon.arm.android OBJECT ${SANITIZER_SOURCES}) + add_library(RTSanitizerCommon.arm.android OBJECT + ${SANITIZER_SOURCES} ${SANITIZER_LIBCDEP_SOURCES}) set_target_compile_flags(RTSanitizerCommon.arm.android ${SANITIZER_CFLAGS}) list(APPEND SANITIZER_RUNTIME_LIBRARIES RTSanitizerCommon.arm.android) @@ -67,6 +82,12 @@ else() foreach(arch ${SANITIZER_COMMON_SUPPORTED_ARCH}) add_compiler_rt_object_library(RTSanitizerCommon ${arch} SOURCES ${SANITIZER_SOURCES} CFLAGS ${SANITIZER_CFLAGS}) + add_compiler_rt_object_library(RTSanitizerCommonLibc ${arch} + SOURCES ${SANITIZER_LIBCDEP_SOURCES} CFLAGS ${SANITIZER_CFLAGS}) + add_compiler_rt_static_runtime(clang_rt.san-${arch} ${arch} + SOURCES $<TARGET_OBJECTS:RTSanitizerCommon.${arch}> + $<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}> + CFLAGS ${SANITIZER_CFLAGS}) list(APPEND SANITIZER_RUNTIME_LIBRARIES RTSanitizerCommon.${arch}) endforeach() endif() |