blob: 7c53c95c3a3973091f3485a3424a9e3075dfc085 [file] [log] [blame]
From 9815bd97561c778ee0bc0c17f245e88e66570111 Mon Sep 17 00:00:00 2001
From: sandra <sandra@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 1 Nov 2017 02:14:19 +0000
Subject: [PATCH] 2017-10-31 Sandra Loosemore <sandra@codesourcery.com>
gcc/
* configure.ac (--enable-libssp): New.
(gcc_cv_libc_provides_ssp): Check for explicit setting before
trying to determine target-specific default. Adjust indentation.
* configure: Regenerated.
* doc/install.texi (Configuration): Expand --disable-libssp
documentation.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@254288 138bc75d-0d04-0410-961f-82ee72b054a4
---
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Backport [https://patchwork.ozlabs.org/patch/823049/]
gcc/ChangeLog | 9 +++++++++
gcc/configure | 26 +++++++++++++++++++++++---
gcc/configure.ac | 24 ++++++++++++++++++++----
gcc/doc/install.texi | 3 ++-
4 files changed, 54 insertions(+), 8 deletions(-)
Index: gcc-7.3.0/gcc/configure.ac
===================================================================
--- gcc-7.3.0.orig/gcc/configure.ac
+++ gcc-7.3.0/gcc/configure.ac
@@ -5719,10 +5719,25 @@ if test x$gcc_cv_solaris_crts = xyes; th
[Define if the system-provided CRTs are present on Solaris.])
fi
+AC_ARG_ENABLE(libssp,
+[AS_HELP_STRING([--enable-libssp], [enable linking against libssp])],
+[case "${enableval}" in
+ yes|no)
+ ;;
+ *)
+ AC_MSG_ERROR([unknown libssp setting $enableval])
+ ;;
+esac], [])
+
# Test for stack protector support in target C library.
AC_CACHE_CHECK(__stack_chk_fail in target C library,
- gcc_cv_libc_provides_ssp,
- [gcc_cv_libc_provides_ssp=no
+ gcc_cv_libc_provides_ssp,
+ [gcc_cv_libc_provides_ssp=no
+ if test "x$enable_libssp" = "xno"; then
+ gcc_cv_libc_provides_ssp=yes
+ elif test "x$enable_libssp" = "xyes"; then
+ gcc_cv_libc_provides_ssp=no
+ else
case "$target" in
*-*-musl*)
# All versions of musl provide stack protector
@@ -5759,8 +5774,9 @@ AC_CACHE_CHECK(__stack_chk_fail in targe
AC_CHECK_FUNC(__stack_chk_fail,[gcc_cv_libc_provides_ssp=yes],
[echo "no __stack_chk_fail on this target"])
;;
- *) gcc_cv_libc_provides_ssp=no ;;
- esac])
+ *) gcc_cv_libc_provides_ssp=no ;;
+ esac
+ fi])
if test x$gcc_cv_libc_provides_ssp = xyes; then
AC_DEFINE(TARGET_LIBC_PROVIDES_SSP, 1,
Index: gcc-7.3.0/gcc/doc/install.texi
===================================================================
--- gcc-7.3.0.orig/gcc/doc/install.texi
+++ gcc-7.3.0/gcc/doc/install.texi
@@ -1658,7 +1658,8 @@ not be built.
@item --disable-libssp
Specify that the run-time libraries for stack smashing protection
-should not be built.
+should not be built or linked against. On many targets library support
+is provided by the C library instead.
@item --disable-libquadmath
Specify that the GCC quad-precision math library should not be built.
Index: gcc-7.3.0/gcc/configure
===================================================================
--- gcc-7.3.0.orig/gcc/configure
+++ gcc-7.3.0/gcc/configure
@@ -940,6 +940,7 @@ enable_fix_cortex_a53_843419
with_glibc_version
enable_gnu_unique_object
enable_linker_build_id
+enable_libssp
enable_default_ssp
with_long_double_128
with_gc
@@ -1679,6 +1680,7 @@ Optional Features:
extension on glibc systems
--enable-linker-build-id
compiler will always pass --build-id to linker
+ --enable-libssp enable linking against libssp
--enable-default-ssp enable Stack Smashing Protection as default
--enable-maintainer-mode
enable make rules and dependencies not useful (and
@@ -18450,7 +18452,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 18436 "configure"
+#line 18455 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -18556,7 +18558,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 18542 "configure"
+#line 18561 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -25234,6 +25236,7 @@ $as_echo "#define HAVE_AS_SPARC5_VIS4 1"
fi
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for SPARC6 instructions" >&5
$as_echo_n "checking assembler for SPARC6 instructions... " >&6; }
if test "${gcc_cv_as_sparc_sparc6+set}" = set; then :
@@ -25270,6 +25273,7 @@ $as_echo "#define HAVE_AS_SPARC6 1" >>co
fi
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for LEON instructions" >&5
$as_echo_n "checking assembler for LEON instructions... " >&6; }
if test "${gcc_cv_as_sparc_leon+set}" = set; then :
@@ -28947,6 +28951,18 @@ $as_echo "#define HAVE_SOLARIS_CRTS 1" >
fi
+# Check whether --enable-libssp was given.
+if test "${enable_libssp+set}" = set; then :
+ enableval=$enable_libssp; case "${enableval}" in
+ yes|no)
+ ;;
+ *)
+ as_fn_error "unknown libssp setting $enableval" "$LINENO" 5
+ ;;
+esac
+fi
+
+
# Test for stack protector support in target C library.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking __stack_chk_fail in target C library" >&5
$as_echo_n "checking __stack_chk_fail in target C library... " >&6; }
@@ -28954,6 +28970,11 @@ if test "${gcc_cv_libc_provides_ssp+set}
$as_echo_n "(cached) " >&6
else
gcc_cv_libc_provides_ssp=no
+ if test "x$enable_libssp" = "xno"; then
+ gcc_cv_libc_provides_ssp=yes
+ elif test "x$enable_libssp" = "xyes"; then
+ gcc_cv_libc_provides_ssp=no
+ else
case "$target" in
*-*-musl*)
# All versions of musl provide stack protector
@@ -29001,8 +29022,9 @@ else
fi
;;
- *) gcc_cv_libc_provides_ssp=no ;;
+ *) gcc_cv_libc_provides_ssp=no ;;
esac
+ fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_libc_provides_ssp" >&5
$as_echo "$gcc_cv_libc_provides_ssp" >&6; }
@@ -29037,18 +29059,15 @@ fi
# Test for <sys/sdt.h> on the target.
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking sys/sdt.h in the target C library" >&5
-$as_echo_n "checking sys/sdt.h in the target C library... " >&6; }
-have_sys_sdt_h=no
+#GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H])
+#AC_MSG_CHECKING(sys/sdt.h in the target C library)
+#have_sys_sdt_h=no
#if test -f $target_header_dir/sys/sdt.h; then
# have_sys_sdt_h=yes
-#
-#$as_echo "#define HAVE_SYS_SDT_H 1" >>confdefs.h
-#
+# AC_DEFINE(HAVE_SYS_SDT_H, 1,
+# [Define if your target C library provides sys/sdt.h])
#fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_sys_sdt_h" >&5
-$as_echo "$have_sys_sdt_h" >&6; }
+#AC_MSG_RESULT($have_sys_sdt_h)
# Check if TFmode long double should be used by default or not.
# Some glibc targets used DFmode long double, but with glibc 2.4