summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNigel Croxon <nigel.croxon@hp.com>2013-06-12 10:38:10 -0400
committerNigel Croxon <nigel.croxon@hp.com>2013-06-12 10:38:10 -0400
commit0f42f7579c3d2a5fcca485bdc05d77536f80dd03 (patch)
tree1d564637eb1800da580d161f60b02152605ac9b6
parent525455a9eaed23e007a0079ec54a7fcce7d7b02f (diff)
downloadgnu-efi-3.0-0f42f7579c3d2a5fcca485bdc05d77536f80dd03.tar.gz
gnu-efi-3.0-0f42f7579c3d2a5fcca485bdc05d77536f80dd03.tar.xz
gnu-efi-3.0-0f42f7579c3d2a5fcca485bdc05d77536f80dd03.zip
Disable MMX and SSE
GCC 4.8.0 adds some optimizations that will use movups/movaps (and use %xmm* registers) when they're faster, and of course that won't work at all since UEFI firmwares aren't guaranteed to initialize the mmx/sse instructions. This will be even more annoying, since most UEFI firmwares don't initialize the #DE or #UD trap handlers, and your backtrace will be a random path through uninitialized memory, occasionally including whatever address the IDT has for #UD, but also addresses like "0x4" and "0x507" that you don't normally expect to see in your call path. Signed-off-by: Peter Jones <pjones@redhat.com>
-rw-r--r--gnu-efi-3.0/Make.defaults3
1 files changed, 2 insertions, 1 deletions
diff --git a/gnu-efi-3.0/Make.defaults b/gnu-efi-3.0/Make.defaults
index 2adada6..d799679 100644
--- a/gnu-efi-3.0/Make.defaults
+++ b/gnu-efi-3.0/Make.defaults
@@ -94,13 +94,14 @@ ifeq ($(ARCH),ia64)
endif
ifeq ($(ARCH),ia32)
+ CFLAGS += -mno-mmx -mno-sse
ifeq ($(HOSTARCH),x86_64)
ARCH3264 = -m32
endif
endif
ifeq ($(ARCH),x86_64)
- CFLAGS += -mno-red-zone
+ CFLAGS += -mno-red-zone -nmo-mmx -mno-sse
ifeq ($(HOSTARCH),ia32)
ARCH3264 = -m64
endif