Root/toolchain/gcc/patches/4.6.3/002-siginfo_t.patch

1There is one usage in boehm-gc/os_dep.c, but it is only used if
2SUNOS5SIGS is defined, which it is only if one of SUNOS5, DRSNX, HPUX, or
3FREEBSD is defined, which are all not using Linux-based glibc ports.
4
5Likewise, gcc/ada/init.c has a struct __siginfo occurence, but only for
6__FreeBSD__.
7
8config/rs6000/linux-unwind.h uses ``char siginfo[128]'', and
9config/s390/linux-unwind.h also uses a constant.
10
11I tested the following patch for sh-linux-gnu. This only covers one
12configuration, but the change is pretty mechanic anyway and every place
13that used to refer to struct siginfo already must have had <signal.h> in
14its include path, which is the same file that declares siginfo_t.
15
16OK to commit? This should probably also go into any active release
17branches, to keep them buildable once this glibc change ripples through?
18
19gcc/
20        * config/alpha/linux-unwind.h (alpha_fallback_frame_state): Use
21        siginfo_t instead of struct siginfo.
22        * config/bfin/linux-unwind.h (bfin_fallback_frame_state): Likewise.
23        * config/i386/linux-unwind.h (x86_fallback_frame_state): Likewise.
24        * config/ia64/linux-unwind.h (ia64_fallback_frame_state)
25        (ia64_handle_unwabi): Likewise.
26        * config/mips/linux-unwind.h (mips_fallback_frame_state): Likewise.
27        * config/pa/linux-unwind.h (pa32_fallback_frame_state): Likewise.
28        * config/sh/linux-unwind.h (shmedia_fallback_frame_state)
29        (sh_fallback_frame_state): Likewise.
30        * config/tilepro/linux-unwind.h (tile_fallback_frame_state): Likewise.
31        * config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Likewise.
32
33---
34diff -urN gcc-linaro-4.6-2012.02/gcc/config/alpha/linux-unwind.h gcc-linaro-4.6-2012.02.new/gcc/config/alpha/linux-unwind.h
35--- gcc-linaro-4.6-2012.02/gcc/config/alpha/linux-unwind.h 2012-02-07 11:33:31.000000000 +0100
36+++ gcc-linaro-4.6-2012.02.new/gcc/config/alpha/linux-unwind.h 2012-09-13 10:25:52.919072751 +0200
37@@ -49,7 +49,7 @@
38   else if (pc[1] == 0x201f015f) /* lda $0,NR_rt_sigreturn */
39     {
40       struct rt_sigframe {
41- struct siginfo info;
42+ siginfo_t info;
43     struct ucontext uc;
44       } *rt_ = context->cfa;
45       sc = &rt_->uc.uc_mcontext;
46diff -urN gcc-linaro-4.6-2012.02/gcc/config/bfin/linux-unwind.h gcc-linaro-4.6-2012.02.new/gcc/config/bfin/linux-unwind.h
47--- gcc-linaro-4.6-2012.02/gcc/config/bfin/linux-unwind.h 2012-02-07 11:33:31.000000000 +0100
48+++ gcc-linaro-4.6-2012.02.new/gcc/config/bfin/linux-unwind.h 2012-09-13 10:26:14.819073313 +0200
49@@ -48,10 +48,10 @@
50     {
51       struct rt_sigframe {
52     int sig;
53- struct siginfo *pinfo;
54+ siginfo_t *pinfo;
55     void *puc;
56     char retcode[8];
57- struct siginfo info;
58+ siginfo_t info;
59     struct ucontext uc;
60       } *rt_ = context->cfa;
61 
62diff -urN gcc-linaro-4.6-2012.02/gcc/config/i386/linux-unwind.h gcc-linaro-4.6-2012.02.new/gcc/config/i386/linux-unwind.h
63--- gcc-linaro-4.6-2012.02/gcc/config/i386/linux-unwind.h 2012-02-07 11:33:31.000000000 +0100
64+++ gcc-linaro-4.6-2012.02.new/gcc/config/i386/linux-unwind.h 2012-09-13 10:26:41.891074005 +0200
65@@ -133,9 +133,9 @@
66     {
67       struct rt_sigframe {
68     int sig;
69- struct siginfo *pinfo;
70+ siginfo_t *pinfo;
71     void *puc;
72- struct siginfo info;
73+ siginfo_t info;
74     struct ucontext uc;
75       } *rt_ = context->cfa;
76       /* The void * cast is necessary to avoid an aliasing warning.
77diff -urN gcc-linaro-4.6-2012.02/gcc/config/ia64/linux-unwind.h gcc-linaro-4.6-2012.02.new/gcc/config/ia64/linux-unwind.h
78--- gcc-linaro-4.6-2012.02/gcc/config/ia64/linux-unwind.h 2012-02-07 11:33:31.000000000 +0100
79+++ gcc-linaro-4.6-2012.02.new/gcc/config/ia64/linux-unwind.h 2012-09-13 10:26:59.251074450 +0200
80@@ -47,7 +47,7 @@
81       struct sigframe {
82     char scratch[16];
83     unsigned long sig_number;
84- struct siginfo *info;
85+ siginfo_t *info;
86     struct sigcontext *sc;
87       } *frame_ = (struct sigframe *)context->psp;
88       struct sigcontext *sc = frame_->sc;
89@@ -137,7 +137,7 @@
90       struct sigframe {
91     char scratch[16];
92     unsigned long sig_number;
93- struct siginfo *info;
94+ siginfo_t *info;
95     struct sigcontext *sc;
96       } *frame = (struct sigframe *)context->psp;
97       struct sigcontext *sc = frame->sc;
98diff -urN gcc-linaro-4.6-2012.02/gcc/config/mips/linux-unwind.h gcc-linaro-4.6-2012.02.new/gcc/config/mips/linux-unwind.h
99--- gcc-linaro-4.6-2012.02/gcc/config/mips/linux-unwind.h 2012-02-07 11:33:31.000000000 +0100
100+++ gcc-linaro-4.6-2012.02.new/gcc/config/mips/linux-unwind.h 2012-09-13 10:27:17.947074929 +0200
101@@ -75,7 +75,7 @@
102       struct rt_sigframe {
103     u_int32_t ass[4]; /* Argument save space for o32. */
104     u_int32_t trampoline[2];
105- struct siginfo info;
106+ siginfo_t info;
107     _sig_ucontext_t uc;
108       } *rt_ = context->cfa;
109       sc = &rt_->uc.uc_mcontext;
110diff -urN gcc-linaro-4.6-2012.02/gcc/config/pa/linux-unwind.h gcc-linaro-4.6-2012.02.new/gcc/config/pa/linux-unwind.h
111--- gcc-linaro-4.6-2012.02/gcc/config/pa/linux-unwind.h 2012-02-07 11:33:31.000000000 +0100
112+++ gcc-linaro-4.6-2012.02.new/gcc/config/pa/linux-unwind.h 2012-09-13 10:27:27.491075173 +0200
113@@ -63,7 +63,7 @@
114   int i;
115   struct sigcontext *sc;
116   struct rt_sigframe {
117- struct siginfo info;
118+ siginfo_t info;
119     struct ucontext uc;
120   } *frame;
121 
122diff -urN gcc-linaro-4.6-2012.02/gcc/config/sh/linux-unwind.h gcc-linaro-4.6-2012.02.new/gcc/config/sh/linux-unwind.h
123--- gcc-linaro-4.6-2012.02/gcc/config/sh/linux-unwind.h 2012-02-07 11:33:31.000000000 +0100
124+++ gcc-linaro-4.6-2012.02.new/gcc/config/sh/linux-unwind.h 2012-09-13 10:27:58.551075969 +0200
125@@ -80,9 +80,9 @@
126        && (*(unsigned long *) (pc+11) == 0x6ff0fff0))
127     {
128       struct rt_sigframe {
129- struct siginfo *pinfo;
130+ siginfo_t *pinfo;
131     void *puc;
132- struct siginfo info;
133+ siginfo_t info;
134     struct ucontext uc;
135       } *rt_ = context->cfa;
136       /* The void * cast is necessary to avoid an aliasing warning.
137@@ -179,7 +179,7 @@
138         && (*(unsigned short *) (pc+14) == 0x00ad))))
139     {
140       struct rt_sigframe {
141- struct siginfo info;
142+ siginfo_t info;
143     struct ucontext uc;
144       } *rt_ = context->cfa;
145       /* The void * cast is necessary to avoid an aliasing warning.
146diff -urN gcc-linaro-4.6-2012.02/gcc/config/xtensa/linux-unwind.h gcc-linaro-4.6-2012.02.new/gcc/config/xtensa/linux-unwind.h
147--- gcc-linaro-4.6-2012.02/gcc/config/xtensa/linux-unwind.h 2012-02-07 11:33:31.000000000 +0100
148+++ gcc-linaro-4.6-2012.02.new/gcc/config/xtensa/linux-unwind.h 2012-09-13 10:28:13.827076359 +0200
149@@ -62,7 +62,7 @@
150   struct sigcontext *sc;
151 
152   struct rt_sigframe {
153- struct siginfo info;
154+ siginfo_t info;
155     struct ucontext uc;
156   } *rt_;
157 
158

Archive Download this file



interactive