scons: Warn for incompatible gcc and binutils

It seems gcc >4.8 does not get along well with binutils <= 2.22, and
to help users this patch adds a warning with an indication for how to
fix the issue. It might even be worth adding a Exit(-1) and stop the
build.
This commit is contained in:
Andreas Hansson 2014-08-10 05:38:56 -04:00
parent a628afedad
commit b90bdcf8d0

View file

@ -580,6 +580,22 @@ if main['GCC']:
main['GCC_VERSION'] = gcc_version
# gcc from version 4.8 and above generates "rep; ret" instructions
# to avoid performance penalties on certain AMD chips. Older
# assemblers detect this as an error, "Error: expecting string
# instruction after `rep'"
if compareVersions(gcc_version, "4.8") > 0:
as_version = readCommand([main['AS'], '-v', '/dev/null'],
exception=False).split()
if not as_version or compareVersions(as_version[-1], "2.23") < 0:
print termcap.Yellow + termcap.Bold + \
'Warning: This combination of gcc and binutils have' + \
' known incompatibilities.\n' + \
' If you encounter build problems, please update ' + \
'binutils to 2.23.' + \
termcap.Normal
# Add the appropriate Link-Time Optimization (LTO) flags
# unless LTO is explicitly turned off. Note that these flags
# are only used by the fast target.