summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKostya Kortchinsky <kostyak@google.com>2018-01-18 20:02:56 +0000
committerKostya Kortchinsky <kostyak@google.com>2018-01-18 20:02:56 +0000
commitab0d88746a017029ac69cd4ebb4f7d155c6cf930 (patch)
tree46c01e11b562fb4b06763fa6eaeb7c159abca642
parent6dce59bc37d6503e0e4e83cd0a6ca98ca1d06b28 (diff)
downloadbcm5719-llvm-ab0d88746a017029ac69cd4ebb4f7d155c6cf930.tar.gz
bcm5719-llvm-ab0d88746a017029ac69cd4ebb4f7d155c6cf930.zip
[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 llvm-svn: 322882
-rw-r--r--compiler-rt/test/scudo/lit.cfg13
1 files changed, 5 insertions, 8 deletions
diff --git a/compiler-rt/test/scudo/lit.cfg b/compiler-rt/test/scudo/lit.cfg
index 028bf721b89..c9400878233 100644
--- a/compiler-rt/test/scudo/lit.cfg
+++ b/compiler-rt/test/scudo/lit.cfg
@@ -8,13 +8,8 @@ config.name = 'Scudo' + config.name_suffix
# 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.
OpenPOWER on IntegriCloud