mgorny created this revision. mgorny added reviewers: zturner, labath. mgorny added a project: LLDB. Herald added a reviewer: serge-sans-paille.
Fix the build helper to find lld-link via PATH lookup, rather than making a fragile assumption that it will be present in the 'compiler directory'. This fixes tests on Gentoo where clang and lld are installed in different directories. Repository: rLLDB LLDB https://reviews.llvm.org/D58001 Files: lldb/lit/helper/build.py Index: lldb/lit/helper/build.py =================================================================== --- lldb/lit/helper/build.py +++ lldb/lit/helper/build.py @@ -283,17 +283,19 @@ print('Using alternate compiler "{0}" to match selected target.'.format(self.compiler)) if self.mode == 'link' or self.mode == 'compile-and-link': - self.linker = self._find_linker('link') if toolchain_type == 'msvc' else self._find_linker('lld-link') + self.linker = self._find_linker('link') if toolchain_type == 'msvc' else self._find_linker('lld-link', args.tools_dir) if not self.linker: raise ValueError('Unable to find an appropriate linker.') self.compile_env, self.link_env = self._get_visual_studio_environment() - def _find_linker(self, name): + def _find_linker(self, name, search_paths=[]): if sys.platform == 'win32': name = name + '.exe' compiler_dir = os.path.dirname(self.compiler) linker_path = os.path.join(compiler_dir, name) + if not os.path.exists(linker_path): + linker_path = find_executable(name, search_paths) if not os.path.exists(linker_path): raise ValueError('Could not find \'{}\''.format(linker_path)) return linker_path
Index: lldb/lit/helper/build.py =================================================================== --- lldb/lit/helper/build.py +++ lldb/lit/helper/build.py @@ -283,17 +283,19 @@ print('Using alternate compiler "{0}" to match selected target.'.format(self.compiler)) if self.mode == 'link' or self.mode == 'compile-and-link': - self.linker = self._find_linker('link') if toolchain_type == 'msvc' else self._find_linker('lld-link') + self.linker = self._find_linker('link') if toolchain_type == 'msvc' else self._find_linker('lld-link', args.tools_dir) if not self.linker: raise ValueError('Unable to find an appropriate linker.') self.compile_env, self.link_env = self._get_visual_studio_environment() - def _find_linker(self, name): + def _find_linker(self, name, search_paths=[]): if sys.platform == 'win32': name = name + '.exe' compiler_dir = os.path.dirname(self.compiler) linker_path = os.path.join(compiler_dir, name) + if not os.path.exists(linker_path): + linker_path = find_executable(name, search_paths) if not os.path.exists(linker_path): raise ValueError('Could not find \'{}\''.format(linker_path)) return linker_path
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits