From 251287734e89a52da3db682a8241eb6bccc050c9 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Mon, 26 Jun 2017 22:03:58 +0000 Subject: [PATCH] Rename struct ucontext tag (bug 21457). 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. [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/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. --- ChangeLog | 68 +++++++++++++++++++ NEWS | 3 + sysdeps/arm/sys/ucontext.h | 4 +- sysdeps/generic/sys/ucontext.h | 4 +- sysdeps/i386/sys/ucontext.h | 4 +- sysdeps/m68k/sys/ucontext.h | 4 +- sysdeps/mips/sys/ucontext.h | 4 +- sysdeps/powerpc/powerpc32/backtrace.c | 2 +- sysdeps/powerpc/powerpc64/backtrace.c | 2 +- .../sysv/linux/aarch64/kernel_rt_sigframe.h | 2 +- .../unix/sysv/linux/aarch64/sigcontextinfo.h | 2 +- .../unix/sysv/linux/aarch64/sys/ucontext.h | 4 +- sysdeps/unix/sysv/linux/alpha/sys/ucontext.h | 4 +- sysdeps/unix/sysv/linux/arm/register-dump.h | 2 +- sysdeps/unix/sysv/linux/arm/sigcontextinfo.h | 2 +- sysdeps/unix/sysv/linux/arm/sys/ucontext.h | 4 +- sysdeps/unix/sysv/linux/hppa/profil-counter.h | 2 +- sysdeps/unix/sysv/linux/hppa/sys/ucontext.h | 4 +- sysdeps/unix/sysv/linux/ia64/sys/ucontext.h | 4 +- sysdeps/unix/sysv/linux/m68k/sys/ucontext.h | 4 +- .../sysv/linux/microblaze/sigcontextinfo.h | 2 +- .../unix/sysv/linux/mips/kernel_rt_sigframe.h | 2 +- sysdeps/unix/sysv/linux/mips/sys/ucontext.h | 4 +- .../sysv/linux/nios2/kernel_rt_sigframe.h | 2 +- .../unix/sysv/linux/nios2/sigcontextinfo.h | 2 +- sysdeps/unix/sysv/linux/nios2/sys/ucontext.h | 6 +- .../unix/sysv/linux/powerpc/sys/ucontext.h | 4 +- sysdeps/unix/sysv/linux/s390/sys/ucontext.h | 4 +- sysdeps/unix/sysv/linux/sh/makecontext.S | 2 +- sysdeps/unix/sysv/linux/sh/sys/ucontext.h | 4 +- .../sysv/linux/sparc/sparc64/makecontext.c | 2 +- sysdeps/unix/sysv/linux/sparc/sys/ucontext.h | 8 +-- sysdeps/unix/sysv/linux/tile/sigcontextinfo.h | 2 +- sysdeps/unix/sysv/linux/tile/sys/ucontext.h | 4 +- sysdeps/unix/sysv/linux/x86/sys/ucontext.h | 8 +-- .../unix/sysv/linux/x86_64/register-dump.h | 2 +- .../unix/sysv/linux/x86_64/sigcontextinfo.h | 2 +- 37 files changed, 130 insertions(+), 59 deletions(-) diff --git a/ChangeLog b/ChangeLog index c8ea62669d..5663110435 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,73 @@ 2017-06-26 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/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. + * sysdeps/i386/Implies: Add ieee754/float128. * sysdeps/x86_64/Implies: Likewise. * sysdeps/x86/bits/floatn.h: New file. diff --git a/NEWS b/NEWS index 960c9f8dad..a662be27f0 100644 --- a/NEWS +++ b/NEWS @@ -94,6 +94,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 722300a7f1..464a353a51 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 a64460c9ae..e4679d3d94 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 fb5df11965..be8c7e5408 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 a742aaff9a..00c4af417a 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/mips/sys/ucontext.h b/sysdeps/mips/sys/ucontext.h index 4bc1bc199a..d69656b5dc 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 394062136c..187c3b3349 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 723948d78f..919bf1cfd7 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 e67ddfa91c..cb65bd4159 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 b28ad5bdcd..7793d110bb 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 16c7acf221..4f602fc166 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 b9e590347e..bf95205140 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 0f2bed7d1d..d31b3245ec 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 f2a66d154d..d3313af24a 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 0ce9b14ba5..1083d66943 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 0bb6e37298..69cf8302cd 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 982b4c44c2..2fd7e911f7 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 5ed6929af4..9cd686c40c 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 e6ecbe6ab5..280ec3789b 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 071ca9475e..145b3cb003 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 e870b207de..8f62b575cf 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 048e9a46b7..19c0ed97f0 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 f840effe92..3dc59d8240 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 51b715c308..b24447893a 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 af8d75c435..47546572f5 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 b460f23bc9..217748784c 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 183da5c8f9..d6bf4d864a 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 4506961007..b48eb61fa9 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 d44f95e0f9..2f42d3a054 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 ca174d01c1..97127407d3 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 7ce5f2b881..dc0d3169b5 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 8908c589d3..bad81e4a3e 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 7e5cf4a831..fcbe3ffb9b 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 0cbed086a7..f4f5c948de 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 6a52957901..dda8ea3e04 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 e935353ccd..131f96bf22 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]) -- 2.43.5