aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>2015-01-22 20:45:59 +0000
committerJakub Jelinek <jakub@gcc.gnu.org>2015-01-22 21:45:59 +0100
commit33eaef4bf7f7b0650236c6ce2f5512344b3acbbf (patch)
tree50656c1f5d0fdc2f836eb9a8352cb3ff241e1902
parent19ac475f49151476e2570b737f3ba31896417e89 (diff)
downloadgcc-33eaef4bf7f7b0650236c6ce2f5512344b3acbbf.zip
gcc-33eaef4bf7f7b0650236c6ce2f5512344b3acbbf.tar.gz
gcc-33eaef4bf7f7b0650236c6ce2f5512344b3acbbf.tar.bz2
gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit for !TARGET_LIBC_PROVIDES_SSP version and...
* 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}. Co-Authored-By: Jakub Jelinek <jakub@redhat.com> From-SVN: r220014
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/config/freebsd.h4
-rw-r--r--gcc/gcc.c7
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
diff --git a/gcc/gcc.c b/gcc/gcc.c
index c1e5ca5..71c1f72 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -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