From 27f90649448c45ac0c0690c5e396ff174a8550e1 Mon Sep 17 00:00:00 2001 From: Kostya Kortchinsky Date: Thu, 18 Jan 2018 20:02:56 +0000 Subject: [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 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@322882 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/scudo/lit.cfg | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'test/scudo') diff --git a/test/scudo/lit.cfg b/test/scudo/lit.cfg index 028bf721b..c94008782 100644 --- a/test/scudo/lit.cfg +++ b/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. -- cgit v1.2.3