1Trivally backported the upstream commit
2b685411208e0aaa79190d54faf945763514706b8
3(different directory, some files not present, etc.)
4We only really use x86* from those, probably, so I didn't bother much.
5diff --git a/gcc/config/alpha/linux-unwind.h b/gcc/config/alpha/linux-unwind.h
6index bdbba4a..e84812e 100644
7--- a/gcc/config/alpha/linux-unwind.h
8+++ b/gcc/config/alpha/linux-unwind.h
9@@ -51,7 +51,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
10 {
11 struct rt_sigframe {
12 siginfo_t info;
13- struct ucontext uc;
14+ ucontext_t uc;
15 } *rt_ = context->cfa;
16 sc = &rt_->uc.uc_mcontext;
17 }
18diff --git a/gcc/config/bfin/linux-unwind.h b/gcc/config/bfin/linux-unwind.h
19index 77b7c23..8bf5e82 100644
20--- a/gcc/config/bfin/linux-unwind.h
21+++ b/gcc/config/bfin/linux-unwind.h
22@@ -52,7 +52,7 @@ bfin_fallback_frame_state (struct _Unwind_Context *context,
23 void *puc;
24 char retcode[8];
25 siginfo_t info;
26- struct ucontext uc;
27+ ucontext_t uc;
28 } *rt_ = context->cfa;
29
30 /* The void * cast is necessary to avoid an aliasing warning.
31diff --git a/gcc/config/i386/linux-unwind.h b/gcc/config/i386/linux-unwind.h
32index 540a0a2..29efbe3 100644
33--- a/gcc/config/i386/linux-unwind.h
34+++ b/gcc/config/i386/linux-unwind.h
35@@ -58,7 +58,7 @@ x86_64_fallback_frame_state (struct _Unwind_Context *context,
36 if (*(unsigned char *)(pc+0) == 0x48
37 && *(unsigned long long *)(pc+1) == RT_SIGRETURN_SYSCALL)
38 {
39- struct ucontext *uc_ = context->cfa;
40+ ucontext_t *uc_ = context->cfa;
41 /* The void * cast is necessary to avoid an aliasing warning.
42 The aliasing warning is correct, but should not be a problem
43 because it does not alias anything. */
44@@ -138,7 +138,7 @@ x86_fallback_frame_state (struct _Unwind_Context *context,
45 siginfo_t *pinfo;
46 void *puc;
47 siginfo_t info;
48- struct ucontext uc;
49+ ucontext_t uc;
50 } *rt_ = context->cfa;
51 /* The void * cast is necessary to avoid an aliasing warning.
52 The aliasing warning is correct, but should not be a problem
53diff --git a/gcc/config/m68k/linux-unwind.h b/gcc/config/m68k/linux-unwind.h
54index 75b7cf7..f964e24 100644
55--- a/gcc/config/m68k/linux-unwind.h
56+++ b/gcc/config/m68k/linux-unwind.h
57@@ -33,7 +33,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
58 /* <sys/ucontext.h> is unfortunately broken right now. */
59 struct uw_ucontext {
60 unsigned long uc_flags;
61- struct ucontext *uc_link;
62+ ucontext_t *uc_link;
63 stack_t uc_stack;
64 mcontext_t uc_mcontext;
65 unsigned long uc_filler[80];
66diff --git a/gcc/config/pa/linux-unwind.h b/gcc/config/pa/linux-unwind.h
67index 9a2657f..e47493d 100644
68--- a/gcc/config/pa/linux-unwind.h
69+++ b/gcc/config/pa/linux-unwind.h
70@@ -80,7 +80,7 @@ pa32_fallback_frame_state (struct _Unwind_Context *context,
71 struct sigcontext *sc;
72 struct rt_sigframe {
73 siginfo_t info;
74- struct ucontext uc;
75+ ucontext_t uc;
76 } *frame;
77
78 /* rt_sigreturn trampoline:
79diff --git a/gcc/config/sh/linux-unwind.h b/gcc/config/sh/linux-unwind.h
80index e389cac..0bf43ba 100644
81--- a/gcc/config/sh/linux-unwind.h
82+++ b/gcc/config/sh/linux-unwind.h
83@@ -180,7 +180,7 @@ sh_fallback_frame_state (struct _Unwind_Context *context,
84 {
85 struct rt_sigframe {
86 siginfo_t info;
87- struct ucontext uc;
88+ ucontext_t uc;
89 } *rt_ = context->cfa;
90 /* The void * cast is necessary to avoid an aliasing warning.
91 The aliasing warning is correct, but should not be a problem
92diff --git a/gcc/config/xtensa/linux-unwind.h b/gcc/config/xtensa/linux-unwind.h
93index 9872492..586a9d4 100644
94--- a/gcc/config/xtensa/linux-unwind.h
95+++ b/gcc/config/xtensa/linux-unwind.h
96@@ -67,7 +67,7 @@ xtensa_fallback_frame_state (struct _Unwind_Context *context,
97
98 struct rt_sigframe {
99 siginfo_t info;
100- struct ucontext uc;
101+ ucontext_t uc;
102 } *rt_;
103
104 /* movi a2, __NR_rt_sigreturn; syscall */
105--
1062.9.3
107