From 6a65b189928cedf8c33ed3cb6dcb2992a7ba3d3d Mon Sep 17 00:00:00 2001 From: Alexey Samsonov Date: Thu, 6 Jun 2013 12:35:48 +0000 Subject: [PATCH] [ASan] lit tests: create common autogenerated config for running compiler-rt lit tests, and use it in ASan llvm-svn: 183400 --- compiler-rt/CMakeLists.txt | 1 + compiler-rt/lib/CMakeLists.txt | 4 ++++ compiler-rt/lib/asan/lit_tests/lit.cfg | 9 -------- .../lib/asan/lit_tests/lit.site.cfg.in | 22 ++++-------------- compiler-rt/lib/lit.common.cfg | 2 -- compiler-rt/lib/lit.common.configured.in | 23 +++++++++++++++++++ 6 files changed, 33 insertions(+), 28 deletions(-) create mode 100644 compiler-rt/lib/lit.common.configured.in diff --git a/compiler-rt/CMakeLists.txt b/compiler-rt/CMakeLists.txt index a57751ce6f61..964ae866ead9 100644 --- a/compiler-rt/CMakeLists.txt +++ b/compiler-rt/CMakeLists.txt @@ -36,6 +36,7 @@ set(CMAKE_MODULE_PATH include(AddCompilerRT) set(COMPILER_RT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) +set(COMPILER_RT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) # Setup custom SDK sysroots. set(COMPILER_RT_DARWIN_SDK_SYSROOT ${COMPILER_RT_SOURCE_DIR}/SDKs/darwin) set(COMPILER_RT_LINUX_SDK_SYSROOT ${COMPILER_RT_SOURCE_DIR}/SDKs/linux) diff --git a/compiler-rt/lib/CMakeLists.txt b/compiler-rt/lib/CMakeLists.txt index f07ab1e1872b..e504e00aa986 100644 --- a/compiler-rt/lib/CMakeLists.txt +++ b/compiler-rt/lib/CMakeLists.txt @@ -19,6 +19,10 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux" AND NOT ANDROID) add_subdirectory(lsan) endif() +configure_lit_site_cfg( + ${CMAKE_CURRENT_SOURCE_DIR}/lit.common.configured.in + ${CMAKE_CURRENT_BINARY_DIR}/lit.common.configured) + # The top-level lib directory contains a large amount of C code which provides # generic implementations of the core runtime library along with optimized # architecture-specific code in various subdirectories. diff --git a/compiler-rt/lib/asan/lit_tests/lit.cfg b/compiler-rt/lib/asan/lit_tests/lit.cfg index d8dac43a4c77..5100a2848b36 100644 --- a/compiler-rt/lib/asan/lit_tests/lit.cfg +++ b/compiler-rt/lib/asan/lit_tests/lit.cfg @@ -48,15 +48,6 @@ if llvm_src_root is None: lit.load_config(config, asan_site_cfg) raise SystemExit -# Setup attributes common for all compiler-rt projects. -compiler_rt_src_root = get_required_attr(config, "compiler_rt_src_root") -compiler_rt_lit_cfg = os.path.join(compiler_rt_src_root, "lib", - "lit.common.cfg") -if (not compiler_rt_lit_cfg) or (not os.path.exists(compiler_rt_lit_cfg)): - lit.fatal("Can't find common compiler-rt lit config at: %r" - % compiler_rt_lit_cfg) -lit.load_config(config, compiler_rt_lit_cfg) - # Setup default compiler flags used with -fsanitize=address option. # FIXME: Review the set of required flags and check if it can be reduced. clang_asan_cxxflags = ("-ccc-cxx " diff --git a/compiler-rt/lib/asan/lit_tests/lit.site.cfg.in b/compiler-rt/lib/asan/lit_tests/lit.site.cfg.in index 528412246f3d..db520029fd45 100644 --- a/compiler-rt/lib/asan/lit_tests/lit.site.cfg.in +++ b/compiler-rt/lib/asan/lit_tests/lit.site.cfg.in @@ -1,23 +1,11 @@ ## Autogenerated by LLVM/Clang configuration. # Do not edit! -config.target_triple = "@TARGET_TRIPLE@" -config.host_os = "@HOST_OS@" -config.llvm_src_root = "@LLVM_SOURCE_DIR@" -config.llvm_obj_root = "@LLVM_BINARY_DIR@" -config.compiler_rt_src_root = "@COMPILER_RT_SOURCE_DIR@" -config.llvm_tools_dir = "@LLVM_TOOLS_DIR@" -config.clang = "@LLVM_BINARY_DIR@/bin/clang" -config.compiler_rt_arch = "@COMPILER_RT_SUPPORTED_ARCH@" +# Load common config for all compiler-rt lit tests. +lit.load_config(config, "@COMPILER_RT_BINARY_DIR@/lib/lit.common.configured") + +# Tool-specific config options. config.asan_source_dir = "@ASAN_SOURCE_DIR@" -# LLVM tools dir can be passed in lit parameters, so try to -# apply substitution. -try: - config.llvm_tools_dir = config.llvm_tools_dir % lit.params -except KeyError,e: - key, = e.args - lit.fatal("unable to find %r parameter, use '--param=%s=VALUE'" % (key, key)) - -# Let the main config do the real work. +# Load tool-specific config that would do the real work. lit.load_config(config, "@ASAN_SOURCE_DIR@/lit_tests/lit.cfg") diff --git a/compiler-rt/lib/lit.common.cfg b/compiler-rt/lib/lit.common.cfg index b410259a9e71..9c5ffd62304b 100644 --- a/compiler-rt/lib/lit.common.cfg +++ b/compiler-rt/lib/lit.common.cfg @@ -15,8 +15,6 @@ config.test_format = lit.formats.ShTest(execute_external) clang_path = getattr(config, 'clang', None) if (not clang_path) or (not os.path.exists(clang_path)): lit.fatal("Can't find Clang on path %r" % clang_path) -if not lit.quiet: - lit.note("using clang: %r" % clang_path) # Clear some environment variables that might affect Clang. possibly_dangerous_env_vars = ['COMPILER_PATH', 'RC_DEBUG_OPTIONS', diff --git a/compiler-rt/lib/lit.common.configured.in b/compiler-rt/lib/lit.common.configured.in new file mode 100644 index 000000000000..5ca9b1bd70c9 --- /dev/null +++ b/compiler-rt/lib/lit.common.configured.in @@ -0,0 +1,23 @@ +## Autogenerated by LLVM/Clang configuration. +# Do not edit! + +# Generic config options for all compiler-rt lit tests. +config.target_triple = "@TARGET_TRIPLE@" +config.host_os = "@HOST_OS@" +config.llvm_src_root = "@LLVM_SOURCE_DIR@" +config.llvm_obj_root = "@LLVM_BINARY_DIR@" +config.compiler_rt_src_root = "@COMPILER_RT_SOURCE_DIR@" +config.llvm_tools_dir = "@LLVM_TOOLS_DIR@" +config.clang = "@LLVM_BINARY_DIR@/bin/clang" +config.compiler_rt_arch = "@COMPILER_RT_SUPPORTED_ARCH@" + +# LLVM tools dir can be passed in lit parameters, so try to +# apply substitution. +try: + config.llvm_tools_dir = config.llvm_tools_dir % lit.params +except KeyError,e: + key, = e.args + lit.fatal("unable to find %r parameter, use '--param=%s=VALUE'" % (key, key)) + +# Setup attributes common for all compiler-rt projects. +lit.load_config(config, "@COMPILER_RT_SOURCE_DIR@/lib/lit.common.cfg")