summaryrefslogtreecommitdiffstats
path: root/src/Makefile.housekeeping
diff options
context:
space:
mode:
authorMichael Brown2007-12-15 20:37:21 +0100
committerMichael Brown2007-12-15 20:37:21 +0100
commit5172d7b26624fd2219e6a68eee6237c899f8610a (patch)
tree6a6026772ff1d818d223684fb63e28229d7f9976 /src/Makefile.housekeeping
parentOverwrite the device descriptor's IRQ number with whatever the legacy (diff)
downloadipxe-5172d7b26624fd2219e6a68eee6237c899f8610a.tar.gz
ipxe-5172d7b26624fd2219e6a68eee6237c899f8610a.tar.xz
ipxe-5172d7b26624fd2219e6a68eee6237c899f8610a.zip
Autodetect whether or not we need to be using -fno-stack-protector.
Diffstat (limited to 'src/Makefile.housekeeping')
-rw-r--r--src/Makefile.housekeeping8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/Makefile.housekeeping b/src/Makefile.housekeeping
index 3694402b..1e97ee62 100644
--- a/src/Makefile.housekeeping
+++ b/src/Makefile.housekeeping
@@ -102,6 +102,14 @@ CFLAGS += $(OLDGAS)
oldgas :
@$(ECHO) $(oldgas)
+# Some widespread patched versions of gcc include -fstack-protector by
+# default, even when -ffreestanding is specified. We therefore need
+# to disable -fstack-protector if the compiler supports it.
+#
+SP_TEST = $(CC) -fno-stack-protector -x c -E - < /dev/null >/dev/null 2>&1
+SP_FLAGS := $(shell $(SP_TEST) && $(ECHO) '-fno-stack-protector')
+CFLAGS += $(SP_FLAGS)
+
# compiler.h is needed for our linking and debugging system
#
CFLAGS += -include compiler.h