]> xenbits.xensource.com Git - people/julieng/freebsd.git/commitdiff
Only enable -fstack-protector-strong on gcc 4.9+ and default to -fstack-protector
authorngie <ngie@FreeBSD.org>
Sun, 18 Oct 2015 04:07:40 +0000 (04:07 +0000)
committerngie <ngie@FreeBSD.org>
Sun, 18 Oct 2015 04:07:40 +0000 (04:07 +0000)
when -fstack-protector-strong is not available, like it was implicitly before
r288669

As noted by antoine@, devel/gcc (which is 4.8.5) lacks -fstack-protector-strong
support, whereas 4.8.4i (devel/gcc48) has the support.

Until a version is available which has -fstack-protector-strong support, be
conservative and only enable support with 4.9+.

Reviewed by: pfg
X-MFC with: r288669, r289465
Differential Revision: https://reviews.freebsd.org/D3924

share/mk/bsd.sys.mk

index 68351a0d22a73016eb4a99ef2fb6ce28038ec2a3..cad2b2f796450d0533a619ebc8eddc02f9f25b31 100644 (file)
@@ -150,11 +150,13 @@ CXXFLAGS.clang+=   -Wno-c++11-extensions
     ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "mips"
 .if (${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 30500) || \
     (${COMPILER_TYPE} == "gcc" && \
-     (${COMPILER_VERSION} == 40201 || ${COMPILER_VERSION} >= 40800))
+     (${COMPILER_VERSION} == 40201 || ${COMPILER_VERSION} >= 40900))
 # Don't use -Wstack-protector as it breaks world with -Werror.
 SSP_CFLAGS?=   -fstack-protector-strong
-CFLAGS+=       ${SSP_CFLAGS}
+.else
+SSP_CFLAGS?=   -fstack-protector
 .endif
+CFLAGS+=       ${SSP_CFLAGS}
 .endif # SSP && !ARM && !MIPS
 
 # Allow user-specified additional warning flags, plus compiler specific flag overrides.