From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 118246 invoked by alias); 27 Jun 2017 13:57:39 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 118113 invoked by uid 89); 27 Jun 2017 13:57:38 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-10.2 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_2,GIT_PATCH_3,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_NONE,SPF_PASS,URIBL_RED autolearn=ham version=3.3.2 spammy= X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 27 Jun 2017 13:57:35 +0000 Received: from nat-ies.mentorg.com ([192.94.31.2] helo=svr-ies-mbx-01.mgc.mentorg.com) by relay1.mentorg.com with esmtp id 1dPqzk-0006pc-Kt from joseph_myers@mentor.com for gcc-patches@gcc.gnu.org; Tue, 27 Jun 2017 06:57:32 -0700 Received: from digraph.polyomino.org.uk (137.202.0.87) by svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) with Microsoft SMTP Server (TLS) id 15.0.1263.5; Tue, 27 Jun 2017 14:57:29 +0100 Received: from jsm28 (helo=localhost) by digraph.polyomino.org.uk with local-esmtp (Exim 4.86_2) (envelope-from ) id 1dPqzd-0004Pe-SR for gcc-patches@gcc.gnu.org; Tue, 27 Jun 2017 13:57:26 +0000 Date: Tue, 27 Jun 2017 13:57:00 -0000 From: Joseph Myers To: Subject: Use ucontext_t not struct ucontext in linux-unwind.h files Message-ID: User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" X-ClientProxiedBy: svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) To svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) X-SW-Source: 2017-06/txt/msg02032.txt.bz2 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. Testing compilation together with current glibc with glibc's build-many-glibcs.py. OK to commit (mainline and active release branches) if that passes? 2017-06-27 Joseph Myers * 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. Index: libgcc/config/aarch64/linux-unwind.h =================================================================== --- libgcc/config/aarch64/linux-unwind.h (revision 249686) +++ libgcc/config/aarch64/linux-unwind.h (working copy) @@ -55,7 +55,7 @@ aarch64_fallback_frame_state (struct _Unwind_Conte struct rt_sigframe { siginfo_t info; - struct ucontext uc; + ucontext_t uc; }; struct rt_sigframe *rt_; Index: libgcc/config/alpha/linux-unwind.h =================================================================== --- libgcc/config/alpha/linux-unwind.h (revision 249686) +++ libgcc/config/alpha/linux-unwind.h (working copy) @@ -51,7 +51,7 @@ alpha_fallback_frame_state (struct _Unwind_Context { struct rt_sigframe { siginfo_t info; - struct ucontext uc; + ucontext_t uc; } *rt_ = context->cfa; sc = &rt_->uc.uc_mcontext; } Index: libgcc/config/bfin/linux-unwind.h =================================================================== --- libgcc/config/bfin/linux-unwind.h (revision 249686) +++ libgcc/config/bfin/linux-unwind.h (working copy) @@ -52,7 +52,7 @@ bfin_fallback_frame_state (struct _Unwind_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: libgcc/config/i386/linux-unwind.h =================================================================== --- libgcc/config/i386/linux-unwind.h (revision 249686) +++ libgcc/config/i386/linux-unwind.h (working copy) @@ -58,7 +58,7 @@ x86_64_fallback_frame_state (struct _Unwind_Contex 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 * 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: libgcc/config/m68k/linux-unwind.h =================================================================== --- libgcc/config/m68k/linux-unwind.h (revision 249686) +++ libgcc/config/m68k/linux-unwind.h (working copy) @@ -33,7 +33,7 @@ see the files COPYING3 and COPYING.RUNTIME respect /* 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: libgcc/config/nios2/linux-unwind.h =================================================================== --- libgcc/config/nios2/linux-unwind.h (revision 249686) +++ libgcc/config/nios2/linux-unwind.h (working copy) @@ -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: libgcc/config/pa/linux-unwind.h =================================================================== --- libgcc/config/pa/linux-unwind.h (revision 249686) +++ libgcc/config/pa/linux-unwind.h (working copy) @@ -80,7 +80,7 @@ pa32_fallback_frame_state (struct _Unwind_Context struct sigcontext *sc; struct rt_sigframe { siginfo_t info; - struct ucontext uc; + ucontext_t uc; } *frame; /* rt_sigreturn trampoline: Index: libgcc/config/riscv/linux-unwind.h =================================================================== --- libgcc/config/riscv/linux-unwind.h (revision 249686) +++ libgcc/config/riscv/linux-unwind.h (working copy) @@ -42,7 +42,7 @@ riscv_fallback_frame_state (struct _Unwind_Context struct rt_sigframe { siginfo_t info; - struct ucontext uc; + ucontext_t uc; }; struct rt_sigframe *rt_; Index: libgcc/config/sh/linux-unwind.h =================================================================== --- libgcc/config/sh/linux-unwind.h (revision 249686) +++ libgcc/config/sh/linux-unwind.h (working copy) @@ -82,7 +82,7 @@ sh_fallback_frame_state (struct _Unwind_Context *c { 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: libgcc/config/tilepro/linux-unwind.h =================================================================== --- libgcc/config/tilepro/linux-unwind.h (revision 249686) +++ libgcc/config/tilepro/linux-unwind.h (working copy) @@ -61,7 +61,7 @@ tile_fallback_frame_state (struct _Unwind_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: libgcc/config/xtensa/linux-unwind.h =================================================================== --- libgcc/config/xtensa/linux-unwind.h (revision 249686) +++ libgcc/config/xtensa/linux-unwind.h (working copy) @@ -67,7 +67,7 @@ xtensa_fallback_frame_state (struct _Unwind_Contex struct rt_sigframe { siginfo_t info; - struct ucontext uc; + ucontext_t uc; } *rt_; /* movi a2, __NR_rt_sigreturn; syscall */ -- Joseph S. Myers joseph@codesourcery.com