Subject: bug#15463: closed (Re: [bug-diffutils] bug#15463: FTBFS c-stack under gcc 4.8 with --enable-gcc-warnings)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 26 Sep 2013 19:22:03 +0000

Your bug report

#15463: FTBFS c-stack under gcc 4.8 with --enable-gcc-warnings

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

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

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

Subject: Re: [bug-diffutils] bug#15463: FTBFS c-stack under gcc 4.8 with --enable-gcc-warnings
From: Paul Eggert <[email-masked]>
To: Eric Blake <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Thu, 26 Sep 2013 12:21:44 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

On 09/25/13 11:01, Eric Blake wrote:
> I don't know if this is a case of diffutils being too aggressive about
> the warnings it uses on gnulib files

Yes, that sounds good enough.  I pushed this into diffutils:

>From 1d69c1591812101e2dffa64c45e2f1c3c901fadc Mon Sep 17 00:00:00 2001
From: Paul Eggert <[email-masked]>
Date: Thu, 26 Sep 2013 12:20:00 -0700
Subject: [PATCH] build: omit -Wsuggest-attribute=pure for lib

* configure.ac (WARN_CFLAGS): Omit -Wsuggest-attribute=pure
when compiling the lib subdirectory.  Reported for Fedora 19
by Eric Blake in <http://bugs.gnu.org/15463>.
---
 configure.ac | 1 +
 1 file changed, 1 insertion(+)

diff --git a/configure.ac b/configure.ac
index 90bebc9..f7efcb1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -123,6 +123,7 @@ if test "$gl_gcc_warnings" = yes; then
   nw="$nw -Wunused-macros"
   nw="$nw -Wmissing-prototypes"
   nw="$nw -Wold-style-definition"
+  nw="$nw -Wsuggest-attribute=pure"
   gl_MANYWARN_COMPLEMENT([GNULIB_WARN_CFLAGS], [$WARN_CFLAGS], [$nw])
   AC_SUBST([GNULIB_WARN_CFLAGS])
 fi
-- 
1.8.3.1

Subject: FTBFS c-stack under gcc 4.8 with --enable-gcc-warnings
From: Eric Blake <[email-masked]>
To: [email-masked], Bug-gnulib <[email-masked]>
Date: Wed, 25 Sep 2013 12:01:01 -0600
List-Id: <debbugs-submit.debbugs.gnu.org>

I tried to build diffutils from git on my Fedora 19 machine:

$ gcc --version |head -n1
gcc (GCC) 4.8.1 20130603 (Red Hat 4.8.1-1)

It's dying inside of gnulib's c-stack:

  CC       c-stack.o
c-stack.c: In function 'segv_handler':
c-stack.c:163:12: error: function might be candidate for attribute
'pure' if it is known to return normally [-Werror=suggest-attribute=pure]
 static int segv_handler (void *address __attribute__ ((unused)),
            ^
cc1: all warnings being treated as errors

I don't know if this is a case of diffutils being too aggressive about
the warnings it uses on gnulib files (after all, at least coreutils
explicitly uses fewer warnings for gnulib files than for its own), or if
it is something we should be fixing in gnulib.

More interesting, the function is only pure if DEBUG was not enabled
during compilation, so if we do decide to fix it in gnulib, the fix has
to use the same condition on whether to apply the attribute.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org