| From b7e85069238c40eae54d0ca03ab6d5470d1815f9 Mon Sep 17 00:00:00 2001 |
| From: jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> |
| Date: Tue, 4 Jul 2017 10:25:10 +0000 |
| Subject: [PATCH] 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/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-5-branch@249958 138bc75d-0d04-0410-961f-82ee72b054a4 |
| [Romain backport from gcc-5-branch] |
| Signed-off-by: Romain Naour <romain.naour@gmail.com> |
| --- |
| libgcc/config/aarch64/linux-unwind.h | 2 +- |
| libgcc/config/alpha/linux-unwind.h | 2 +- |
| libgcc/config/bfin/linux-unwind.h | 2 +- |
| libgcc/config/i386/linux-unwind.h | 4 ++-- |
| libgcc/config/m68k/linux-unwind.h | 2 +- |
| libgcc/config/nios2/linux-unwind.h | 2 +- |
| libgcc/config/pa/linux-unwind.h | 2 +- |
| libgcc/config/sh/linux-unwind.h | 2 +- |
| libgcc/config/tilepro/linux-unwind.h | 2 +- |
| libgcc/config/xtensa/linux-unwind.h | 2 +- |
| 10 files changed, 11 insertions(+), 11 deletions(-) |
| |
| diff --git a/libgcc/config/aarch64/linux-unwind.h b/libgcc/config/aarch64/linux-unwind.h |
| index 6b5b3cd..d13dc34 100644 |
| --- a/libgcc/config/aarch64/linux-unwind.h |
| +++ b/libgcc/config/aarch64/linux-unwind.h |
| @@ -52,7 +52,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 b5bfd1c..166d3d2 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 dc58f0a..8b94568 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 7986928..a9d621c 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 1ba2a0c4..d67767e 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 ba4bd80..8978868 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 4a3cfff..d2ac437 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/sh/linux-unwind.h b/libgcc/config/sh/linux-unwind.h |
| index 4875706..671bde7 100644 |
| --- a/libgcc/config/sh/linux-unwind.h |
| +++ b/libgcc/config/sh/linux-unwind.h |
| @@ -180,7 +180,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 27481cf..c24d58c 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 6832d0b..cb15b4c 100644 |
| --- a/libgcc/config/xtensa/linux-unwind.h |
| +++ b/libgcc/config/xtensa/linux-unwind.h |
| @@ -63,7 +63,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 */ |
| -- |
| 2.9.5 |
| |