From 536eef52c5c6bae9939aa5b591b914273e731a13 Mon Sep 17 00:00:00 2001 From: Zack Weinberg Date: Tue, 11 Jun 2019 13:05:02 -0400 Subject: [PATCH] Rename sys/ucontext.h to bits/ucontext.h. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit sys/ucontext.h is effectively a bits header. Its contents are extremely system-specific, and it’s strongly associated with a specific public header (ucontext.h) that provides a superset of its definitions, but there are other public headers that also require some of its definitions. This patch therefore moves it into the bits/ namespace and adjusts all the headers that refer to it. In case there are external users, a stub is added that includes ucontext.h. Most of the fallout changes are trivial, but aarch64, ia64 and riscv need a little more work. aarch64 sys/ucontext.h (now bits/ucontext.h) was including sys/procfs.h for the definition of elf_greg_t etc; the simplest fix is to have it include bits/procfs.h instead (and then that needs to include sys/user.h for user_regs_struct). This is not ideal but fixing it properly would require disentangling all of the debugger interface headers which is more than I’m up for at the moment. ia64 bits/ptrace.h and bits/procfs.h were both including bits/sigcontext.h, which is only licensed to be included from signal.h. (I’m not sure how this ever worked, or why it broke with this patch and not some previous one.) This is fixed by creating another single-type header, bits/types/__ia64_fpreg.h, which provides the only thing they need from bits/sigcontext.h. s/u/s/l/riscv/makecontext.c was defining makecontext with a function head that didn’t agree with its official prototype (in ucontext.h); formerly that file did not include ucontext.h, only sys/ucontext.h, so we were getting away with it, but it’s still wrong. Making the function head match the prototype actually simplifies the code. * sysdeps/generic/sys/ucontext.h: Move to top level bits/ucontext.h. Adjust multiple inclusion guard. * sysdeps/arm/sys/ucontext.h: Move to sysdeps/arm/bits/ucontext.h. Adjust multiple inclusion guard. * sysdeps/i386/sys/ucontext.h: Similarly. * sysdeps/m68k/sys/ucontext.h: Similarly. * sysdeps/mips/sys/ucontext.h: Similarly. * sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h: Similarly. * sysdeps/unix/sysv/linux/alpha/sys/ucontext.h: Similarly. * sysdeps/unix/sysv/linux/arm/sys/ucontext.h: Similarly. * sysdeps/unix/sysv/linux/csky/sys/ucontext.h: Similarly. * sysdeps/unix/sysv/linux/hppa/sys/ucontext.h: Similarly. * sysdeps/unix/sysv/linux/ia64/sys/ucontext.h: Similarly. * sysdeps/unix/sysv/linux/m68k/sys/ucontext.h: Similarly. * sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h: Similarly. * sysdeps/unix/sysv/linux/mips/sys/ucontext.h: Similarly. * sysdeps/unix/sysv/linux/nios2/sys/ucontext.h: Similarly. * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h: Similarly. * sysdeps/unix/sysv/linux/riscv/sys/ucontext.h: Similarly. * sysdeps/unix/sysv/linux/s390/sys/ucontext.h: Similarly. * sysdeps/unix/sysv/linux/sh/sys/ucontext.h: Similarly. * sysdeps/unix/sysv/linux/sparc/sys/ucontext.h: Similarly. * sysdeps/unix/sysv/linux/x86/sys/ucontext.h: Similarly. * stdlib/Makefile: Install bits/ucontext.h. * stdlib/sys/ucontext.h: New backward compatibility stub header, includes ucontext.h. * include/sys/ucontext.h: New wrapper. * sysdeps/unix/sysv/linux/aarch64/bits/procfs.h: Allow inclusion by bits/ucontext.h as well as sys/procfs.h. Include sys/user.h. * sysdeps/unix/sysv/linux/aarch64/bits/ucontext.h: Include bits/procfs.h instead of sys/procfs.h. * sysdeps/unix/sysv/linux/ia64/bits/types/__ia64_fpreg.h: New file, contents factored out of ia64/bits/sigcontext.h and ia64/bits/ucontext.h. * sysdeps/unix/sysv/linux/ia64/Makefile: Install bits/types/__ia64_fpreg.h. Merge subdir=misc blocks. * sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h * sysdeps/unix/sysv/linux/ia64/bits/ucontext.h: Include bits/types/__ia64_fpreg.h for struct ia64_fpreg. * sysdeps/unix/sysv/linux/ia64/bits/procfs.h: Include bits/types/__ia64_fpreg.h for struct ia64_fpreg. Don’t include bits/sigcontext.h or bits/ucontext.h. * sysdeps/unix/sysv/linux/ia64/sys/ptrace.h: Don’t include bits/sigcontext.h. * sysdeps/unix/sysv/linux/riscv/makecontext.c: Include ucontext.h, not sys/ucontext.h. Correct function head to match prototype in ucontext.h. Use va_arg to retrieve all arguments past argc. * sysdeps/unix/sysv/linux/s390/tst-ptrace-singleblock.c: Sort list of includes. * signal/signal.h, stdlib/ucontext.h * sysdeps/unix/sysv/linux/alpha/bits/procfs-prregset.h * sysdeps/unix/sysv/linux/ia64/sys/ptrace.h * sysdeps/unix/sysv/linux/riscv/bits/procfs.h * sysdeps/unix/sysv/linux/s390/bits/procfs.h: Include bits/ucontext.h, not sys/ucontext.h. * sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h * sysdeps/unix/sysv/linux/arm/sigcontextinfo.h * sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h * sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h: Include signal.h, not sys/ucontext.h. * sysdeps/unix/sysv/linux/arm/register-dump.h * sysdeps/unix/sysv/linux/csky/register-dump.h: Include ucontext.h, not sys/ucontext.h. * sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym * sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym * sysdeps/unix/sysv/linux/arm/ucontext_i.sym * sysdeps/unix/sysv/linux/csky/abiv2/ucontext_i.sym * sysdeps/unix/sysv/linux/hppa/ucontext_i.sym * sysdeps/unix/sysv/linux/i386/ucontext_i.sym * sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym * sysdeps/unix/sysv/linux/m68k/m680x0/ucontext_i.sym * sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.sym * sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.sym * sysdeps/unix/sysv/linux/mips/ucontext_i.sym * sysdeps/unix/sysv/linux/nios2/ucontext_i.sym * sysdeps/unix/sysv/linux/riscv/ucontext_i.sym * sysdeps/unix/sysv/linux/s390/ucontext_i.sym * sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym * sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym * sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym * sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym: Include stddef.h and signal.h; don’t include any other headers. * scripts/check-obsolete-constructs.py (HEADER_ALLOWED_INCLUDES) (SYSDEP_ALLOWED_INCLUDES): Update. --- {sysdeps/generic/sys => bits}/ucontext.h | 6 ++--- include/sys/ucontext.h | 1 + scripts/check-obsolete-constructs.py | 25 ++++++++----------- signal/signal.h | 2 +- stdlib/Makefile | 2 +- stdlib/sys/ucontext.h | 1 + stdlib/ucontext.h | 2 +- sysdeps/arm/{sys => bits}/ucontext.h | 6 ++--- sysdeps/i386/{sys => bits}/ucontext.h | 6 ++--- sysdeps/m68k/{sys => bits}/ucontext.h | 6 ++--- sysdeps/mips/{sys => bits}/ucontext.h | 6 ++--- sysdeps/unix/sysv/linux/aarch64/bits/procfs.h | 3 ++- .../linux/aarch64/{sys => bits}/ucontext.h | 8 +++--- .../unix/sysv/linux/aarch64/sigcontextinfo.h | 2 +- .../unix/sysv/linux/aarch64/ucontext_i.sym | 5 +--- .../sysv/linux/alpha/bits/procfs-prregset.h | 4 +-- .../sysv/linux/alpha/{sys => bits}/ucontext.h | 6 ++--- .../sysv/linux/alpha/ucontext-offsets.sym | 2 +- .../sysv/linux/arm/{sys => bits}/ucontext.h | 6 ++--- sysdeps/unix/sysv/linux/arm/register-dump.h | 2 +- sysdeps/unix/sysv/linux/arm/ucontext_i.sym | 4 +-- .../unix/sysv/linux/csky/abiv2/ucontext_i.sym | 4 +-- .../sysv/linux/csky/{sys => bits}/ucontext.h | 6 ++--- sysdeps/unix/sysv/linux/csky/register-dump.h | 2 +- .../sysv/linux/hppa/{sys => bits}/ucontext.h | 6 ++--- sysdeps/unix/sysv/linux/hppa/ucontext_i.sym | 1 - sysdeps/unix/sysv/linux/i386/ucontext_i.sym | 1 - sysdeps/unix/sysv/linux/ia64/Makefile | 6 ++--- sysdeps/unix/sysv/linux/ia64/bits/procfs.h | 5 +--- .../unix/sysv/linux/ia64/bits/sigcontext.h | 9 +------ .../sysv/linux/ia64/bits/types/__ia64_fpreg.h | 22 ++++++++++++++++ .../sysv/linux/ia64/{sys => bits}/ucontext.h | 18 ++++--------- .../sysv/linux/ia64/sigcontext-offsets.sym | 2 +- sysdeps/unix/sysv/linux/ia64/sys/ptrace.h | 3 +-- .../sysv/linux/m68k/{sys => bits}/ucontext.h | 6 ++--- .../sysv/linux/m68k/m680x0/ucontext_i.sym | 1 - .../linux/microblaze/{sys => bits}/ucontext.h | 6 ++--- .../sysv/linux/mips/{sys => bits}/ucontext.h | 6 ++--- sysdeps/unix/sysv/linux/mips/ucontext_i.sym | 2 -- .../sysv/linux/nios2/{sys => bits}/ucontext.h | 6 ++--- sysdeps/unix/sysv/linux/nios2/ucontext_i.sym | 2 -- .../linux/powerpc/{sys => bits}/ucontext.h | 6 ++--- .../linux/powerpc/powerpc32/ucontext_i.sym | 1 - .../linux/powerpc/powerpc64/ucontext_i.sym | 1 - sysdeps/unix/sysv/linux/riscv/bits/procfs.h | 6 ++--- .../sysv/linux/riscv/{sys => bits}/ucontext.h | 6 ++--- sysdeps/unix/sysv/linux/riscv/makecontext.c | 18 ++++--------- .../unix/sysv/linux/riscv/sigcontextinfo.h | 2 +- sysdeps/unix/sysv/linux/riscv/ucontext_i.sym | 4 +-- sysdeps/unix/sysv/linux/s390/bits/procfs.h | 6 ++--- .../sysv/linux/s390/{sys => bits}/ucontext.h | 6 ++--- .../sysv/linux/s390/tst-ptrace-singleblock.c | 10 ++++---- sysdeps/unix/sysv/linux/s390/ucontext_i.sym | 1 - .../sysv/linux/sh/{sys => bits}/ucontext.h | 6 ++--- sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym | 1 - sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym | 1 - .../sysv/linux/sparc/{sys => bits}/ucontext.h | 6 ++--- .../sysv/linux/sparc/sparc32/ucontext_i.sym | 1 - .../sysv/linux/x86/{sys => bits}/ucontext.h | 6 ++--- sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym | 1 - 60 files changed, 140 insertions(+), 168 deletions(-) rename {sysdeps/generic/sys => bits}/ucontext.h (95%) create mode 100644 include/sys/ucontext.h create mode 100644 stdlib/sys/ucontext.h rename sysdeps/arm/{sys => bits}/ucontext.h (96%) rename sysdeps/i386/{sys => bits}/ucontext.h (97%) rename sysdeps/m68k/{sys => bits}/ucontext.h (96%) rename sysdeps/mips/{sys => bits}/ucontext.h (97%) rename sysdeps/unix/sysv/linux/aarch64/{sys => bits}/ucontext.h (95%) rename sysdeps/unix/sysv/linux/alpha/{sys => bits}/ucontext.h (96%) rename sysdeps/unix/sysv/linux/arm/{sys => bits}/ucontext.h (97%) rename sysdeps/unix/sysv/linux/csky/{sys => bits}/ucontext.h (96%) rename sysdeps/unix/sysv/linux/hppa/{sys => bits}/ucontext.h (96%) create mode 100644 sysdeps/unix/sysv/linux/ia64/bits/types/__ia64_fpreg.h rename sysdeps/unix/sysv/linux/ia64/{sys => bits}/ucontext.h (91%) rename sysdeps/unix/sysv/linux/m68k/{sys => bits}/ucontext.h (97%) rename sysdeps/unix/sysv/linux/microblaze/{sys => bits}/ucontext.h (96%) rename sysdeps/unix/sysv/linux/mips/{sys => bits}/ucontext.h (97%) rename sysdeps/unix/sysv/linux/nios2/{sys => bits}/ucontext.h (95%) rename sysdeps/unix/sysv/linux/powerpc/{sys => bits}/ucontext.h (98%) rename sysdeps/unix/sysv/linux/riscv/{sys => bits}/ucontext.h (97%) rename sysdeps/unix/sysv/linux/s390/{sys => bits}/ucontext.h (96%) rename sysdeps/unix/sysv/linux/sh/{sys => bits}/ucontext.h (97%) rename sysdeps/unix/sysv/linux/sparc/{sys => bits}/ucontext.h (99%) rename sysdeps/unix/sysv/linux/x86/{sys => bits}/ucontext.h (98%) diff --git a/sysdeps/generic/sys/ucontext.h b/bits/ucontext.h similarity index 95% rename from sysdeps/generic/sys/ucontext.h rename to bits/ucontext.h index 5d042b8cf88..ee2cff76092 100644 --- a/sysdeps/generic/sys/ucontext.h +++ b/bits/ucontext.h @@ -21,8 +21,8 @@ use of struct sigcontext does not conform to POSIX namespace requirements. */ -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 +#ifndef _BITS_UCONTEXT_H +#define _BITS_UCONTEXT_H 1 #include @@ -51,4 +51,4 @@ typedef struct ucontext_t #undef __ctx -#endif /* sys/ucontext.h */ +#endif /* bits/ucontext.h */ diff --git a/include/sys/ucontext.h b/include/sys/ucontext.h new file mode 100644 index 00000000000..1450bae8f30 --- /dev/null +++ b/include/sys/ucontext.h @@ -0,0 +1 @@ +#include diff --git a/scripts/check-obsolete-constructs.py b/scripts/check-obsolete-constructs.py index c6ce674a5a2..65dc98fea89 100755 --- a/scripts/check-obsolete-constructs.py +++ b/scripts/check-obsolete-constructs.py @@ -504,24 +504,25 @@ HEADER_ALLOWED_INCLUDES = { # tgmath.h -> complex.h, math.h # threads.h -> time.h "inttypes.h": [ "stdint.h" ], - "signal.h": [ "sys/ucontext.h" ], - "stdlib.h": [ "alloca.h", "sys/types.h" ], "tgmath.h": [ "complex.h", "math.h" ], "threads.h": [ "time.h" ], + # necessary for backward compatibility with old GNU extensions + "stdlib.h": [ "alloca.h", "sys/types.h" ], # POSIX top-level headers # mandated: pthread.h -> sched.h, time.h + "pthread.h": [ "sched.h", "time.h" ], # allowed: ftw.h -> sys/stat.h # mqueue.h -> fcntl.h # sched.h -> time.h # spawn.h -> sched.h "ftw.h": [ "sys/stat.h" ], - "langinfo.h": [ "nl_types.h" ], "mqueue.h": [ "fcntl.h" ], - "pthread.h": [ "sched.h", "time.h" ], - "regex.h": [ "limits.h", "sys/types.h" ], "sched.h": [ "time.h" ], "spawn.h": [ "sched.h" ], + # not yet analyzed + "langinfo.h": [ "nl_types.h" ], + "regex.h": [ "limits.h", "sys/types.h" ], "termios.h": [ "sys/ttydefaults.h" ], "utmpx.h": [ "paths.h" ], @@ -562,7 +563,6 @@ HEADER_ALLOWED_INCLUDES = { "shadow.h": [ "paths.h" ], "stdio_ext.h": [ "stdio.h" ], "thread_db.h": [ "pthread.h", "stdint.h", "sys/procfs.h" ], - "ucontext.h": [ "sys/ucontext.h" ], "utmp.h": [ "paths.h" ], "values.h": [ "float.h", "limits.h" ], @@ -574,12 +574,10 @@ HEADER_ALLOWED_INCLUDES = { "sys/mount.h": [ "sys/ioctl.h" ], "sys/mtio.h": [ "sys/ioctl.h" ], "sys/param.h": [ "endian.h", "limits.h", "sys/types.h" ], - "sys/procfs.h": [ "sys/ucontext.h", "sys/user.h" ], - "sys/ptrace.h": [ "sys/ucontext.h" ], + "sys/procfs.h": [ "sys/user.h" ], "sys/raw.h": [ "sys/ioctl.h" ], "sys/timerfd.h": [ "time.h" ], "sys/ttychars.h": [ "sys/ttydefaults.h" ], - "sys/ucontext.h": [ "sys/procfs.h" ], "sys/vfs.h": [ "sys/statfs.h" ], # Nonstandardized headers that do nothing but include some other @@ -597,6 +595,7 @@ HEADER_ALLOWED_INCLUDES = { "sys/socketvar.h": [ "sys/socket.h" ], "sys/syslog.h": [ "syslog.h" ], "sys/termios.h": [ "termios.h" ], + "sys/ucontext.h": [ "ucontext.h" ], "sys/unistd.h": [ "unistd.h" ], "syscall.h": [ "sys/syscall.h" ], "termio.h": [ "sys/ioctl.h", "termios.h" ], @@ -623,8 +622,6 @@ HEADER_ALLOWED_INCLUDES = { "features.h": [ "gnu/stubs.h", "stdc-predef.h", "sys/cdefs.h" ], - "bits/procfs.h": [ "signal.h", "sys/ucontext.h" ], - "bits/types/__va_list.h": [ "stdarg.h" ], "bits/types/ptrdiff_t.h": [ "stddef.h" ], "bits/types/size_t.h": [ "stddef.h" ], @@ -670,8 +667,8 @@ SYSDEP_ALLOWED_INCLUDES = { "bits/ioctls.h": [ "asm/ioctls.h", "linux/sockios.h" ], "bits/local_lim.h": [ "linux/limits.h" ], "bits/param.h": [ "linux/limits.h", "linux/param.h" ], - "bits/procfs.h": [ "asm/elf.h", "asm/ptrace.h" ], - "bits/procfs-prregset.h": [ "sys/ucontext.h" ], + "bits/procfs.h": [ "asm/elf.h", "asm/ptrace.h", + "sys/user.h" ], "bits/sigcontext.h": [ "asm/sigcontext.h" ], "bits/socket.h": [ "asm/socket.h" ], }, @@ -689,7 +686,6 @@ SYSDEP_ALLOWED_INCLUDES = { "sys/fpregdef.h": [ "sgidefs.h" ], "sys/regdef.h": [ "sgidefs.h" ], "sys/tas.h": [ "sgidefs.h" ], - "sys/ucontext.h": [ "sgidefs.h" ], "sys/user.h": [ "sgidefs.h" ], "bits/fcntl.h": [ "sgidefs.h" ], @@ -699,6 +695,7 @@ SYSDEP_ALLOWED_INCLUDES = { "bits/setjmp.h": [ "sgidefs.h" ], "bits/sigcontext.h": [ "sgidefs.h" ], "bits/stat.h": [ "sgidefs.h" ], + "bits/ucontext.h": [ "sgidefs.h" ], "bits/wordsize.h": [ "sgidefs.h" ], }, } diff --git a/signal/signal.h b/signal/signal.h index ae40b903914..a6dd2800f7e 100644 --- a/signal/signal.h +++ b/signal/signal.h @@ -293,7 +293,7 @@ extern int sigreturn (struct sigcontext *__scp) __THROW; # include # if defined __USE_XOPEN || defined __USE_XOPEN2K8 /* This will define `ucontext_t' and `mcontext_t'. */ -# include +# include # endif #endif /* Use POSIX.1-2008 or X/Open Unix. */ diff --git a/stdlib/Makefile b/stdlib/Makefile index 6f8e6ba31d2..f5ea81f0e84 100644 --- a/stdlib/Makefile +++ b/stdlib/Makefile @@ -26,7 +26,7 @@ headers := stdlib.h bits/stdlib.h bits/stdlib-ldbl.h bits/stdlib-float.h \ monetary.h bits/monetary-ldbl.h \ inttypes.h stdint.h bits/wordsize.h bits/timesize.h \ errno.h sys/errno.h bits/errno.h bits/types/error_t.h \ - ucontext.h sys/ucontext.h bits/indirect-return.h \ + ucontext.h sys/ucontext.h bits/ucontext.h bits/indirect-return.h \ alloca.h fmtmsg.h \ bits/stdlib-bsearch.h sys/random.h bits/stdint-intn.h \ bits/stdint-uintn.h bits/time64.h bits/NULL.h \ diff --git a/stdlib/sys/ucontext.h b/stdlib/sys/ucontext.h new file mode 100644 index 00000000000..5fdbd63dbb2 --- /dev/null +++ b/stdlib/sys/ucontext.h @@ -0,0 +1 @@ +#include diff --git a/stdlib/ucontext.h b/stdlib/ucontext.h index b38d0190764..0230a757740 100644 --- a/stdlib/ucontext.h +++ b/stdlib/ucontext.h @@ -26,7 +26,7 @@ #include /* Get machine dependent definition of data structures. */ -#include +#include __BEGIN_DECLS diff --git a/sysdeps/arm/sys/ucontext.h b/sysdeps/arm/bits/ucontext.h similarity index 96% rename from sysdeps/arm/sys/ucontext.h rename to sysdeps/arm/bits/ucontext.h index d082693e776..236924384c2 100644 --- a/sysdeps/arm/sys/ucontext.h +++ b/sysdeps/arm/bits/ucontext.h @@ -17,8 +17,8 @@ /* System V/ARM ABI compliant context switching support. */ -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 +#ifndef _BITS_UCONTEXT_H +#define _BITS_UCONTEXT_H 1 #include @@ -107,4 +107,4 @@ typedef struct ucontext_t #undef __ctx -#endif /* sys/ucontext.h */ +#endif /* bits/ucontext.h */ diff --git a/sysdeps/i386/sys/ucontext.h b/sysdeps/i386/bits/ucontext.h similarity index 97% rename from sysdeps/i386/sys/ucontext.h rename to sysdeps/i386/bits/ucontext.h index ee98042325f..721878134c7 100644 --- a/sysdeps/i386/sys/ucontext.h +++ b/sysdeps/i386/bits/ucontext.h @@ -17,8 +17,8 @@ /* System V/i386 ABI compliant context switching support. */ -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 +#ifndef _BITS_UCONTEXT_H +#define _BITS_UCONTEXT_H 1 #include @@ -135,4 +135,4 @@ typedef struct ucontext_t #undef __ctx #undef __ctxt -#endif /* sys/ucontext.h */ +#endif /* bits/ucontext.h */ diff --git a/sysdeps/m68k/sys/ucontext.h b/sysdeps/m68k/bits/ucontext.h similarity index 96% rename from sysdeps/m68k/sys/ucontext.h rename to sysdeps/m68k/bits/ucontext.h index 48277ab823b..6cf1e3647df 100644 --- a/sysdeps/m68k/sys/ucontext.h +++ b/sysdeps/m68k/bits/ucontext.h @@ -17,8 +17,8 @@ /* System V/m68k ABI compliant context switching support. */ -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 +#ifndef _BITS_UCONTEXT_H +#define _BITS_UCONTEXT_H 1 #include @@ -122,4 +122,4 @@ typedef struct ucontext_t #undef __ctx -#endif /* sys/ucontext.h */ +#endif /* bits/ucontext.h */ diff --git a/sysdeps/mips/sys/ucontext.h b/sysdeps/mips/bits/ucontext.h similarity index 97% rename from sysdeps/mips/sys/ucontext.h rename to sysdeps/mips/bits/ucontext.h index cdb3e8b3bef..2452926915a 100644 --- a/sysdeps/mips/sys/ucontext.h +++ b/sysdeps/mips/bits/ucontext.h @@ -17,8 +17,8 @@ /* System V/mips ABI compliant context switching support. */ -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 +#ifndef _BITS_UCONTEXT_H +#define _BITS_UCONTEXT_H 1 #include @@ -173,4 +173,4 @@ typedef struct ucontext_t #undef __ctx -#endif /* sys/ucontext.h */ +#endif /* bits/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/procfs.h b/sysdeps/unix/sysv/linux/aarch64/bits/procfs.h index 51571cddaae..a30263d8262 100644 --- a/sysdeps/unix/sysv/linux/aarch64/bits/procfs.h +++ b/sysdeps/unix/sysv/linux/aarch64/bits/procfs.h @@ -20,11 +20,12 @@ #ifndef _BITS_PROCFS_H #define _BITS_PROCFS_H 1 -#ifndef _SYS_PROCFS_H +#if !defined _SYS_PROCFS_H && !defined _BITS_UCONTEXT_H # error "Never include directly; use instead." #endif #include +#include /* Type for a general-purpose register. */ typedef __uint64_t elf_greg_t; diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h b/sysdeps/unix/sysv/linux/aarch64/bits/ucontext.h similarity index 95% rename from sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h rename to sysdeps/unix/sysv/linux/aarch64/bits/ucontext.h index 5699c0caf98..b790a6c0850 100644 --- a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/aarch64/bits/ucontext.h @@ -18,8 +18,8 @@ /* System V/AArch64 ABI compliant context switching support. */ -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 +#ifndef _BITS_UCONTEXT_H +#define _BITS_UCONTEXT_H 1 #include @@ -33,7 +33,7 @@ #endif #ifdef __USE_MISC -# include +# include typedef elf_greg_t greg_t; @@ -75,4 +75,4 @@ typedef struct ucontext_t #undef __ctx -#endif /* sys/ucontext.h */ +#endif /* bits/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h b/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h index 6af928fc221..52c3fd6d318 100644 --- a/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h +++ b/sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h @@ -20,7 +20,7 @@ #define _SIGCONTEXTINFO_H #include -#include +#include static inline uintptr_t sigcontext_get_pc (const ucontext_t *ctx) diff --git a/sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym b/sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym index ab3930c173c..7d5c4a1117a 100644 --- a/sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym +++ b/sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym @@ -1,8 +1,5 @@ -#include -#include #include -#include -#include +#include #include "kernel_rt_sigframe.h" diff --git a/sysdeps/unix/sysv/linux/alpha/bits/procfs-prregset.h b/sysdeps/unix/sysv/linux/alpha/bits/procfs-prregset.h index cc748653774..f62df7dadfe 100644 --- a/sysdeps/unix/sysv/linux/alpha/bits/procfs-prregset.h +++ b/sysdeps/unix/sysv/linux/alpha/bits/procfs-prregset.h @@ -25,8 +25,8 @@ #endif /* For gregset_t and fpregset_t. FIXME: sys/procfs.h should not - expose all of sys/ucontext.h. */ -#include + expose all of bits/ucontext.h. */ +#include typedef gregset_t __prgregset_t; typedef fpregset_t __prfpregset_t; diff --git a/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h b/sysdeps/unix/sysv/linux/alpha/bits/ucontext.h similarity index 96% rename from sysdeps/unix/sysv/linux/alpha/sys/ucontext.h rename to sysdeps/unix/sysv/linux/alpha/bits/ucontext.h index c997cb03d30..12b23f01def 100644 --- a/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/alpha/bits/ucontext.h @@ -15,8 +15,8 @@ License along with the GNU C Library. If not, see . */ -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 +#ifndef _BITS_UCONTEXT_H +#define _BITS_UCONTEXT_H 1 #include @@ -91,4 +91,4 @@ typedef struct ucontext_t #undef __ctx -#endif /* sys/ucontext.h */ +#endif /* bits/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym b/sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym index 9e86f8a7ca6..f57c779f5be 100644 --- a/sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym +++ b/sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym @@ -1,5 +1,5 @@ #include -#include +#include -- UC_LINK offsetof (ucontext_t, uc_link) diff --git a/sysdeps/unix/sysv/linux/arm/sys/ucontext.h b/sysdeps/unix/sysv/linux/arm/bits/ucontext.h similarity index 97% rename from sysdeps/unix/sysv/linux/arm/sys/ucontext.h rename to sysdeps/unix/sysv/linux/arm/bits/ucontext.h index d6934affebd..81371ca4d0d 100644 --- a/sysdeps/unix/sysv/linux/arm/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/arm/bits/ucontext.h @@ -17,8 +17,8 @@ /* System V/ARM ABI compliant context switching support. */ -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 +#ifndef _BITS_UCONTEXT_H +#define _BITS_UCONTEXT_H 1 #include @@ -141,4 +141,4 @@ typedef struct ucontext_t #undef __ctx -#endif /* sys/ucontext.h */ +#endif /* bits/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/arm/register-dump.h b/sysdeps/unix/sysv/linux/arm/register-dump.h index 26c6e579821..11e5be7e0b5 100644 --- a/sysdeps/unix/sysv/linux/arm/register-dump.h +++ b/sysdeps/unix/sysv/linux/arm/register-dump.h @@ -19,7 +19,7 @@ #include #include <_itoa.h> -#include +#include /* We will print the register dump in this format: diff --git a/sysdeps/unix/sysv/linux/arm/ucontext_i.sym b/sysdeps/unix/sysv/linux/arm/ucontext_i.sym index 306292f1f82..ccf555d2abc 100644 --- a/sysdeps/unix/sysv/linux/arm/ucontext_i.sym +++ b/sysdeps/unix/sysv/linux/arm/ucontext_i.sym @@ -1,7 +1,5 @@ -#include -#include #include -#include +#include SIG_BLOCK SIG_SETMASK diff --git a/sysdeps/unix/sysv/linux/csky/abiv2/ucontext_i.sym b/sysdeps/unix/sysv/linux/csky/abiv2/ucontext_i.sym index 4581b65e49b..0ee6dd05842 100644 --- a/sysdeps/unix/sysv/linux/csky/abiv2/ucontext_i.sym +++ b/sysdeps/unix/sysv/linux/csky/abiv2/ucontext_i.sym @@ -1,7 +1,5 @@ -#include -#include #include -#include +#include SIG_BLOCK SIG_SETMASK diff --git a/sysdeps/unix/sysv/linux/csky/sys/ucontext.h b/sysdeps/unix/sysv/linux/csky/bits/ucontext.h similarity index 96% rename from sysdeps/unix/sysv/linux/csky/sys/ucontext.h rename to sysdeps/unix/sysv/linux/csky/bits/ucontext.h index 7f932aac0e8..cf3b0bfcfcb 100644 --- a/sysdeps/unix/sysv/linux/csky/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/csky/bits/ucontext.h @@ -16,8 +16,8 @@ License along with the GNU C Library. If not, see . */ -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 +#ifndef _BITS_UCONTEXT_H +#define _BITS_UCONTEXT_H 1 #include @@ -86,4 +86,4 @@ typedef struct ucontext_t #undef __ctx -#endif /* sys/ucontext.h */ +#endif /* bits/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/csky/register-dump.h b/sysdeps/unix/sysv/linux/csky/register-dump.h index f81ed095311..a4cc5d48f65 100644 --- a/sysdeps/unix/sysv/linux/csky/register-dump.h +++ b/sysdeps/unix/sysv/linux/csky/register-dump.h @@ -19,7 +19,7 @@ #include #include <_itoa.h> #include -#include +#include /* abiv1 register dump in this format: diff --git a/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h b/sysdeps/unix/sysv/linux/hppa/bits/ucontext.h similarity index 96% rename from sysdeps/unix/sysv/linux/hppa/sys/ucontext.h rename to sysdeps/unix/sysv/linux/hppa/bits/ucontext.h index 4fdd9e29ca9..1d65187dbbc 100644 --- a/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/hppa/bits/ucontext.h @@ -17,8 +17,8 @@ /* Don't rely on this, the interface is currently messed up and may need to be broken to be fixed. */ -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 +#ifndef _BITS_UCONTEXT_H +#define _BITS_UCONTEXT_H 1 #include @@ -79,4 +79,4 @@ typedef struct ucontext_t #undef __ctx -#endif /* sys/ucontext.h */ +#endif /* bits/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/hppa/ucontext_i.sym b/sysdeps/unix/sysv/linux/hppa/ucontext_i.sym index ee33029a07a..1ec474c7590 100644 --- a/sysdeps/unix/sysv/linux/hppa/ucontext_i.sym +++ b/sysdeps/unix/sysv/linux/hppa/ucontext_i.sym @@ -1,6 +1,5 @@ #include #include -#include -- diff --git a/sysdeps/unix/sysv/linux/i386/ucontext_i.sym b/sysdeps/unix/sysv/linux/i386/ucontext_i.sym index b11a5509cd4..79d95709f29 100644 --- a/sysdeps/unix/sysv/linux/i386/ucontext_i.sym +++ b/sysdeps/unix/sysv/linux/i386/ucontext_i.sym @@ -1,6 +1,5 @@ #include #include -#include -- diff --git a/sysdeps/unix/sysv/linux/ia64/Makefile b/sysdeps/unix/sysv/linux/ia64/Makefile index 97fc7df0b12..36240a60576 100644 --- a/sysdeps/unix/sysv/linux/ia64/Makefile +++ b/sysdeps/unix/sysv/linux/ia64/Makefile @@ -1,5 +1,5 @@ -ifeq ($(subdir),misc) -sysdep_headers += sys/rse.h +ifeq ($(subdir),signal) +sysdep_headers += bits/types/__ia64_fpreg.h endif ifeq ($(subdir),stdlib) @@ -8,7 +8,7 @@ gen-as-const-headers += sigcontext-offsets.sym endif ifeq ($(subdir),misc) -sysdep_headers += sys/io.h +sysdep_headers += sys/io.h sys/rse.h sysdep_routines += ioperm clone2 gen-as-const-headers += sigaltstack-offsets.sym endif diff --git a/sysdeps/unix/sysv/linux/ia64/bits/procfs.h b/sysdeps/unix/sysv/linux/ia64/bits/procfs.h index 45d553c16f9..8351f2394d9 100644 --- a/sysdeps/unix/sysv/linux/ia64/bits/procfs.h +++ b/sysdeps/unix/sysv/linux/ia64/bits/procfs.h @@ -23,10 +23,7 @@ # error "Never include directly; use instead." #endif -/* For struct __ia64_fpreg. FIXME: sys/procfs.h should not expose all - of sys/ucontext.h. */ -#include -#include +#include /* We really need just 72 but let's leave some headroom... */ #define ELF_NGREG 128 diff --git a/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h b/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h index 252eff321c9..eac745fc803 100644 --- a/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h +++ b/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h @@ -26,17 +26,10 @@ #include #include #include +#include #include #include -struct __ia64_fpreg - { - union - { - unsigned long bits[2]; - } u; - } __attribute__ ((__aligned__ (16))); - struct sigcontext { unsigned long int sc_flags; /* see manifest constants below */ diff --git a/sysdeps/unix/sysv/linux/ia64/bits/types/__ia64_fpreg.h b/sysdeps/unix/sysv/linux/ia64/bits/types/__ia64_fpreg.h new file mode 100644 index 00000000000..6d69586ab4a --- /dev/null +++ b/sysdeps/unix/sysv/linux/ia64/bits/types/__ia64_fpreg.h @@ -0,0 +1,22 @@ +#ifndef ____ia64_fpreg_defined +#define ____ia64_fpreg_defined + +#include + +#ifdef __USE_MISC +# define __ctx(fld) fld +#else +# define __ctx(fld) __ ## fld +#endif + +struct __ia64_fpreg + { + union + { + unsigned long __ctx(bits)[2]; + } __ctx(u); + } __attribute__ ((__aligned__ (16))); + +#undef __ctx + +#endif /* __ia64_fpreg */ diff --git a/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h b/sysdeps/unix/sysv/linux/ia64/bits/ucontext.h similarity index 91% rename from sysdeps/unix/sysv/linux/ia64/sys/ucontext.h rename to sysdeps/unix/sysv/linux/ia64/bits/ucontext.h index c88e880219e..ce1503368d4 100644 --- a/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/ia64/bits/ucontext.h @@ -15,14 +15,14 @@ License along with the GNU C Library; if not, see . */ -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 +#ifndef _BITS_UCONTEXT_H +#define _BITS_UCONTEXT_H 1 #include #include #include - +#include #ifdef __USE_MISC # define __ctx(fld) fld @@ -36,14 +36,6 @@ * "ucontext_t" as all the necessary info is inside the former. */ -struct __ia64_fpreg_mcontext - { - union - { - unsigned long __ctx(bits)[2]; - } __ctx(u); - } __attribute__ ((__aligned__ (16))); - typedef struct { unsigned long int __ctx(sc_flags); @@ -63,7 +55,7 @@ typedef struct unsigned long int __ctx(sc_pr); unsigned long int __ctx(sc_br)[8]; unsigned long int __ctx(sc_gr)[32]; - struct __ia64_fpreg_mcontext __ctx(sc_fr)[128]; + struct __ia64_fpreg __ctx(sc_fr)[128]; unsigned long int __ctx(sc_rbs_base); unsigned long int __ctx(sc_loadrs); unsigned long int __ctx(sc_ar25); @@ -103,4 +95,4 @@ ucontext_t; #define uc_stack _u._mc.__ctx(sc_stack) #define uc_link _u._uc._link -#endif /* sys/ucontext.h */ +#endif /* bits/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym b/sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym index ac3e3c8dea1..46459f7ad0f 100644 --- a/sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym +++ b/sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym @@ -1,5 +1,5 @@ #include -#include +#include -- SC_NAT offsetof (mcontext_t, sc_nat) diff --git a/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h b/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h index b5e2de09ecb..260a385e772 100644 --- a/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h +++ b/sysdeps/unix/sysv/linux/ia64/sys/ptrace.h @@ -20,9 +20,8 @@ #define _SYS_PTRACE_H 1 #include -#include -#include #include +#include __BEGIN_DECLS diff --git a/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h b/sysdeps/unix/sysv/linux/m68k/bits/ucontext.h similarity index 97% rename from sysdeps/unix/sysv/linux/m68k/sys/ucontext.h rename to sysdeps/unix/sysv/linux/m68k/bits/ucontext.h index c9950b55c6a..9b8106890d6 100644 --- a/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/m68k/bits/ucontext.h @@ -17,8 +17,8 @@ /* System V/m68k ABI compliant context switching support. */ -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 +#ifndef _BITS_UCONTEXT_H +#define _BITS_UCONTEXT_H 1 #include @@ -127,4 +127,4 @@ typedef struct ucontext_t #undef __ctx -#endif /* sys/ucontext.h */ +#endif /* bits/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/ucontext_i.sym b/sysdeps/unix/sysv/linux/m68k/m680x0/ucontext_i.sym index 46bd4bf15f8..400c57b7f31 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/ucontext_i.sym +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/ucontext_i.sym @@ -1,6 +1,5 @@ #include #include -#include -- diff --git a/sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h b/sysdeps/unix/sysv/linux/microblaze/bits/ucontext.h similarity index 96% rename from sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h rename to sysdeps/unix/sysv/linux/microblaze/bits/ucontext.h index d1c16c21e00..c81850e2b74 100644 --- a/sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/microblaze/bits/ucontext.h @@ -16,8 +16,8 @@ License along with the GNU C Library; if not, see . */ -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 +#ifndef _BITS_UCONTEXT_H +#define _BITS_UCONTEXT_H 1 #include @@ -89,4 +89,4 @@ typedef struct ucontext_t #undef __ctx -#endif /* sys/ucontext.h */ +#endif /* bits/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/mips/sys/ucontext.h b/sysdeps/unix/sysv/linux/mips/bits/ucontext.h similarity index 97% rename from sysdeps/unix/sysv/linux/mips/sys/ucontext.h rename to sysdeps/unix/sysv/linux/mips/bits/ucontext.h index 5bbc8a63b9b..2f4d9d786ba 100644 --- a/sysdeps/unix/sysv/linux/mips/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/mips/bits/ucontext.h @@ -16,8 +16,8 @@ /* Don't rely on this, the interface is currently messed up and may need to be broken to be fixed. */ -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 +#ifndef _BITS_UCONTEXT_H +#define _BITS_UCONTEXT_H 1 #include @@ -121,4 +121,4 @@ typedef struct ucontext_t #undef __ctx -#endif /* sys/ucontext.h */ +#endif /* bits/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/mips/ucontext_i.sym b/sysdeps/unix/sysv/linux/mips/ucontext_i.sym index f14b8864070..d9692adcbab 100644 --- a/sysdeps/unix/sysv/linux/mips/ucontext_i.sym +++ b/sysdeps/unix/sysv/linux/mips/ucontext_i.sym @@ -1,7 +1,5 @@ -#include #include #include -#include #include diff --git a/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h b/sysdeps/unix/sysv/linux/nios2/bits/ucontext.h similarity index 95% rename from sysdeps/unix/sysv/linux/nios2/sys/ucontext.h rename to sysdeps/unix/sysv/linux/nios2/bits/ucontext.h index 276fb209c08..5be92444e60 100644 --- a/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/nios2/bits/ucontext.h @@ -18,8 +18,8 @@ /* System V/Nios II ABI compliant context switching support. */ -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 +#ifndef _BITS_UCONTEXT_H +#define _BITS_UCONTEXT_H 1 #include @@ -58,4 +58,4 @@ typedef struct ucontext_t #undef __ctx -#endif /* sys/ucontext.h */ +#endif /* bits/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/nios2/ucontext_i.sym b/sysdeps/unix/sysv/linux/nios2/ucontext_i.sym index a844c967966..5455cdb6817 100644 --- a/sysdeps/unix/sysv/linux/nios2/ucontext_i.sym +++ b/sysdeps/unix/sysv/linux/nios2/ucontext_i.sym @@ -1,7 +1,5 @@ -#include #include #include -#include #include "kernel_rt_sigframe.h" diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h b/sysdeps/unix/sysv/linux/powerpc/bits/ucontext.h similarity index 98% rename from sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h rename to sysdeps/unix/sysv/linux/powerpc/bits/ucontext.h index ad9e8f0afcc..9fbd0ad53ff 100644 --- a/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/ucontext.h @@ -15,8 +15,8 @@ License along with the GNU C Library; if not, see . */ -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 +#ifndef _BITS_UCONTEXT_H +#define _BITS_UCONTEXT_H 1 #include @@ -197,4 +197,4 @@ typedef struct ucontext_t #undef __ctx -#endif /* sys/ucontext.h */ +#endif /* bits/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.sym b/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.sym index 293761f2606..e1b22b844ed 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.sym +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.sym @@ -1,6 +1,5 @@ #include #include -#include -- diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.sym b/sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.sym index 8364e4614fb..b2d420e15e1 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.sym +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.sym @@ -1,6 +1,5 @@ #include #include -#include -- diff --git a/sysdeps/unix/sysv/linux/riscv/bits/procfs.h b/sysdeps/unix/sysv/linux/riscv/bits/procfs.h index 167991f28f7..ef7a010490c 100644 --- a/sysdeps/unix/sysv/linux/riscv/bits/procfs.h +++ b/sysdeps/unix/sysv/linux/riscv/bits/procfs.h @@ -23,10 +23,10 @@ # error "Never include directly; use instead." #endif -/* FIXME: sys/ucontext.h does not define NGREG or NFPREG unless +/* FIXME: bits/ucontext.h does not define NGREG or NFPREG unless __USE_MISC is active, and sys/procfs.h should not expose all of - sys/ucontext.h. */ -#include + bits/ucontext.h. */ +#include /* ELF register definitions */ #define ELF_NGREG NGREG diff --git a/sysdeps/unix/sysv/linux/riscv/sys/ucontext.h b/sysdeps/unix/sysv/linux/riscv/bits/ucontext.h similarity index 97% rename from sysdeps/unix/sysv/linux/riscv/sys/ucontext.h rename to sysdeps/unix/sysv/linux/riscv/bits/ucontext.h index a4e49fe37a1..27478372be9 100644 --- a/sysdeps/unix/sysv/linux/riscv/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/riscv/bits/ucontext.h @@ -18,8 +18,8 @@ /* Don't rely on this, the interface is currently messed up and may need to be broken to be fixed. */ -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 +#ifndef _BITS_UCONTEXT_H +#define _BITS_UCONTEXT_H 1 #include @@ -107,4 +107,4 @@ typedef struct ucontext_t mcontext_t uc_mcontext; } ucontext_t; -#endif /* sys/ucontext.h */ +#endif /* bits/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/riscv/makecontext.c b/sysdeps/unix/sysv/linux/riscv/makecontext.c index 7ae5e2cd07c..bce27fdf45f 100644 --- a/sysdeps/unix/sysv/linux/riscv/makecontext.c +++ b/sysdeps/unix/sysv/linux/riscv/makecontext.c @@ -18,14 +18,12 @@ #include #include -#include +#include #include #include void -__makecontext (ucontext_t *ucp, void (*func) (void), int argc, - long int a0, long int a1, long int a2, long int a3, long int a4, - ...) +__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...) { extern void __start_context (void) attribute_hidden; long int i, sp; @@ -47,19 +45,13 @@ __makecontext (ucontext_t *ucp, void (*func) (void), int argc, ucp->uc_mcontext.__gregs[REG_PC] = (long int) &__start_context; /* Put args in a0-a7, then put any remaining args on the stack. */ - ucp->uc_mcontext.__gregs[REG_A0 + 0] = a0; - ucp->uc_mcontext.__gregs[REG_A0 + 1] = a1; - ucp->uc_mcontext.__gregs[REG_A0 + 2] = a2; - ucp->uc_mcontext.__gregs[REG_A0 + 3] = a3; - ucp->uc_mcontext.__gregs[REG_A0 + 4] = a4; - - if (__glibc_unlikely (argc > 5)) + if (argc > 0) { va_list vl; - va_start (vl, a4); + va_start (vl, argc); long reg_args = argc < REG_NARGS ? argc : REG_NARGS; - for (i = 5; i < reg_args; i++) + for (i = 0; i < reg_args; i++) ucp->uc_mcontext.__gregs[REG_A0 + i] = va_arg (vl, long); long int stack_args = argc - reg_args; diff --git a/sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h b/sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h index a420531d511..730c7e2f1a5 100644 --- a/sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h +++ b/sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h @@ -19,7 +19,7 @@ #ifndef _SIGCONTEXTINFO_H #define _SIGCONTEXTINFO_H -#include +#include static inline uintptr_t sigcontext_get_pc (const ucontext_t *ctx) diff --git a/sysdeps/unix/sysv/linux/riscv/ucontext_i.sym b/sysdeps/unix/sysv/linux/riscv/ucontext_i.sym index be55b26310b..105b5386849 100644 --- a/sysdeps/unix/sysv/linux/riscv/ucontext_i.sym +++ b/sysdeps/unix/sysv/linux/riscv/ucontext_i.sym @@ -1,7 +1,5 @@ -#include -#include #include -#include +#include -- Constants used by the rt_sigprocmask call. diff --git a/sysdeps/unix/sysv/linux/s390/bits/procfs.h b/sysdeps/unix/sysv/linux/s390/bits/procfs.h index 633b8f63463..81349304785 100644 --- a/sysdeps/unix/sysv/linux/s390/bits/procfs.h +++ b/sysdeps/unix/sysv/linux/s390/bits/procfs.h @@ -23,9 +23,9 @@ # error "Never include directly; use instead." #endif -/* FIXME: sys/ucontext.h does not define NGREG unless __USE_MISC is - active, and sys/procfs.h should not expose all of sys/ucontext.h. */ -#include +/* FIXME: bits/ucontext.h does not define NGREG unless __USE_MISC is + active, and sys/procfs.h should not expose all of bits/ucontext.h. */ +#include typedef greg_t elf_greg_t; #define ELF_NGREG NGREG diff --git a/sysdeps/unix/sysv/linux/s390/sys/ucontext.h b/sysdeps/unix/sysv/linux/s390/bits/ucontext.h similarity index 96% rename from sysdeps/unix/sysv/linux/s390/sys/ucontext.h rename to sysdeps/unix/sysv/linux/s390/bits/ucontext.h index 769386ff957..580f01c03e3 100644 --- a/sysdeps/unix/sysv/linux/s390/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/s390/bits/ucontext.h @@ -16,8 +16,8 @@ License along with the GNU C Library; if not, see . */ -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 +#ifndef _BITS_UCONTEXT_H +#define _BITS_UCONTEXT_H 1 #include @@ -92,4 +92,4 @@ typedef struct ucontext_t #undef __ctx -#endif /* sys/ucontext.h */ +#endif /* bits/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/s390/tst-ptrace-singleblock.c b/sysdeps/unix/sysv/linux/s390/tst-ptrace-singleblock.c index adbe4271694..c456db109ce 100644 --- a/sysdeps/unix/sysv/linux/s390/tst-ptrace-singleblock.c +++ b/sysdeps/unix/sysv/linux/s390/tst-ptrace-singleblock.c @@ -16,19 +16,19 @@ License along with the GNU C Library; if not, see . */ +#include +#include #include #include #include #include #include -#include #include #include -#include -#include +#include + #include -#include -#include +#include /* Ensure that we use the PTRACE_SINGLEBLOCK definition from glibc ptrace.h in tracer_func. We need the kernel ptrace.h for structs ptrace_area diff --git a/sysdeps/unix/sysv/linux/s390/ucontext_i.sym b/sysdeps/unix/sysv/linux/s390/ucontext_i.sym index 6cc9f196245..5b985550497 100644 --- a/sysdeps/unix/sysv/linux/s390/ucontext_i.sym +++ b/sysdeps/unix/sysv/linux/s390/ucontext_i.sym @@ -1,6 +1,5 @@ #include #include -#include -- diff --git a/sysdeps/unix/sysv/linux/sh/sys/ucontext.h b/sysdeps/unix/sysv/linux/sh/bits/ucontext.h similarity index 97% rename from sysdeps/unix/sysv/linux/sh/sys/ucontext.h rename to sysdeps/unix/sysv/linux/sh/bits/ucontext.h index f83292a23ce..ac7b8941e31 100644 --- a/sysdeps/unix/sysv/linux/sh/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/sh/bits/ucontext.h @@ -17,8 +17,8 @@ /* Where is System V/SH ABI? */ -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 +#ifndef _BITS_UCONTEXT_H +#define _BITS_UCONTEXT_H 1 #include @@ -123,4 +123,4 @@ typedef struct ucontext_t #undef __ctx -#endif /* sys/ucontext.h */ +#endif /* bits/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym b/sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym index 25f914a93bf..4cd312ac5d1 100644 --- a/sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym +++ b/sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym @@ -1,6 +1,5 @@ #include #include -#include -- diff --git a/sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym b/sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym index 130f60cd96c..530a06f6d0a 100644 --- a/sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym +++ b/sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym @@ -1,6 +1,5 @@ #include #include -#include -- diff --git a/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h b/sysdeps/unix/sysv/linux/sparc/bits/ucontext.h similarity index 99% rename from sysdeps/unix/sysv/linux/sparc/sys/ucontext.h rename to sysdeps/unix/sysv/linux/sparc/bits/ucontext.h index 7075f705824..4760a6a6850 100644 --- a/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/sparc/bits/ucontext.h @@ -15,8 +15,8 @@ License along with the GNU C Library; if not, see . */ -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 +#ifndef _BITS_UCONTEXT_H +#define _BITS_UCONTEXT_H 1 #include @@ -301,4 +301,4 @@ typedef struct ucontext_t } ucontext_t; #endif /* __WORDSIZE == 32 */ -#endif /* sys/ucontext.h */ +#endif /* bits/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym b/sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym index 8a7cb5ab84e..0fe920d35af 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym @@ -1,6 +1,5 @@ #include #include -#include -- diff --git a/sysdeps/unix/sysv/linux/x86/sys/ucontext.h b/sysdeps/unix/sysv/linux/x86/bits/ucontext.h similarity index 98% rename from sysdeps/unix/sysv/linux/x86/sys/ucontext.h rename to sysdeps/unix/sysv/linux/x86/bits/ucontext.h index ca9fdb4713d..fe5cbae8fc4 100644 --- a/sysdeps/unix/sysv/linux/x86/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/x86/bits/ucontext.h @@ -15,8 +15,8 @@ License along with the GNU C Library; if not, see . */ -#ifndef _SYS_UCONTEXT_H -#define _SYS_UCONTEXT_H 1 +#ifndef _BITS_UCONTEXT_H +#define _BITS_UCONTEXT_H 1 #include @@ -259,4 +259,4 @@ typedef struct ucontext_t #undef __ctx -#endif /* sys/ucontext.h */ +#endif /* bits/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym b/sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym index c08b3b8b47d..4bffe048a01 100644 --- a/sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym +++ b/sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym @@ -1,6 +1,5 @@ #include #include -#include -- -- 2.47.2