changeset 894679c8cd63 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=894679c8cd63
description:
        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.

diffstat:

 SConstruct |  16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)

diffs (26 lines):

diff -r c00b5ba43967 -r 894679c8cd63 SConstruct
--- a/SConstruct        Mon Jul 28 12:23:23 2014 -0400
+++ b/SConstruct        Sun Aug 10 05:38:56 2014 -0400
@@ -580,6 +580,22 @@
 
     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.
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to