summaryrefslogtreecommitdiffstats
path: root/share/mk/bsd.sys.mk
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2008-06-25 21:33:28 +0000
committerru <ru@FreeBSD.org>2008-06-25 21:33:28 +0000
commit8735fdbd4ceeb78442804b393d49f5e7f56c1967 (patch)
tree3821989620f33150162837ccfad067791bb346ca /share/mk/bsd.sys.mk
parent762f29e950fd1511beb76c95c5014bb779d4f5ed (diff)
downloadFreeBSD-src-8735fdbd4ceeb78442804b393d49f5e7f56c1967.zip
FreeBSD-src-8735fdbd4ceeb78442804b393d49f5e7f56c1967.tar.gz
Enable GCC stack protection (aka Propolice) for userland:
- It is opt-out for now so as to give it maximum testing, but it may be turned opt-in for stable branches depending on the consensus. You can turn it off with WITHOUT_SSP. - WITHOUT_SSP was previously used to disable the build of GNU libssp. It is harmless to steal the knob as SSP symbols have been provided by libc for a long time, GNU libssp should not have been much used. - SSP is disabled in a few corners such as system bootstrap programs (sys/boot), process bootstrap code (rtld, csu) and SSP symbols themselves. - It should be safe to use -fstack-protector-all to build world, however libc will be automatically downgraded to -fstack-protector because it breaks rtld otherwise. - This option is unavailable on ia64. Enable GCC stack protection (aka Propolice) for kernel: - It is opt-out for now so as to give it maximum testing. - Do not compile your kernel with -fstack-protector-all, it won't work. Submitted by: Jeremie Le Hen <jeremie@le-hen.org>
Diffstat (limited to 'share/mk/bsd.sys.mk')
-rw-r--r--share/mk/bsd.sys.mk6
1 files changed, 6 insertions, 0 deletions
diff --git a/share/mk/bsd.sys.mk b/share/mk/bsd.sys.mk
index 96432c1..920fc25 100644
--- a/share/mk/bsd.sys.mk
+++ b/share/mk/bsd.sys.mk
@@ -74,5 +74,11 @@ CWARNFLAGS += -Werror
CWARNFLAGS += -Wno-unknown-pragmas
.endif
+.if ${MK_SSP} != "no" && ${CC} != "icc" && ${MACHINE_ARCH} != "ia64"
+# Don't use -Wstack-protector as it breaks world with -Werror.
+SSP_CFLAGS ?= -fstack-protector
+CFLAGS += ${SSP_CFLAGS}
+.endif
+
# Allow user-specified additional warning flags
CFLAGS += ${CWARNFLAGS}
OpenPOWER on IntegriCloud