All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [oe-commits] [openembedded-core] 03/19: gcc-runtime: Disable gcc version of libssp
       [not found] ` <20180509094811.2F73823742D@git.openembedded.org>
@ 2018-05-11 10:23   ` Martin Jansa
  2018-05-11 17:44     ` Khem Raj
  0 siblings, 1 reply; 3+ messages in thread
From: Martin Jansa @ 2018-05-11 10:23 UTC (permalink / raw)
  To: openembedded-devel, Khem Raj; +Cc: openembedded-commits

Should perl-ptest runtime depend on libssp with these changes applied?

Or should there be something like VIRTUAL-RUNTIME_libssp in
e.g. meta/conf/distro/include/tclibc-glibc.inc to replace RUNTIMELIBSSP:
meta/recipes-devtools/gcc/gcc-runtime.inc:RUNTIMELIBSSP ?= ""
meta/recipes-devtools/gcc/gcc-runtime.inc:RUNTIMELIBSSP_mingw32 ?= "libssp"

and to be used from perl-ptest?
meta/recipes-devtools/perl/perl-ptest.inc:RDEPENDS_${PN}-ptest +=
"${PN}-modules ${PN}-doc ${PN}-misc sed libssp"

I've noticed this in do_rootfs failure:

 * Solver encountered 1 problem(s):
 * Problem 1/1:
 *   - nothing provides libssp needed by perl-ptest-5.24.1-r0.3.raspberrypi3



On Wed, May 9, 2018 at 11:48 AM <git@git.openembedded.org> wrote:

> This is an automated email from the git hooks/post-receive script.
>
> rpurdie pushed a commit to branch master
> in repository openembedded-core.
>
> commit 6c14f99936f8c8c9b9d9f40a6b0c69675ea9a566
> Author: Khem Raj <raj.khem@gmail.com>
> AuthorDate: Fri Apr 13 22:39:07 2018 -0700
>
>     gcc-runtime: Disable gcc version of libssp
>
>     libssp is implemented fully in glibc as well as in musl
>     so we really do not need the gcc version of this library
>     except may be for mingw, where we keep it enabled anyway
>     gcc in OE is built with the knowledge that C library
>     already provides libssp implementation, we should therefore
>     not need the gcc implementation of same.
>
>     libssp_nonshared piece is a detail which is needed when gcc
>     is the compiler, in glibc this is part of libc_nonshared.a
>     already and libc_nonshared.a is linked always when linking
>     with -lc becuase libc.so in glibc is actually a linker script
>
>     GROUP ( /usr/lib/libc.so.6 /usr/lib/libc_nonshared.a  AS_NEEDED (
> /usr/lib/ld-linux-x86-64.so.2 ) )
>
>     which automatically links in the needed runtime bits, this however
>     is not the case for musl, where core SSP APIs are implemented in full
>     but compiler specific runtime isn't, for this we add a new package
>     called libssp_nonshared which generate the needed runtime stub
>     and gcc is already carrying patch to link to libssp_nonshared.a
>     on musl
>
>     This should fix a long standing problem where static PIE executable
>     were not buildable with OE since it was conflicting SSP implementation
>     one from C library and the other one from gcc and we end up with
>     duplicate symbol errors during linking.
>
>     Backport a patch from trunk which enhances enable|disable-libssp
>     to not only disable building libssp but also not emit the gcc
>     specs to use it for subsequent linking when stack-protector options
>     are used on compiler cmdline
>
>     Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
>  meta/recipes-devtools/gcc/gcc-7.3.inc              |   7 +-
>  ...049-gcc-override-TARGET_LIBC_PROVIDES_SSP.patch | 204
> +++++++++++++++++++++
>  meta/recipes-devtools/gcc/gcc-runtime.inc          |   4 +-
>  3 files changed, 212 insertions(+), 3 deletions(-)
>
> diff --git a/meta/recipes-devtools/gcc/gcc-7.3.inc
> b/meta/recipes-devtools/gcc/gcc-7.3.inc
> index d968c32..0586182 100644
> --- a/meta/recipes-devtools/gcc/gcc-7.3.inc
> +++ b/meta/recipes-devtools/gcc/gcc-7.3.inc
> @@ -72,6 +72,7 @@ SRC_URI = "\
>
> file://0045-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch \
>             file://0047-sync-gcc-stddef.h-with-musl.patch \
>             file://0048-gcc-Enable-static-PIE.patch \
> +           file://0049-gcc-override-TARGET_LIBC_PROVIDES_SSP.patch \
>             file://fix-segmentation-fault-precompiled-hdr.patch \
>             file://no-sse-fix-test-case-failures.patch \
>             ${BACKPORTS} \
> @@ -93,10 +94,12 @@ FORTRAN = ""
>  JAVA = ""
>
>  LTO = "--enable-lto"
> +SSP ?= "--disable-libssp"
> +SSP_mingw32 = "--enable-libssp"
>
>  EXTRA_OECONF_BASE = "\
>      ${LTO} \
> -    --enable-libssp \
> +    ${SSP} \
>      --enable-libitm \
>      --disable-bootstrap \
>      --disable-libmudflap \
> @@ -120,7 +123,7 @@ EXTRA_OECONF_INITIAL = "\
>      --disable-plugin \
>      --enable-decimal-float=no \
>      --without-isl \
> -    gcc_cv_libc_provides_ssp=yes \
> +    --disable-libssp \
>  "
>
>  EXTRA_OECONF_PATHS = "\
> diff --git
> a/meta/recipes-devtools/gcc/gcc-7.3/0049-gcc-override-TARGET_LIBC_PROVIDES_SSP.patch
> b/meta/recipes-devtools/gcc/gcc-7.3/0049-gcc-override-TARGET_LIBC_PROVIDES_SSP.patch
> new file mode 100644
> index 0000000..7c53c95
> --- /dev/null
> +++
> b/meta/recipes-devtools/gcc/gcc-7.3/0049-gcc-override-TARGET_LIBC_PROVIDES_SSP.patch
> @@ -0,0 +1,204 @@
> +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
> diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc
> b/meta/recipes-devtools/gcc/gcc-runtime.inc
> index 7629fa5..72b8081 100644
> --- a/meta/recipes-devtools/gcc/gcc-runtime.inc
> +++ b/meta/recipes-devtools/gcc/gcc-runtime.inc
> @@ -22,8 +22,10 @@ RUNTIMELIBITM_nios2 = ""
>  RUNTIMELIBITM_microblaze = ""
>  RUNTIMELIBITM_riscv32 = ""
>  RUNTIMELIBITM_riscv64 = ""
> +RUNTIMELIBSSP ?= ""
> +RUNTIMELIBSSP_mingw32 ?= "libssp"
>
> -RUNTIMETARGET = "libssp libstdc++-v3 libgomp libatomic ${RUNTIMELIBITM} \
> +RUNTIMETARGET = "${RUNTIMELIBSSP} libstdc++-v3 libgomp libatomic
> ${RUNTIMELIBITM} \
>      ${@bb.utils.contains_any('FORTRAN', [',fortran',',f77'],
> 'libquadmath', '', d)} \
>  "
>  RUNTIMETARGET_append_x86 = " libmpx"
>
> --
> To stop receiving notification emails like this one, please contact
> the administrator of this repository.
> --
> _______________________________________________
> Openembedded-commits mailing list
> Openembedded-commits@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-commits
>


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [oe-commits] [openembedded-core] 03/19: gcc-runtime: Disable gcc version of libssp
  2018-05-11 10:23   ` [oe-commits] [openembedded-core] 03/19: gcc-runtime: Disable gcc version of libssp Martin Jansa
@ 2018-05-11 17:44     ` Khem Raj
  2018-05-11 18:11       ` [PATCH] perl-ptest: drop runtime dependency on libssp Martin Jansa
  0 siblings, 1 reply; 3+ messages in thread
From: Khem Raj @ 2018-05-11 17:44 UTC (permalink / raw)
  To: Martin Jansa; +Cc: openembedded-devel, openembedded-commits

On Fri, May 11, 2018 at 3:23 AM, Martin Jansa <martin.jansa@gmail.com> wrote:
> Should perl-ptest runtime depend on libssp with these changes applied?
>

it should not. We use ssp impl directly from glibc/musl now. libssp
should be removed from rdeps.

> Or should there be something like VIRTUAL-RUNTIME_libssp in e.g.
> meta/conf/distro/include/tclibc-glibc.inc to replace RUNTIMELIBSSP:
> meta/recipes-devtools/gcc/gcc-runtime.inc:RUNTIMELIBSSP ?= ""
> meta/recipes-devtools/gcc/gcc-runtime.inc:RUNTIMELIBSSP_mingw32 ?= "libssp"
>
> and to be used from perl-ptest?
> meta/recipes-devtools/perl/perl-ptest.inc:RDEPENDS_${PN}-ptest +=
> "${PN}-modules ${PN}-doc ${PN}-misc sed libssp"
>
> I've noticed this in do_rootfs failure:
>
>  * Solver encountered 1 problem(s):
>  * Problem 1/1:
>  *   - nothing provides libssp needed by perl-ptest-5.24.1-r0.3.raspberrypi3
>
>
>
> On Wed, May 9, 2018 at 11:48 AM <git@git.openembedded.org> wrote:
>>
>> This is an automated email from the git hooks/post-receive script.
>>
>> rpurdie pushed a commit to branch master
>> in repository openembedded-core.
>>
>> commit 6c14f99936f8c8c9b9d9f40a6b0c69675ea9a566
>> Author: Khem Raj <raj.khem@gmail.com>
>> AuthorDate: Fri Apr 13 22:39:07 2018 -0700
>>
>>     gcc-runtime: Disable gcc version of libssp
>>
>>     libssp is implemented fully in glibc as well as in musl
>>     so we really do not need the gcc version of this library
>>     except may be for mingw, where we keep it enabled anyway
>>     gcc in OE is built with the knowledge that C library
>>     already provides libssp implementation, we should therefore
>>     not need the gcc implementation of same.
>>
>>     libssp_nonshared piece is a detail which is needed when gcc
>>     is the compiler, in glibc this is part of libc_nonshared.a
>>     already and libc_nonshared.a is linked always when linking
>>     with -lc becuase libc.so in glibc is actually a linker script
>>
>>     GROUP ( /usr/lib/libc.so.6 /usr/lib/libc_nonshared.a  AS_NEEDED (
>> /usr/lib/ld-linux-x86-64.so.2 ) )
>>
>>     which automatically links in the needed runtime bits, this however
>>     is not the case for musl, where core SSP APIs are implemented in full
>>     but compiler specific runtime isn't, for this we add a new package
>>     called libssp_nonshared which generate the needed runtime stub
>>     and gcc is already carrying patch to link to libssp_nonshared.a
>>     on musl
>>
>>     This should fix a long standing problem where static PIE executable
>>     were not buildable with OE since it was conflicting SSP implementation
>>     one from C library and the other one from gcc and we end up with
>>     duplicate symbol errors during linking.
>>
>>     Backport a patch from trunk which enhances enable|disable-libssp
>>     to not only disable building libssp but also not emit the gcc
>>     specs to use it for subsequent linking when stack-protector options
>>     are used on compiler cmdline
>>
>>     Signed-off-by: Khem Raj <raj.khem@gmail.com>
>> ---
>>  meta/recipes-devtools/gcc/gcc-7.3.inc              |   7 +-
>>  ...049-gcc-override-TARGET_LIBC_PROVIDES_SSP.patch | 204
>> +++++++++++++++++++++
>>  meta/recipes-devtools/gcc/gcc-runtime.inc          |   4 +-
>>  3 files changed, 212 insertions(+), 3 deletions(-)
>>
>> diff --git a/meta/recipes-devtools/gcc/gcc-7.3.inc
>> b/meta/recipes-devtools/gcc/gcc-7.3.inc
>> index d968c32..0586182 100644
>> --- a/meta/recipes-devtools/gcc/gcc-7.3.inc
>> +++ b/meta/recipes-devtools/gcc/gcc-7.3.inc
>> @@ -72,6 +72,7 @@ SRC_URI = "\
>>
>> file://0045-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch \
>>             file://0047-sync-gcc-stddef.h-with-musl.patch \
>>             file://0048-gcc-Enable-static-PIE.patch \
>> +           file://0049-gcc-override-TARGET_LIBC_PROVIDES_SSP.patch \
>>             file://fix-segmentation-fault-precompiled-hdr.patch \
>>             file://no-sse-fix-test-case-failures.patch \
>>             ${BACKPORTS} \
>> @@ -93,10 +94,12 @@ FORTRAN = ""
>>  JAVA = ""
>>
>>  LTO = "--enable-lto"
>> +SSP ?= "--disable-libssp"
>> +SSP_mingw32 = "--enable-libssp"
>>
>>  EXTRA_OECONF_BASE = "\
>>      ${LTO} \
>> -    --enable-libssp \
>> +    ${SSP} \
>>      --enable-libitm \
>>      --disable-bootstrap \
>>      --disable-libmudflap \
>> @@ -120,7 +123,7 @@ EXTRA_OECONF_INITIAL = "\
>>      --disable-plugin \
>>      --enable-decimal-float=no \
>>      --without-isl \
>> -    gcc_cv_libc_provides_ssp=yes \
>> +    --disable-libssp \
>>  "
>>
>>  EXTRA_OECONF_PATHS = "\
>> diff --git
>> a/meta/recipes-devtools/gcc/gcc-7.3/0049-gcc-override-TARGET_LIBC_PROVIDES_SSP.patch
>> b/meta/recipes-devtools/gcc/gcc-7.3/0049-gcc-override-TARGET_LIBC_PROVIDES_SSP.patch
>> new file mode 100644
>> index 0000000..7c53c95
>> --- /dev/null
>> +++
>> b/meta/recipes-devtools/gcc/gcc-7.3/0049-gcc-override-TARGET_LIBC_PROVIDES_SSP.patch
>> @@ -0,0 +1,204 @@
>> +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
>> diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc
>> b/meta/recipes-devtools/gcc/gcc-runtime.inc
>> index 7629fa5..72b8081 100644
>> --- a/meta/recipes-devtools/gcc/gcc-runtime.inc
>> +++ b/meta/recipes-devtools/gcc/gcc-runtime.inc
>> @@ -22,8 +22,10 @@ RUNTIMELIBITM_nios2 = ""
>>  RUNTIMELIBITM_microblaze = ""
>>  RUNTIMELIBITM_riscv32 = ""
>>  RUNTIMELIBITM_riscv64 = ""
>> +RUNTIMELIBSSP ?= ""
>> +RUNTIMELIBSSP_mingw32 ?= "libssp"
>>
>> -RUNTIMETARGET = "libssp libstdc++-v3 libgomp libatomic ${RUNTIMELIBITM} \
>> +RUNTIMETARGET = "${RUNTIMELIBSSP} libstdc++-v3 libgomp libatomic
>> ${RUNTIMELIBITM} \
>>      ${@bb.utils.contains_any('FORTRAN', [',fortran',',f77'],
>> 'libquadmath', '', d)} \
>>  "
>>  RUNTIMETARGET_append_x86 = " libmpx"
>>
>> --
>> To stop receiving notification emails like this one, please contact
>> the administrator of this repository.
>> --
>> _______________________________________________
>> Openembedded-commits mailing list
>> Openembedded-commits@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-commits


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH] perl-ptest: drop runtime dependency on libssp
  2018-05-11 17:44     ` Khem Raj
@ 2018-05-11 18:11       ` Martin Jansa
  0 siblings, 0 replies; 3+ messages in thread
From: Martin Jansa @ 2018-05-11 18:11 UTC (permalink / raw)
  To: openembedded-core

* We use ssp impl directly from glibc/musl now.

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
 meta/recipes-devtools/perl/perl-ptest.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/recipes-devtools/perl/perl-ptest.inc b/meta/recipes-devtools/perl/perl-ptest.inc
index 6a7a2d7cb3..8d46448566 100644
--- a/meta/recipes-devtools/perl/perl-ptest.inc
+++ b/meta/recipes-devtools/perl/perl-ptest.inc
@@ -50,7 +50,7 @@ python populate_packages_prepend() {
             '${PN}-ptest%s', '%s', recursive=True, match_path=True)
 }
 
-RDEPENDS_${PN}-ptest += "${PN}-modules ${PN}-doc ${PN}-misc sed libssp"
+RDEPENDS_${PN}-ptest += "${PN}-modules ${PN}-doc ${PN}-misc sed"
 
 # The perl-ptest package contains Perl internal modules and generating file
 # dependencies for it causes problems.
-- 
2.17.0



^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-05-11 18:11 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <152585929079.27246.16259308060481767272@git.openembedded.org>
     [not found] ` <20180509094811.2F73823742D@git.openembedded.org>
2018-05-11 10:23   ` [oe-commits] [openembedded-core] 03/19: gcc-runtime: Disable gcc version of libssp Martin Jansa
2018-05-11 17:44     ` Khem Raj
2018-05-11 18:11       ` [PATCH] perl-ptest: drop runtime dependency on libssp Martin Jansa

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.