2016-04-22 05:32:25 +08:00
|
|
|
# Build for the EfficiencySanitizer runtime support library.
|
|
|
|
|
|
|
|
add_custom_target(esan)
|
|
|
|
|
|
|
|
set(ESAN_RTL_CFLAGS ${SANITIZER_COMMON_CFLAGS})
|
|
|
|
append_rtti_flag(OFF ESAN_RTL_CFLAGS)
|
|
|
|
|
|
|
|
include_directories(..)
|
|
|
|
|
|
|
|
set(ESAN_SOURCES
|
|
|
|
esan.cpp
|
2016-05-21 03:26:52 +08:00
|
|
|
esan_flags.cpp
|
2016-04-24 00:41:24 +08:00
|
|
|
esan_interface.cpp
|
2016-05-25 10:04:04 +08:00
|
|
|
esan_interceptors.cpp
|
2016-05-28 08:25:16 +08:00
|
|
|
esan_linux.cpp
|
2016-05-26 01:49:00 +08:00
|
|
|
cache_frag.cpp
|
2016-05-31 21:21:03 +08:00
|
|
|
working_set.cpp
|
|
|
|
working_set_posix.cpp)
|
2016-04-22 05:32:25 +08:00
|
|
|
|
|
|
|
foreach (arch ${ESAN_SUPPORTED_ARCH})
|
|
|
|
add_compiler_rt_runtime(clang_rt.esan
|
|
|
|
STATIC
|
|
|
|
ARCHS ${arch}
|
|
|
|
SOURCES ${ESAN_SOURCES}
|
|
|
|
$<TARGET_OBJECTS:RTInterception.${arch}>
|
|
|
|
$<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
|
|
|
|
$<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
|
|
|
|
CFLAGS ${ESAN_RTL_CFLAGS})
|
|
|
|
add_sanitizer_rt_symbols(clang_rt.esan
|
|
|
|
ARCHS ${arch}
|
|
|
|
EXTRA esan.syms.extra)
|
|
|
|
add_dependencies(esan
|
|
|
|
clang_rt.esan-${arch}
|
|
|
|
clang_rt.esan-${arch}-symbols)
|
|
|
|
endforeach()
|
|
|
|
|
|
|
|
add_dependencies(compiler-rt esan)
|
|
|
|
|
|
|
|
if (COMPILER_RT_INCLUDE_TESTS)
|
|
|
|
# TODO(bruening): add tests via add_subdirectory(tests)
|
|
|
|
endif()
|