36 lines
1.2 KiB
Plaintext
36 lines
1.2 KiB
Plaintext
def configure_correct_gcc():
|
|
import re
|
|
import subprocess
|
|
import os
|
|
from entropy.const import etpConst
|
|
|
|
gcc_targets = ["4.8", "4.7", "4.6"]
|
|
uname_arch = os.uname()[4]
|
|
gcc_dir = etpConst['systemroot'] + "/etc/env.d/gcc"
|
|
gcc_profile_file = None
|
|
for gcc_target in gcc_targets:
|
|
gcc_profile_file_pfx = uname_arch + "-pc-linux-gnu-" + gcc_target
|
|
regex = re.compile(gcc_profile_file_pfx + "((.[0-30])?)$")
|
|
|
|
for curdir, subs, files in os.walk(gcc_dir):
|
|
for fname in files:
|
|
if regex.match(fname):
|
|
gcc_profile_file = os.path.join(curdir, fname)
|
|
break
|
|
break
|
|
if gcc_profile_file is not None:
|
|
break
|
|
if gcc_profile_file is not None:
|
|
# if we're hardened, we want the vanilla one by default
|
|
# to avoid stressing the user too much
|
|
vanilla_profile_file = gcc_profile_file + "-vanilla"
|
|
if os.path.isfile(vanilla_profile_file):
|
|
gcc_profile_file = vanilla_profile_file
|
|
profile_name = os.path.basename(gcc_profile_file)
|
|
subprocess.call(("gcc-config", profile_name))
|
|
|
|
if stage == "postinstall":
|
|
configure_correct_gcc()
|
|
|
|
my_ext_status = 0
|