aboutsummaryrefslogtreecommitdiff
path: root/Makefile.main
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2014-11-17 18:22:04 +1100
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2014-11-17 18:22:04 +1100
commit71664fd8d2d2550a56cc6a9c2b81797bfe90d613 (patch)
tree6f55e009ff6a8b00f9f1c7a905ad4075225dec93 /Makefile.main
parent31d20fc02c8ee7c12d84bc28ce732bbc362ce369 (diff)
downloadskiboot-71664fd8d2d2550a56cc6a9c2b81797bfe90d613.zip
skiboot-71664fd8d2d2550a56cc6a9c2b81797bfe90d613.tar.gz
skiboot-71664fd8d2d2550a56cc6a9c2b81797bfe90d613.tar.bz2
Stack checking extensions
This patch adds: - Normal builds are done with -fstack-protector (we want to investigate using -fstack-protector-strong on gcc4.9 but for now we just use that - Build with STACK_CHECK=1 will use -fstack-protector-all and -pg and will check the stack in mcount Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'Makefile.main')
-rw-r--r--Makefile.main11
1 files changed, 10 insertions, 1 deletions
diff --git a/Makefile.main b/Makefile.main
index 4df3cfd..aff145e 100644
--- a/Makefile.main
+++ b/Makefile.main
@@ -50,7 +50,16 @@ CPPFLAGS += -DBITS_PER_LONG=64 -m64 -DHAVE_BIG_ENDIAN
# causing all our printf's to warn
CPPFLAGS += -ffreestanding
-CFLAGS := -fno-strict-aliasing -fno-stack-protector -pie
+CFLAGS := -fno-strict-aliasing -fstack-protector-all -pie
+
+ifeq ($(STACK_CHECK),1)
+CFLAGS += -fstack-protector-all -pg
+CPPFLAGS += -DSTACK_CHECK_ENABLED
+else
+# XXX Add -fstack-protector-strong on gcc 4.9
+CFLAGS += -fstack-protector
+endif
+
CFLAGS += $(CWARNS) $(OPTS) $(DBG)
LDFLAGS := -m64 -static -nostdlib -Wl,--gc-sections -pie