summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog36
-rw-r--r--NEWS3
-rw-r--r--bits/types/stack_t.h2
-rw-r--r--debug/segfault.c2
-rw-r--r--hurd/hurd/signal.h2
-rw-r--r--hurd/trampoline.c2
-rw-r--r--include/signal.h4
-rw-r--r--signal/sigaltstack.c2
-rw-r--r--signal/signal.h4
-rw-r--r--sysdeps/mach/hurd/i386/signal-defines.sym6
-rw-r--r--sysdeps/mach/hurd/sigaltstack.c6
-rw-r--r--sysdeps/mach/hurd/sigstack.c2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sys/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/stack_t.h2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c2
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sys/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c2
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sys/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/sh/sys/procfs.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/procfs.h2
21 files changed, 64 insertions, 25 deletions
diff --git a/ChangeLog b/ChangeLog
index 78a8afc2e8..6cc3067dae 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,39 @@
+2017-06-05  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #21517]
+	* bits/types/stack_t.h (stack_t): Remove struct tag.
+	* sysdeps/unix/sysv/linux/bits/types/stack_t.h (stack_t):
+	Likewise.
+	* sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h (stack_t):
+	Likewise.
+	* debug/segfault.c (install_handler): Use stack_t instead of
+	struct sigaltstack.
+	* hurd/hurd/signal.h (struct hurd_sigstate): Likewise.
+	* hurd/trampoline.c (_hurd_setup_sighandler): Likewise.
+	* include/signal.h (__sigaltstack): Likwise.
+	* signal/sigaltstack.c (__sigaltstack): Likewise.
+	* signal/signal.h (sigaltstack): Likewise.
+	* sysdeps/mach/hurd/i386/signal-defines.sym
+	(SIGALTSTACK__SS_SP__OFFSET): Likewise.
+	(SIGALTSTACK__SS_SIZE__OFFSET): Likewise.
+	(SIGALTSTACK__SS_FLAGS__OFFSET): Likewise.
+	* sysdeps/mach/hurd/sigaltstack.c (__sigaltstack): Likewise.
+	* sysdeps/mach/hurd/sigstack.c (sigstack): Likewise.
+	* sysdeps/unix/sysv/linux/alpha/sys/procfs.h (struct
+	elf_prstatus): Likewise.
+	* sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c (CHECK_SP):
+	Likewise.
+	* sysdeps/unix/sysv/linux/ia64/sys/procfs.h (struct elf_prstatus):
+	Likewise.
+	* sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c (CHECK_SP):
+	Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/sys/procfs.h (struct
+	elf_prstatus): Likewise.
+	* sysdeps/unix/sysv/linux/sh/sys/procfs.h (struct elf_prstatus):
+	Likewise.
+	* sysdeps/unix/sysv/linux/sys/procfs.h (struct elf_prstatus):
+	Likewise.
+
 2017-06-04  Zack Weinberg  <zackw@panix.com>
 
 	* sysdeps/gnu/errlist.c: Regenerate.
diff --git a/NEWS b/NEWS
index 256d8f0e3f..608538f77f 100644
--- a/NEWS
+++ b/NEWS
@@ -77,6 +77,9 @@ Version 2.26
   compat implementation will be used (which refuses all flags and routes it
   to preadv or pwritev).
 
+* The stack_t type no longer has the name struct sigaltstack.  This changes
+  the C++ name mangling for interfaces involving this type.
+
 Security related changes:
 
 * The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes,
diff --git a/bits/types/stack_t.h b/bits/types/stack_t.h
index 3cf0a4019a..47149fce94 100644
--- a/bits/types/stack_t.h
+++ b/bits/types/stack_t.h
@@ -23,7 +23,7 @@
 #include <stddef.h>
 
 /* Structure describing a signal stack.  */
-typedef struct sigaltstack
+typedef struct
   {
     void *ss_sp;
     size_t ss_size;
diff --git a/debug/segfault.c b/debug/segfault.c
index dac9efb765..78c1cf5d1d 100644
--- a/debug/segfault.c
+++ b/debug/segfault.c
@@ -156,7 +156,7 @@ install_handler (void)
   if (getenv ("SEGFAULT_USE_ALTSTACK") != 0)
     {
       void *stack_mem = malloc (2 * SIGSTKSZ);
-      struct sigaltstack ss;
+      stack_t ss;
 
       if (stack_mem != NULL)
 	{
diff --git a/hurd/hurd/signal.h b/hurd/hurd/signal.h
index f899e81862..e03d53e6d7 100644
--- a/hurd/hurd/signal.h
+++ b/hurd/hurd/signal.h
@@ -70,7 +70,7 @@ struct hurd_sigstate
     sigset_t blocked;		/* What signals are blocked.  */
     sigset_t pending;		/* Pending signals, possibly blocked.  */
     struct sigaction actions[NSIG];
-    struct sigaltstack sigaltstack;
+    stack_t sigaltstack;
 
     /* Chain of thread-local signal preemptors; see <hurd/sigpreempt.h>.
        Each element of this chain is in local stack storage, and the chain
diff --git a/hurd/trampoline.c b/hurd/trampoline.c
index 8216e22b7a..e506fd8c96 100644
--- a/hurd/trampoline.c
+++ b/hurd/trampoline.c
@@ -28,7 +28,7 @@
 struct sigcontext *
 _hurd_setup_sighandler (int flags,
 			__sighandler_t handler,
-			struct sigaltstack *sigaltstack,
+			stack_t *sigaltstack,
 			int signo, int sigcode,
 			void *state)
 {
diff --git a/include/signal.h b/include/signal.h
index e39ddc60b9..bcf1455ae7 100644
--- a/include/signal.h
+++ b/include/signal.h
@@ -41,8 +41,8 @@ extern int __sigqueue (__pid_t __pid, int __sig,
 #ifdef __USE_MISC
 extern int __sigreturn (struct sigcontext *__scp);
 #endif
-extern int __sigaltstack (const struct sigaltstack *__ss,
-			  struct sigaltstack *__oss);
+extern int __sigaltstack (const stack_t *__ss,
+			  stack_t *__oss);
 extern int __libc_sigaction (int sig, const struct sigaction *act,
 			     struct sigaction *oact);
 libc_hidden_proto (__libc_sigaction)
diff --git a/signal/sigaltstack.c b/signal/sigaltstack.c
index e4d23195a0..b70afa7127 100644
--- a/signal/sigaltstack.c
+++ b/signal/sigaltstack.c
@@ -21,7 +21,7 @@
 /* Run signals handlers on the stack specified by SS (if not NULL).
    If OSS is not NULL, it is filled in with the old signal stack status.  */
 int
-sigaltstack (const struct sigaltstack *ss, struct sigaltstack *oss)
+sigaltstack (const stack_t *ss, stack_t *oss)
 {
   __set_errno (ENOSYS);
   return -1;
diff --git a/signal/signal.h b/signal/signal.h
index 21d628dbd2..b3114736a5 100644
--- a/signal/signal.h
+++ b/signal/signal.h
@@ -309,8 +309,8 @@ extern int siginterrupt (int __sig, int __interrupt) __THROW;
 
 /* Alternate signal handler stack interface.
    This interface should always be preferred over `sigstack'.  */
-extern int sigaltstack (const struct sigaltstack *__restrict __ss,
-			struct sigaltstack *__restrict __oss) __THROW;
+extern int sigaltstack (const stack_t *__restrict __ss,
+			stack_t *__restrict __oss) __THROW;
 
 #endif /* Use POSIX.1-2008 or X/Open Unix.  */
 
diff --git a/sysdeps/mach/hurd/i386/signal-defines.sym b/sysdeps/mach/hurd/i386/signal-defines.sym
index 9521bd723c..e42bbbe061 100644
--- a/sysdeps/mach/hurd/i386/signal-defines.sym
+++ b/sysdeps/mach/hurd/i386/signal-defines.sym
@@ -5,6 +5,6 @@
 
 HURD_SIGSTATE__SIGALTSTACK__OFFSET	offsetof(struct hurd_sigstate, sigaltstack)
 
-SIGALTSTACK__SS_SP__OFFSET		offsetof(struct sigaltstack, ss_sp)
-SIGALTSTACK__SS_SIZE__OFFSET		offsetof(struct sigaltstack, ss_size)
-SIGALTSTACK__SS_FLAGS__OFFSET		offsetof(struct sigaltstack, ss_flags)
+SIGALTSTACK__SS_SP__OFFSET		offsetof(stack_t, ss_sp)
+SIGALTSTACK__SS_SIZE__OFFSET		offsetof(stack_t, ss_size)
+SIGALTSTACK__SS_FLAGS__OFFSET		offsetof(stack_t, ss_flags)
diff --git a/sysdeps/mach/hurd/sigaltstack.c b/sysdeps/mach/hurd/sigaltstack.c
index 06a6a5c112..4fba69e766 100644
--- a/sysdeps/mach/hurd/sigaltstack.c
+++ b/sysdeps/mach/hurd/sigaltstack.c
@@ -22,16 +22,16 @@
 /* Run signals handlers on the stack specified by SS (if not NULL).
    If OSS is not NULL, it is filled in with the old signal stack status.  */
 int
-__sigaltstack (const struct sigaltstack *argss, struct sigaltstack *oss)
+__sigaltstack (const stack_t *argss, stack_t *oss)
 {
   struct hurd_sigstate *s;
-  struct sigaltstack ss, old;
+  stack_t ss, old;
 
   /* Fault before taking any locks.  */
   if (argss != NULL)
     ss = *argss;
   if (oss != NULL)
-    *(volatile struct sigaltstack *) oss = *oss;
+    *(volatile stack_t *) oss = *oss;
 
   s = _hurd_self_sigstate ();
   __spin_lock (&s->lock);
diff --git a/sysdeps/mach/hurd/sigstack.c b/sysdeps/mach/hurd/sigstack.c
index a3a11f9772..484efb627a 100644
--- a/sysdeps/mach/hurd/sigstack.c
+++ b/sysdeps/mach/hurd/sigstack.c
@@ -24,7 +24,7 @@
 int
 sigstack (struct sigstack *ss, struct sigstack *oss)
 {
-  struct sigaltstack as, oas;
+  stack_t as, oas;
 
   as.ss_sp = ss->ss_sp;
   as.ss_size = 0;
diff --git a/sysdeps/unix/sysv/linux/alpha/sys/procfs.h b/sysdeps/unix/sysv/linux/alpha/sys/procfs.h
index 2cd69d442e..abc9fd8d6e 100644
--- a/sysdeps/unix/sysv/linux/alpha/sys/procfs.h
+++ b/sysdeps/unix/sysv/linux/alpha/sys/procfs.h
@@ -71,7 +71,7 @@ struct elf_prstatus
     unsigned long int pr_sigpend;	/* Set of pending signals.  */
     unsigned long int pr_sighold;	/* Set of held signals.  */
 #if 0
-    struct sigaltstack pr_altstack;	/* Alternate stack info.  */
+    stack_t pr_altstack;		/* Alternate stack info.  */
     struct sigaction pr_action;		/* Signal action for current sig.  */
 #endif
     __pid_t pr_pid;
diff --git a/sysdeps/unix/sysv/linux/bits/types/stack_t.h b/sysdeps/unix/sysv/linux/bits/types/stack_t.h
index 497e42b0ff..373c227930 100644
--- a/sysdeps/unix/sysv/linux/bits/types/stack_t.h
+++ b/sysdeps/unix/sysv/linux/bits/types/stack_t.h
@@ -23,7 +23,7 @@
 #include <stddef.h>
 
 /* Structure describing a signal stack.  */
-typedef struct sigaltstack
+typedef struct
   {
     void *ss_sp;
     int ss_flags;
diff --git a/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c b/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c
index 3a04250add..48aaeb36c9 100644
--- a/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/hppa/____longjmp_chk.c
@@ -27,7 +27,7 @@
        destroyed must all have stack values higher than ours.  */	\
     if ((unsigned long) (sp) > this_sp)					\
       {									\
-        struct sigaltstack oss;						\
+        stack_t oss;							\
         INTERNAL_SYSCALL_DECL (err);					\
         int result = INTERNAL_SYSCALL (sigaltstack, err, 2, NULL, &oss);\
 	/* If we aren't using an alternate stack then we have already	\
diff --git a/sysdeps/unix/sysv/linux/ia64/sys/procfs.h b/sysdeps/unix/sysv/linux/ia64/sys/procfs.h
index 93e569b2cc..afe54fbd53 100644
--- a/sysdeps/unix/sysv/linux/ia64/sys/procfs.h
+++ b/sysdeps/unix/sysv/linux/ia64/sys/procfs.h
@@ -73,7 +73,7 @@ struct elf_prstatus
     unsigned long int pr_sigpend;	/* Set of pending signals.  */
     unsigned long int pr_sighold;	/* Set of held signals.  */
 #if 0
-    struct sigaltstack pr_altstack;	/* Alternate stack info.  */
+    stack_t pr_altstack;		/* Alternate stack info.  */
     struct sigaction pr_action;		/* Signal action for current sig.  */
 #endif
     __pid_t pr_pid;
diff --git a/sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c b/sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c
index 3539b54d7a..030e46389e 100644
--- a/sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c
+++ b/sysdeps/unix/sysv/linux/m68k/____longjmp_chk.c
@@ -24,7 +24,7 @@
     register unsigned long this_sp asm ("sp");				      \
     if ((unsigned long) (sp) < this_sp)					      \
       {									      \
-	struct sigaltstack oss;						      \
+	stack_t oss;							      \
 	INTERNAL_SYSCALL_DECL (err);					      \
 	int result = INTERNAL_SYSCALL (sigaltstack, err, 2, NULL, &oss);      \
 	if (!INTERNAL_SYSCALL_ERROR_P (result, err)			      \
diff --git a/sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h b/sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h
index ef06072e94..b9635ad18a 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h
@@ -23,7 +23,7 @@
 #include <stddef.h>
 
 /* Structure describing a signal stack.  */
-typedef struct sigaltstack
+typedef struct
   {
     void *ss_sp;
     size_t ss_size;
diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h b/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h
index b7b7b0b904..61ded22955 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h
+++ b/sysdeps/unix/sysv/linux/powerpc/sys/procfs.h
@@ -83,7 +83,7 @@ struct elf_prstatus
     unsigned long int pr_sigpend;	/* Set of pending signals.  */
     unsigned long int pr_sighold;	/* Set of held signals.  */
 #if 0
-    struct sigaltstack pr_altstack;	/* Alternate stack info.  */
+    stack_t pr_altstack;		/* Alternate stack info.  */
     struct sigaction pr_action;		/* Signal action for current sig.  */
 #endif
     __pid_t pr_pid;
diff --git a/sysdeps/unix/sysv/linux/sh/sys/procfs.h b/sysdeps/unix/sysv/linux/sh/sys/procfs.h
index c41c87788b..414911a661 100644
--- a/sysdeps/unix/sysv/linux/sh/sys/procfs.h
+++ b/sysdeps/unix/sysv/linux/sh/sys/procfs.h
@@ -55,7 +55,7 @@ struct elf_prstatus
     unsigned long int pr_sigpend;	/* Set of pending signals.  */
     unsigned long int pr_sighold;	/* Set of held signals.  */
 #if 0
-    struct sigaltstack pr_altstack;	/* Alternate stack info.  */
+    stack_t pr_altstack;		/* Alternate stack info.  */
     struct sigaction pr_action;		/* Signal action for current sig.  */
 #endif
     __pid_t pr_pid;
diff --git a/sysdeps/unix/sysv/linux/sys/procfs.h b/sysdeps/unix/sysv/linux/sys/procfs.h
index 8dfa0c08d5..b3b2cf3e12 100644
--- a/sysdeps/unix/sysv/linux/sys/procfs.h
+++ b/sysdeps/unix/sysv/linux/sys/procfs.h
@@ -58,7 +58,7 @@ struct elf_prstatus
     unsigned long int pr_sigpend;	/* Set of pending signals.  */
     unsigned long int pr_sighold;	/* Set of held signals.  */
 #if 0
-    struct sigaltstack pr_altstack;	/* Alternate stack info.  */
+    stack_t pr_altstack;		/* Alternate stack info.  */
     struct sigaction pr_action;		/* Signal action for current sig.  */
 #endif
     __pid_t pr_pid;