From 9815bd97561c778ee0bc0c17f245e88e66570111 Mon Sep 17 00:00:00 2001 From: sandra Date: Wed, 1 Nov 2017 02:14:19 +0000 Subject: [PATCH] 2017-10-31 Sandra Loosemore 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 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 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