Subject: bug#30913: [bug-diffutils] bug#30913: Releasing a build compatible withglibc-2.26+

From: Paul Eggert <[email-masked]>
Date: Fri, 23 Mar 2018 11:44:06 -0700

On 03/23/2018 12:32 AM, The Fireplace wrote:
>
> Alright, I’ve tested using the process you described, with my only 
> change to it being to add a few needed arguments 
> <https://paste.ubuntu.com/p/36DRSHvbqw/> for my setup to ./configure. 
> When I ran make, it ended somewhat quickly, with the following error:
>
> https://paste.ubuntu.com/p/X4s6McxBBd/
>
Thanks. I installed the attached patch into Gnulib and committed this 
into diffutils. Please try the same procedure again for diffutils. 
CC'ing bug-gnulib.

> Alright, I’ve finished testing. I found -Werror, but removing it 
> didn’t seem to work, so I commented out the unused function it was 
> warning me about instead. After doing that, make finished 
> successfully. However, when running make check, one test failed:
>
> ../build-aux/test-driver: line 107:  6309 Aborted                 
> (core dumped) "$@" > $log_file 2>&1
>
> FAIL: test-fcntl
>
> If you need a full log on that, I can get it for you, just tell me 
> which file you need.
>
gnulib-tests/test-fcntl.log would be the first thing. Also, perhaps you 
can run the program gnulib-tests/test-fcntl under GDB and see exactly 
where it crashes.

>From 0d111b0de328d31dd3444ceeec977a7aaa5bb0ed Mon Sep 17 00:00:00 2001
From: Paul Eggert <[email-masked]>
Date: Fri, 23 Mar 2018 11:26:15 -0700
Subject: [PATCH] c-stack: port to recent GCC build

Problem reported by The Fireplace (Bug#30913).
* lib/c-stack.c (die): Define only if used.
---
 ChangeLog     | 6 ++++++
 lib/c-stack.c | 5 +++++
 2 files changed, 11 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 9b8653f78..9839555c7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2018-03-23  Paul Eggert  <[email-masked]>
+
+	c-stack: port to recent GCC build
+	Problem reported by The Fireplace (Bug#30913).
+	* lib/c-stack.c (die): Define only if used.
+
 2018-03-20  Bruno Haible  <[email-masked]>
 
 	euidaccess: Port to native Windows.
diff --git a/lib/c-stack.c b/lib/c-stack.c
index ddb3c939c..c309666fe 100644
--- a/lib/c-stack.c
+++ b/lib/c-stack.c
@@ -99,6 +99,10 @@ static void (* volatile segv_action) (int);
 static char const * volatile program_error_message;
 static char const * volatile stack_overflow_message;
 
+#if ((HAVE_LIBSIGSEGV && ! HAVE_XSI_STACK_OVERFLOW_HEURISTIC) \
+     || (HAVE_SIGALTSTACK && HAVE_DECL_SIGALTSTACK            \
+         && HAVE_STACK_OVERFLOW_HANDLING && SIGINFO_WORKS))
+
 /* Output an error message, then exit with status EXIT_FAILURE if it
    appears to have been a stack overflow, or with a core dump
    otherwise.  This function is async-signal-safe.  */
@@ -124,6 +128,7 @@ die (int signo)
   raise (signo);
   abort ();
 }
+#endif
 
 #if (HAVE_SIGALTSTACK && HAVE_DECL_SIGALTSTACK \
      && HAVE_STACK_OVERFLOW_HANDLING) || HAVE_LIBSIGSEGV
-- 
2.14.3