import os import re import subprocess from entropy.const import etpConst def configure_correct_gcc(): 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