From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 127170 invoked by alias); 20 Oct 2016 20:02:09 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 127160 invoked by uid 89); 20 Oct 2016 20:02:08 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 spammy=denis, Denis, Hx-languages-length:1946, regenerated X-HELO: smtp.gentoo.org From: Magnus Granberg To: libc-alpha Subject: [PATCH] Bug 20662: checking whether x86_64-pc-linux-gnu-gcc implicitly enables -fstack-protector no (32bit gcc 6.2.0 pie and ssp enable) Date: Thu, 20 Oct 2016 20:02:00 -0000 Message-ID: <1784772.eOhSpX4WhJ@laptop1.gw.ume.nu> User-Agent: KMail/5.3.0 (Linux/4.6.4-gentoo; KDE/5.25.0; x86_64; ; ) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="nextPart2959080.t5T5Z5yS4y" Content-Transfer-Encoding: 7Bit X-SW-Source: 2016-10/txt/msg00345.txt.bz2 This is a multi-part message in MIME format. --nextPart2959080.t5T5Z5yS4y Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Content-length: 796 When glibc get compile with gcc 6.2 that have been configured with --enable-default-pie and --enable-default-ssp. The check that check if the compiler use -fstack-protector as default fail on the 32bit part. checking for libgd... no checking for _FORTIFY_SOURCE predefine... yes checking whether x86_64-pc-linux-gnu-gcc -m32 -Wl,-O1 -Wl,--as-needed implicitly enables -fstack-protector... no checking whether the linker provides working __ehdr_start... yes This patch make so we look for __stack_chk_fail_local in the check. Tested on x86_64 multilib Gentoo Changelog: 2016-10-20 Magnus Granberg Denis Kaganovich * configure.ac: Add check for __stack_chk_fail_local in libc_cv_predef_stack_protector check. * configure: Regenerated. --- --nextPart2959080.t5T5Z5yS4y Content-Disposition: attachment; filename="glibc-gcc6.patch" Content-Transfer-Encoding: 7Bit Content-Type: text/x-patch; charset="UTF-8"; name="glibc-gcc6.patch" Content-length: 1039 diff --git a/configure.ac b/configure.ac index a64aeb9..de42b6b 100644 --- a/configure.ac +++ b/configure.ac @@ -1667,12 +1668,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], --nextPart2959080.t5T5Z5yS4y--