xref: /llvm-project/llvm/test/tools/gold/X86/v1.16/lit.local.cfg (revision f84bac329ba6c9f0c022bcf77237e912362e247a)
1import re
2import subprocess
3
4
5def is_gold_v1_16_linker_available():
6
7    if not config.gold_executable:
8        return False
9    try:
10        ld_cmd = subprocess.Popen(
11            [config.gold_executable, "-v"],
12            stdout=subprocess.PIPE,
13            stderr=subprocess.PIPE,
14        )
15        ld_out, _ = ld_cmd.communicate()
16        ld_out = ld_out.decode()
17    except:
18        return False
19
20    match = re.search(r"GNU gold \(.*\) (\d+)\.(\d+)", ld_out)
21    if not match:
22        return False
23    major = int(match.group(1))
24    minor = int(match.group(2))
25    if major < 1 or (major == 1 and minor < 16):
26        return False
27
28    return True
29
30
31if not is_gold_v1_16_linker_available():
32    config.unsupported = True
33