From patchwork Mon Jun 12 23:58:32 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joseph Myers X-Patchwork-Id: 20976 Received: (qmail 110826 invoked by alias); 12 Jun 2017 23:58:44 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 108858 invoked by uid 89); 12 Jun 2017 23:58:42 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.4 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS, URIBL_RED autolearn=ham version=3.3.2 spammy=pray, spin, 11810, nios X-HELO: relay1.mentorg.com Date: Mon, 12 Jun 2017 23:58:32 +0000 From: Joseph Myers To: Subject: Rename struct ucontext tag (bug 21457) Message-ID: User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 X-ClientProxiedBy: svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) To SVR-IES-MBX-04.mgc.mentorg.com (139.181.222.4) The ucontext_t type has a tag struct ucontext. As with previous such issues for siginfo_t and stack_t, this tag is not permitted by POSIX (is not in a reserved namespace), and so namespace conformance means breaking C++ name mangling for this type. In this case, the type does need to have some tag rather than just a typedef name, because it includes a pointer to itself. This patch uses struct ucontext_t as the new tag, so the type is mangled as ucontext_t (the POSIX *_t reservation applies in all namespaces, not just the namespace of ordinary identifiers). Another reserved name such as struct __ucontext could of course be used. Because of other namespace issues, this patch does not by itself fix bug 21457 or allow any XFAILs to be removed. Tested for x86_64, and with build-many-glibcs.py. 2017-06-12 Joseph Myers [BZ #21457] * sysdeps/arm/sys/ucontext.h (struct ucontext): Rename to struct ucontext_t. * sysdeps/generic/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/i386/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/m68k/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/mips/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/alpha/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/arm/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/hppa/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/ia64/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/m68k/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/mips/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/nios2/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/s390/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/sh/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/sparc/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/tile/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/unix/sysv/linux/x86/sys/ucontext.h (struct ucontext): Likewise. * sysdeps/microblaze/backtrace_linux.c (_identify_sighandler): Use ucontext_t instead of struct ucontext. * sysdeps/powerpc/powerpc32/backtrace.c (struct rt_signal_frame_32): Likewise. * sysdeps/powerpc/powerpc64/backtrace.c (struct signal_frame_64): Likewise. * sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h (struct kernel_rt_sigframe): Likewise. * sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h (SIGCONTEXT): Likewise. * sysdeps/unix/sysv/linux/arm/register-dump.h (register_dump): Likewise. * sysdeps/unix/sysv/linux/arm/sigcontextinfo.h (SIGCONTEXT): Likewise. * sysdeps/unix/sysv/linux/hppa/profil-counter.h (__profil_counter): Likewise. * sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h (SIGCONTEXT): Likewise. * sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h (struct kernel_rt_sigframe): Likewise. * sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h (struct kernel_rt_sigframe): Likewise. * sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h (SIGCONTEXT): Likewise. * sysdeps/unix/sysv/linux/sh/makecontext.S (__makecontext): Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c (__start_context): Likewise. * sysdeps/unix/sysv/linux/tile/sigcontextinfo.h (SIGCONTEXT): Likewise. * sysdeps/unix/sysv/linux/x86_64/register-dump.h (register_dump): Likewise. * sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h (SIGCONTEXT): Likewise. diff --git a/NEWS b/NEWS index 991ee63..89cdbf6 100644 --- a/NEWS +++ b/NEWS @@ -80,6 +80,9 @@ Version 2.26 * The stack_t type no longer has the name struct sigaltstack. This changes the C++ name mangling for interfaces involving this type. +* The ucontext_t type no longer has the name struct ucontext. This changes + the C++ name mangling for interfaces involving this type. + * The synchronization that pthread_spin_unlock performs has been changed to now be equivalent to a C11 atomic store with release memory order to the spin lock's memory location. This ensures correct synchronization diff --git a/sysdeps/arm/sys/ucontext.h b/sysdeps/arm/sys/ucontext.h index 722300a..464a353 100644 --- a/sysdeps/arm/sys/ucontext.h +++ b/sysdeps/arm/sys/ucontext.h @@ -98,10 +98,10 @@ typedef struct #undef __ctx /* Userlevel context. */ -typedef struct ucontext +typedef struct ucontext_t { unsigned long int uc_flags; - struct ucontext *uc_link; + struct ucontext_t *uc_link; sigset_t uc_sigmask; stack_t uc_stack; mcontext_t uc_mcontext; diff --git a/sysdeps/generic/sys/ucontext.h b/sysdeps/generic/sys/ucontext.h index a64460c..e4679d3 100644 --- a/sysdeps/generic/sys/ucontext.h +++ b/sysdeps/generic/sys/ucontext.h @@ -32,10 +32,10 @@ typedef struct sigcontext mcontext_t; /* Userlevel context. */ -typedef struct ucontext +typedef struct ucontext_t { unsigned long int uc_flags; - struct ucontext *uc_link; + struct ucontext_t *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; sigset_t uc_sigmask; diff --git a/sysdeps/i386/sys/ucontext.h b/sysdeps/i386/sys/ucontext.h index fb5df11..be8c7e5 100644 --- a/sysdeps/i386/sys/ucontext.h +++ b/sysdeps/i386/sys/ucontext.h @@ -126,10 +126,10 @@ typedef struct #undef __ctxt /* Userlevel context. */ -typedef struct ucontext +typedef struct ucontext_t { unsigned long int uc_flags; - struct ucontext *uc_link; + struct ucontext_t *uc_link; sigset_t uc_sigmask; stack_t uc_stack; mcontext_t uc_mcontext; diff --git a/sysdeps/m68k/sys/ucontext.h b/sysdeps/m68k/sys/ucontext.h index a742aaf..00c4af4 100644 --- a/sysdeps/m68k/sys/ucontext.h +++ b/sysdeps/m68k/sys/ucontext.h @@ -113,10 +113,10 @@ typedef struct #endif /* Userlevel context. */ -typedef struct ucontext +typedef struct ucontext_t { unsigned long int uc_flags; - struct ucontext *uc_link; + struct ucontext_t *uc_link; sigset_t uc_sigmask; stack_t uc_stack; mcontext_t uc_mcontext; diff --git a/sysdeps/microblaze/backtrace_linux.c b/sysdeps/microblaze/backtrace_linux.c index 2fe3c5c..b551963 100644 --- a/sysdeps/microblaze/backtrace_linux.c +++ b/sysdeps/microblaze/backtrace_linux.c @@ -28,7 +28,7 @@ _identify_sighandler (unsigned long fp, unsigned long pc, unsigned long *retaddr) { unsigned long *tramp = 0; - struct ucontext *uc; + ucontext_t *uc; if (*retaddr == 0) { @@ -43,8 +43,8 @@ _identify_sighandler (unsigned long fp, unsigned long pc, int sig_num, siginfo_t * info, void * ucontext therefore ucontext is the 3rd argument. */ unsigned long ucptr = ((unsigned long) tramp - - sizeof (struct ucontext)); - uc = (struct ucontext *) ucptr; + - sizeof (ucontext_t)); + uc = (ucontext_t *) ucptr; *pprev_pc = uc->uc_mcontext.regs.pc; /* Need to record the return address since the return address of the function which causes this signal may not be recorded in the diff --git a/sysdeps/mips/sys/ucontext.h b/sysdeps/mips/sys/ucontext.h index 4bc1bc1..d69656b 100644 --- a/sysdeps/mips/sys/ucontext.h +++ b/sysdeps/mips/sys/ucontext.h @@ -159,14 +159,14 @@ typedef struct #undef __ctx /* Userlevel context. */ -typedef struct ucontext +typedef struct ucontext_t { #if _MIPS_SIM == _ABIO32 unsigned long int uc_flags; #else __uint64_t uc_flags; #endif - struct ucontext *uc_link; + struct ucontext_t *uc_link; sigset_t uc_sigmask; stack_t uc_stack; mcontext_t uc_mcontext; diff --git a/sysdeps/powerpc/powerpc32/backtrace.c b/sysdeps/powerpc/powerpc32/backtrace.c index 3940621..187c3b3 100644 --- a/sysdeps/powerpc/powerpc32/backtrace.c +++ b/sysdeps/powerpc/powerpc32/backtrace.c @@ -64,7 +64,7 @@ is_sigtramp_address (void *nip) struct rt_signal_frame_32 { char dummy[SIGNAL_FRAMESIZE + 16]; siginfo_t info; - struct ucontext uc; + ucontext_t uc; /* We don't care about the rest, since IP value is at 'uc' field. */ }; diff --git a/sysdeps/powerpc/powerpc64/backtrace.c b/sysdeps/powerpc/powerpc64/backtrace.c index 723948d..919bf1c 100644 --- a/sysdeps/powerpc/powerpc64/backtrace.c +++ b/sysdeps/powerpc/powerpc64/backtrace.c @@ -50,7 +50,7 @@ struct layout struct signal_frame_64 { #define SIGNAL_FRAMESIZE 128 char dummy[SIGNAL_FRAMESIZE]; - struct ucontext uc; + ucontext_t uc; /* We don't care about the rest, since the IP value is at 'uc' field. */ }; diff --git a/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h b/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h index e67ddfa..cb65bd4 100644 --- a/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h +++ b/sysdeps/unix/sysv/linux/aarch64/kernel_rt_sigframe.h @@ -21,5 +21,5 @@ struct kernel_rt_sigframe { siginfo_t info; - struct ucontext uc; + ucontext_t uc; }; diff --git a/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h b/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h index b28ad5b..7793d11 100644 --- a/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h +++ b/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h @@ -19,7 +19,7 @@ #include #include -#define SIGCONTEXT siginfo_t *_si, struct ucontext * +#define SIGCONTEXT siginfo_t *_si, ucontext_t * #define GET_PC(ctx) ((void *) (uintptr_t) (ctx)->uc_mcontext.pc) /* There is no reliable way to get the sigcontext unless we use a diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h b/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h index 16c7acf..4f602fc 100644 --- a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h @@ -47,10 +47,10 @@ typedef elf_fpregset_t fpregset_t; typedef struct sigcontext mcontext_t; /* Userlevel context. */ -typedef struct ucontext +typedef struct ucontext_t { unsigned long uc_flags; - struct ucontext *uc_link; + struct ucontext_t *uc_link; stack_t uc_stack; sigset_t uc_sigmask; mcontext_t uc_mcontext; diff --git a/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h b/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h index b9e5903..bf95205 100644 --- a/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h @@ -54,10 +54,10 @@ typedef fpreg_t fpregset_t[__NFPREG]; typedef struct sigcontext mcontext_t; /* Userlevel context. */ -typedef struct ucontext +typedef struct ucontext_t { unsigned long int uc_flags; - struct ucontext *uc_link; + struct ucontext_t *uc_link; unsigned long __uc_osf_sigmask; stack_t uc_stack; mcontext_t uc_mcontext; diff --git a/sysdeps/unix/sysv/linux/arm/register-dump.h b/sysdeps/unix/sysv/linux/arm/register-dump.h index 0f2bed7..d31b324 100644 --- a/sysdeps/unix/sysv/linux/arm/register-dump.h +++ b/sysdeps/unix/sysv/linux/arm/register-dump.h @@ -44,7 +44,7 @@ hexvalue (unsigned long int value, char *buf, size_t len) } static void -register_dump (int fd, const struct ucontext *ctx) +register_dump (int fd, const ucontext_t *ctx) { char regs[21][8]; struct iovec iov[97]; diff --git a/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h b/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h index f2a66d1..d3313af 100644 --- a/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h +++ b/sysdeps/unix/sysv/linux/arm/sigcontextinfo.h @@ -18,7 +18,7 @@ #include -#define SIGCONTEXT siginfo_t *_si, struct ucontext * +#define SIGCONTEXT siginfo_t *_si, ucontext_t * #define SIGCONTEXT_EXTRA_ARGS _si, /* The sigcontext structure changed between 2.0 and 2.1 kernels. On any diff --git a/sysdeps/unix/sysv/linux/arm/sys/ucontext.h b/sysdeps/unix/sysv/linux/arm/sys/ucontext.h index 0ce9b14..1083d66 100644 --- a/sysdeps/unix/sysv/linux/arm/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/arm/sys/ucontext.h @@ -101,10 +101,10 @@ typedef struct _libc_fpstate fpregset_t; typedef struct sigcontext mcontext_t; /* Userlevel context. */ -typedef struct ucontext +typedef struct ucontext_t { unsigned long uc_flags; - struct ucontext *uc_link; + struct ucontext_t *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; sigset_t uc_sigmask; diff --git a/sysdeps/unix/sysv/linux/hppa/profil-counter.h b/sysdeps/unix/sysv/linux/hppa/profil-counter.h index 0bb6e37..69cf830 100644 --- a/sysdeps/unix/sysv/linux/hppa/profil-counter.h +++ b/sysdeps/unix/sysv/linux/hppa/profil-counter.h @@ -17,7 +17,7 @@ . */ static void -__profil_counter (int signr, siginfo_t *si, struct ucontext *uctx) +__profil_counter (int signr, siginfo_t *si, ucontext_t *uctx) { unsigned long ip = uctx->uc_mcontext.sc_iaoq[0] & ~0x3; profil_count ((void *) ip); diff --git a/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h b/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h index 982b4c4..2fd7e91 100644 --- a/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h @@ -55,10 +55,10 @@ typedef struct fpregset typedef struct sigcontext mcontext_t; /* Userlevel context. */ -typedef struct ucontext +typedef struct ucontext_t { unsigned long int uc_flags; - struct ucontext *uc_link; + struct ucontext_t *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; sigset_t uc_sigmask; diff --git a/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h b/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h index 5ed6929..9cd686c 100644 --- a/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h @@ -43,7 +43,7 @@ typedef struct sigcontext mcontext_t; # define _SC_GR0_OFFSET 0xc8 /* pray that this is correct... */ #endif -typedef struct ucontext +typedef struct ucontext_t { union { @@ -51,7 +51,7 @@ typedef struct ucontext struct { unsigned long _pad[_SC_GR0_OFFSET/8]; - struct ucontext *_link; /* this should overlay sc_gr[0] */ + struct ucontext_t *_link; /* this should overlay sc_gr[0] */ } _uc; } diff --git a/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h b/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h index e6ecbe6..280ec37 100644 --- a/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h @@ -118,10 +118,10 @@ typedef struct #endif /* Userlevel context. */ -typedef struct ucontext +typedef struct ucontext_t { unsigned long uc_flags; - struct ucontext *uc_link; + struct ucontext_t *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; unsigned long uc_filler[80]; diff --git a/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h b/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h index 071ca94..145b3cb 100644 --- a/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h +++ b/sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h @@ -16,7 +16,7 @@ License along with the GNU C Library; if not, see . */ -#define SIGCONTEXT int _code, struct ucontext * +#define SIGCONTEXT int _code, ucontext_t * #define SIGCONTEXT_EXTRA_ARGS _code, #define GET_PC(ctx) ((void *) (ctx)->uc_mcontext.regs.pc) #define GET_FRAME(ctx) ((void *) (ctx)->uc_mcontext.regs.sp) diff --git a/sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h b/sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h index e870b20..8f62b57 100644 --- a/sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h +++ b/sysdeps/unix/sysv/linux/mips/kernel_rt_sigframe.h @@ -6,7 +6,7 @@ typedef struct kernel_rt_sigframe uint32_t rs_ass[4]; uint32_t rs_code[2]; siginfo_t rs_info; - struct ucontext rs_uc; + ucontext_t rs_uc; uint32_t rs_altcode[8] __attribute__ ((__aligned__ (1 << 7))); } kernel_rt_sigframe_t; diff --git a/sysdeps/unix/sysv/linux/mips/sys/ucontext.h b/sysdeps/unix/sysv/linux/mips/sys/ucontext.h index 048e9a4..19c0ed9 100644 --- a/sysdeps/unix/sysv/linux/mips/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/mips/sys/ucontext.h @@ -113,10 +113,10 @@ typedef struct #undef __ctx /* Userlevel context. */ -typedef struct ucontext +typedef struct ucontext_t { unsigned long int uc_flags; - struct ucontext *uc_link; + struct ucontext_t *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; sigset_t uc_sigmask; diff --git a/sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h b/sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h index f840eff..3dc59d8 100644 --- a/sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h +++ b/sysdeps/unix/sysv/linux/nios2/kernel_rt_sigframe.h @@ -22,5 +22,5 @@ struct kernel_rt_sigframe { siginfo_t info; - struct ucontext uc; + ucontext_t uc; }; diff --git a/sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h b/sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h index 51b715c..b244478 100644 --- a/sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h +++ b/sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h @@ -19,7 +19,7 @@ #include #include "kernel-features.h" -#define SIGCONTEXT siginfo_t *_si, struct ucontext * +#define SIGCONTEXT siginfo_t *_si, ucontext_t * #define GET_PC(ctx) ((void *) (ctx)->uc_mcontext.regs[27]) /* There is no reliable way to get the sigcontext unless we use a diff --git a/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h b/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h index af8d75c..4754657 100644 --- a/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h @@ -1,4 +1,4 @@ -/* struct ucontext definition, Nios II version. +/* ucontext_t definition, Nios II version. Copyright (C) 2015-2017 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -50,10 +50,10 @@ typedef struct mcontext #undef __ctx /* Userlevel context. */ -typedef struct ucontext +typedef struct ucontext_t { unsigned long uc_flags; - struct ucontext *uc_link; + struct ucontext_t *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; sigset_t uc_sigmask; diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h b/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h index b460f23..2177487 100644 --- a/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h @@ -148,10 +148,10 @@ typedef struct { #undef __ctx /* Userlevel context. */ -typedef struct ucontext +typedef struct ucontext_t { unsigned long int uc_flags; - struct ucontext *uc_link; + struct ucontext_t *uc_link; stack_t uc_stack; #if __WORDSIZE == 32 /* diff --git a/sysdeps/unix/sysv/linux/s390/sys/ucontext.h b/sysdeps/unix/sysv/linux/s390/sys/ucontext.h index 183da5c..d6bf4d8 100644 --- a/sysdeps/unix/sysv/linux/s390/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/s390/sys/ucontext.h @@ -83,10 +83,10 @@ typedef struct #undef __ctx /* Userlevel context. */ -typedef struct ucontext +typedef struct ucontext_t { unsigned long int uc_flags; - struct ucontext *uc_link; + struct ucontext_t *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; sigset_t uc_sigmask; diff --git a/sysdeps/unix/sysv/linux/sh/makecontext.S b/sysdeps/unix/sysv/linux/sh/makecontext.S index 4506961..b48eb61 100644 --- a/sysdeps/unix/sysv/linux/sh/makecontext.S +++ b/sysdeps/unix/sysv/linux/sh/makecontext.S @@ -21,7 +21,7 @@ #include "ucontext_i.h" -/* void __makecontext (struct ucontext *ucp, void (*func)(), int argc, ...); +/* void __makecontext (ucontext_t *ucp, void (*func)(), int argc, ...); __makecontext sets up a stack and registers for context to run a given function. The registers are set up like this: r4-r7: parameters 1 to 4 diff --git a/sysdeps/unix/sysv/linux/sh/sys/ucontext.h b/sysdeps/unix/sysv/linux/sh/sys/ucontext.h index d44f95e..2f42d3a 100644 --- a/sysdeps/unix/sysv/linux/sh/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/sh/sys/ucontext.h @@ -115,10 +115,10 @@ typedef struct #undef __ctx /* Userlevel context. */ -typedef struct ucontext +typedef struct ucontext_t { unsigned long int uc_flags; - struct ucontext *uc_link; + struct ucontext_t *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; sigset_t uc_sigmask; diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c b/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c index ca174d0..9712740 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/makecontext.c @@ -21,7 +21,7 @@ #include #include -extern void __start_context (struct ucontext *ucp); +extern void __start_context (ucontext_t *ucp); void __makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...) diff --git a/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h b/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h index 7ce5f2b..dc0d316 100644 --- a/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h @@ -82,8 +82,8 @@ typedef struct { mc_fpu_t mc_fpregs; } mcontext_t; -typedef struct ucontext { - struct ucontext *uc_link; +typedef struct ucontext_t { + struct ucontext_t *uc_link; unsigned long uc_flags; unsigned long __uc_sigmask; mcontext_t uc_mcontext; @@ -261,10 +261,10 @@ typedef struct /* Userlevel context. */ -typedef struct ucontext +typedef struct ucontext_t { unsigned long uc_flags; - struct ucontext *uc_link; + struct ucontext_t *uc_link; sigset_t uc_sigmask; stack_t uc_stack; mcontext_t uc_mcontext; diff --git a/sysdeps/unix/sysv/linux/tile/sigcontextinfo.h b/sysdeps/unix/sysv/linux/tile/sigcontextinfo.h index 8908c58..bad81e4 100644 --- a/sysdeps/unix/sysv/linux/tile/sigcontextinfo.h +++ b/sysdeps/unix/sysv/linux/tile/sigcontextinfo.h @@ -18,7 +18,7 @@ #include -#define SIGCONTEXT siginfo_t *_si, struct ucontext * +#define SIGCONTEXT siginfo_t *_si, ucontext_t * #define SIGCONTEXT_EXTRA_ARGS _si, #define GET_PC(ctx) ((void *) (long) ctx->uc_mcontext.pc) #define GET_FRAME(ctx) ((void *) (long) ctx->uc_mcontext.regs[TREG_FP]) diff --git a/sysdeps/unix/sysv/linux/tile/sys/ucontext.h b/sysdeps/unix/sysv/linux/tile/sys/ucontext.h index 7e5cf4a..fcbe3ff 100644 --- a/sysdeps/unix/sysv/linux/tile/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/tile/sys/ucontext.h @@ -60,10 +60,10 @@ enum typedef struct sigcontext mcontext_t; /* Userlevel context. */ -typedef struct ucontext +typedef struct ucontext_t { unsigned long int uc_flags; - struct ucontext *uc_link; + struct ucontext_t *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; sigset_t uc_sigmask; diff --git a/sysdeps/unix/sysv/linux/x86/sys/ucontext.h b/sysdeps/unix/sysv/linux/x86/sys/ucontext.h index 5fd64bf..a45e16a 100644 --- a/sysdeps/unix/sysv/linux/x86/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/x86/sys/ucontext.h @@ -139,10 +139,10 @@ typedef struct } mcontext_t; /* Userlevel context. */ -typedef struct ucontext +typedef struct ucontext_t { unsigned long int uc_flags; - struct ucontext *uc_link; + struct ucontext_t *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; sigset_t uc_sigmask; @@ -243,10 +243,10 @@ typedef struct } mcontext_t; /* Userlevel context. */ -typedef struct ucontext +typedef struct ucontext_t { unsigned long int uc_flags; - struct ucontext *uc_link; + struct ucontext_t *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; sigset_t uc_sigmask; diff --git a/sysdeps/unix/sysv/linux/x86_64/register-dump.h b/sysdeps/unix/sysv/linux/x86_64/register-dump.h index 6a52957..dda8ea3 100644 --- a/sysdeps/unix/sysv/linux/x86_64/register-dump.h +++ b/sysdeps/unix/sysv/linux/x86_64/register-dump.h @@ -64,7 +64,7 @@ hexvalue (unsigned long int value, char *buf, size_t len) } static void -register_dump (int fd, struct ucontext *ctx) +register_dump (int fd, ucontext_t *ctx) { char regs[25][16]; char fpregs[30][8]; diff --git a/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h b/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h index e935353..131f96b 100644 --- a/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h +++ b/sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h @@ -17,7 +17,7 @@ #include -#define SIGCONTEXT siginfo_t *_si, struct ucontext * +#define SIGCONTEXT siginfo_t *_si, ucontext_t * #define SIGCONTEXT_EXTRA_ARGS _si, #define GET_PC(ctx) \ ((void *) (uintptr_t) (ctx)->uc_mcontext.gregs[REG_RIP])