diff --git a/test/lit.cfg b/test/lit.cfg index 40ee8dd7299..372e091add0 100644 --- a/test/lit.cfg +++ b/test/lit.cfg @@ -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