|  | @LIT_SITE_CFG_IN_HEADER@ | 
|  |  | 
|  | # Set attribute value if it is unset. | 
|  | def set_default(attr, value): | 
|  | if not getattr(config, attr, None): | 
|  | setattr(config, attr, value) | 
|  |  | 
|  | # Generic config options for all compiler-rt lit tests. | 
|  | set_default("target_triple", "@COMPILER_RT_DEFAULT_TARGET_TRIPLE@") | 
|  | set_default("target_cflags", "@COMPILER_RT_TEST_COMPILER_CFLAGS@") | 
|  | set_default("host_arch", "@HOST_ARCH@") | 
|  | set_default("target_arch", "@COMPILER_RT_DEFAULT_TARGET_ARCH@") | 
|  | set_default("host_os", "@HOST_OS@") | 
|  | set_default("llvm_build_mode", "@LLVM_BUILD_MODE@") | 
|  | set_default("llvm_src_root", "@LLVM_MAIN_SRC_DIR@") | 
|  | set_default("llvm_obj_root", "@LLVM_BINARY_DIR@") | 
|  | set_default("compiler_rt_src_root", "@COMPILER_RT_SOURCE_DIR@") | 
|  | set_default("compiler_rt_obj_root", "@COMPILER_RT_BINARY_DIR@") | 
|  | set_default("enable_per_target_runtime_dir", @LLVM_ENABLE_PER_TARGET_RUNTIME_DIR_PYBOOL@) | 
|  | set_default("llvm_tools_dir", "@LLVM_TOOLS_DIR@") | 
|  | set_default("llvm_shlib_dir", "@LLVM_LIBRARY_OUTPUT_INTDIR@") | 
|  | set_default("gold_executable", "@GOLD_EXECUTABLE@") | 
|  | set_default("clang", "@COMPILER_RT_RESOLVED_TEST_COMPILER@") | 
|  | set_default("compiler_id", "@COMPILER_RT_TEST_COMPILER_ID@") | 
|  | set_default("python_executable", "@PYTHON_EXECUTABLE@") | 
|  | set_default("compiler_rt_debug", @COMPILER_RT_DEBUG_PYBOOL@) | 
|  | set_default("compiler_rt_libdir", "@COMPILER_RT_RESOLVED_LIBRARY_OUTPUT_DIR@") | 
|  | set_default("emulator", "@COMPILER_RT_EMULATOR@") | 
|  | set_default("asan_shadow_scale", "@COMPILER_RT_ASAN_SHADOW_SCALE@") | 
|  | set_default("apple_platform", "osx") | 
|  | set_default("sanitizer_can_use_cxxabi", @SANITIZER_CAN_USE_CXXABI_PYBOOL@) | 
|  | set_default("has_lld", @COMPILER_RT_HAS_LLD_PYBOOL@) | 
|  | set_default("can_symbolize", @CAN_SYMBOLIZE@) | 
|  | set_default("use_lld", False) | 
|  | set_default("use_thinlto", False) | 
|  | set_default("use_lto", config.use_thinlto) | 
|  | set_default("use_newpm", False) | 
|  | set_default("android", @ANDROID_PYBOOL@) | 
|  | config.available_features.add('target-is-%s' % config.target_arch) | 
|  |  | 
|  | if config.enable_per_target_runtime_dir: | 
|  | set_default("target_suffix", "") | 
|  | else: | 
|  | set_default("target_suffix", "-%s" % config.target_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_config.params | 
|  | config.clang = config.clang % lit_config.params | 
|  | config.compiler_rt_libdir = config.compiler_rt_libdir % lit_config.params | 
|  | except KeyError as e: | 
|  | key, = e.args | 
|  | lit_config.fatal("unable to find %r parameter, use '--param=%s=VALUE'" % (key, key)) | 
|  |  | 
|  | if not os.path.exists(config.clang): | 
|  | lit_config.fatal("Can't find compiler on path %r" % config.clang) | 
|  |  | 
|  | # Setup attributes common for all compiler-rt projects. | 
|  | lit_config.load_config(config, "@COMPILER_RT_SOURCE_DIR@/test/lit.common.cfg") |