gcc: backport struct siginfo -> siginfo_t renaming
authorFlorian Fainelli <florian@openwrt.org>
Fri, 12 Oct 2012 14:42:25 +0000 (14:42 +0000)
committerFlorian Fainelli <florian@openwrt.org>
Fri, 12 Oct 2012 14:42:25 +0000 (14:42 +0000)
Otherwise newer eglibc toolchain will simply fail to build.

SVN-Revision: 33736

toolchain/gcc/patches/4.6-linaro/002-siginfo_t.patch [new file with mode: 0644]
toolchain/gcc/patches/4.6.2/002-siginfo_t.patch [new file with mode: 0644]
toolchain/gcc/patches/4.7-linaro/003-siginfo_t.patch [new file with mode: 0644]
toolchain/gcc/patches/4.7.0/003-siginfo_t.patch [new file with mode: 0644]

diff --git a/toolchain/gcc/patches/4.6-linaro/002-siginfo_t.patch b/toolchain/gcc/patches/4.6-linaro/002-siginfo_t.patch
new file mode 100644 (file)
index 0000000..a19b7f2
--- /dev/null
@@ -0,0 +1,157 @@
+There is one usage in boehm-gc/os_dep.c, but it is only used if
+SUNOS5SIGS is defined, which it is only if one of SUNOS5, DRSNX, HPUX, or
+FREEBSD is defined, which are all not using Linux-based glibc ports.
+
+Likewise, gcc/ada/init.c has a struct __siginfo occurence, but only for
+__FreeBSD__.
+
+config/rs6000/linux-unwind.h uses ``char siginfo[128]'', and
+config/s390/linux-unwind.h also uses a constant.
+
+I tested the following patch for sh-linux-gnu.  This only covers one
+configuration, but the change is pretty mechanic anyway and every place
+that used to refer to struct siginfo already must have had <signal.h> in
+its include path, which is the same file that declares siginfo_t.
+
+OK to commit?  This should probably also go into any active release
+branches, to keep them buildable once this glibc change ripples through?
+
+gcc/
+        * config/alpha/linux-unwind.h (alpha_fallback_frame_state): Use
+        siginfo_t instead of struct siginfo.
+        * config/bfin/linux-unwind.h (bfin_fallback_frame_state): Likewise.
+        * config/i386/linux-unwind.h (x86_fallback_frame_state): Likewise.
+        * config/ia64/linux-unwind.h (ia64_fallback_frame_state)
+        (ia64_handle_unwabi): Likewise.
+        * config/mips/linux-unwind.h (mips_fallback_frame_state): Likewise.
+        * config/pa/linux-unwind.h (pa32_fallback_frame_state): Likewise.
+        * config/sh/linux-unwind.h (shmedia_fallback_frame_state)
+        (sh_fallback_frame_state): Likewise.
+        * config/tilepro/linux-unwind.h (tile_fallback_frame_state): Likewise.
+        * config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Likewise.
+
+---
+diff -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
+--- gcc-linaro-4.6-2012.02/gcc/config/alpha/linux-unwind.h     2012-02-07 11:33:31.000000000 +0100
++++ gcc-linaro-4.6-2012.02.new/gcc/config/alpha/linux-unwind.h 2012-09-13 10:25:52.919072751 +0200
+@@ -49,7 +49,7 @@
+   else if (pc[1] == 0x201f015f)               /* lda $0,NR_rt_sigreturn */
+     {
+       struct rt_sigframe {
+-      struct siginfo info;
++      siginfo_t info;
+       struct ucontext uc;
+       } *rt_ = context->cfa;
+       sc = &rt_->uc.uc_mcontext;
+diff -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
+--- gcc-linaro-4.6-2012.02/gcc/config/bfin/linux-unwind.h      2012-02-07 11:33:31.000000000 +0100
++++ gcc-linaro-4.6-2012.02.new/gcc/config/bfin/linux-unwind.h  2012-09-13 10:26:14.819073313 +0200
+@@ -48,10 +48,10 @@
+     {
+       struct rt_sigframe {
+       int sig;
+-      struct siginfo *pinfo;
++      siginfo_t *pinfo;
+       void *puc;
+       char retcode[8];
+-      struct siginfo info;
++      siginfo_t info;
+       struct ucontext uc;
+       } *rt_ = context->cfa;
+diff -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
+--- gcc-linaro-4.6-2012.02/gcc/config/i386/linux-unwind.h      2012-02-07 11:33:31.000000000 +0100
++++ gcc-linaro-4.6-2012.02.new/gcc/config/i386/linux-unwind.h  2012-09-13 10:26:41.891074005 +0200
+@@ -133,9 +133,9 @@
+     {
+       struct rt_sigframe {
+       int sig;
+-      struct siginfo *pinfo;
++      siginfo_t *pinfo;
+       void *puc;
+-      struct siginfo info;
++      siginfo_t info;
+       struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+diff -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
+--- gcc-linaro-4.6-2012.02/gcc/config/ia64/linux-unwind.h      2012-02-07 11:33:31.000000000 +0100
++++ gcc-linaro-4.6-2012.02.new/gcc/config/ia64/linux-unwind.h  2012-09-13 10:26:59.251074450 +0200
+@@ -47,7 +47,7 @@
+       struct sigframe {
+       char scratch[16];
+       unsigned long sig_number;
+-      struct siginfo *info;
++      siginfo_t *info;
+       struct sigcontext *sc;
+       } *frame_ = (struct sigframe *)context->psp;
+       struct sigcontext *sc = frame_->sc;
+@@ -137,7 +137,7 @@
+       struct sigframe {
+       char scratch[16];
+       unsigned long sig_number;
+-      struct siginfo *info;
++      siginfo_t *info;
+       struct sigcontext *sc;
+       } *frame = (struct sigframe *)context->psp;
+       struct sigcontext *sc = frame->sc;
+diff -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
+--- gcc-linaro-4.6-2012.02/gcc/config/mips/linux-unwind.h      2012-02-07 11:33:31.000000000 +0100
++++ gcc-linaro-4.6-2012.02.new/gcc/config/mips/linux-unwind.h  2012-09-13 10:27:17.947074929 +0200
+@@ -75,7 +75,7 @@
+       struct rt_sigframe {
+       u_int32_t ass[4];  /* Argument save space for o32.  */
+       u_int32_t trampoline[2];
+-      struct siginfo info;
++      siginfo_t info;
+       _sig_ucontext_t uc;
+       } *rt_ = context->cfa;
+       sc = &rt_->uc.uc_mcontext;
+diff -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
+--- gcc-linaro-4.6-2012.02/gcc/config/pa/linux-unwind.h        2012-02-07 11:33:31.000000000 +0100
++++ gcc-linaro-4.6-2012.02.new/gcc/config/pa/linux-unwind.h    2012-09-13 10:27:27.491075173 +0200
+@@ -63,7 +63,7 @@
+   int i;
+   struct sigcontext *sc;
+   struct rt_sigframe {
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *frame;
+diff -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
+--- gcc-linaro-4.6-2012.02/gcc/config/sh/linux-unwind.h        2012-02-07 11:33:31.000000000 +0100
++++ gcc-linaro-4.6-2012.02.new/gcc/config/sh/linux-unwind.h    2012-09-13 10:27:58.551075969 +0200
+@@ -80,9 +80,9 @@
+          && (*(unsigned long *) (pc+11)  == 0x6ff0fff0))
+     {
+       struct rt_sigframe {
+-      struct siginfo *pinfo;
++      siginfo_t *pinfo;
+       void *puc;
+-      struct siginfo info;
++      siginfo_t info;
+       struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+@@ -179,7 +179,7 @@
+               && (*(unsigned short *) (pc+14)  == 0x00ad))))
+     {
+       struct rt_sigframe {
+-      struct siginfo info;
++      siginfo_t info;
+       struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+diff -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
+--- gcc-linaro-4.6-2012.02/gcc/config/xtensa/linux-unwind.h    2012-02-07 11:33:31.000000000 +0100
++++ gcc-linaro-4.6-2012.02.new/gcc/config/xtensa/linux-unwind.h        2012-09-13 10:28:13.827076359 +0200
+@@ -62,7 +62,7 @@
+   struct sigcontext *sc;
+   struct rt_sigframe {
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *rt_;
diff --git a/toolchain/gcc/patches/4.6.2/002-siginfo_t.patch b/toolchain/gcc/patches/4.6.2/002-siginfo_t.patch
new file mode 100644 (file)
index 0000000..a19b7f2
--- /dev/null
@@ -0,0 +1,157 @@
+There is one usage in boehm-gc/os_dep.c, but it is only used if
+SUNOS5SIGS is defined, which it is only if one of SUNOS5, DRSNX, HPUX, or
+FREEBSD is defined, which are all not using Linux-based glibc ports.
+
+Likewise, gcc/ada/init.c has a struct __siginfo occurence, but only for
+__FreeBSD__.
+
+config/rs6000/linux-unwind.h uses ``char siginfo[128]'', and
+config/s390/linux-unwind.h also uses a constant.
+
+I tested the following patch for sh-linux-gnu.  This only covers one
+configuration, but the change is pretty mechanic anyway and every place
+that used to refer to struct siginfo already must have had <signal.h> in
+its include path, which is the same file that declares siginfo_t.
+
+OK to commit?  This should probably also go into any active release
+branches, to keep them buildable once this glibc change ripples through?
+
+gcc/
+        * config/alpha/linux-unwind.h (alpha_fallback_frame_state): Use
+        siginfo_t instead of struct siginfo.
+        * config/bfin/linux-unwind.h (bfin_fallback_frame_state): Likewise.
+        * config/i386/linux-unwind.h (x86_fallback_frame_state): Likewise.
+        * config/ia64/linux-unwind.h (ia64_fallback_frame_state)
+        (ia64_handle_unwabi): Likewise.
+        * config/mips/linux-unwind.h (mips_fallback_frame_state): Likewise.
+        * config/pa/linux-unwind.h (pa32_fallback_frame_state): Likewise.
+        * config/sh/linux-unwind.h (shmedia_fallback_frame_state)
+        (sh_fallback_frame_state): Likewise.
+        * config/tilepro/linux-unwind.h (tile_fallback_frame_state): Likewise.
+        * config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Likewise.
+
+---
+diff -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
+--- gcc-linaro-4.6-2012.02/gcc/config/alpha/linux-unwind.h     2012-02-07 11:33:31.000000000 +0100
++++ gcc-linaro-4.6-2012.02.new/gcc/config/alpha/linux-unwind.h 2012-09-13 10:25:52.919072751 +0200
+@@ -49,7 +49,7 @@
+   else if (pc[1] == 0x201f015f)               /* lda $0,NR_rt_sigreturn */
+     {
+       struct rt_sigframe {
+-      struct siginfo info;
++      siginfo_t info;
+       struct ucontext uc;
+       } *rt_ = context->cfa;
+       sc = &rt_->uc.uc_mcontext;
+diff -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
+--- gcc-linaro-4.6-2012.02/gcc/config/bfin/linux-unwind.h      2012-02-07 11:33:31.000000000 +0100
++++ gcc-linaro-4.6-2012.02.new/gcc/config/bfin/linux-unwind.h  2012-09-13 10:26:14.819073313 +0200
+@@ -48,10 +48,10 @@
+     {
+       struct rt_sigframe {
+       int sig;
+-      struct siginfo *pinfo;
++      siginfo_t *pinfo;
+       void *puc;
+       char retcode[8];
+-      struct siginfo info;
++      siginfo_t info;
+       struct ucontext uc;
+       } *rt_ = context->cfa;
+diff -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
+--- gcc-linaro-4.6-2012.02/gcc/config/i386/linux-unwind.h      2012-02-07 11:33:31.000000000 +0100
++++ gcc-linaro-4.6-2012.02.new/gcc/config/i386/linux-unwind.h  2012-09-13 10:26:41.891074005 +0200
+@@ -133,9 +133,9 @@
+     {
+       struct rt_sigframe {
+       int sig;
+-      struct siginfo *pinfo;
++      siginfo_t *pinfo;
+       void *puc;
+-      struct siginfo info;
++      siginfo_t info;
+       struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+diff -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
+--- gcc-linaro-4.6-2012.02/gcc/config/ia64/linux-unwind.h      2012-02-07 11:33:31.000000000 +0100
++++ gcc-linaro-4.6-2012.02.new/gcc/config/ia64/linux-unwind.h  2012-09-13 10:26:59.251074450 +0200
+@@ -47,7 +47,7 @@
+       struct sigframe {
+       char scratch[16];
+       unsigned long sig_number;
+-      struct siginfo *info;
++      siginfo_t *info;
+       struct sigcontext *sc;
+       } *frame_ = (struct sigframe *)context->psp;
+       struct sigcontext *sc = frame_->sc;
+@@ -137,7 +137,7 @@
+       struct sigframe {
+       char scratch[16];
+       unsigned long sig_number;
+-      struct siginfo *info;
++      siginfo_t *info;
+       struct sigcontext *sc;
+       } *frame = (struct sigframe *)context->psp;
+       struct sigcontext *sc = frame->sc;
+diff -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
+--- gcc-linaro-4.6-2012.02/gcc/config/mips/linux-unwind.h      2012-02-07 11:33:31.000000000 +0100
++++ gcc-linaro-4.6-2012.02.new/gcc/config/mips/linux-unwind.h  2012-09-13 10:27:17.947074929 +0200
+@@ -75,7 +75,7 @@
+       struct rt_sigframe {
+       u_int32_t ass[4];  /* Argument save space for o32.  */
+       u_int32_t trampoline[2];
+-      struct siginfo info;
++      siginfo_t info;
+       _sig_ucontext_t uc;
+       } *rt_ = context->cfa;
+       sc = &rt_->uc.uc_mcontext;
+diff -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
+--- gcc-linaro-4.6-2012.02/gcc/config/pa/linux-unwind.h        2012-02-07 11:33:31.000000000 +0100
++++ gcc-linaro-4.6-2012.02.new/gcc/config/pa/linux-unwind.h    2012-09-13 10:27:27.491075173 +0200
+@@ -63,7 +63,7 @@
+   int i;
+   struct sigcontext *sc;
+   struct rt_sigframe {
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *frame;
+diff -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
+--- gcc-linaro-4.6-2012.02/gcc/config/sh/linux-unwind.h        2012-02-07 11:33:31.000000000 +0100
++++ gcc-linaro-4.6-2012.02.new/gcc/config/sh/linux-unwind.h    2012-09-13 10:27:58.551075969 +0200
+@@ -80,9 +80,9 @@
+          && (*(unsigned long *) (pc+11)  == 0x6ff0fff0))
+     {
+       struct rt_sigframe {
+-      struct siginfo *pinfo;
++      siginfo_t *pinfo;
+       void *puc;
+-      struct siginfo info;
++      siginfo_t info;
+       struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+@@ -179,7 +179,7 @@
+               && (*(unsigned short *) (pc+14)  == 0x00ad))))
+     {
+       struct rt_sigframe {
+-      struct siginfo info;
++      siginfo_t info;
+       struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+diff -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
+--- gcc-linaro-4.6-2012.02/gcc/config/xtensa/linux-unwind.h    2012-02-07 11:33:31.000000000 +0100
++++ gcc-linaro-4.6-2012.02.new/gcc/config/xtensa/linux-unwind.h        2012-09-13 10:28:13.827076359 +0200
+@@ -62,7 +62,7 @@
+   struct sigcontext *sc;
+   struct rt_sigframe {
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *rt_;
diff --git a/toolchain/gcc/patches/4.7-linaro/003-siginfo_t.patch b/toolchain/gcc/patches/4.7-linaro/003-siginfo_t.patch
new file mode 100644 (file)
index 0000000..255ba8d
--- /dev/null
@@ -0,0 +1,147 @@
+There is one usage in boehm-gc/os_dep.c, but it is only used if
+SUNOS5SIGS is defined, which it is only if one of SUNOS5, DRSNX, HPUX, or
+FREEBSD is defined, which are all not using Linux-based glibc ports.
+
+Likewise, gcc/ada/init.c has a struct __siginfo occurence, but only for
+__FreeBSD__.
+
+config/rs6000/linux-unwind.h uses ``char siginfo[128]'', and
+config/s390/linux-unwind.h also uses a constant.
+
+I tested the following patch for sh-linux-gnu.  This only covers one
+configuration, but the change is pretty mechanic anyway and every place
+that used to refer to struct siginfo already must have had <signal.h> in
+its include path, which is the same file that declares siginfo_t.
+
+OK to commit?  This should probably also go into any active release
+branches, to keep them buildable once this glibc change ripples through?
+
+libgcc/
+        * config/alpha/linux-unwind.h (alpha_fallback_frame_state): Use
+        siginfo_t instead of struct siginfo.
+        * config/bfin/linux-unwind.h (bfin_fallback_frame_state): Likewise.
+        * config/i386/linux-unwind.h (x86_fallback_frame_state): Likewise.
+        * config/ia64/linux-unwind.h (ia64_fallback_frame_state)
+        (ia64_handle_unwabi): Likewise.
+        * config/mips/linux-unwind.h (mips_fallback_frame_state): Likewise.
+        * config/pa/linux-unwind.h (pa32_fallback_frame_state): Likewise.
+        * config/sh/linux-unwind.h (shmedia_fallback_frame_state)
+        (sh_fallback_frame_state): Likewise.
+        * config/tilepro/linux-unwind.h (tile_fallback_frame_state): Likewise.
+        * config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Likewise.
+---
+diff -urN gcc-linaro-4.7-2012.04/libgcc/config/alpha/linux-unwind.h gcc-linaro-4.7-2012.04.new/libgcc/config/alpha/linux-unwind.h
+--- gcc-linaro-4.7-2012.04/libgcc/config/alpha/linux-unwind.h  2012-04-10 11:54:47.000000000 +0200
++++ gcc-linaro-4.7-2012.04.new/libgcc/config/alpha/linux-unwind.h      2012-09-13 14:07:22.307413027 +0200
+@@ -49,7 +49,7 @@
+   else if (pc[1] == 0x201f015f)               /* lda $0,NR_rt_sigreturn */
+     {
+       struct rt_sigframe {
+-      struct siginfo info;
++      siginfo_t info;
+       struct ucontext uc;
+       } *rt_ = context->cfa;
+       sc = &rt_->uc.uc_mcontext;
+diff -urN gcc-linaro-4.7-2012.04/libgcc/config/bfin/linux-unwind.h gcc-linaro-4.7-2012.04.new/libgcc/config/bfin/linux-unwind.h
+--- gcc-linaro-4.7-2012.04/libgcc/config/bfin/linux-unwind.h   2012-04-10 11:54:47.000000000 +0200
++++ gcc-linaro-4.7-2012.04.new/libgcc/config/bfin/linux-unwind.h       2012-09-13 14:07:36.343413388 +0200
+@@ -48,10 +48,10 @@
+     {
+       struct rt_sigframe {
+       int sig;
+-      struct siginfo *pinfo;
++      siginfo_t *pinfo;
+       void *puc;
+       char retcode[8];
+-      struct siginfo info;
++      siginfo_t info;
+       struct ucontext uc;
+       } *rt_ = context->cfa;
+diff -urN gcc-linaro-4.7-2012.04/libgcc/config/i386/linux-unwind.h gcc-linaro-4.7-2012.04.new/libgcc/config/i386/linux-unwind.h
+--- gcc-linaro-4.7-2012.04/libgcc/config/i386/linux-unwind.h   2012-04-10 11:54:47.000000000 +0200
++++ gcc-linaro-4.7-2012.04.new/libgcc/config/i386/linux-unwind.h       2012-09-13 14:07:49.147413712 +0200
+@@ -139,9 +139,9 @@
+     {
+       struct rt_sigframe {
+       int sig;
+-      struct siginfo *pinfo;
++      siginfo_t *pinfo;
+       void *puc;
+-      struct siginfo info;
++      siginfo_t info;
+       struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+diff -urN gcc-linaro-4.7-2012.04/libgcc/config/mips/linux-unwind.h gcc-linaro-4.7-2012.04.new/libgcc/config/mips/linux-unwind.h
+--- gcc-linaro-4.7-2012.04/libgcc/config/mips/linux-unwind.h   2012-04-10 11:54:47.000000000 +0200
++++ gcc-linaro-4.7-2012.04.new/libgcc/config/mips/linux-unwind.h       2012-09-13 14:08:43.007415091 +0200
+@@ -75,7 +75,7 @@
+       struct rt_sigframe {
+       u_int32_t ass[4];  /* Argument save space for o32.  */
+       u_int32_t trampoline[2];
+-      struct siginfo info;
++      siginfo_t info;
+       _sig_ucontext_t uc;
+       } *rt_ = context->cfa;
+       sc = &rt_->uc.uc_mcontext;
+diff -urN gcc-linaro-4.7-2012.04/libgcc/config/pa/linux-unwind.h gcc-linaro-4.7-2012.04.new/libgcc/config/pa/linux-unwind.h
+--- gcc-linaro-4.7-2012.04/libgcc/config/pa/linux-unwind.h     2012-04-10 11:54:47.000000000 +0200
++++ gcc-linaro-4.7-2012.04.new/libgcc/config/pa/linux-unwind.h 2012-09-13 14:08:54.335415383 +0200
+@@ -63,7 +63,7 @@
+   int i;
+   struct sigcontext *sc;
+   struct rt_sigframe {
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *frame;
+diff -urN gcc-linaro-4.7-2012.04/libgcc/config/sh/linux-unwind.h gcc-linaro-4.7-2012.04.new/libgcc/config/sh/linux-unwind.h
+--- gcc-linaro-4.7-2012.04/libgcc/config/sh/linux-unwind.h     2012-04-10 11:54:47.000000000 +0200
++++ gcc-linaro-4.7-2012.04.new/libgcc/config/sh/linux-unwind.h 2012-09-13 14:09:12.383415847 +0200
+@@ -80,9 +80,9 @@
+          && (*(unsigned long *) (pc+11)  == 0x6ff0fff0))
+     {
+       struct rt_sigframe {
+-      struct siginfo *pinfo;
++      siginfo_t *pinfo;
+       void *puc;
+-      struct siginfo info;
++      siginfo_t info;
+       struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+@@ -179,7 +179,7 @@
+               && (*(unsigned short *) (pc+14)  == 0x00ad))))
+     {
+       struct rt_sigframe {
+-      struct siginfo info;
++      siginfo_t info;
+       struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+diff -urN gcc-linaro-4.7-2012.04/libgcc/config/tilepro/linux-unwind.h gcc-linaro-4.7-2012.04.new/libgcc/config/tilepro/linux-unwind.h
+--- gcc-linaro-4.7-2012.04/libgcc/config/tilepro/linux-unwind.h        2012-04-10 11:54:47.000000000 +0200
++++ gcc-linaro-4.7-2012.04.new/libgcc/config/tilepro/linux-unwind.h    2012-09-13 14:09:28.907416268 +0200
+@@ -61,7 +61,7 @@
+   struct rt_sigframe {
+     unsigned char save_area[C_ABI_SAVE_AREA_SIZE];
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *rt_;
+diff -urN gcc-linaro-4.7-2012.04/libgcc/config/xtensa/linux-unwind.h gcc-linaro-4.7-2012.04.new/libgcc/config/xtensa/linux-unwind.h
+--- gcc-linaro-4.7-2012.04/libgcc/config/xtensa/linux-unwind.h 2012-04-10 11:54:47.000000000 +0200
++++ gcc-linaro-4.7-2012.04.new/libgcc/config/xtensa/linux-unwind.h     2012-09-13 14:09:41.399416587 +0200
+@@ -62,7 +62,7 @@
+   struct sigcontext *sc;
+   struct rt_sigframe {
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *rt_;
diff --git a/toolchain/gcc/patches/4.7.0/003-siginfo_t.patch b/toolchain/gcc/patches/4.7.0/003-siginfo_t.patch
new file mode 100644 (file)
index 0000000..255ba8d
--- /dev/null
@@ -0,0 +1,147 @@
+There is one usage in boehm-gc/os_dep.c, but it is only used if
+SUNOS5SIGS is defined, which it is only if one of SUNOS5, DRSNX, HPUX, or
+FREEBSD is defined, which are all not using Linux-based glibc ports.
+
+Likewise, gcc/ada/init.c has a struct __siginfo occurence, but only for
+__FreeBSD__.
+
+config/rs6000/linux-unwind.h uses ``char siginfo[128]'', and
+config/s390/linux-unwind.h also uses a constant.
+
+I tested the following patch for sh-linux-gnu.  This only covers one
+configuration, but the change is pretty mechanic anyway and every place
+that used to refer to struct siginfo already must have had <signal.h> in
+its include path, which is the same file that declares siginfo_t.
+
+OK to commit?  This should probably also go into any active release
+branches, to keep them buildable once this glibc change ripples through?
+
+libgcc/
+        * config/alpha/linux-unwind.h (alpha_fallback_frame_state): Use
+        siginfo_t instead of struct siginfo.
+        * config/bfin/linux-unwind.h (bfin_fallback_frame_state): Likewise.
+        * config/i386/linux-unwind.h (x86_fallback_frame_state): Likewise.
+        * config/ia64/linux-unwind.h (ia64_fallback_frame_state)
+        (ia64_handle_unwabi): Likewise.
+        * config/mips/linux-unwind.h (mips_fallback_frame_state): Likewise.
+        * config/pa/linux-unwind.h (pa32_fallback_frame_state): Likewise.
+        * config/sh/linux-unwind.h (shmedia_fallback_frame_state)
+        (sh_fallback_frame_state): Likewise.
+        * config/tilepro/linux-unwind.h (tile_fallback_frame_state): Likewise.
+        * config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Likewise.
+---
+diff -urN gcc-linaro-4.7-2012.04/libgcc/config/alpha/linux-unwind.h gcc-linaro-4.7-2012.04.new/libgcc/config/alpha/linux-unwind.h
+--- gcc-linaro-4.7-2012.04/libgcc/config/alpha/linux-unwind.h  2012-04-10 11:54:47.000000000 +0200
++++ gcc-linaro-4.7-2012.04.new/libgcc/config/alpha/linux-unwind.h      2012-09-13 14:07:22.307413027 +0200
+@@ -49,7 +49,7 @@
+   else if (pc[1] == 0x201f015f)               /* lda $0,NR_rt_sigreturn */
+     {
+       struct rt_sigframe {
+-      struct siginfo info;
++      siginfo_t info;
+       struct ucontext uc;
+       } *rt_ = context->cfa;
+       sc = &rt_->uc.uc_mcontext;
+diff -urN gcc-linaro-4.7-2012.04/libgcc/config/bfin/linux-unwind.h gcc-linaro-4.7-2012.04.new/libgcc/config/bfin/linux-unwind.h
+--- gcc-linaro-4.7-2012.04/libgcc/config/bfin/linux-unwind.h   2012-04-10 11:54:47.000000000 +0200
++++ gcc-linaro-4.7-2012.04.new/libgcc/config/bfin/linux-unwind.h       2012-09-13 14:07:36.343413388 +0200
+@@ -48,10 +48,10 @@
+     {
+       struct rt_sigframe {
+       int sig;
+-      struct siginfo *pinfo;
++      siginfo_t *pinfo;
+       void *puc;
+       char retcode[8];
+-      struct siginfo info;
++      siginfo_t info;
+       struct ucontext uc;
+       } *rt_ = context->cfa;
+diff -urN gcc-linaro-4.7-2012.04/libgcc/config/i386/linux-unwind.h gcc-linaro-4.7-2012.04.new/libgcc/config/i386/linux-unwind.h
+--- gcc-linaro-4.7-2012.04/libgcc/config/i386/linux-unwind.h   2012-04-10 11:54:47.000000000 +0200
++++ gcc-linaro-4.7-2012.04.new/libgcc/config/i386/linux-unwind.h       2012-09-13 14:07:49.147413712 +0200
+@@ -139,9 +139,9 @@
+     {
+       struct rt_sigframe {
+       int sig;
+-      struct siginfo *pinfo;
++      siginfo_t *pinfo;
+       void *puc;
+-      struct siginfo info;
++      siginfo_t info;
+       struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+diff -urN gcc-linaro-4.7-2012.04/libgcc/config/mips/linux-unwind.h gcc-linaro-4.7-2012.04.new/libgcc/config/mips/linux-unwind.h
+--- gcc-linaro-4.7-2012.04/libgcc/config/mips/linux-unwind.h   2012-04-10 11:54:47.000000000 +0200
++++ gcc-linaro-4.7-2012.04.new/libgcc/config/mips/linux-unwind.h       2012-09-13 14:08:43.007415091 +0200
+@@ -75,7 +75,7 @@
+       struct rt_sigframe {
+       u_int32_t ass[4];  /* Argument save space for o32.  */
+       u_int32_t trampoline[2];
+-      struct siginfo info;
++      siginfo_t info;
+       _sig_ucontext_t uc;
+       } *rt_ = context->cfa;
+       sc = &rt_->uc.uc_mcontext;
+diff -urN gcc-linaro-4.7-2012.04/libgcc/config/pa/linux-unwind.h gcc-linaro-4.7-2012.04.new/libgcc/config/pa/linux-unwind.h
+--- gcc-linaro-4.7-2012.04/libgcc/config/pa/linux-unwind.h     2012-04-10 11:54:47.000000000 +0200
++++ gcc-linaro-4.7-2012.04.new/libgcc/config/pa/linux-unwind.h 2012-09-13 14:08:54.335415383 +0200
+@@ -63,7 +63,7 @@
+   int i;
+   struct sigcontext *sc;
+   struct rt_sigframe {
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *frame;
+diff -urN gcc-linaro-4.7-2012.04/libgcc/config/sh/linux-unwind.h gcc-linaro-4.7-2012.04.new/libgcc/config/sh/linux-unwind.h
+--- gcc-linaro-4.7-2012.04/libgcc/config/sh/linux-unwind.h     2012-04-10 11:54:47.000000000 +0200
++++ gcc-linaro-4.7-2012.04.new/libgcc/config/sh/linux-unwind.h 2012-09-13 14:09:12.383415847 +0200
+@@ -80,9 +80,9 @@
+          && (*(unsigned long *) (pc+11)  == 0x6ff0fff0))
+     {
+       struct rt_sigframe {
+-      struct siginfo *pinfo;
++      siginfo_t *pinfo;
+       void *puc;
+-      struct siginfo info;
++      siginfo_t info;
+       struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+@@ -179,7 +179,7 @@
+               && (*(unsigned short *) (pc+14)  == 0x00ad))))
+     {
+       struct rt_sigframe {
+-      struct siginfo info;
++      siginfo_t info;
+       struct ucontext uc;
+       } *rt_ = context->cfa;
+       /* The void * cast is necessary to avoid an aliasing warning.
+diff -urN gcc-linaro-4.7-2012.04/libgcc/config/tilepro/linux-unwind.h gcc-linaro-4.7-2012.04.new/libgcc/config/tilepro/linux-unwind.h
+--- gcc-linaro-4.7-2012.04/libgcc/config/tilepro/linux-unwind.h        2012-04-10 11:54:47.000000000 +0200
++++ gcc-linaro-4.7-2012.04.new/libgcc/config/tilepro/linux-unwind.h    2012-09-13 14:09:28.907416268 +0200
+@@ -61,7 +61,7 @@
+   struct rt_sigframe {
+     unsigned char save_area[C_ABI_SAVE_AREA_SIZE];
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *rt_;
+diff -urN gcc-linaro-4.7-2012.04/libgcc/config/xtensa/linux-unwind.h gcc-linaro-4.7-2012.04.new/libgcc/config/xtensa/linux-unwind.h
+--- gcc-linaro-4.7-2012.04/libgcc/config/xtensa/linux-unwind.h 2012-04-10 11:54:47.000000000 +0200
++++ gcc-linaro-4.7-2012.04.new/libgcc/config/xtensa/linux-unwind.h     2012-09-13 14:09:41.399416587 +0200
+@@ -62,7 +62,7 @@
+   struct sigcontext *sc;
+   struct rt_sigframe {
+-    struct siginfo info;
++    siginfo_t info;
+     struct ucontext uc;
+   } *rt_;