Index: lib/asan/CMakeLists.txt =================================================================== --- lib/asan/CMakeLists.txt +++ lib/asan/CMakeLists.txt @@ -160,7 +160,7 @@ if (UNIX AND NOT ${arch} MATCHES "i386|i686") add_sanitizer_rt_version_list(clang_rt.asan-dynamic-${arch} LIBS clang_rt.asan-${arch} clang_rt.asan_cxx-${arch} - EXTRA asan.syms.extra) + EXTRA asan.syms.extra ../sanitizer_common/common_san.syms.extra) set(VERSION_SCRIPT_FLAG -Wl,--version-script,${CMAKE_CURRENT_BINARY_DIR}/clang_rt.asan-dynamic-${arch}.vers) set_source_files_properties( @@ -195,7 +195,7 @@ add_dependencies(asan clang_rt.asan_cxx-${arch}-symbols) add_sanitizer_rt_symbols(clang_rt.asan ARCHS ${arch} - EXTRA asan.syms.extra) + EXTRA asan.syms.extra ../sanitizer_common/common_san.syms.extra) add_dependencies(asan clang_rt.asan-${arch}-symbols) endif() Index: lib/dfsan/CMakeLists.txt =================================================================== --- lib/dfsan/CMakeLists.txt +++ lib/dfsan/CMakeLists.txt @@ -26,7 +26,7 @@ PARENT_TARGET dfsan) add_sanitizer_rt_symbols(clang_rt.dfsan ARCHS ${arch} - EXTRA dfsan.syms.extra) + EXTRA dfsan.syms.extra ../sanitizer_common/common_san.syms.extra) add_dependencies(dfsan clang_rt.dfsan-${arch}-symbols) endforeach() Index: lib/msan/CMakeLists.txt =================================================================== --- lib/msan/CMakeLists.txt +++ lib/msan/CMakeLists.txt @@ -49,10 +49,10 @@ if(UNIX) add_sanitizer_rt_symbols(clang_rt.msan ARCHS ${arch} - EXTRA msan.syms.extra) + EXTRA msan.syms.extra ../sanitizer_common/common_san.syms.extra) add_sanitizer_rt_symbols(clang_rt.msan_cxx ARCHS ${arch} - EXTRA msan.syms.extra) + EXTRA msan.syms.extra ../sanitizer_common/common_san.syms.extra) add_dependencies(msan clang_rt.msan-${arch}-symbols clang_rt.msan_cxx-${arch}-symbols) endif() Index: lib/sanitizer_common/common_san.syms.extra =================================================================== --- /dev/null +++ lib/sanitizer_common/common_san.syms.extra @@ -0,0 +1 @@ +SetPrintfAndReportCallback Index: lib/sanitizer_common/sanitizer_common.h =================================================================== --- lib/sanitizer_common/sanitizer_common.h +++ lib/sanitizer_common/sanitizer_common.h @@ -170,7 +170,7 @@ void RemoveANSIEscapeSequencesFromString(char *buffer); void Printf(const char *format, ...); void Report(const char *format, ...); -void SetPrintfAndReportCallback(void (*callback)(const char *)); +SANITIZER_INTERFACE_ATTRIBUTE void SetPrintfAndReportCallback(void (*callback)(const char *)); #define VReport(level, ...) \ do { \ if ((uptr)Verbosity() >= (level)) Report(__VA_ARGS__); \ Index: lib/tsan/CMakeLists.txt =================================================================== --- lib/tsan/CMakeLists.txt +++ lib/tsan/CMakeLists.txt @@ -157,10 +157,10 @@ clang_rt.tsan_cxx-${arch}) add_sanitizer_rt_symbols(clang_rt.tsan ARCHS ${arch} - EXTRA rtl/tsan.syms.extra) + EXTRA rtl/tsan.syms.extra ../sanitizer_common/common_san.syms.extra) add_sanitizer_rt_symbols(clang_rt.tsan_cxx ARCHS ${arch} - EXTRA rtl/tsan.syms.extra) + EXTRA rtl/tsan.syms.extra ../sanitizer_common/common_san.syms.extra) add_dependencies(tsan clang_rt.tsan-${arch} clang_rt.tsan_cxx-${arch} clang_rt.tsan-${arch}-symbols Index: lib/ubsan/CMakeLists.txt =================================================================== --- lib/ubsan/CMakeLists.txt +++ lib/ubsan/CMakeLists.txt @@ -101,11 +101,11 @@ add_sanitizer_rt_symbols(clang_rt.ubsan_standalone ARCHS ${ARCHS_FOR_SYMBOLS} PARENT_TARGET ubsan - EXTRA ubsan.syms.extra) + EXTRA ubsan.syms.extra ../sanitizer_common/common_san.syms.extra) add_sanitizer_rt_symbols(clang_rt.ubsan_standalone_cxx ARCHS ${ARCHS_FOR_SYMBOLS} PARENT_TARGET ubsan - EXTRA ubsan.syms.extra) + EXTRA ubsan.syms.extra ../sanitizer_common/common_san.syms.extra) endif() endif() endif()