[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