summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Reinauer <reinauer@chromium.org>2011-06-23 17:12:08 -0700
committerPatrick Georgi <patrick@georgi-clan.de>2012-03-03 09:15:10 +0100
commitccf28ba9cb562e74ce17439d88dcc5a10aefeef6 (patch)
tree6571160448d623dbee76028354cdeef9afdee149
parent067d22340c68d21f0dd5a33cf02701bc54005a0d (diff)
Use -mno-sse to prevent overzealous gcc optimizations
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>
-rw-r--r--util/xcompile/xcompile4
1 files changed, 4 insertions, 0 deletions
diff --git a/util/xcompile/xcompile b/util/xcompile/xcompile
index 49263941df..f5d43d0e88 100644
--- a/util/xcompile/xcompile
+++ b/util/xcompile/xcompile
@@ -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