[PATCH] D90190: [MemProf] Decouple memprof build from COMPILER_RT_BUILD_SANITIZERS
Teresa Johnson via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 26 13:44:40 PDT 2020
tejohnson created this revision.
tejohnson added reviewers: vitalybuka, thakis.
Herald added subscribers: Sanitizers, mgorny.
Herald added a project: Sanitizers.
tejohnson requested review of this revision.
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
(3ed77ecd0a5d5e5c33770f0f9d3d75cf2f80c80b <https://reviews.llvm.org/rG3ed77ecd0a5d5e5c33770f0f9d3d75cf2f80c80b>). 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 in
3ed77ecd0a5d5e5c33770f0f9d3d75cf2f80c80b <https://reviews.llvm.org/rG3ed77ecd0a5d5e5c33770f0f9d3d75cf2f80c80b>, with that fix reverted.
Confirmed it now works.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D90190
Files:
compiler-rt/include/CMakeLists.txt
compiler-rt/lib/CMakeLists.txt
Index: compiler-rt/lib/CMakeLists.txt
===================================================================
--- compiler-rt/lib/CMakeLists.txt
+++ compiler-rt/lib/CMakeLists.txt
@@ -9,7 +9,7 @@
#
#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 @@
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 @@
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()
Index: compiler-rt/include/CMakeLists.txt
===================================================================
--- compiler-rt/include/CMakeLists.txt
+++ compiler-rt/include/CMakeLists.txt
@@ -5,7 +5,6 @@
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 @@
)
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 @@
set(COMPILER_RT_HEADERS
${SANITIZER_HEADERS}
${FUZZER_HEADERS}
+ ${MEMPROF_HEADERS}
${XRAY_HEADERS}
${PROFILE_HEADERS})
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D90190.300781.patch
Type: text/x-patch
Size: 2018 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201026/0c01a622/attachment.bin>
More information about the llvm-commits
mailing list