Only run the gold plugin tests if gold supports the targets we test with.
authorRafael Espindola <rafael.espindola@gmail.com>
Tue, 11 Nov 2014 05:27:12 +0000 (05:27 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Tue, 11 Nov 2014 05:27:12 +0000 (05:27 +0000)
This fixes pr21345.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221669 91177308-0d34-0410-b5e6-96231b3b80d8

test/lit.cfg

index 40ee8dd7299d1e7b50ceb080007bea611391587a..372e091add07b79dc8cb965999a63678cdb589df 100644 (file)
@@ -328,10 +328,24 @@ def have_ld_plugin_support():
         return False
 
     ld_cmd = subprocess.Popen(['ld', '--help'], stdout = subprocess.PIPE)
-    if not '-plugin' in ld_cmd.stdout.read():
-        return False
+    ld_out = ld_cmd.stdout.read()
     ld_cmd.wait()
 
+    if not '-plugin' in ld_out:
+        return False
+
+    # check that the used emulations are supported.
+    emu_line = [l for l in ld_out.split('\n') if 'supported emulations' in l]
+    if len(emu_line) != 1:
+        return False
+    emu_line = emu_line[0]
+    fields = emu_line.split(':')
+    if len(fields) != 3:
+        return False
+    emulations = fields[2].split()
+    if 'elf32ppc' not in emulations or 'elf_x86_64' not in emulations:
+        return False
+
     ld_version = subprocess.Popen(['ld', '--version'], stdout = subprocess.PIPE)
     if not 'GNU gold' in ld_version.stdout.read():
         return False