From a72cadbbb4e7586289de69491a4298a7aac9cc8a Mon Sep 17 00:00:00 2001 From: Florian Fainelli Date: Fri, 12 Oct 2012 14:42:25 +0000 Subject: [PATCH] gcc: backport struct siginfo -> siginfo_t renaming Otherwise newer eglibc toolchain will simply fail to build. SVN-Revision: 33736 --- .../patches/4.6-linaro/002-siginfo_t.patch | 157 ++++++++++++++++++ .../gcc/patches/4.6.2/002-siginfo_t.patch | 157 ++++++++++++++++++ .../patches/4.7-linaro/003-siginfo_t.patch | 147 ++++++++++++++++ .../gcc/patches/4.7.0/003-siginfo_t.patch | 147 ++++++++++++++++ 4 files changed, 608 insertions(+) create mode 100644 toolchain/gcc/patches/4.6-linaro/002-siginfo_t.patch create mode 100644 toolchain/gcc/patches/4.6.2/002-siginfo_t.patch create mode 100644 toolchain/gcc/patches/4.7-linaro/003-siginfo_t.patch create mode 100644 toolchain/gcc/patches/4.7.0/003-siginfo_t.patch 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 index 0000000000..a19b7f2215 --- /dev/null +++ b/toolchain/gcc/patches/4.6-linaro/002-siginfo_t.patch @@ -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 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 index 0000000000..a19b7f2215 --- /dev/null +++ b/toolchain/gcc/patches/4.6.2/002-siginfo_t.patch @@ -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 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 index 0000000000..255ba8d100 --- /dev/null +++ b/toolchain/gcc/patches/4.7-linaro/003-siginfo_t.patch @@ -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 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 index 0000000000..255ba8d100 --- /dev/null +++ b/toolchain/gcc/patches/4.7.0/003-siginfo_t.patch @@ -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 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_; +