summaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux')
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/procfs.h3
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/ucontext.h (renamed from sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h)8
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym5
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/procfs-prregset.h4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/ucontext.h (renamed from sysdeps/unix/sysv/linux/alpha/sys/ucontext.h)6
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym2
-rw-r--r--sysdeps/unix/sysv/linux/arm/bits/ucontext.h (renamed from sysdeps/unix/sysv/linux/arm/sys/ucontext.h)6
-rw-r--r--sysdeps/unix/sysv/linux/arm/register-dump.h2
-rw-r--r--sysdeps/unix/sysv/linux/arm/ucontext_i.sym4
-rw-r--r--sysdeps/unix/sysv/linux/csky/abiv2/ucontext_i.sym4
-rw-r--r--sysdeps/unix/sysv/linux/csky/bits/ucontext.h (renamed from sysdeps/unix/sysv/linux/csky/sys/ucontext.h)6
-rw-r--r--sysdeps/unix/sysv/linux/csky/register-dump.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/bits/ucontext.h (renamed from sysdeps/unix/sysv/linux/hppa/sys/ucontext.h)6
-rw-r--r--sysdeps/unix/sysv/linux/hppa/ucontext_i.sym1
-rw-r--r--sysdeps/unix/sysv/linux/i386/ucontext_i.sym1
-rw-r--r--sysdeps/unix/sysv/linux/ia64/Makefile6
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/procfs.h5
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h9
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/types/__ia64_fpreg.h22
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/ucontext.h (renamed from sysdeps/unix/sysv/linux/ia64/sys/ucontext.h)18
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym2
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sys/ptrace.h3
-rw-r--r--sysdeps/unix/sysv/linux/m68k/bits/ucontext.h (renamed from sysdeps/unix/sysv/linux/m68k/sys/ucontext.h)6
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/ucontext_i.sym1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/bits/ucontext.h (renamed from sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h)6
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/ucontext.h (renamed from sysdeps/unix/sysv/linux/mips/sys/ucontext.h)6
-rw-r--r--sysdeps/unix/sysv/linux/mips/ucontext_i.sym2
-rw-r--r--sysdeps/unix/sysv/linux/nios2/bits/ucontext.h (renamed from sysdeps/unix/sysv/linux/nios2/sys/ucontext.h)6
-rw-r--r--sysdeps/unix/sysv/linux/nios2/ucontext_i.sym2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/ucontext.h (renamed from sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h)6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.sym1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.sym1
-rw-r--r--sysdeps/unix/sysv/linux/riscv/bits/procfs.h6
-rw-r--r--sysdeps/unix/sysv/linux/riscv/bits/ucontext.h (renamed from sysdeps/unix/sysv/linux/riscv/sys/ucontext.h)6
-rw-r--r--sysdeps/unix/sysv/linux/riscv/makecontext.c18
-rw-r--r--sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/ucontext_i.sym4
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/procfs.h6
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/ucontext.h (renamed from sysdeps/unix/sysv/linux/s390/sys/ucontext.h)6
-rw-r--r--sysdeps/unix/sysv/linux/s390/tst-ptrace-singleblock.c10
-rw-r--r--sysdeps/unix/sysv/linux/s390/ucontext_i.sym1
-rw-r--r--sysdeps/unix/sysv/linux/sh/bits/ucontext.h (renamed from sysdeps/unix/sysv/linux/sh/sys/ucontext.h)6
-rw-r--r--sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym1
-rw-r--r--sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/ucontext.h (renamed from sysdeps/unix/sysv/linux/sparc/sys/ucontext.h)6
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym1
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/ucontext.h (renamed from sysdeps/unix/sysv/linux/x86/sys/ucontext.h)6
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym1
49 files changed, 109 insertions, 136 deletions
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/procfs.h b/sysdeps/unix/sysv/linux/aarch64/bits/procfs.h
index 51571cddaa..a30263d826 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 <bits/procfs.h> directly; use <sys/procfs.h> instead."
#endif
#include <bits/types.h>
+#include <sys/user.h>
/* 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
index 5699c0caf9..b790a6c085 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 <features.h>
@@ -33,7 +33,7 @@
#endif
#ifdef __USE_MISC
-# include <sys/procfs.h>
+# include <bits/procfs.h>
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 6af928fc22..52c3fd6d31 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 <stdint.h>
-#include <sys/ucontext.h>
+#include <signal.h>
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 ab3930c173..7d5c4a1117 100644
--- a/sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym
+++ b/sysdeps/unix/sysv/linux/aarch64/ucontext_i.sym
@@ -1,8 +1,5 @@
-#include <inttypes.h>
-#include <signal.h>
#include <stddef.h>
-#include <sys/ucontext.h>
-#include <asm/sigcontext.h>
+#include <signal.h>
#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 cc74865377..f62df7dadf 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 <sys/ucontext.h>
+ expose all of bits/ucontext.h. */
+#include <bits/ucontext.h>
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
index c997cb03d3..12b23f01de 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
<https://www.gnu.org/licenses/>. */
-#ifndef _SYS_UCONTEXT_H
-#define _SYS_UCONTEXT_H 1
+#ifndef _BITS_UCONTEXT_H
+#define _BITS_UCONTEXT_H 1
#include <features.h>
@@ -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 9e86f8a7ca..f57c779f5b 100644
--- a/sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym
+++ b/sysdeps/unix/sysv/linux/alpha/ucontext-offsets.sym
@@ -1,5 +1,5 @@
#include <stddef.h>
-#include <sys/ucontext.h>
+#include <signal.h>
--
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
index d6934affeb..81371ca4d0 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 <features.h>
@@ -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 26c6e57982..11e5be7e0b 100644
--- a/sysdeps/unix/sysv/linux/arm/register-dump.h
+++ b/sysdeps/unix/sysv/linux/arm/register-dump.h
@@ -19,7 +19,7 @@
#include <sys/uio.h>
#include <_itoa.h>
-#include <sys/ucontext.h>
+#include <ucontext.h>
/* 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 306292f1f8..ccf555d2ab 100644
--- a/sysdeps/unix/sysv/linux/arm/ucontext_i.sym
+++ b/sysdeps/unix/sysv/linux/arm/ucontext_i.sym
@@ -1,7 +1,5 @@
-#include <inttypes.h>
-#include <signal.h>
#include <stddef.h>
-#include <sys/ucontext.h>
+#include <signal.h>
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 4581b65e49..0ee6dd0584 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 <inttypes.h>
-#include <signal.h>
#include <stddef.h>
-#include <sys/ucontext.h>
+#include <signal.h>
SIG_BLOCK
SIG_SETMASK
diff --git a/sysdeps/unix/sysv/linux/csky/sys/ucontext.h b/sysdeps/unix/sysv/linux/csky/bits/ucontext.h
index 7f932aac0e..cf3b0bfcfc 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
<https://www.gnu.org/licenses/>. */
-#ifndef _SYS_UCONTEXT_H
-#define _SYS_UCONTEXT_H 1
+#ifndef _BITS_UCONTEXT_H
+#define _BITS_UCONTEXT_H 1
#include <features.h>
@@ -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 f81ed09531..a4cc5d48f6 100644
--- a/sysdeps/unix/sysv/linux/csky/register-dump.h
+++ b/sysdeps/unix/sysv/linux/csky/register-dump.h
@@ -19,7 +19,7 @@
#include <sys/uio.h>
#include <_itoa.h>
#include <bits/sigcontext.h>
-#include <sys/ucontext.h>
+#include <ucontext.h>
/* 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
index 4fdd9e29ca..1d65187dbb 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 <features.h>
@@ -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 ee33029a07..1ec474c759 100644
--- a/sysdeps/unix/sysv/linux/hppa/ucontext_i.sym
+++ b/sysdeps/unix/sysv/linux/hppa/ucontext_i.sym
@@ -1,6 +1,5 @@
#include <stddef.h>
#include <signal.h>
-#include <sys/ucontext.h>
--
diff --git a/sysdeps/unix/sysv/linux/i386/ucontext_i.sym b/sysdeps/unix/sysv/linux/i386/ucontext_i.sym
index b11a5509cd..79d95709f2 100644
--- a/sysdeps/unix/sysv/linux/i386/ucontext_i.sym
+++ b/sysdeps/unix/sysv/linux/i386/ucontext_i.sym
@@ -1,6 +1,5 @@
#include <stddef.h>
#include <signal.h>
-#include <sys/ucontext.h>
--
diff --git a/sysdeps/unix/sysv/linux/ia64/Makefile b/sysdeps/unix/sysv/linux/ia64/Makefile
index 97fc7df0b1..36240a6057 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 45d553c16f..8351f2394d 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 <bits/procfs.h> directly; use <sys/procfs.h> instead."
#endif
-/* For struct __ia64_fpreg. FIXME: sys/procfs.h should not expose all
- of sys/ucontext.h. */
-#include <sys/ucontext.h>
-#include <bits/sigcontext.h>
+#include <bits/types/__ia64_fpreg.h>
/* 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 252eff321c..eac745fc80 100644
--- a/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h
@@ -26,17 +26,10 @@
#include <bits/types/size_t.h>
#include <bits/types/struct_sigstack.h>
#include <bits/types/stack_t.h>
+#include <bits/types/__ia64_fpreg.h>
#include <bits/sigstack.h>
#include <bits/ss_flags.h>
-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 0000000000..6d69586ab4
--- /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 <features.h>
+
+#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
index c88e880219..ce1503368d 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
<https://www.gnu.org/licenses/>. */
-#ifndef _SYS_UCONTEXT_H
-#define _SYS_UCONTEXT_H 1
+#ifndef _BITS_UCONTEXT_H
+#define _BITS_UCONTEXT_H 1
#include <features.h>
#include <bits/types/sigset_t.h>
#include <bits/types/stack_t.h>
-
+#include <bits/types/__ia64_fpreg.h>
#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 ac3e3c8dea..46459f7ad0 100644
--- a/sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym
+++ b/sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym
@@ -1,5 +1,5 @@
#include <stddef.h>
-#include <sys/ucontext.h>
+#include <signal.h>
--
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 b5e2de09ec..260a385e77 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 <features.h>
-#include <sys/ucontext.h>
-#include <bits/sigcontext.h>
#include <bits/types.h>
+#include <bits/ucontext.h>
__BEGIN_DECLS
diff --git a/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h b/sysdeps/unix/sysv/linux/m68k/bits/ucontext.h
index c9950b55c6..9b8106890d 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 <features.h>
@@ -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 46bd4bf15f..400c57b7f3 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 <stddef.h>
#include <signal.h>
-#include <sys/ucontext.h>
--
diff --git a/sysdeps/unix/sysv/linux/microblaze/sys/ucontext.h b/sysdeps/unix/sysv/linux/microblaze/bits/ucontext.h
index d1c16c21e0..c81850e2b7 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
<https://www.gnu.org/licenses/>. */
-#ifndef _SYS_UCONTEXT_H
-#define _SYS_UCONTEXT_H 1
+#ifndef _BITS_UCONTEXT_H
+#define _BITS_UCONTEXT_H 1
#include <features.h>
@@ -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
index 5bbc8a63b9..2f4d9d786b 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 <features.h>
@@ -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 f14b886407..d9692adcba 100644
--- a/sysdeps/unix/sysv/linux/mips/ucontext_i.sym
+++ b/sysdeps/unix/sysv/linux/mips/ucontext_i.sym
@@ -1,7 +1,5 @@
-#include <inttypes.h>
#include <signal.h>
#include <stddef.h>
-#include <sys/ucontext.h>
#include <kernel_rt_sigframe.h>
diff --git a/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h b/sysdeps/unix/sysv/linux/nios2/bits/ucontext.h
index 276fb209c0..5be92444e6 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 <features.h>
@@ -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 a844c96796..5455cdb681 100644
--- a/sysdeps/unix/sysv/linux/nios2/ucontext_i.sym
+++ b/sysdeps/unix/sysv/linux/nios2/ucontext_i.sym
@@ -1,7 +1,5 @@
-#include <inttypes.h>
#include <signal.h>
#include <stddef.h>
-#include <sys/ucontext.h>
#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
index ad9e8f0afc..9fbd0ad53f 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
<https://www.gnu.org/licenses/>. */
-#ifndef _SYS_UCONTEXT_H
-#define _SYS_UCONTEXT_H 1
+#ifndef _BITS_UCONTEXT_H
+#define _BITS_UCONTEXT_H 1
#include <features.h>
@@ -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 293761f260..e1b22b844e 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 <stddef.h>
#include <signal.h>
-#include <sys/ucontext.h>
--
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.sym b/sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.sym
index 8364e4614f..b2d420e15e 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 <stddef.h>
#include <signal.h>
-#include <sys/ucontext.h>
--
diff --git a/sysdeps/unix/sysv/linux/riscv/bits/procfs.h b/sysdeps/unix/sysv/linux/riscv/bits/procfs.h
index 167991f28f..ef7a010490 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 <bits/procfs.h> directly; use <sys/procfs.h> 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 <sys/ucontext.h>
+ bits/ucontext.h. */
+#include <bits/ucontext.h>
/* 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
index a4e49fe37a..27478372be 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 <features.h>
@@ -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 7ae5e2cd07..bce27fdf45 100644
--- a/sysdeps/unix/sysv/linux/riscv/makecontext.c
+++ b/sysdeps/unix/sysv/linux/riscv/makecontext.c
@@ -18,14 +18,12 @@
#include <sysdep.h>
#include <sys/asm.h>
-#include <sys/ucontext.h>
+#include <ucontext.h>
#include <stdarg.h>
#include <assert.h>
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 a420531d51..730c7e2f1a 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 <sys/ucontext.h>
+#include <signal.h>
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 be55b26310..105b538684 100644
--- a/sysdeps/unix/sysv/linux/riscv/ucontext_i.sym
+++ b/sysdeps/unix/sysv/linux/riscv/ucontext_i.sym
@@ -1,7 +1,5 @@
-#include <inttypes.h>
-#include <signal.h>
#include <stddef.h>
-#include <sys/ucontext.h>
+#include <signal.h>
-- 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 633b8f6346..8134930478 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 <bits/procfs.h> directly; use <sys/procfs.h> 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 <sys/ucontext.h>
+/* 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 <bits/ucontext.h>
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
index 769386ff95..580f01c03e 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
<https://www.gnu.org/licenses/>. */
-#ifndef _SYS_UCONTEXT_H
-#define _SYS_UCONTEXT_H 1
+#ifndef _BITS_UCONTEXT_H
+#define _BITS_UCONTEXT_H 1
#include <features.h>
@@ -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 adbe427169..c456db109c 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
<https://www.gnu.org/licenses/>. */
+#include <elf.h>
+#include <errno.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
-#include <sys/wait.h>
#include <sys/types.h>
#include <sys/uio.h>
-#include <elf.h>
-#include <support/xunistd.h>
+#include <sys/wait.h>
+
#include <support/check.h>
-#include <string.h>
-#include <errno.h>
+#include <support/xunistd.h>
/* 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 6cc9f19624..5b98555049 100644
--- a/sysdeps/unix/sysv/linux/s390/ucontext_i.sym
+++ b/sysdeps/unix/sysv/linux/s390/ucontext_i.sym
@@ -1,6 +1,5 @@
#include <stddef.h>
#include <signal.h>
-#include <sys/ucontext.h>
--
diff --git a/sysdeps/unix/sysv/linux/sh/sys/ucontext.h b/sysdeps/unix/sysv/linux/sh/bits/ucontext.h
index f83292a23c..ac7b8941e3 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 <features.h>
@@ -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 25f914a93b..4cd312ac5d 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 <stddef.h>
#include <signal.h>
-#include <sys/ucontext.h>
--
diff --git a/sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym b/sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym
index 130f60cd96..530a06f6d0 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 <stddef.h>
#include <signal.h>
-#include <sys/ucontext.h>
--
diff --git a/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h b/sysdeps/unix/sysv/linux/sparc/bits/ucontext.h
index 7075f70582..4760a6a685 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
<https://www.gnu.org/licenses/>. */
-#ifndef _SYS_UCONTEXT_H
-#define _SYS_UCONTEXT_H 1
+#ifndef _BITS_UCONTEXT_H
+#define _BITS_UCONTEXT_H 1
#include <features.h>
@@ -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 8a7cb5ab84..0fe920d35a 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 <stddef.h>
#include <signal.h>
-#include <sys/ucontext.h>
--
diff --git a/sysdeps/unix/sysv/linux/x86/sys/ucontext.h b/sysdeps/unix/sysv/linux/x86/bits/ucontext.h
index ca9fdb4713..fe5cbae8fc 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
<https://www.gnu.org/licenses/>. */
-#ifndef _SYS_UCONTEXT_H
-#define _SYS_UCONTEXT_H 1
+#ifndef _BITS_UCONTEXT_H
+#define _BITS_UCONTEXT_H 1
#include <features.h>
@@ -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 c08b3b8b47..4bffe048a0 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 <stddef.h>
#include <signal.h>
-#include <sys/ucontext.h>
--