Use -mno-sse to prevent overzealous gcc optimizations
authorStefan Reinauer <reinauer@chromium.org>
Fri, 24 Jun 2011 00:12:08 +0000 (17:12 -0700)
committerPatrick Georgi <patrick@georgi-clan.de>
Sat, 3 Mar 2012 08:15:10 +0000 (09:15 +0100)
The offending part that made coreboot crash with some toolchains
was that gcc emits SSE instructions but coreboot did not enable SSE at
that point.

Since the gain for coreboot using SSE instructions is not measurable,
let's not use SSE instructions rather than enabling SSE early on.
One rationale behind this is that other parts of coreboot, like the
SMM handler would need fixing because the XMM registers are not saved
on SMM entry. Thus keep it simple.

Change-Id: I14f0942f300085767ece44cec570fb15c761e88d
Signed-off-by: Stefan Reinauer <reinauer@google.com>
Reviewed-on: http://review.coreboot.org/694
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
util/xcompile/xcompile

index 49263941dfa10d9d1ae47d884b661fa960f76ed1..f5d43d0e886bf79fb2846d6376feaed911b58e6f 100644 (file)
@@ -84,6 +84,10 @@ testcc "$CC" "$CFLAGS-Wl,--build-id=none " && CFLAGS="$CFLAGS-Wl,--build-id=none
 # now:
 testcc "$CC" "$CFLAGS-Wno-unused-but-set-variable " && \
               CFLAGS="$CFLAGS-Wno-unused-but-set-variable "
+# Use bfd linker instead of gold if available:
+testcc "$CC" "$CFLAGS-fuse-ld=bfd " && CFLAGS="$CFLAGS-fuse-ld=bfd " && LINKER_SUFFIX='.bfd'
+# Prevent SSE instructions sneaking in:
+testcc "$CC" "$CFLAGS-mno-sse " && CFLAGS="$CFLAGS-mno-sse "
 
 if which gcc 2>/dev/null >/dev/null; then
        HOSTCC=gcc