Use ucontext_t not struct ucontext in linux-unwind.h files.
authorJoseph Myers <joseph@codesourcery.com>
Wed, 28 Jun 2017 09:21:16 +0000 (10:21 +0100)
committerJoseph Myers <jsm28@gcc.gnu.org>
Wed, 28 Jun 2017 09:21:16 +0000 (10:21 +0100)
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.

From-SVN: r249731

12 files changed:
libgcc/ChangeLog
libgcc/config/aarch64/linux-unwind.h
libgcc/config/alpha/linux-unwind.h
libgcc/config/bfin/linux-unwind.h
libgcc/config/i386/linux-unwind.h
libgcc/config/m68k/linux-unwind.h
libgcc/config/nios2/linux-unwind.h
libgcc/config/pa/linux-unwind.h
libgcc/config/riscv/linux-unwind.h
libgcc/config/sh/linux-unwind.h
libgcc/config/tilepro/linux-unwind.h
libgcc/config/xtensa/linux-unwind.h

index 924543cd20657c417116bbd03c9fe4d375c13d96..cc88bc99077876a1ba63abfcde8e25e2137449c6 100644 (file)
@@ -1,3 +1,18 @@
+2017-06-28  Joseph Myers  <joseph@codesourcery.com>
+
+       * 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.
+
 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
 
        * config.host (i*86-wrs-vxworks7): Handle new acceptable triplet.
index d5d6980442fd47b1f1e499e99cb25b5fffbdbeb3..d46d5f53be379ec2dbc9a5ba95d51e22c1d52c2f 100644 (file)
@@ -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_;
index a91a5f4fe26b9d8fcdd8e23c2e59150f52261429..7202516581d2e84e34f4ad4150a2affac484918c 100644 (file)
@@ -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;
     }
index 9412c7652b8ce9920127586cae6c607b0d44ade7..37e9feb69659af047f5c66e7be9b34173d4d6c37 100644 (file)
@@ -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.
index b1d5040a68772d0598ff89e3dbd2e9f15b48d77e..2009ad72260df0b33fed7c42f99927e67781bb4b 100644 (file)
@@ -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
index 82c7a297a6d0d473d4033d100ab03e34701568e0..9ea39d454aaa777439d9702e138bad3bf6026f27 100644 (file)
@@ -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];
index ae82efd6de64700013aa821d1f17d14969b39629..204359d7b925e885376d8d8cb9c236c838f18382 100644 (file)
@@ -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 */
index 580c18dad6915dbc3db60caf93d71a07e1596dad..c2c3409bcc1f77187c1488d675d4f526849dfc2f 100644 (file)
@@ -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:
index a051a2869d4c956d652987a90580e79aed8aa118..1c8aeff7ef09cd4a9dbb7447de13d3f431e5aa4f 100644 (file)
@@ -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_;
index 1038caeb5c36605e13db77490a86b00720058775..a8c98220282a575adabdf3f10456667d143424ab 100644 (file)
@@ -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
index a8dc4405715033db98b48fc30e7bdf57cc0df248..dba3b41027966c757885a9017647e16bf9031947 100644 (file)
@@ -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.  */
index 67c272820d0db4a0798399b7ca9f51f561bf2c79..2cb9eb1f7390fba36615534b6745ba138b26618b 100644 (file)
@@ -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 */