| commit 14c2f22a1877f6b60a2f7c2f83ffb032759456a6 |
| Author: jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> |
| Date: Tue Jul 4 10:22:56 2017 +0000 |
| |
| Use ucontext_t not struct ucontext in linux-unwind.h files. |
| |
| Current glibc no longer gives the ucontext_t type the tag struct |
| ucontext, to conform with POSIX namespace rules. This requires |
| various linux-unwind.h files in libgcc, that were previously using |
| struct ucontext, to be fixed to use ucontext_t instead. This is |
| similar to the removal of the struct siginfo tag from siginfo_t some |
| years ago. |
| |
| This patch changes those files to use ucontext_t instead. As the |
| standard name that should be unconditionally safe, so this is not |
| restricted to architectures supported by glibc, or conditioned on the |
| glibc version. |
| |
| Tested compilation together with current glibc with glibc's |
| build-many-glibcs.py. |
| |
| * config/aarch64/linux-unwind.h (aarch64_fallback_frame_state), |
| config/alpha/linux-unwind.h (alpha_fallback_frame_state), |
| config/bfin/linux-unwind.h (bfin_fallback_frame_state), |
| config/i386/linux-unwind.h (x86_64_fallback_frame_state, |
| x86_fallback_frame_state), config/m68k/linux-unwind.h (struct |
| uw_ucontext), config/nios2/linux-unwind.h (struct nios2_ucontext), |
| config/pa/linux-unwind.h (pa32_fallback_frame_state), |
| config/riscv/linux-unwind.h (riscv_fallback_frame_state), |
| config/sh/linux-unwind.h (sh_fallback_frame_state), |
| config/tilepro/linux-unwind.h (tile_fallback_frame_state), |
| config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Use |
| ucontext_t instead of struct ucontext. |
| |
| |
| git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@249956 138bc75d-0d04-0410-961f-82ee72b054a4 |
| |
| diff --git a/libgcc/config/aarch64/linux-unwind.h b/libgcc/config/aarch64/linux-unwind.h |
| index d5d6980442f..d46d5f53be3 100644 |
| --- a/libgcc/config/aarch64/linux-unwind.h |
| +++ b/libgcc/config/aarch64/linux-unwind.h |
| @@ -55,7 +55,7 @@ aarch64_fallback_frame_state (struct _Unwind_Context *context, |
| struct rt_sigframe |
| { |
| siginfo_t info; |
| - struct ucontext uc; |
| + ucontext_t uc; |
| }; |
| |
| struct rt_sigframe *rt_; |
| diff --git a/libgcc/config/alpha/linux-unwind.h b/libgcc/config/alpha/linux-unwind.h |
| index a91a5f4fe26..7202516581d 100644 |
| --- a/libgcc/config/alpha/linux-unwind.h |
| +++ b/libgcc/config/alpha/linux-unwind.h |
| @@ -51,7 +51,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context, |
| { |
| struct rt_sigframe { |
| siginfo_t info; |
| - struct ucontext uc; |
| + ucontext_t uc; |
| } *rt_ = context->cfa; |
| sc = &rt_->uc.uc_mcontext; |
| } |
| diff --git a/libgcc/config/bfin/linux-unwind.h b/libgcc/config/bfin/linux-unwind.h |
| index 9412c7652b8..37e9feb6965 100644 |
| --- a/libgcc/config/bfin/linux-unwind.h |
| +++ b/libgcc/config/bfin/linux-unwind.h |
| @@ -52,7 +52,7 @@ bfin_fallback_frame_state (struct _Unwind_Context *context, |
| void *puc; |
| char retcode[8]; |
| siginfo_t info; |
| - struct ucontext uc; |
| + ucontext_t uc; |
| } *rt_ = context->cfa; |
| |
| /* The void * cast is necessary to avoid an aliasing warning. |
| diff --git a/libgcc/config/i386/linux-unwind.h b/libgcc/config/i386/linux-unwind.h |
| index b1d5040a687..2009ad72260 100644 |
| --- a/libgcc/config/i386/linux-unwind.h |
| +++ b/libgcc/config/i386/linux-unwind.h |
| @@ -58,7 +58,7 @@ x86_64_fallback_frame_state (struct _Unwind_Context *context, |
| if (*(unsigned char *)(pc+0) == 0x48 |
| && *(unsigned long long *)(pc+1) == RT_SIGRETURN_SYSCALL) |
| { |
| - struct ucontext *uc_ = context->cfa; |
| + ucontext_t *uc_ = context->cfa; |
| /* The void * cast is necessary to avoid an aliasing warning. |
| The aliasing warning is correct, but should not be a problem |
| because it does not alias anything. */ |
| @@ -138,7 +138,7 @@ x86_fallback_frame_state (struct _Unwind_Context *context, |
| siginfo_t *pinfo; |
| void *puc; |
| siginfo_t info; |
| - struct ucontext uc; |
| + ucontext_t uc; |
| } *rt_ = context->cfa; |
| /* The void * cast is necessary to avoid an aliasing warning. |
| The aliasing warning is correct, but should not be a problem |
| diff --git a/libgcc/config/m68k/linux-unwind.h b/libgcc/config/m68k/linux-unwind.h |
| index 82c7a297a6d..9ea39d454aa 100644 |
| --- a/libgcc/config/m68k/linux-unwind.h |
| +++ b/libgcc/config/m68k/linux-unwind.h |
| @@ -33,7 +33,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see |
| /* <sys/ucontext.h> is unfortunately broken right now. */ |
| struct uw_ucontext { |
| unsigned long uc_flags; |
| - struct ucontext *uc_link; |
| + ucontext_t *uc_link; |
| stack_t uc_stack; |
| mcontext_t uc_mcontext; |
| unsigned long uc_filler[80]; |
| diff --git a/libgcc/config/nios2/linux-unwind.h b/libgcc/config/nios2/linux-unwind.h |
| index ae82efd6de6..204359d7b92 100644 |
| --- a/libgcc/config/nios2/linux-unwind.h |
| +++ b/libgcc/config/nios2/linux-unwind.h |
| @@ -38,7 +38,7 @@ struct nios2_mcontext { |
| |
| struct nios2_ucontext { |
| unsigned long uc_flags; |
| - struct ucontext *uc_link; |
| + ucontext_t *uc_link; |
| stack_t uc_stack; |
| struct nios2_mcontext uc_mcontext; |
| sigset_t uc_sigmask; /* mask last for extensibility */ |
| diff --git a/libgcc/config/pa/linux-unwind.h b/libgcc/config/pa/linux-unwind.h |
| index 580c18dad69..c2c3409bcc1 100644 |
| --- a/libgcc/config/pa/linux-unwind.h |
| +++ b/libgcc/config/pa/linux-unwind.h |
| @@ -80,7 +80,7 @@ pa32_fallback_frame_state (struct _Unwind_Context *context, |
| struct sigcontext *sc; |
| struct rt_sigframe { |
| siginfo_t info; |
| - struct ucontext uc; |
| + ucontext_t uc; |
| } *frame; |
| |
| /* rt_sigreturn trampoline: |
| diff --git a/libgcc/config/riscv/linux-unwind.h b/libgcc/config/riscv/linux-unwind.h |
| index a051a2869d4..1c8aeff7ef0 100644 |
| --- a/libgcc/config/riscv/linux-unwind.h |
| +++ b/libgcc/config/riscv/linux-unwind.h |
| @@ -42,7 +42,7 @@ riscv_fallback_frame_state (struct _Unwind_Context *context, |
| struct rt_sigframe |
| { |
| siginfo_t info; |
| - struct ucontext uc; |
| + ucontext_t uc; |
| }; |
| |
| struct rt_sigframe *rt_; |
| diff --git a/libgcc/config/sh/linux-unwind.h b/libgcc/config/sh/linux-unwind.h |
| index 1038caeb5c3..a8c98220282 100644 |
| --- a/libgcc/config/sh/linux-unwind.h |
| +++ b/libgcc/config/sh/linux-unwind.h |
| @@ -82,7 +82,7 @@ sh_fallback_frame_state (struct _Unwind_Context *context, |
| { |
| struct rt_sigframe { |
| siginfo_t info; |
| - struct ucontext uc; |
| + ucontext_t uc; |
| } *rt_ = context->cfa; |
| /* The void * cast is necessary to avoid an aliasing warning. |
| The aliasing warning is correct, but should not be a problem |
| diff --git a/libgcc/config/tilepro/linux-unwind.h b/libgcc/config/tilepro/linux-unwind.h |
| index a8dc4405715..dba3b410279 100644 |
| --- a/libgcc/config/tilepro/linux-unwind.h |
| +++ b/libgcc/config/tilepro/linux-unwind.h |
| @@ -61,7 +61,7 @@ tile_fallback_frame_state (struct _Unwind_Context *context, |
| struct rt_sigframe { |
| unsigned char save_area[C_ABI_SAVE_AREA_SIZE]; |
| siginfo_t info; |
| - struct ucontext uc; |
| + ucontext_t uc; |
| } *rt_; |
| |
| /* Return if this is not a signal handler. */ |
| diff --git a/libgcc/config/xtensa/linux-unwind.h b/libgcc/config/xtensa/linux-unwind.h |
| index 67c272820d0..2cb9eb1f739 100644 |
| --- a/libgcc/config/xtensa/linux-unwind.h |
| +++ b/libgcc/config/xtensa/linux-unwind.h |
| @@ -67,7 +67,7 @@ xtensa_fallback_frame_state (struct _Unwind_Context *context, |
| |
| struct rt_sigframe { |
| siginfo_t info; |
| - struct ucontext uc; |
| + ucontext_t uc; |
| } *rt_; |
| |
| /* movi a2, __NR_rt_sigreturn; syscall */ |