commit:     ff4f050824e66b71f198d1f87a5410bc9fc32646
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 16 09:48:54 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Sep 16 09:48:54 2018 +0000
URL:        https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=ff4f0508

4.4.7: backport 'struct ucontext' to 'ucontext_t' rename in glibc

Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 4.4.7/gentoo/97_all_ucontext-to-ucontext_t.patch | 152 +++++++++++++++++++++++
 4.4.7/gentoo/README.history                      |   1 +
 2 files changed, 153 insertions(+)

diff --git a/4.4.7/gentoo/97_all_ucontext-to-ucontext_t.patch 
b/4.4.7/gentoo/97_all_ucontext-to-ucontext_t.patch
new file mode 100644
index 0000000..8b0a008
--- /dev/null
+++ b/4.4.7/gentoo/97_all_ucontext-to-ucontext_t.patch
@@ -0,0 +1,152 @@
+https://bugs.gentoo.org/629502
+
+From ecf0d1a107133c715763940c2b197aa814710e1b 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
+---
+ 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 +-
+ 11 files changed, 25 insertions(+), 11 deletions(-)
+
+diff --git a/libgcc/config/alpha/linux-unwind.h 
b/libgcc/config/alpha/linux-unwind.h
+index d65474fec12..9a226b195b5 100644
+--- a/gcc/config/alpha/linux-unwind.h
++++ b/gcc/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 0c270e435c7..7fa95d2dc96 100644
+--- a/gcc/config/bfin/linux-unwind.h
++++ b/gcc/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 e54bf73b1fd..d35fc4566ce 100644
+--- a/gcc/config/i386/linux-unwind.h
++++ b/gcc/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 fb79a4d63cd..b2f5ea4cd7c 100644
+--- a/gcc/config/m68k/linux-unwind.h
++++ b/gcc/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/pa/linux-unwind.h b/libgcc/config/pa/linux-unwind.h
+index 01494685ea4..91575356803 100644
+--- a/gcc/config/pa/linux-unwind.h
++++ b/gcc/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 e63091f287c..67033f06b4b 100644
+--- a/gcc/config/sh/linux-unwind.h
++++ b/gcc/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/xtensa/linux-unwind.h 
b/libgcc/config/xtensa/linux-unwind.h
+index 9a67b5d2b46..98b7ea60e81 100644
+--- a/gcc/config/xtensa/linux-unwind.h
++++ b/gcc/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 */
+-- 
+2.14.1
+

diff --git a/4.4.7/gentoo/README.history b/4.4.7/gentoo/README.history
index c9a142b..6a0e093 100644
--- a/4.4.7/gentoo/README.history
+++ b/4.4.7/gentoo/README.history
@@ -1,5 +1,6 @@
 1.4            [pending]
        U 93_all_gcc-4.4-cloog-dl.patch
+       + 97_all_ucontext-to-ucontext_t.patch
 
 1.3            13 Jan 2016
        - 00_all_gcc-trampolinewarn.patch

Reply via email to