This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: HEADSUP: toolchain modifications required for built-in SSP


On 04/12/17 10:05, Corinna Vinschen wrote:
On Dec  4 08:32, Sebastian Huber wrote:
It would be nice to have a snapshot before the next release to test this. Is
the next release 3.0.0 (due to the 64-bit time_t) or 2.6.0?

On 30/11/17 11:41, Yaakov Selkowitz wrote:
gcc8-ssp-newlib.patch


2017-11-29  Yaakov Selkowitz<yselkowi@redhat.com>

	gcc/
	* configure.ac (gcc_cv_libc_provides_ssp): Define as yes
	on Newlib-based targets if new builtin SSP support is present.
	* configure: Regenerate.

Index: gcc/configure
===================================================================
--- gcc/configure	(revision 255250)
+++ gcc/configure	(working copy)
@@ -29100,6 +29100,12 @@
   fi
           ;;
+       *-*-cygwin* | *-*-rtems* | *-*-eabi* | *-*-elf* | mmix-knuth-mmixware)
Instead of this target enumeration, could we not use an $EGREP approach
similar to some other libc variants?
Can you make up an example?

The other libc use something like this:

       *-*-linux* | *-*-kfreebsd*-gnu)
      # glibc 2.4 and later provides __stack_chk_fail and
      # either __stack_chk_guard, or TLS access to stack guard canary.
      GCC_GLIBC_VERSION_GTE_IFELSE([2], [4], [gcc_cv_libc_provides_ssp=yes], [
      [if test -f $target_header_dir/features.h \
     && $EGREP '^[     ]*#[     ]*define[ ]+__GNU_LIBRARY__[     ]+([1-9][0-9]|[6-9])' \
        $target_header_dir/features.h > /dev/null; then
    if $EGREP '^[     ]*#[     ]*define[     ]+__UCLIBC__[     ]+1' \
         $target_header_dir/features.h > /dev/null && \
         test -f $target_header_dir/bits/uClibc_config.h && \
         $EGREP '^[     ]*#[     ]*define[     ]+__UCLIBC_HAS_SSP__[     ]+1' \
         $target_header_dir/bits/uClibc_config.h > /dev/null; then
      gcc_cv_libc_provides_ssp=yes
    fi
      # all versions of Bionic support stack protector
      elif test -f $target_header_dir/sys/cdefs.h \
        && $EGREP '^[  ]*#[    ]*define[ ]+__BIONIC__[   ]+1' \
           $target_header_dir/sys/cdefs.h > /dev/null; then
         gcc_cv_libc_provides_ssp=yes
      fi]])

The patch uses "*-*-cygwin* | *-*-rtems* | *-*-eabi* | *-*-elf* | mmix-knuth-mmixware)" to determine if the libc is Newlib. It will probably not work with a "*-*-phoenix*" target with uses Newlib.

--
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber@embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]