[syslinux:master] Makefile: Always use -mno-red-zone for EFI
syslinux-bot for Sylvain Gault
sylvain.gault at gmail.com
Sun Dec 6 04:42:05 PST 2015
Commit-ID: 7d70885d22e4474407637026c1af12a253281407
Gitweb: http://www.syslinux.org/commit/7d70885d22e4474407637026c1af12a253281407
Author: Sylvain Gault <sylvain.gault at gmail.com>
AuthorDate: Fri, 27 Nov 2015 22:41:07 +0100
Committer: Sylvain Gault <sylvain.gault at gmail.com>
CommitDate: Fri, 27 Nov 2015 23:11:45 +0100
Makefile: Always use -mno-red-zone for EFI
This option is mandatory when compiling for EFI as some event handlers
may interupt the running code and use the space just above the reserved
stack space.
Signed-off-by: Sylvain Gault <sylvain.gault at gmail.com>
---
mk/com32.mk | 4 +++-
mk/elf.mk | 6 ++++--
mk/embedded.mk | 5 ++---
mk/lib.mk | 4 +++-
4 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/mk/com32.mk b/mk/com32.mk
index 90eb7ed..2e8591a 100644
--- a/mk/com32.mk
+++ b/mk/com32.mk
@@ -48,7 +48,9 @@ GCCOPT += $(call gcc_ok,-falign-jumps=0,-malign-jumps=0)
GCCOPT += $(call gcc_ok,-falign-labels=0,-malign-labels=0)
GCCOPT += $(call gcc_ok,-falign-loops=0,-malign-loops=0)
-ifndef EFI_BUILD
+ifdef EFI_BUILD
+GCCOPT += -mno-red-zone
+else
GCCOPT += -mregparm=3 -DREGPARM=3
endif
diff --git a/mk/elf.mk b/mk/elf.mk
index 12d1077..54fd4ce 100644
--- a/mk/elf.mk
+++ b/mk/elf.mk
@@ -60,8 +60,10 @@ CFLAGS = $(GCCOPT) $(GCCWARN) -W -Wall \
-I$(com32)/libutil/include -I$(com32)/include \
-I$(com32)/include/sys $(GPLINCLUDE) -I$(core)/include \
-I$(objdir) -DLDLINUX=\"$(LDLINUX)\"
-ifndef EFI_BUILD
-CFLAGS += -mregparm=3 -DREGPARM=3
+ifdef EFI_BUILD
+GCCOPT += -mno-red-zone
+else
+GCCOPT += -mregparm=3 -DREGPARM=3
endif
SFLAGS = $(GCCOPT) -D__COM32__ -D__FIRMWARE_$(FIRMWARE)__
diff --git a/mk/embedded.mk b/mk/embedded.mk
index 1614d8bc..df8e85f 100644
--- a/mk/embedded.mk
+++ b/mk/embedded.mk
@@ -39,10 +39,9 @@ GCCOPT += $(call gcc_ok,-fno-stack-protector,)
GCCOPT += $(call gcc_ok,-fwrapv,)
GCCOPT += $(call gcc_ok,-freg-struct-return,)
ifdef EFI_BUILD
-GCCOPT += -Os -fomit-frame-pointer -msoft-float
+GCCOPT += -Os -fomit-frame-pointer -msoft-float -mno-red-zone
else
-GCCOPT += -Os -fomit-frame-pointer -mregparm=3 -DREGPARM=3 \
- -msoft-float
+GCCOPT += -Os -fomit-frame-pointer -mregparm=3 -DREGPARM=3 -msoft-float
endif
GCCOPT += $(call gcc_ok,-fno-exceptions,)
GCCOPT += $(call gcc_ok,-fno-asynchronous-unwind-tables,)
diff --git a/mk/lib.mk b/mk/lib.mk
index ceb95bd..7a48756 100644
--- a/mk/lib.mk
+++ b/mk/lib.mk
@@ -54,7 +54,9 @@ WARNFLAGS = $(GCCWARN) -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Winl
CFLAGS = $(OPTFLAGS) $(REQFLAGS) $(WARNFLAGS) $(LIBFLAGS)
-ifndef EFI_BUILD
+ifdef EFI_BUILD
+CFLAGS += -mno-red-zone
+else
CFLAGS += -mregparm=3 -DREGPARM=3
endif
More information about the Syslinux-commits
mailing list