llvm/llvm/test/tools/gold/X86/v1.16/lit.local.cfg

import re
import subprocess


def is_gold_v1_16_linker_available():

    if not config.gold_executable:
        return False
    try:
        ld_cmd = subprocess.Popen(
            [config.gold_executable, "-v"],
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE,
        )
        ld_out, _ = ld_cmd.communicate()
        ld_out = ld_out.decode()
    except:
        return False

    match = re.search(r"GNU gold \(.*\) (\d+)\.(\d+)", ld_out)
    if not match:
        return False
    major = int(match.group(1))
    minor = int(match.group(2))
    if major < 1 or (major == 1 and minor < 16):
        return False

    return True


if not is_gold_v1_16_linker_available():
    config.unsupported = True