[Lldb-commits] [lldb] r353701 - [lldb] [lit] Fix finding lld-link when it is not in 'compiler dir'

Michal Gorny via lldb-commits lldb-commits at lists.llvm.org
Mon Feb 11 06:09:49 PST 2019


Author: mgorny
Date: Mon Feb 11 06:09:48 2019
New Revision: 353701

URL: http://llvm.org/viewvc/llvm-project?rev=353701&view=rev
Log:
[lldb] [lit] Fix finding lld-link when it is not in 'compiler dir'

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.

Differential Revision: https://reviews.llvm.org/D58001

Modified:
    lldb/trunk/lit/helper/build.py

Modified: lldb/trunk/lit/helper/build.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/helper/build.py?rev=353701&r1=353700&r2=353701&view=diff
==============================================================================
--- lldb/trunk/lit/helper/build.py (original)
+++ lldb/trunk/lit/helper/build.py Mon Feb 11 06:09:48 2019
@@ -283,19 +283,17 @@ class MsvcBuilder(Builder):
                     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):
-        if sys.platform == 'win32':
-            name = name + '.exe'
+    def _find_linker(self, name, search_paths=[]):
         compiler_dir = os.path.dirname(self.compiler)
-        linker_path = os.path.join(compiler_dir, name)
-        if not os.path.exists(linker_path):
-            raise ValueError('Could not find \'{}\''.format(linker_path))
+        linker_path = find_executable(name, [compiler_dir] + search_paths)
+        if linker_path is None:
+            raise ValueError('Could not find \'{}\''.format(name))
         return linker_path
 
     def _get_vc_install_dir(self):




More information about the lldb-commits mailing list