175 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
		
		
			
		
	
	
			175 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| 
								 | 
							
								https://bugs.gentoo.org/424970
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								fix from upstream for building with newer glibc versions
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								From f0cdca2bf2230005025e13e7354fedb612933c96 Mon Sep 17 00:00:00 2001
							 | 
						||
| 
								 | 
							
								From: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
							 | 
						||
| 
								 | 
							
								Date: Fri, 20 Apr 2012 08:14:00 +0000
							 | 
						||
| 
								 | 
							
								Subject: [PATCH] 	struct siginfo vs. siginfo_t
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									Backport from trunk (but apply to gcc/):
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									2012-04-20  Thomas Schwinge  <thomas@codesourcery.com>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								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/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Likewise.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_5-branch@186613 138bc75d-0d04-0410-961f-82ee72b054a4
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								 gcc/ChangeLog                    |   20 ++++++++++++++++++++
							 | 
						||
| 
								 | 
							
								 gcc/config/alpha/linux-unwind.h  |    4 ++--
							 | 
						||
| 
								 | 
							
								 gcc/config/bfin/linux-unwind.h   |    6 +++---
							 | 
						||
| 
								 | 
							
								 gcc/config/i386/linux-unwind.h   |    6 +++---
							 | 
						||
| 
								 | 
							
								 gcc/config/ia64/linux-unwind.h   |    6 +++---
							 | 
						||
| 
								 | 
							
								 gcc/config/mips/linux-unwind.h   |    5 +++--
							 | 
						||
| 
								 | 
							
								 gcc/config/pa/linux-unwind.h     |    4 ++--
							 | 
						||
| 
								 | 
							
								 gcc/config/sh/linux-unwind.h     |    9 +++++----
							 | 
						||
| 
								 | 
							
								 gcc/config/xtensa/linux-unwind.h |    4 ++--
							 | 
						||
| 
								 | 
							
								 9 files changed, 43 insertions(+), 21 deletions(-)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								diff --git a/gcc/config/alpha/linux-unwind.h b/gcc/config/alpha/linux-unwind.h
							 | 
						||
| 
								 | 
							
								index 4c811dc..8c04b3b 100644
							 | 
						||
| 
								 | 
							
								--- a/gcc/config/alpha/linux-unwind.h
							 | 
						||
| 
								 | 
							
								+++ b/gcc/config/alpha/linux-unwind.h
							 | 
						||
| 
								 | 
							
								@@ -49,7 +49,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
							 | 
						||
| 
								 | 
							
								   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 --git a/gcc/config/bfin/linux-unwind.h b/gcc/config/bfin/linux-unwind.h
							 | 
						||
| 
								 | 
							
								index 88c8285..15bb2f1 100644
							 | 
						||
| 
								 | 
							
								--- a/gcc/config/bfin/linux-unwind.h
							 | 
						||
| 
								 | 
							
								+++ b/gcc/config/bfin/linux-unwind.h
							 | 
						||
| 
								 | 
							
								@@ -48,10 +48,10 @@ bfin_fallback_frame_state (struct _Unwind_Context *context,
							 | 
						||
| 
								 | 
							
								     {
							 | 
						||
| 
								 | 
							
								       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 --git a/gcc/config/i386/linux-unwind.h b/gcc/config/i386/linux-unwind.h
							 | 
						||
| 
								 | 
							
								index 36ee370..fe0ea3e 100644
							 | 
						||
| 
								 | 
							
								--- a/gcc/config/i386/linux-unwind.h
							 | 
						||
| 
								 | 
							
								+++ b/gcc/config/i386/linux-unwind.h
							 | 
						||
| 
								 | 
							
								@@ -133,9 +133,9 @@ x86_fallback_frame_state (struct _Unwind_Context *context,
							 | 
						||
| 
								 | 
							
								     {
							 | 
						||
| 
								 | 
							
								       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 --git a/gcc/config/ia64/linux-unwind.h b/gcc/config/ia64/linux-unwind.h
							 | 
						||
| 
								 | 
							
								index 93f762d..da31259 100644
							 | 
						||
| 
								 | 
							
								--- a/gcc/config/ia64/linux-unwind.h
							 | 
						||
| 
								 | 
							
								+++ b/gcc/config/ia64/linux-unwind.h
							 | 
						||
| 
								 | 
							
								@@ -47,7 +47,7 @@ ia64_fallback_frame_state (struct _Unwind_Context *context,
							 | 
						||
| 
								 | 
							
								       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 @@ ia64_handle_unwabi (struct _Unwind_Context *context, _Unwind_FrameState *fs)
							 | 
						||
| 
								 | 
							
								       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 --git a/gcc/config/mips/linux-unwind.h b/gcc/config/mips/linux-unwind.h
							 | 
						||
| 
								 | 
							
								index 02f7cd5..094ff58 100644
							 | 
						||
| 
								 | 
							
								--- a/gcc/config/mips/linux-unwind.h
							 | 
						||
| 
								 | 
							
								+++ b/gcc/config/mips/linux-unwind.h
							 | 
						||
| 
								 | 
							
								@@ -75,7 +76,7 @@ mips_fallback_frame_state (struct _Unwind_Context *context,
							 | 
						||
| 
								 | 
							
								       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 --git a/gcc/config/pa/linux-unwind.h b/gcc/config/pa/linux-unwind.h
							 | 
						||
| 
								 | 
							
								index a0560e9..38b4eda 100644
							 | 
						||
| 
								 | 
							
								--- a/gcc/config/pa/linux-unwind.h
							 | 
						||
| 
								 | 
							
								+++ b/gcc/config/pa/linux-unwind.h
							 | 
						||
| 
								 | 
							
								@@ -63,7 +63,7 @@ pa32_fallback_frame_state (struct _Unwind_Context *context,
							 | 
						||
| 
								 | 
							
								   int i;
							 | 
						||
| 
								 | 
							
								   struct sigcontext *sc;
							 | 
						||
| 
								 | 
							
								   struct rt_sigframe {
							 | 
						||
| 
								 | 
							
								-    struct siginfo info;
							 | 
						||
| 
								 | 
							
								+    siginfo_t info;
							 | 
						||
| 
								 | 
							
								     struct ucontext uc;
							 | 
						||
| 
								 | 
							
								   } *frame;
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								diff --git a/gcc/config/sh/linux-unwind.h b/gcc/config/sh/linux-unwind.h
							 | 
						||
| 
								 | 
							
								index 94ed95d..5a78e31 100644
							 | 
						||
| 
								 | 
							
								--- a/gcc/config/sh/linux-unwind.h
							 | 
						||
| 
								 | 
							
								+++ b/gcc/config/sh/linux-unwind.h
							 | 
						||
| 
								 | 
							
								@@ -80,9 +81,9 @@ shmedia_fallback_frame_state (struct _Unwind_Context *context,
							 | 
						||
| 
								 | 
							
								 	   && (*(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 +180,7 @@ sh_fallback_frame_state (struct _Unwind_Context *context,
							 | 
						||
| 
								 | 
							
								 		&& (*(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 --git a/gcc/config/xtensa/linux-unwind.h b/gcc/config/xtensa/linux-unwind.h
							 | 
						||
| 
								 | 
							
								index 32e9349..2456497 100644
							 | 
						||
| 
								 | 
							
								--- a/gcc/config/xtensa/linux-unwind.h
							 | 
						||
| 
								 | 
							
								+++ b/gcc/config/xtensa/linux-unwind.h
							 | 
						||
| 
								 | 
							
								@@ -62,7 +62,7 @@ xtensa_fallback_frame_state (struct _Unwind_Context *context,
							 | 
						||
| 
								 | 
							
								   struct sigcontext *sc;
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								   struct rt_sigframe {
							 | 
						||
| 
								 | 
							
								-    struct siginfo info;
							 | 
						||
| 
								 | 
							
								+    siginfo_t info;
							 | 
						||
| 
								 | 
							
								     struct ucontext uc;
							 | 
						||
| 
								 | 
							
								   } *rt_;
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								-- 
							 | 
						||
| 
								 | 
							
								1.7.9.7
							 | 
						||
| 
								 | 
							
								
							 |