vapier 16/11/15 19:38:23 Modified: README.history Added: 00_all_0029-configure-accept-__stack_chk_fail_local-for-ssp-supp.patch Log: add upstream fix for default ssp detection w/gcc-6.2 #582690
Revision Changes Path 1.2 src/patchsets/glibc/2.24/README.history file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/README.history?rev=1.2&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/README.history?rev=1.2&content-type=text/plain diff : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/README.history?r1=1.1&r2=1.2 Index: README.history =================================================================== RCS file: /var/cvsroot/gentoo/src/patchsets/glibc/2.24/README.history,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- README.history 14 Nov 2016 20:06:01 -0000 1.1 +++ README.history 15 Nov 2016 19:38:23 -0000 1.2 @@ -1,3 +1,6 @@ +2 15 Nov 2016 + + 00_all_0029-configure-accept-__stack_chk_fail_local-for-ssp-supp.patch + 1 11 Nov 2016 + 00_all_0001-x86-Use-sysdep.o-from-libc.a-in-static-libraries.patch + 00_all_0002-malloc-Preserve-arena-free-list-thread-count-invaria.patch 1.1 src/patchsets/glibc/2.24/00_all_0029-configure-accept-__stack_chk_fail_local-for-ssp-supp.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0029-configure-accept-__stack_chk_fail_local-for-ssp-supp.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.24/00_all_0029-configure-accept-__stack_chk_fail_local-for-ssp-supp.patch?rev=1.1&content-type=text/plain Index: 00_all_0029-configure-accept-__stack_chk_fail_local-for-ssp-supp.patch =================================================================== >From caafe2b2612be88046d7bad4da42dbc2b07fbcd7 Mon Sep 17 00:00:00 2001 From: Denis Kaganovich <maha...@eu.by> Date: Thu, 20 Oct 2016 22:01:39 +0200 Subject: [PATCH] configure: accept __stack_chk_fail_local for ssp support too [BZ #20662] When glibc is compiled with gcc 6.2 that has been configured with --enable-default-pie and --enable-default-ssp, the configure script fails to detect that the compiler has ssp turned on by default when being built for i686-linux-gnu. This is because gcc is emitting __stack_chk_fail_local but the script is only looking for __stack_chk_fail. Support both. Example output: checking whether x86_64-pc-linux-gnu-gcc -m32 -Wl,-O1 -Wl,--as-needed implicitly enables -fstack-protector... no (cherry picked from commit c7409aded44634411a19b0b7178b7faa237835e6) (cherry picked from commit 2bdb3d2ee19a6ac61da0a398b10db380e9c92959) --- configure | 8 +++++--- configure.ac | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/configure b/configure index 17625e104128..9b5a48604809 100755 --- a/configure +++ b/configure @@ -6289,12 +6289,14 @@ echo >&5 "libc_undefs='$libc_undefs'" # symbols (resolved by the linker), so filter out unknown symbols. # This will fail to produce the correct result if the compiler # defaults to -fstack-protector but this produces an undefined symbol -# other than __stack_chk_fail. However, compilers like that have not -# been encountered in practice. -libc_undefs=`echo "$libc_undefs" | egrep '^(foobar|__stack_chk_fail)$'` +# other than __stack_chk_fail or __stack_chk_fail_local. However, +# compilers like that have not been encountered in practice. +libc_undefs=`echo "$libc_undefs" | \ + egrep '^(foobar|__stack_chk_fail|__stack_chk_fail_local)$'` case "$libc_undefs" in foobar) libc_cv_predef_stack_protector=no ;; '__stack_chk_fail +foobar'|'__stack_chk_fail_local foobar') libc_cv_predef_stack_protector=yes ;; *) as_fn_error $? "unexpected symbols in test: $libc_undefs" "$LINENO" 5 ;; esac diff --git a/configure.ac b/configure.ac index 33bcd621804e..8277d9f72797 100644 --- a/configure.ac +++ b/configure.ac @@ -1626,12 +1626,14 @@ echo >&AS_MESSAGE_LOG_FD "libc_undefs='$libc_undefs'" # symbols (resolved by the linker), so filter out unknown symbols. # This will fail to produce the correct result if the compiler # defaults to -fstack-protector but this produces an undefined symbol -# other than __stack_chk_fail. However, compilers like that have not -# been encountered in practice. -libc_undefs=`echo "$libc_undefs" | egrep '^(foobar|__stack_chk_fail)$'` +# other than __stack_chk_fail or __stack_chk_fail_local. However, +# compilers like that have not been encountered in practice. +libc_undefs=`echo "$libc_undefs" | \ + egrep '^(foobar|__stack_chk_fail|__stack_chk_fail_local)$'` case "$libc_undefs" in foobar) libc_cv_predef_stack_protector=no ;; '__stack_chk_fail +foobar'|'__stack_chk_fail_local foobar') libc_cv_predef_stack_protector=yes ;; *) AC_MSG_ERROR([unexpected symbols in test: $libc_undefs]) ;; esac], -- 2.10.2