Autodetect whether or not we need to be using -fno-stack-protector.
authorMichael Brown <mcb30@etherboot.org>
Sat, 15 Dec 2007 19:37:21 +0000 (19:37 +0000)
committerMichael Brown <mcb30@etherboot.org>
Sat, 15 Dec 2007 19:37:21 +0000 (19:37 +0000)
src/Makefile.housekeeping

index 3694402..1e97ee6 100644 (file)
@@ -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