From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v3 1/7] package/gcc: fix build issue with glibc 2.26
Date: Wed, 27 Sep 2017 22:29:14 +0200 [thread overview]
Message-ID: <20170927202914.GB2903@scaer> (raw)
In-Reply-To: <20170923212414.16744-2-romain.naour@gmail.com>
Romain, All,
On 2017-09-23 23:24 +0200, Romain Naour spake thusly:
> In file included from ../../../libgcc/unwind-dw2.c:403:0:
> ./md-unwind-support.h: In function ??aarch64_fallback_frame_state??:
> ./md-unwind-support.h:58:21: error: field ??uc?? has incomplete type
> struct ucontext uc;
> ^~
>
> The fix is already included in gcc 7.2 release [1]. We have to backport it to
> all older gcc release since it's not included in any stable release yet.
>
> [1] https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=14c2f22a1877f6b60a2f7c2f83ffb032759456a6
>
> Signed-off-by: Romain Naour <romain.naour@gmail.com>
> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Cc: "Yann E. MORIN" <yann.morin.1998@free.fr>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Regards,
Yann E. MORIN.
> ---
> v3: use upstream commit for gcc 5 and 6. (Yann)
> ---
> ...t_t-not-struct-ucontext-in-linux-unwind.h.patch | 190 ++++++++++++++++++++
> ...t_t-not-struct-ucontext-in-linux-unwind.h.patch | 192 +++++++++++++++++++++
> ...t_t-not-struct-ucontext-in-linux-unwind.h.patch | 192 +++++++++++++++++++++
> 3 files changed, 574 insertions(+)
> create mode 100644 package/gcc/4.9.4/943-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch
> create mode 100644 package/gcc/5.4.0/943-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch
> create mode 100644 package/gcc/6.4.0/942-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch
>
> diff --git a/package/gcc/4.9.4/943-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch b/package/gcc/4.9.4/943-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch
> new file mode 100644
> index 0000000..526346c
> --- /dev/null
> +++ b/package/gcc/4.9.4/943-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch
> @@ -0,0 +1,190 @@
> +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 at 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
> +
> diff --git a/package/gcc/5.4.0/943-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch b/package/gcc/5.4.0/943-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch
> new file mode 100644
> index 0000000..4c3385d
> --- /dev/null
> +++ b/package/gcc/5.4.0/943-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch
> @@ -0,0 +1,192 @@
> +From c287e88cc3743bfa7e5719bc4dee327aa3950051 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 at 249958 138bc75d-0d04-0410-961f-82ee72b054a4
> +
> +(cherry picked from commit ecf0d1a107133c715763940c2b197aa814710e1b)
> +[Romain rebase on 5.4]
> +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 86d17b1..909f68f 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 d65474f..9a226b1 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 0c270e4..7fa95d2 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 e54bf73..d35fc45 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 fb79a4d..b2f5ea4 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 dff1c20..1d88afe 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 0149468..9157535 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 e63091f..67033f0 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 fd83ba7..e3c9ef0 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 9daf738..ff6b663 100644
> +--- a/libgcc/config/xtensa/linux-unwind.h
> ++++ b/libgcc/config/xtensa/linux-unwind.h
> +@@ -64,7 +64,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
> +
> diff --git a/package/gcc/6.4.0/942-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch b/package/gcc/6.4.0/942-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch
> new file mode 100644
> index 0000000..a2a2ea0
> --- /dev/null
> +++ b/package/gcc/6.4.0/942-Use-ucontext_t-not-struct-ucontext-in-linux-unwind.h.patch
> @@ -0,0 +1,192 @@
> +From 35d8ca22047f101a700abb29cffbf03b81278a2b Mon Sep 17 00:00:00 2001
> +From: jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
> +Date: Tue, 4 Jul 2017 10:23:57 +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-6-branch at 249957 138bc75d-0d04-0410-961f-82ee72b054a4
> +
> +(cherry picked from commit b685411208e0aaa79190d54faf945763514706b8)
> +[Romain rebase on gcc 6.4]
> +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 4512efb..06de45a 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 bdbba4a..e84812e 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 77b7c23..8bf5e82 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 540a0a2..29efbe3 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 75b7cf7..f964e24 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 2304142..30f25ea 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 9a2657f..e47493d 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 e389cac..0bf43ba 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 796e976..75f8890 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 9872492..586a9d4 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 */
> +--
> +2.9.5
> +
> --
> 2.9.5
>
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
next prev parent reply other threads:[~2017-09-27 20:29 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-23 21:23 [Buildroot] [PATCH v3 0/7] glibc: bump to 2.26 Romain Naour
2017-09-23 21:24 ` [Buildroot] [PATCH v3 1/7] package/gcc: fix build issue with glibc 2.26 Romain Naour
2017-09-27 20:29 ` Yann E. MORIN [this message]
2017-09-23 21:24 ` [Buildroot] [PATCH v3 2/7] " Romain Naour
2017-09-27 20:29 ` Yann E. MORIN
2017-09-23 21:24 ` [Buildroot] [PATCH v3 3/7] package/glibc: needs kernel headers >= 3.10 on powerpc64le Romain Naour
2017-09-27 20:32 ` Yann E. MORIN
2017-09-23 21:24 ` [Buildroot] [PATCH v3 4/7] package/gcc: enable float128 on powerpc64le with glibc >= 2.26 toolchains Romain Naour
2017-09-27 20:40 ` Yann E. MORIN
2017-09-27 21:14 ` Arnout Vandecappelle
2017-09-23 21:24 ` [Buildroot] [PATCH v3 5/7] package/diffutils: disable getopt_long replacement with glibc Romain Naour
2017-09-27 21:01 ` Yann E. MORIN
2017-09-23 21:24 ` [Buildroot] [PATCH v3 6/7] package/flex: disable reallocarray Romain Naour
2017-09-27 21:05 ` Yann E. MORIN
2017-09-27 21:11 ` Romain Naour
2017-09-23 21:24 ` [Buildroot] [PATCH v3 7/7] package/glibc: bump to 2.26 Romain Naour
2017-09-24 9:16 ` Bernd Kuhls
2017-09-23 21:24 ` [Buildroot] [PATCH v3 0/7] glibc: " Romain Naour
2017-09-23 21:28 ` Romain Naour
2017-09-23 21:24 ` [Buildroot] [PATCH v3 1/7] package/gcc: fix build issue with glibc 2.26 Romain Naour
2017-09-23 21:24 ` [Buildroot] [PATCH v3 2/7] " Romain Naour
2017-09-23 21:24 ` [Buildroot] [PATCH v3 3/7] package/glibc: needs kernel headers >= 3.10 on powerpc64le Romain Naour
2017-09-23 21:24 ` [Buildroot] [PATCH v3 4/7] package/gcc: enable float128 on powerpc64le with glibc >= 2.26 toolchains Romain Naour
2017-09-23 21:24 ` [Buildroot] [PATCH v3 5/7] package/diffutils: disable getopt_long replacement with glibc Romain Naour
2017-09-23 21:24 ` [Buildroot] [PATCH v3 6/7] package/flex: disable reallocarray Romain Naour
2017-09-23 21:24 ` [Buildroot] [PATCH v3 7/7] package/glibc: bump to 2.26 Romain Naour
2017-09-27 21:12 ` [Buildroot] [PATCH v3 0/7] glibc: " Arnout Vandecappelle
2017-10-16 16:25 ` Yann E. MORIN
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170927202914.GB2903@scaer \
--to=yann.morin.1998@free.fr \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox