diff --git a/llvm/utils/lit/lit/llvm/config.py b/llvm/utils/lit/lit/llvm/config.py --- a/llvm/utils/lit/lit/llvm/config.py +++ b/llvm/utils/lit/lit/llvm/config.py @@ -595,10 +595,10 @@ # Discover the 'clang' and 'clangcc' to use. - ld_lld = self.use_llvm_tool('ld.lld', required=required) - lld_link = self.use_llvm_tool('lld-link', required=required) - ld64_lld = self.use_llvm_tool('ld64.lld', required=required) - wasm_ld = self.use_llvm_tool('wasm-ld', required=required) + ld_lld = self.use_llvm_tool('ld.lld', search_env='LDLLD', required=required) + lld_link = self.use_llvm_tool('lld-link', search_env='LLDLINK', required=required) + ld64_lld = self.use_llvm_tool('ld64.lld', search_env='LD64LLD', required=required) + wasm_ld = self.use_llvm_tool('wasm-ld', search_env='WASMLD', required=required) was_found = ld_lld and lld_link and ld64_lld and wasm_ld tool_substitutions = [] diff --git a/llvm/utils/lit/tests/Inputs/lld-search-env/lit.cfg b/llvm/utils/lit/tests/Inputs/lld-search-env/lit.cfg new file mode 100644 --- /dev/null +++ b/llvm/utils/lit/tests/Inputs/lld-search-env/lit.cfg @@ -0,0 +1,16 @@ +import lit.formats +config.name = 'search-env' +config.suffixes = ['.txt'] +config.test_format = lit.formats.ShTest() +config.test_source_root = None +config.test_exec_root = None +config.llvm_tools_dir = '' +import lit.llvm +lit.llvm.initialize(lit_config, config) +import os.path +curdir = os.path.dirname(__file__) +lit.llvm.llvm_config.with_environment('LDLLD', os.path.join(curdir, 'tool1')) +lit.llvm.llvm_config.with_environment('LLDLINK', os.path.join(curdir, 'tool2')) +lit.llvm.llvm_config.with_environment('LD64LLD', os.path.join(curdir, 'tool3')) +lit.llvm.llvm_config.with_environment('WASMLD', os.path.join(curdir, 'tool4')) +lit.llvm.llvm_config.use_lld() diff --git a/llvm/utils/lit/tests/Inputs/lld-search-env/tool1 b/llvm/utils/lit/tests/Inputs/lld-search-env/tool1 new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/lld-search-env/tool2 b/llvm/utils/lit/tests/Inputs/lld-search-env/tool2 new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/lld-search-env/tool3 b/llvm/utils/lit/tests/Inputs/lld-search-env/tool3 new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/lld-search-env/tool4 b/llvm/utils/lit/tests/Inputs/lld-search-env/tool4 new file mode 100644 diff --git a/llvm/utils/lit/tests/Inputs/lld-search-env/true.txt b/llvm/utils/lit/tests/Inputs/lld-search-env/true.txt new file mode 100644 --- /dev/null +++ b/llvm/utils/lit/tests/Inputs/lld-search-env/true.txt @@ -0,0 +1 @@ +# RUN: true diff --git a/llvm/utils/lit/tests/lld-search-env.py b/llvm/utils/lit/tests/lld-search-env.py new file mode 100644 --- /dev/null +++ b/llvm/utils/lit/tests/lld-search-env.py @@ -0,0 +1,8 @@ +## Show that lit uses a set of environment variable to locate the LLD variants. + +# RUN: %{lit} %{inputs}/lld-search-env 2>&1 | FileCheck %s -DDIR=%p + +# CHECK: note: using ld.lld: [[DIR]]{{[\\/]}}Inputs{{[\\/]}}lld-search-env{{[\\/]}}tool1 +# CHECK: note: using lld-link: [[DIR]]{{[\\/]}}Inputs{{[\\/]}}lld-search-env{{[\\/]}}tool2 +# CHECK: note: using ld64.lld: [[DIR]]{{[\\/]}}Inputs{{[\\/]}}lld-search-env{{[\\/]}}tool3 +# CHECK: note: using wasm-ld: [[DIR]]{{[\\/]}}Inputs{{[\\/]}}lld-search-env{{[\\/]}}tool4