print "OvmfPkg/OvmfPkgX64.dsc doesn't exist"\r
sys.exit(-1)\r
\r
-if 'TOOLCHAIN' in os.environ:\r
- TOOLCHAIN = os.environ['TOOLCHAIN']\r
-else:\r
- TOOLCHAIN = 'GCC44'\r
-\r
def run_and_capture_output(args, checkExitCode = True):\r
p = subprocess.Popen(args=args, stdout=subprocess.PIPE)\r
stdout = p.stdout.read()\r
assert ret_code == 0\r
return stdout\r
\r
+gcc_version = run_and_capture_output(args=('gcc', '--version'))\r
+gcc_re = re.compile(r'\s*\S+\s+\([^\)]+?\)\s+(\d+(?:\.\d+)*)(?:\s+.*)?')\r
+mo = gcc_re.match(gcc_version)\r
+if not mo:\r
+ print "Unable to find GCC version"\r
+ sys.exit(-1)\r
+gcc_version = map(lambda n: int(n), mo.group(1).split('.'))\r
+\r
+if 'TOOLCHAIN' in os.environ:\r
+ TOOLCHAIN = os.environ['TOOLCHAIN']\r
+else:\r
+ assert(gcc_version[0] == 4)\r
+ minor = max(4, min(7, gcc_version[1]))\r
+ TOOLCHAIN = 'GCC4' + str(minor)\r
+\r
def git_svn_info():\r
dir = os.getcwd()\r
os.chdir('OvmfPkg')\r
\r
machine = run_and_capture_output(args=('uname', '-m')).strip()\r
\r
- gcc_version = run_and_capture_output(args=('gcc', '--version'))\r
- gcc_version = gcc_version.split('\n')[0].split()[-1]\r
+ gcc_version_str = '.'.join(map(lambda v: str(v), gcc_version))\r
\r
ld_version = run_and_capture_output(args=('ld', '--version'))\r
ld_version = ld_version.split('\n')[0].split()[-1]\r
\r
sb = StringIO.StringIO()\r
print >> sb, 'edk2: ', 'r%d' % revision\r
- print >> sb, 'compiler: GCC', gcc_version\r
+ print >> sb, 'compiler: GCC', gcc_version_str, '(' + TOOLCHAIN + ')'\r
print >> sb, 'binutils:', ld_version\r
print >> sb, 'iasl: ', iasl_version\r
print >> sb, 'system: ', distro, machine.replace('_', '-')\r