ソースを参照

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.
Rich Felker 13 年 前
コミット
03a8362930
1 ファイル変更5 行追加6 行削除
  1. 5 6
      include/signal.h

+ 5 - 6
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)];