summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2010-01-10 18:43:30 -0800
committerUlrich Drepper <drepper@redhat.com>2010-01-10 18:43:30 -0800
commit33780b6d332af9d94216eff880734be7748c2269 (patch)
treeee7dc2eaa2735aba018a66b81e5a119fc4a3ef2c
parent99d46ae3794830e996717a53c8551d758a64eeb5 (diff)
downloadglibc-33780b6d332af9d94216eff880734be7748c2269.tar.gz
glibc-33780b6d332af9d94216eff880734be7748c2269.tar.xz
glibc-33780b6d332af9d94216eff880734be7748c2269.zip
FIx up signal.h for XPG7.
-rw-r--r--ChangeLog9
-rw-r--r--conform/data/signal.h-data9
-rw-r--r--signal/signal.h6
-rw-r--r--sysdeps/unix/sysv/linux/bits/sigaction.h4
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/sigaction.h4
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/sigaction.h4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/sigaction.h4
7 files changed, 32 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 00c7710658..8dd1c05efe 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2010-01-10  Ulrich Drepper  <drepper@redhat.com>
 
+	* sysdeps/unix/sysv/linux/bits/sigaction.h: SA_RESTART, SA_NODEFER,
+	and SA_RESETHAND now available in Base.
+	* sysdeps/unix/sysv/linux/ia64/bits/sigaction.h: Likewise.
+	* sysdeps/unix/sysv/linux/s390/bits/sigaction.h: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/bits/sigaction.h: Likewise.
+	* conform/data/signal.h-data: Update for XPG7.
+
 	* posix/sys/types.h: Define id_t, clock_t, blksize_t for XPG7.
 
 	* string/strings.h: Don't declare obsolete functions for XPG7.
@@ -15,6 +22,8 @@
 
 	* posix/sys/wait.h: Define idtype_t and declare waitid for XPG7.
 
+	* signal/signal.h: Define size_t, mcontext_t, and ucontext_t for XPG7.
+
 2010-01-10  Ulrich Drepper  <drepper@redhat.com>
 
 	* conform/conformtest.pl: For XPG7 testing the headers are supposed to
diff --git a/conform/data/signal.h-data b/conform/data/signal.h-data
index b48a1ff7da..6dbf1fb847 100644
--- a/conform/data/signal.h-data
+++ b/conform/data/signal.h-data
@@ -1,6 +1,8 @@
 typed-constant SIG_DFL {void(*)(int)}
 typed-constant SIG_ERR {void(*)(int)}
+#if !defined ISO && !defined POSIX && !defined POSIX2008
 typed-constant SIG_HOLD {void(*)(int)}
+#endif
 typed-constant SIG_IGN {void(*)(int)}
 
 type sig_atomic_t
@@ -14,11 +16,14 @@ type uid_t
 type mcontext_t
 
 type ucontext_t
-
 element ucontext_t {ucontext_t*} uc_link
 element ucontext_t sigset_t uc_sigmask
 element ucontext_t stack_t uc_stack
 element ucontext_t mcontext_t uc_mcontext
+
+type {struct timespec}
+element {struct timespec} __time_t tv_sec
+element {struct timespec} long tv_nsec
 #endif
 
 element {union sigval} int sival_int
@@ -173,7 +178,9 @@ constant SI_TIMER
 constant SI_ASYNCIO
 constant SI_MESGQ
 
+#if !defined XOPEN2K8 && !defined POSIX && !defined POSIX2008
 function void (*bsd_signal (int, void(*)(int)))(int)
+#endif
 function int kill (pid_t, int)
 #if !defined POSIX && !defined POSIX2008
 function int killpg (pid_t, int)
diff --git a/signal/signal.h b/signal/signal.h
index 67f8cb4d3c..2bdf648dff 100644
--- a/signal/signal.h
+++ b/signal/signal.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2003, 2004, 2007, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2004, 2007, 2009, 2010 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -344,7 +344,7 @@ extern int sigreturn (struct sigcontext *__scp) __THROW;
 #endif /*  use BSD.  */
 
 
-#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
+#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
 # define __need_size_t
 # include <stddef.h>
 
