Only enable -fstack-protector-strong on gcc 4.9+ and default to -fstack-protector

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
This commit is contained in:
Enji Cooper 2015-10-18 04:07:40 +00:00
parent ff19cd13d1
commit a52bef9c99
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=289481

View 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.