33 lines
729 B
INI
33 lines
729 B
INI
|
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
|