[Skiboot] [PATCH] Makefile: Disable stack protector due to gcc problems

Benjamin Herrenschmidt benh at kernel.crashing.org
Wed Dec 21 18:26:32 AEDT 2016


Depending on how it was built, gcc will use the canary from a global
(works for us) or from the TLS (doesn't work for us and accesses
random stuff instead).

Fixing that would be tricky. There are talks of adding a gcc option
to force use of globals, but in the meantime, disable the stack
protector

Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
---
 Makefile.main | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/Makefile.main b/Makefile.main
index 238a1e9..1c448f7 100644
--- a/Makefile.main
+++ b/Makefile.main
@@ -78,12 +78,17 @@ ifeq ($(SKIBOOT_GCOV),1)
 CFLAGS += -fprofile-arcs -ftest-coverage -DSKIBOOT_GCOV=1
 endif
 
+# Stack protector disabled for now. gcc tends to use the TLS to
+# access the canary (depending on how gcc was built), and this won't
+# work for us.
+#
 ifeq ($(STACK_CHECK),1)
-CFLAGS += -fstack-protector-all -pg
+#CFLAGS += -fstack-protector-all -pg
+CFLAGS += -pg
 CPPFLAGS += -DSTACK_CHECK_ENABLED
-else
-CFLAGS += -fstack-protector
-CFLAGS += $(call try-cflag,$(CC),-fstack-protector-strong)
+#else
+#CFLAGS += -fstack-protector
+#CFLAGS += $(call try-cflag,$(CC),-fstack-protector-strong)
 endif
 
 CFLAGS += $(call try-cflag,$(CC),-Wjump-misses-init) \




More information about the Skiboot mailing list