diff options
Diffstat (limited to 'lib/sanitizer_common/CMakeLists.txt')
-rw-r--r-- | lib/sanitizer_common/CMakeLists.txt | 57 |
1 files changed, 26 insertions, 31 deletions
diff --git a/lib/sanitizer_common/CMakeLists.txt b/lib/sanitizer_common/CMakeLists.txt index f604c9f201d4..6a20f025507a 100644 --- a/lib/sanitizer_common/CMakeLists.txt +++ b/lib/sanitizer_common/CMakeLists.txt @@ -33,6 +33,12 @@ set(SANITIZER_SOURCES sanitizer_thread_registry.cc sanitizer_win.cc) +# Libc functions stubs. These sources should be linked instead of +# SANITIZER_LIBCDEP_SOURCES when sanitizer_common library must not depend on +# libc. +set(SANITIZER_NOLIBC_SOURCES + sanitizer_common_nolibc.cc) + set(SANITIZER_LIBCDEP_SOURCES sanitizer_common_libcdep.cc sanitizer_coverage_libcdep.cc @@ -43,7 +49,6 @@ set(SANITIZER_LIBCDEP_SOURCES sanitizer_stoptheworld_linux_libcdep.cc sanitizer_symbolizer_libcdep.cc sanitizer_symbolizer_posix_libcdep.cc - sanitizer_symbolizer_process_libcdep.cc sanitizer_unwind_linux_libcdep.cc) # Explicitly list all sanitizer_common headers. Not all of these are @@ -97,9 +102,9 @@ set(SANITIZER_HEADERS sanitizer_symbolizer_internal.h sanitizer_symbolizer_libbacktrace.h sanitizer_symbolizer_mac.h - sanitizer_symbolizer_win.h sanitizer_syscall_generic.inc sanitizer_syscall_linux_x86_64.inc + sanitizer_syscall_linux_aarch64.inc sanitizer_thread_registry.h) set(SANITIZER_COMMON_DEFINITIONS) @@ -124,38 +129,28 @@ append_list_if(SANITIZER_LIMIT_FRAME_SIZE -Wframe-larger-than=570 append_list_if(COMPILER_RT_HAS_WGLOBAL_CONSTRUCTORS_FLAG -Wglobal-constructors SANITIZER_CFLAGS) -add_custom_target(sanitizer_common) -set(SANITIZER_RUNTIME_LIBRARIES) if(APPLE) - # Build universal binary on APPLE. - - add_compiler_rt_object_libraries(RTSanitizerCommon - OS ${SANITIZER_COMMON_SUPPORTED_OS} - ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH} - SOURCES ${SANITIZER_SOURCES} ${SANITIZER_LIBCDEP_SOURCES} - CFLAGS ${SANITIZER_CFLAGS} - DEFS ${SANITIZER_COMMON_DEFINITIONS}) - foreach(os ${SANITIZER_COMMON_SUPPORTED_OS}) - list(APPEND SANITIZER_RUNTIME_LIBRARIES RTSanitizerCommon.${os}) - endforeach() -else() - # Otherwise, build separate libraries for each target. - - add_compiler_rt_object_libraries(RTSanitizerCommon - ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH} - SOURCES ${SANITIZER_SOURCES} CFLAGS ${SANITIZER_CFLAGS} - DEFS ${SANITIZER_COMMON_DEFINITIONS}) - add_compiler_rt_object_libraries(RTSanitizerCommonLibc - ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH} - SOURCES ${SANITIZER_LIBCDEP_SOURCES} CFLAGS ${SANITIZER_CFLAGS} - DEFS ${SANITIZER_COMMON_DEFINITIONS}) - foreach(arch ${SANITIZER_COMMON_SUPPORTED_ARCH}) - list(APPEND SANITIZER_RUNTIME_LIBRARIES RTSanitizerCommon.${arch} - RTSanitizerCommonLibc.${arch}) - endforeach() + set(OS_OPTION OS ${SANITIZER_COMMON_SUPPORTED_OS}) endif() -add_dependencies(compiler-rt sanitizer_common) +add_compiler_rt_object_libraries(RTSanitizerCommon + ${OS_OPTION} + ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH} + SOURCES ${SANITIZER_SOURCES} + CFLAGS ${SANITIZER_CFLAGS} + DEFS ${SANITIZER_COMMON_DEFINITIONS}) +add_compiler_rt_object_libraries(RTSanitizerCommonNoLibc + ${OS_OPTION} + ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH} + SOURCES ${SANITIZER_NOLIBC_SOURCES} + CFLAGS ${SANITIZER_CFLAGS} + DEFS ${SANITIZER_COMMON_DEFINITIONS}) +add_compiler_rt_object_libraries(RTSanitizerCommonLibc + ${OS_OPTION} + ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH} + SOURCES ${SANITIZER_LIBCDEP_SOURCES} + CFLAGS ${SANITIZER_CFLAGS} + DEFS ${SANITIZER_COMMON_DEFINITIONS}) # Unit tests for common sanitizer runtime. if(COMPILER_RT_INCLUDE_TESTS) |