diff options
author | Nigel Croxon <nigel.croxon@hp.com> | 2013-06-12 10:38:10 -0400 |
---|---|---|
committer | Nigel Croxon <nigel.croxon@hp.com> | 2013-06-12 10:38:10 -0400 |
commit | 0f42f7579c3d2a5fcca485bdc05d77536f80dd03 (patch) | |
tree | 1d564637eb1800da580d161f60b02152605ac9b6 | |
parent | 525455a9eaed23e007a0079ec54a7fcce7d7b02f (diff) | |
download | gnu-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.defaults | 3 |
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 |