diff options
author | Sylvain Gault <sylvain.gault@gmail.com> | 2015-11-27 22:41:07 +0100 |
---|---|---|
committer | Sylvain Gault <sylvain.gault@gmail.com> | 2015-11-27 23:11:45 +0100 |
commit | 7d70885d22e4474407637026c1af12a253281407 (patch) | |
tree | 3ca2b5beddae9960d5554408d337e68ffda0663f | |
parent | 2d14923c02aa343f650a5bee128e9ea383a0ed59 (diff) | |
download | syslinux-7d70885d22e4474407637026c1af12a253281407.tar.gz syslinux-7d70885d22e4474407637026c1af12a253281407.tar.xz syslinux-7d70885d22e4474407637026c1af12a253281407.zip |
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@gmail.com>
-rw-r--r-- | mk/com32.mk | 4 | ||||
-rw-r--r-- | mk/elf.mk | 6 | ||||
-rw-r--r-- | mk/embedded.mk | 5 | ||||
-rw-r--r-- | mk/lib.mk | 4 |
4 files changed, 12 insertions, 7 deletions
diff --git a/mk/com32.mk b/mk/com32.mk index 90eb7edd..2e8591a7 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 @@ -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..df8e85f3 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,) @@ -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 |