1https://bugs.gentoo.org/424970
2
3fix from upstream for building with newer glibc versions
4
5From f0cdca2bf2230005025e13e7354fedb612933c96 Mon Sep 17 00:00:00 2001
6From: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
7Date: Fri, 20 Apr 2012 08:14:00 +0000
8Subject: [PATCH] struct siginfo vs. siginfo_t
9
10 Backport from trunk (but apply to gcc/):
11
12 2012-04-20 Thomas Schwinge <thomas@codesourcery.com>
13
14gcc/
15 * config/alpha/linux-unwind.h (alpha_fallback_frame_state): Use
16 siginfo_t instead of struct siginfo.
17 * config/bfin/linux-unwind.h (bfin_fallback_frame_state): Likewise.
18 * config/i386/linux-unwind.h (x86_fallback_frame_state): Likewise.
19 * config/ia64/linux-unwind.h (ia64_fallback_frame_state)
20 (ia64_handle_unwabi): Likewise.
21 * config/mips/linux-unwind.h (mips_fallback_frame_state): Likewise.
22 * config/pa/linux-unwind.h (pa32_fallback_frame_state): Likewise.
23 * config/sh/linux-unwind.h (shmedia_fallback_frame_state)
24 (sh_fallback_frame_state): Likewise.
25 * config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Likewise.
26
27git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch@186613 138bc75d-0d04-0410-961f-82ee72b054a4
28---
29 gcc/ChangeLog | 20 ++++++++++++++++++++
30 gcc/config/alpha/linux-unwind.h | 4 ++--
31 gcc/config/bfin/linux-unwind.h | 6 +++---
32 gcc/config/i386/linux-unwind.h | 6 +++---
33 gcc/config/ia64/linux-unwind.h | 6 +++---
34 gcc/config/mips/linux-unwind.h | 5 +++--
35 gcc/config/pa/linux-unwind.h | 4 ++--
36 gcc/config/sh/linux-unwind.h | 9 +++++----
37 gcc/config/xtensa/linux-unwind.h | 4 ++--
38 9 files changed, 43 insertions(+), 21 deletions(-)
39
40diff --git a/gcc/config/alpha/linux-unwind.h b/gcc/config/alpha/linux-unwind.h
41index 4c811dc..8c04b3b 100644
42--- a/gcc/config/alpha/linux-unwind.h
43+++ b/gcc/config/alpha/linux-unwind.h
44@@ -49,7 +49,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
45 else if (pc[1] == 0x201f015f) /* lda $0,NR_rt_sigreturn */
46 {
47 struct rt_sigframe {
48- struct siginfo info;
49+ siginfo_t info;
50 struct ucontext uc;
51 } *rt_ = context->cfa;
52 sc = &rt_->uc.uc_mcontext;
53diff --git a/gcc/config/bfin/linux-unwind.h b/gcc/config/bfin/linux-unwind.h
54index 88c8285..15bb2f1 100644
55--- a/gcc/config/bfin/linux-unwind.h
56+++ b/gcc/config/bfin/linux-unwind.h
57@@ -48,10 +48,10 @@ bfin_fallback_frame_state (struct _Unwind_Context *context,
58 {
59 struct rt_sigframe {
60 int sig;
61- struct siginfo *pinfo;
62+ siginfo_t *pinfo;
63 void *puc;
64 char retcode[8];
65- struct siginfo info;
66+ siginfo_t info;
67 struct ucontext uc;
68 } *rt_ = context->cfa;
69
70diff --git a/gcc/config/i386/linux-unwind.h b/gcc/config/i386/linux-unwind.h
71index 36ee370..fe0ea3e 100644
72--- a/gcc/config/i386/linux-unwind.h
73+++ b/gcc/config/i386/linux-unwind.h
74@@ -133,9 +133,9 @@ x86_fallback_frame_state (struct _Unwind_Context *context,
75 {
76 struct rt_sigframe {
77 int sig;
78- struct siginfo *pinfo;
79+ siginfo_t *pinfo;
80 void *puc;
81- struct siginfo info;
82+ siginfo_t info;
83 struct ucontext uc;
84 } *rt_ = context->cfa;
85 /* The void * cast is necessary to avoid an aliasing warning.
86diff --git a/gcc/config/ia64/linux-unwind.h b/gcc/config/ia64/linux-unwind.h
87index 93f762d..da31259 100644
88--- a/gcc/config/ia64/linux-unwind.h
89+++ b/gcc/config/ia64/linux-unwind.h
90@@ -47,7 +47,7 @@ ia64_fallback_frame_state (struct _Unwind_Context *context,
91 struct sigframe {
92 char scratch[16];
93 unsigned long sig_number;
94- struct siginfo *info;
95+ siginfo_t *info;
96 struct sigcontext *sc;
97 } *frame_ = (struct sigframe *)context->psp;
98 struct sigcontext *sc = frame_->sc;
99@@ -137,7 +137,7 @@ ia64_handle_unwabi (struct _Unwind_Context *context, _Unwind_FrameState *fs)
100 struct sigframe {
101 char scratch[16];
102 unsigned long sig_number;
103- struct siginfo *info;
104+ siginfo_t *info;
105 struct sigcontext *sc;
106 } *frame = (struct sigframe *)context->psp;
107 struct sigcontext *sc = frame->sc;
108diff --git a/gcc/config/mips/linux-unwind.h b/gcc/config/mips/linux-unwind.h
109index 02f7cd5..094ff58 100644
110--- a/gcc/config/mips/linux-unwind.h
111+++ b/gcc/config/mips/linux-unwind.h
112@@ -75,7 +76,7 @@ mips_fallback_frame_state (struct _Unwind_Context *context,
113 struct rt_sigframe {
114 u_int32_t ass[4]; /* Argument save space for o32. */
115 u_int32_t trampoline[2];
116- struct siginfo info;
117+ siginfo_t info;
118 _sig_ucontext_t uc;
119 } *rt_ = context->cfa;
120 sc = &rt_->uc.uc_mcontext;
121diff --git a/gcc/config/pa/linux-unwind.h b/gcc/config/pa/linux-unwind.h
122index a0560e9..38b4eda 100644
123--- a/gcc/config/pa/linux-unwind.h
124+++ b/gcc/config/pa/linux-unwind.h
125@@ -63,7 +63,7 @@ pa32_fallback_frame_state (struct _Unwind_Context *context,
126 int i;
127 struct sigcontext *sc;
128 struct rt_sigframe {
129- struct siginfo info;
130+ siginfo_t info;
131 struct ucontext uc;
132 } *frame;
133
134diff --git a/gcc/config/sh/linux-unwind.h b/gcc/config/sh/linux-unwind.h
135index 94ed95d..5a78e31 100644
136--- a/gcc/config/sh/linux-unwind.h
137+++ b/gcc/config/sh/linux-unwind.h
138@@ -80,9 +81,9 @@ shmedia_fallback_frame_state (struct _Unwind_Context *context,
139 && (*(unsigned long *) (pc+11) == 0x6ff0fff0))
140 {
141 struct rt_sigframe {
142- struct siginfo *pinfo;
143+ siginfo_t *pinfo;
144 void *puc;
145- struct siginfo info;
146+ siginfo_t info;
147 struct ucontext uc;
148 } *rt_ = context->cfa;
149 /* The void * cast is necessary to avoid an aliasing warning.
150@@ -179,7 +180,7 @@ sh_fallback_frame_state (struct _Unwind_Context *context,
151 && (*(unsigned short *) (pc+14) == 0x00ad))))
152 {
153 struct rt_sigframe {
154- struct siginfo info;
155+ siginfo_t info;
156 struct ucontext uc;
157 } *rt_ = context->cfa;
158 /* The void * cast is necessary to avoid an aliasing warning.
159diff --git a/gcc/config/xtensa/linux-unwind.h b/gcc/config/xtensa/linux-unwind.h
160index 32e9349..2456497 100644
161--- a/gcc/config/xtensa/linux-unwind.h
162+++ b/gcc/config/xtensa/linux-unwind.h
163@@ -62,7 +62,7 @@ xtensa_fallback_frame_state (struct _Unwind_Context *context,
164 struct sigcontext *sc;
165
166 struct rt_sigframe {
167- struct siginfo info;
168+ siginfo_t info;
169 struct ucontext uc;
170 } *rt_;
171
172--
1731.7.9.7
174