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:
parent
a628afedad
commit
b90bdcf8d0
1 changed files with 16 additions and 0 deletions
16
SConstruct
16
SConstruct
|
@ -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.
|
||||
|
|
Loading…
Reference in a new issue