diff options
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/config/freebsd.h | 4 | ||||
-rw-r--r-- | gcc/gcc.c | 7 |
3 files changed, 17 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5a3ec54..c166933 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2015-01-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + Jakub Jelinek <jakub@redhat.com> + + * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit + for !TARGET_LIBC_PROVIDES_SSP version and + -fstack-protector-{all,strong,explicit} otherwise. + * config/freebsd.h (LINK_SSP_SPEC): Handle + -fstack-protector-{strong,explicit}. + 2015-01-22 Jan Hubicka <hubicka@ucw.cz> H.J. Lu <hongjiu.lu@intel.com> diff --git a/gcc/config/freebsd.h b/gcc/config/freebsd.h index 215451e..0e8e63e 100644 --- a/gcc/config/freebsd.h +++ b/gcc/config/freebsd.h @@ -49,7 +49,9 @@ along with GCC; see the file COPYING3. If not see #endif #ifdef TARGET_LIBC_PROVIDES_SSP -#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all:-lssp_nonshared}" +#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ + "|fstack-protector-strong|fstack-protector-explicit" \ + ":-lssp_nonshared}" #endif #undef TARGET_LIBC_HAS_FUNCTION @@ -728,9 +728,12 @@ proper position among the other output files. */ #ifndef LINK_SSP_SPEC #ifdef TARGET_LIBC_PROVIDES_SSP -#define LINK_SSP_SPEC "%{fstack-protector:}" +#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ + "|fstack-protector-strong|fstack-protector-explicit:}" #else -#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-strong|fstack-protector-all:-lssp_nonshared -lssp}" +#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ + "|fstack-protector-strong|fstack-protector-explicit" \ + ":-lssp_nonshared -lssp}" #endif #endif |