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