[PATCH] D42243: [scudo] Use -fsanitize=scudo rather than --whole-archive in tests

Kostya Kortchinsky via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 18 08:25:11 PST 2018


cryptoad created this revision.
cryptoad added a reviewer: alekseyshl.
Herald added a subscriber: Sanitizers.

Tests were being run by whole-linking the static library with out test binaries.
But since `-fsanitize=scudo` landed with https://reviews.llvm.org/rL317337, we might as well change how
the tests are compiled to use it.

The only difference will be on Android, where the clang flag links in the
dynamic library instead, but the bots are already pushing
`libclang_rt.*-android.so` to the device there is no additional change needed.

Tested locally, including with a standalone build, and an Android one on a O
device, and it all passes.


Repository:
  rCRT Compiler Runtime

https://reviews.llvm.org/D42243

Files:
  test/scudo/lit.cfg


Index: test/scudo/lit.cfg
===================================================================
--- test/scudo/lit.cfg
+++ test/scudo/lit.cfg
@@ -8,13 +8,8 @@
 # Setup source root.
 config.test_source_root = os.path.dirname(__file__)
 
-# Path to the shared & static libraries
+# Path to the shared library
 shared_libscudo = os.path.join(config.compiler_rt_libdir, "libclang_rt.scudo-%s.so" % config.target_arch)
-static_libscudo = os.path.join(config.compiler_rt_libdir, "libclang_rt.scudo-%s.a" % config.target_arch)
-static_libscudo_cxx = os.path.join(config.compiler_rt_libdir, "libclang_rt.scudo_cxx-%s.a" % config.target_arch)
-
-whole_archive = "-Wl,-whole-archive %s -Wl,-no-whole-archive " % static_libscudo
-whole_archive_cxx = "-Wl,-whole-archive %s -Wl,-no-whole-archive " % static_libscudo_cxx
 
 # Test suffixes.
 config.suffixes = ['.c', '.cc', '.cpp']
@@ -35,13 +30,15 @@
 
 cxx_flags = (c_flags + config.cxx_mode_flags + ["-std=c++11"])
 
+scudo_flags = ["-fsanitize=scudo"]
+
 def build_invocation(compile_flags):                                            
   return " " + " ".join([config.clang] + compile_flags) + " "
 
 # Add clang substitutions.
 config.substitutions.append(("%clang ", build_invocation(c_flags)))
-config.substitutions.append(("%clang_scudo ", build_invocation(c_flags) + whole_archive))
-config.substitutions.append(("%clangxx_scudo ", build_invocation(cxx_flags) + whole_archive + whole_archive_cxx))
+config.substitutions.append(("%clang_scudo ", build_invocation(c_flags + scudo_flags)))
+config.substitutions.append(("%clangxx_scudo ", build_invocation(cxx_flags + scudo_flags)))
 config.substitutions.append(("%shared_libscudo", shared_libscudo))
 
 # Platform-specific default SCUDO_OPTIONS for lit tests.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D42243.130420.patch
Type: text/x-patch
Size: 1753 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180118/afacc625/attachment.bin>


More information about the llvm-commits mailing list