Subject: bug#20338: closed (Re: configure test for nopie with gcc 4.4.3 on Trisquel 4.1)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 16 Apr 2015 07:20:05 +0000

Your bug report

#20338: configure test for nopie with gcc 4.4.3 on Trisquel 4.1

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
20338: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20338
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: configure test for nopie with gcc 4.4.3 on Trisquel 4.1
From: Paul Eggert <[email-masked]>
To: [email-masked]
Date: Thu, 16 Apr 2015 00:18:57 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

Thanks for reporting that.  In master commit 
c6e93df20266fe9f8517f14f3b7c367281f988a5 I installed the attached patch, which 
fixed the bug for me.
>From aefb6f4a4b4bc59386d817728760a15e1225aa6f Mon Sep 17 00:00:00 2001
From: Paul Eggert <[email-masked]>
Date: Thu, 16 Apr 2015 00:14:11 -0700
Subject: [PATCH] Pre-4.6 GCC succeeds with unknown option

* configure.ac (emacs_cv_prog_cc_nopie): Port to pre-4.6 GCC.
Fixes: bug#20338
---
 configure.ac | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/configure.ac b/configure.ac
index c35e962..39f3f9f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5021,18 +5021,19 @@ esac
 # -nopie fixes a temacs segfault on Gentoo, OpenBSD, and other systems
 # with "hardened" GCC configurations for some reason (Bug#18784).
 # We don't know why -nopie works, but not segfaulting is better than
-# segfaulting.  Use -Werror when trying -nopie, otherwise clang keeps
-# warning that it does not understand -nopie.
+# segfaulting.  Use ac_c_werror_flag=yes when trying -nopie, otherwise
+# clang keeps warning that it does not understand -nopie, and pre-4.6
+# GCC has a similar problem (Bug#20338).
 AC_CACHE_CHECK([whether $CC accepts -nopie],
   [emacs_cv_prog_cc_nopie],
-  [emacs_save_CFLAGS=$CFLAGS
+  [emacs_save_c_werror_flag=$ac_c_werror_flag
    emacs_save_LDFLAGS=$LDFLAGS
-   CFLAGS="$CFLAGS -Werror"
+   ac_c_werror_flag=yes
    LDFLAGS="$LDFLAGS -nopie"
    AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
      [emacs_cv_prog_cc_nopie=yes],
      [emacs_cv_prog_cc_nopie=no])
-   CFLAGS=$emacs_save_CFLAGS
+   ac_c_werror_flag=$emacs_save_c_werror_flag
    LDFLAGS=$emacs_save_LDFLAGS])
 if test "$emacs_cv_prog_cc_nopie" = yes; then
   LD_SWITCH_SYSTEM_TEMACS="$LD_SWITCH_SYSTEM_TEMACS -nopie"
-- 
2.1.0

Subject: configure test for nopie with gcc 4.4.3 on Trisquel 4.1
From: Glenn Morris <[email-masked]>
To: [email-masked]
Date: Wed, 15 Apr 2015 15:13:04 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Package: emacs
Version: 25.0.50

On fencepost.gnu.org, I noticed the following oddity in config.log:

    configure:30326: checking whether gcc -std=gnu99 accepts -nopie
    configure:30346: gcc -std=gnu99 -o conftest -g3 -O2 -Werror -nopie conftest.c   >&5 
    gcc: unrecognized option '-nopie'
    configure:30346: $? = 0
    configure:30356: result: yes

cat /etc/issue
Trisquel GNU/Linux 4.1 \n \l

gcc --version
gcc (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3

cat test.c
int main ()
 {
   return 0;
 }

gcc -std=gnu99 -o conftest -g3 -O2 -Werror -nopie test.c
gcc: unrecognized option '-nopie'

echo $?
0

Seems odd. Whereas:

gcc -std=gnu99 -o conftest -g3 -O2 -Werror  -foobar test.c
cc1: error: unrecognized command line option "-foobar"

echo $?
1