@@ -354,7 +354,7 @@ extern int sigreturn (struct sigcontext *__scp) __THROW;
 extern int siginterrupt (int __sig, int __interrupt) __THROW;
 
 # include <bits/sigstack.h>
-# ifdef __USE_XOPEN
+# if defined __USE_XOPEN || defined __USE_XOPEN2K8
 /* This will define `ucontext_t' and `mcontext_t'.  */
 #  include <sys/ucontext.h>
 # endif
diff --git a/sysdeps/unix/sysv/linux/bits/sigaction.h b/sysdeps/unix/sysv/linux/bits/sigaction.h
index 48cc5312f4..62be069205 100644
--- a/sysdeps/unix/sysv/linux/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/bits/sigaction.h
@@ -1,5 +1,5 @@
 /* The proper definitions for Linux's sigaction.
-   Copyright (C) 1993-1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1993-1999, 2000, 2010 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -57,6 +57,8 @@ struct sigaction
 				    three arguments instead of one.  */
 #if defined __USE_UNIX98 || defined __USE_MISC
 # define SA_ONSTACK   0x08000000 /* Use signal stack by using `sa_restorer'. */
+#endif
+#if defined __USE_UNIX98 || defined __USE_MISC || defined __USE_XOPEN2K8
 # define SA_RESTART   0x10000000 /* Restart syscall on signal return.  */
 # define SA_NODEFER   0x40000000 /* Don't automatically block the signal when
 				    its handler is being executed.  */
diff --git a/sysdeps/unix/sysv/linux/ia64/bits/sigaction.h b/sysdeps/unix/sysv/linux/ia64/bits/sigaction.h
index 11599d5208..b557eaa3e0 100644
--- a/sysdeps/unix/sysv/linux/ia64/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/ia64/bits/sigaction.h
@@ -1,5 +1,5 @@
 /* Definitions for Linux/ia64 sigaction.
-   Copyright (C) 1996, 1997, 2000, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 2000, 2003, 2010 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -53,6 +53,8 @@ struct sigaction
 #define SA_SIGINFO    0x00000004
 #if defined __USE_UNIX98 || defined __USE_MISC
 # define SA_ONSTACK   0x08000000 /* Use signal stack by using `sa_restorer'. */
+#endif
+#if defined __USE_UNIX98 || defined __USE_MISC || defined __USE_XOPEN2K8
 # define SA_RESTART   0x10000000 /* Restart syscall on signal return.  */
 # define SA_NODEFER   0x40000000 /* Don't automatically block the signal
 				    when its handler is being executed.  */
diff --git a/sysdeps/unix/sysv/linux/s390/bits/sigaction.h b/sysdeps/unix/sysv/linux/s390/bits/sigaction.h
index 308cb5bd7a..8767d67851 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/sigaction.h
@@ -1,5 +1,5 @@
 /* Definitions for 31 & 64 bit S/390 sigaction.
-   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002, 2010 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -90,6 +90,8 @@ struct sigaction
 				    three arguments instead of one.  */
 #if defined __USE_UNIX98 || defined __USE_MISC
 # define SA_ONSTACK   0x08000000 /* Use signal stack by using `sa_restorer'. */
+#endif
+#if defined __USE_UNIX98 || defined __USE_MISC || defined __USE_XOPEN2K8
 # define SA_RESTART   0x10000000 /* Restart syscall on signal return.  */
 # define SA_NODEFER   0x40000000 /* Don't automatically block the signal when
 				    its handler is being executed.	 */
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h b/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
index ee4196764d..e474dbe26f 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/sigaction.h
@@ -1,5 +1,5 @@
 /* The proper definitions for Linux/SPARC sigaction.
-   Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1996-2000, 2010 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -58,6 +58,8 @@ struct sigaction
 				    three arguments instead of one.  */
 #if defined __USE_UNIX98 || defined __USE_MISC
 # define SA_ONSTACK   0x00000001 /* Use signal stack by using `sa_restorer'. */
+#endif
+#if defined __USE_UNIX98 || defined __USE_MISC || defined __USE_XOPEN2K8
 # define SA_RESTART   0x00000002 /* Restart syscall on signal return.  */
 # define SA_INTERRUPT 0x00000010 /* Historical no-op.  */
 # define SA_NOMASK    0x00000020 /* Don't automatically block the signal when