forked from OSchip/llvm-project
[MemProf] Decouple memprof build from COMPILER_RT_BUILD_SANITIZERS
The MemProf compiler-rt support relies on some of the support only built when COMPILER_RT_BUILD_SANITIZERS was enabled. This showed up in some initial bot failures, and I addressed those by making the memprof runtime build also conditional on COMPILER_RT_BUILD_SANITIZERS (3ed77ecd0a
). However, this resulted in another inconsistency with how the tests were set up that was hit by Chromium: https://bugs.chromium.org/p/chromium/issues/detail?id=1142191 Undo the original bot fix and address this with a more comprehensive fix that enables memprof to be built even when COMPILER_RT_BUILD_SANITIZERS is disabled, by also building the necessary pieces under COMPILER_RT_BUILD_MEMPROF. Tested by configuring with a similar command as to what was used in the failing Chromium configure. I reproduced the Chromium failure, as well as the original bot failure I tried to fix in3ed77ecd0a
, with that fix reverted. Confirmed it now works. Differential Revision: https://reviews.llvm.org/D90190
This commit is contained in:
parent
3d4aebbb9d
commit
ba71a0746f
|
@ -5,7 +5,6 @@ if (COMPILER_RT_BUILD_SANITIZERS)
|
|||
sanitizer/common_interface_defs.h
|
||||
sanitizer/coverage_interface.h
|
||||
sanitizer/dfsan_interface.h
|
||||
sanitizer/memprof_interface.h
|
||||
sanitizer/hwasan_interface.h
|
||||
sanitizer/linux_syscall_hooks.h
|
||||
sanitizer/lsan_interface.h
|
||||
|
@ -21,6 +20,12 @@ if (COMPILER_RT_BUILD_SANITIZERS)
|
|||
)
|
||||
endif(COMPILER_RT_BUILD_SANITIZERS)
|
||||
|
||||
if (COMPILER_RT_BUILD_MEMPROF)
|
||||
set(MEMPROF_HEADERS
|
||||
sanitizer/memprof_interface.h
|
||||
)
|
||||
endif(COMPILER_RT_BUILD_MEMPROF)
|
||||
|
||||
if (COMPILER_RT_BUILD_XRAY)
|
||||
set(XRAY_HEADERS
|
||||
xray/xray_interface.h
|
||||
|
@ -38,6 +43,7 @@ endif(COMPILER_RT_BUILD_PROFILE)
|
|||
set(COMPILER_RT_HEADERS
|
||||
${SANITIZER_HEADERS}
|
||||
${FUZZER_HEADERS}
|
||||
${MEMPROF_HEADERS}
|
||||
${XRAY_HEADERS}
|
||||
${PROFILE_HEADERS})
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ include(SanitizerUtils)
|
|||
#
|
||||
#TODO: Refactor sanitizer_common into smaller pieces (e.g. flag parsing, utils).
|
||||
if (COMPILER_RT_HAS_SANITIZER_COMMON AND
|
||||
(COMPILER_RT_BUILD_SANITIZERS OR COMPILER_RT_BUILD_XRAY))
|
||||
(COMPILER_RT_BUILD_SANITIZERS OR COMPILER_RT_BUILD_XRAY OR COMPILER_RT_BUILD_MEMPROF))
|
||||
add_subdirectory(sanitizer_common)
|
||||
endif()
|
||||
|
||||
|
@ -34,9 +34,11 @@ function(compiler_rt_build_runtime runtime)
|
|||
endif()
|
||||
endfunction()
|
||||
|
||||
if(COMPILER_RT_BUILD_SANITIZERS)
|
||||
if(COMPILER_RT_BUILD_SANITIZERS OR COMPILER_RT_BUILD_MEMPROF)
|
||||
compiler_rt_build_runtime(interception)
|
||||
endif()
|
||||
|
||||
if(COMPILER_RT_BUILD_SANITIZERS)
|
||||
if(COMPILER_RT_HAS_SANITIZER_COMMON)
|
||||
add_subdirectory(stats)
|
||||
add_subdirectory(lsan)
|
||||
|
@ -60,8 +62,7 @@ if(COMPILER_RT_BUILD_LIBFUZZER)
|
|||
compiler_rt_build_runtime(fuzzer)
|
||||
endif()
|
||||
|
||||
if(COMPILER_RT_BUILD_MEMPROF AND COMPILER_RT_HAS_SANITIZER_COMMON AND
|
||||
COMPILER_RT_BUILD_SANITIZERS)
|
||||
if(COMPILER_RT_BUILD_MEMPROF AND COMPILER_RT_HAS_SANITIZER_COMMON)
|
||||
compiler_rt_build_runtime(memprof)
|
||||
endif()
|
||||
|
||||
|
|
Loading…
Reference in New Issue