[compiler-rt] 66ee0d3 - [sanitizer-common] Force pickup of llvm-symbolizer from new binaries.

Mitch Phillips via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 16 06:43:01 PST 2020


Author: Mitch Phillips
Date: 2020-12-16T06:36:26-08:00
New Revision: 66ee0d3d84a6ea04e895249aef2ea8a812664728

URL: https://github.com/llvm/llvm-project/commit/66ee0d3d84a6ea04e895249aef2ea8a812664728
DIFF: https://github.com/llvm/llvm-project/commit/66ee0d3d84a6ea04e895249aef2ea8a812664728.diff

LOG: [sanitizer-common] Force pickup of llvm-symbolizer from new binaries.

It's possible currently that the sanitizer runtimes when testing grab
the path to the symbolizer through *SAN_SYMBOLIZER_PATH=...

This can be polluted by things like Android's setup script. This patch
forces external_symbolizer_path=$new_build_out_dir/llvm-symbolizer when
%env_tool_options is used.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D93352

Added: 
    

Modified: 
    compiler-rt/test/sanitizer_common/lit.common.cfg.py
    compiler-rt/test/sanitizer_common/lit.site.cfg.py.in

Removed: 
    


################################################################################
diff  --git a/compiler-rt/test/sanitizer_common/lit.common.cfg.py b/compiler-rt/test/sanitizer_common/lit.common.cfg.py
index b4f0670f9959..f7c526b6b37b 100644
--- a/compiler-rt/test/sanitizer_common/lit.common.cfg.py
+++ b/compiler-rt/test/sanitizer_common/lit.common.cfg.py
@@ -43,6 +43,14 @@
   # which does not work for abort()-terminated programs.
   default_tool_options += ['abort_on_error=0']
 
+# If the user has a poisoned *SAN_SYMBOLIZER_PATH (like what's setup by
+# build/envsetup.sh on Android), then they can end up with an out-of-date
+# symbolizer for the tests. Ensure they get the one from the recent build tree.
+symbolizer_path="''"
+if len(config.binary_path):
+  symbolizer_path = os.path.join(config.binary_path, "llvm-symbolizer")
+default_tool_options += ['external_symbolizer_path=' + symbolizer_path]
+
 default_tool_options_str = ':'.join(default_tool_options)
 if default_tool_options_str:
   config.environment[tool_options] = default_tool_options_str

diff  --git a/compiler-rt/test/sanitizer_common/lit.site.cfg.py.in b/compiler-rt/test/sanitizer_common/lit.site.cfg.py.in
index 38f5ca158463..3ff7c44aeab4 100644
--- a/compiler-rt/test/sanitizer_common/lit.site.cfg.py.in
+++ b/compiler-rt/test/sanitizer_common/lit.site.cfg.py.in
@@ -5,6 +5,7 @@ config.name_suffix = "@CONFIG_NAME@"
 config.tool_name = "@SANITIZER_COMMON_LIT_TEST_MODE@"
 config.target_cflags = "@SANITIZER_COMMON_TEST_TARGET_CFLAGS@"
 config.target_arch = "@SANITIZER_COMMON_TEST_TARGET_ARCH@"
+config.binary_path = "@CMAKE_RUNTIME_OUTPUT_DIRECTORY@"
 
 # Load common config for all compiler-rt lit tests.
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")


        


More information about the llvm-commits mailing list