[compiler-rt] r322882 - [scudo] Use -fsanitize=scudo rather than --whole-archive in tests
Kostya Kortchinsky via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 18 12:02:56 PST 2018
Author: cryptoad
Date: Thu Jan 18 12:02:56 2018
New Revision: 322882
URL: http://llvm.org/viewvc/llvm-project?rev=322882&view=rev
Log:
[scudo] Use -fsanitize=scudo rather than --whole-archive in tests
Summary:
Tests were being run by whole-linking the static library with our test binaries.
But since `-fsanitize=scudo` landed with 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.
Reviewers: alekseyshl
Reviewed By: alekseyshl
Subscribers: #sanitizers, llvm-commits
Differential Revision: https://reviews.llvm.org/D42243
Modified:
compiler-rt/trunk/test/scudo/lit.cfg
Modified: compiler-rt/trunk/test/scudo/lit.cfg
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/scudo/lit.cfg?rev=322882&r1=322881&r2=322882&view=diff
==============================================================================
--- compiler-rt/trunk/test/scudo/lit.cfg (original)
+++ compiler-rt/trunk/test/scudo/lit.cfg Thu Jan 18 12:02:56 2018
@@ -8,13 +8,8 @@ config.name = 'Scudo' + config.name_suff
# 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 @@ if not config.android:
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.
More information about the llvm-commits
mailing list