Message ID | 59DADB2B.5090608@codesourcery.com |
---|---|
State | New |
Headers | show |
Series | configure option to override TARGET_LIBC_PROVIDES_SSP | expand |
The install.texi documentation for --disable-libssp only says "Specify that the run-time libraries for stack smashing protection should not be built.". I think it needs updating to mention these additional effects as well.
On 10/09/2017 09:13 AM, Joseph Myers wrote: > The install.texi documentation for --disable-libssp only says "Specify > that the run-time libraries for stack smashing protection should not be > built.". I think it needs updating to mention these additional effects as > well. Oops. :") How about this version? -Sandra 2017-10-09 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. Index: gcc/configure.ac =================================================================== --- gcc/configure.ac (revision 253502) +++ gcc/configure.ac (working copy) @@ -5751,10 +5751,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 @@ -5791,8 +5806,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/doc/install.texi =================================================================== --- gcc/doc/install.texi (revision 253502) +++ gcc/doc/install.texi (working copy) @@ -1665,7 +1665,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.
On Mon, 9 Oct 2017, Sandra Loosemore wrote: >> The install.texi documentation for --disable-libssp only says "Specify > that the run-time libraries for stack smashing protection should not be >> built.". I think it needs updating to mention these additional effects as >> well. > Oops. :") How about this version? Makes sense to me, thanks. (Though better give Joseph a day or two to chime in as well, since he spotted this originally.) Gerald
This one. https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00537.html There was discussion about documenting this, but the actual configure change hasn't been reviewed yet. -Sandra
On 10/09/2017 02:08 PM, Sandra Loosemore wrote: > On 10/09/2017 09:13 AM, Joseph Myers wrote: >> The install.texi documentation for --disable-libssp only says "Specify >> that the run-time libraries for stack smashing protection should not be >> built.". I think it needs updating to mention these additional effects as >> >> well. > > Oops. :") How about this version? > > -Sandra > > > > libssp.log > > > 2017-10-09 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. OK. Jeff
On Mon, 9 Oct 2017, Sandra Loosemore wrote: > On 10/09/2017 09:13 AM, Joseph Myers wrote: > > The install.texi documentation for --disable-libssp only says "Specify > > that the run-time libraries for stack smashing protection should not be > > built.". I think it needs updating to mention these additional effects as > > well. > > Oops. :") How about this version? OK with the argument to AC_MSG_ERROR []-quoted (i.e., AC_MSG_ERROR([unknown libssp setting $enableval]) which should not change the generated configure script) - the preferred autoconf style is generally for each macro argument to have one level of [] quotes unless there is some reason for a different level of quoting, although gcc/configure.ac is not wonderfully consistent about this.
Index: gcc/configure.ac =================================================================== --- gcc/configure.ac (revision 253502) +++ gcc/configure.ac (working copy) @@ -5751,10 +5751,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 @@ -5791,8 +5806,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,