From 03a8362930c3c4fe49ee6b9cb2ba9f28153b15d3 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Tue, 20 Sep 2011 10:58:18 -0400 Subject: [PATCH] fix broken siginfo_t with _GNU_SOURCE defined this bug was introduced in a recent patch. the problem we're working around is that broken GNU software wants to use "struct siginfo" rather than "siginfo_t", but "siginfo" is not in the reserved namespace and thus not legal for the standard header to use. --- include/signal.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/include/signal.h b/include/signal.h index cbbb42a7..0fdf720c 100644 --- a/include/signal.h +++ b/include/signal.h @@ -8,6 +8,10 @@ extern "C" { #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) +#ifdef _GNU_SOURCE +#define __siginfo siginfo +#endif + #define __NEED_size_t #define __NEED_pid_t #define __NEED_uid_t @@ -95,12 +99,7 @@ union sigval { void *sival_ptr; }; -#ifdef _GNU_SOURCE -struct siginfo -#else -struct __siginfo -#endif -{ +struct __siginfo { int si_signo, si_errno, si_code; union { char __pad[128 - 3*sizeof(int)]; -- 2.20.1