Fix check-asan on Windows by putting lib/clang/... onto PATH (PR21880)

llvm-svn: 224018
This commit is contained in:
Timur Iskhodzhanov 2014-12-11 14:04:57 +00:00
parent a330a47427
commit 92292898ab
1 changed files with 10 additions and 5 deletions

View File

@ -12,10 +12,15 @@ def get_required_attr(config, attr_name):
"to lit.site.cfg " % attr_name)
return attr_value
def push_ld_library_path(config, new_path):
def push_dynamic_library_lookup_path(config, new_path):
if platform.system() == 'Windows':
dynamic_library_lookup_var = 'PATH'
else:
dynamic_library_lookup_var = 'LD_LIBRARY_PATH'
new_ld_library_path = os.path.pathsep.join(
(new_path, config.environment['LD_LIBRARY_PATH']))
config.environment['LD_LIBRARY_PATH'] = new_ld_library_path
(new_path, config.environment[dynamic_library_lookup_var]))
config.environment[dynamic_library_lookup_var] = new_ld_library_path
# Setup config name.
config.name = 'AddressSanitizer' + config.name_suffix
@ -128,13 +133,13 @@ if config.host_os == 'Linux' and config.target_arch == 'x86_64':
config.available_features.add('leak-detection')
# Set LD_LIBRARY_PATH to pick dynamic runtime up properly.
push_ld_library_path(config, config.compiler_rt_libdir)
push_dynamic_library_lookup_path(config, config.compiler_rt_libdir)
# GCC-ASan uses dynamic runtime by default.
if config.compiler_id == 'GNU':
gcc_dir = os.path.dirname(config.clang)
libasan_dir = os.path.join(gcc_dir, "..", "lib" + config.bits)
push_ld_library_path(config, libasan_dir)
push_dynamic_library_lookup_path(config, libasan_dir)
# Default test suffixes.
config.suffixes = ['.c', '.cc', '.cpp']