Add detection of OS X relocatable SDK to compiler-rt as a lit.util function
authorAlexander Potapenko <glider@google.com>
Tue, 10 Jun 2014 14:22:00 +0000 (14:22 +0000)
committerAlexander Potapenko <glider@google.com>
Tue, 10 Jun 2014 14:22:00 +0000 (14:22 +0000)
Clang's lit cfg already detects the currently selected SDK via
"xcrun --show-sdk-path". The same thing should be done for compiler-rt tests,
to make them work on recent OS X versions. Instead of duplicating the detection
code, this patch extracts the detection function into a lit.util method.

Patch by Kuba Brecka (kuba.brecka@gmail.com),
reviewed at http://reviews.llvm.org/D4072

llvm-svn: 210534

clang/test/lit.cfg
compiler-rt/test/lit.common.cfg
llvm/utils/lit/lit/util.py

index 5c2b187..11e8e0b 100644 (file)
@@ -471,18 +471,4 @@ gmalloc_path_str = lit_config.params.get('gmalloc_path',
 if use_gmalloc:
      config.environment.update({'DYLD_INSERT_LIBRARIES' : gmalloc_path_str})
 
-# On Darwin, support relocatable SDKs by providing Clang with a
-# default system root path.
-if 'darwin' in config.target_triple:
-    try:
-        cmd = subprocess.Popen(['xcrun', '--show-sdk-path'],
-                               stdout=subprocess.PIPE, stderr=subprocess.PIPE)
-        out, err = cmd.communicate()
-        out = out.strip()
-        res = cmd.wait()
-    except OSError:
-        res = -1
-    if res == 0 and out:
-        sdk_path = out
-        lit_config.note('using SDKROOT: %r' % sdk_path)
-        config.environment['SDKROOT'] = sdk_path
+lit.util.usePlatformSdkOnDarwin(config, lit_config)
index 5366073..adf65ee 100644 (file)
@@ -7,6 +7,7 @@ import os
 import platform
 
 import lit.formats
+import lit.util
 
 # Setup test format
 execute_external = (platform.system() != 'Windows'
@@ -77,3 +78,5 @@ if compiler_rt_arch:
 compiler_rt_debug = getattr(config, 'compiler_rt_debug', False)
 if not compiler_rt_debug:
   config.available_features.add('compiler-rt-optimized')
+
+lit.util.usePlatformSdkOnDarwin(config, lit_config)
index 2b1010c..72a8b48 100644 (file)
@@ -167,3 +167,20 @@ def executeCommand(command, cwd=None, env=None):
         err = str(err)
 
     return out, err, exitCode
+
+def usePlatformSdkOnDarwin(config, lit_config):
+    # On Darwin, support relocatable SDKs by providing Clang with a
+    # default system root path.
+    if 'darwin' in config.target_triple:
+        try:
+            cmd = subprocess.Popen(['xcrun', '--show-sdk-path'],
+                                   stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+            out, err = cmd.communicate()
+            out = out.strip()
+            res = cmd.wait()
+        except OSError:
+            res = -1
+        if res == 0 and out:
+            sdk_path = out
+            lit_config.note('using SDKROOT: %r' % sdk_path)
+            config.environment['SDKROOT'] = sdk_path