Fix siginterrupt namespace (bug 21597).
authorJoseph Myers <joseph@codesourcery.com>
Mon, 19 Jun 2017 12:18:46 +0000 (12:18 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Mon, 19 Jun 2017 12:18:46 +0000 (12:18 +0000)
The siginterrupt function is XSI-shaded in POSIX.  glibc wrongly
declares it in <signal.h> for non-XSI POSIX.1:2008.  This patch fixes
the conditionals (moving it into the __USE_XOPEN_EXTENDED ||
__USE_MISC block as the minimum conservative change, although it's not
clear this obsolescent function should be declared by default).

Tested for x86_64.

[BZ #21597]
* signal/signal.h (siginterrupt): Make declaration conditional on
[__USE_XOPEN_EXTENDED || __USE_MISC].

ChangeLog
signal/signal.h

index b8d9d58..9a0bdbb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2017-06-19  Joseph Myers  <joseph@codesourcery.com>
 
+       [BZ #21597]
+       * signal/signal.h (siginterrupt): Make declaration conditional on
+       [__USE_XOPEN_EXTENDED || __USE_MISC].
+
        [BZ #21584]
        * signal/signal.h: Make includes of <bits/sigstack.h> and
        <bits/ss_flags.h> conditional on [__USE_XOPEN_EXTENDED ||
index 8dfe849..ddb79c7 100644 (file)
@@ -296,11 +296,6 @@ extern int sigreturn (struct sigcontext *__scp) __THROW;
 # define __need_size_t
 # include <stddef.h>
 
-/* If INTERRUPT is nonzero, make signal SIG interrupt system calls
-   (causing them to fail with EINTR); if INTERRUPT is zero, make system
-   calls be restarted after signal SIG.  */
-extern int siginterrupt (int __sig, int __interrupt) __THROW;
-
 # include <bits/types/stack_t.h>
 # if defined __USE_XOPEN || defined __USE_XOPEN2K8
 /* This will define `ucontext_t' and `mcontext_t'.  */
@@ -309,6 +304,11 @@ extern int siginterrupt (int __sig, int __interrupt) __THROW;
 #endif /* Use POSIX.1-2008 or X/Open Unix.  */
 
 #if defined __USE_XOPEN_EXTENDED || defined __USE_MISC
+/* If INTERRUPT is nonzero, make signal SIG interrupt system calls
+   (causing them to fail with EINTR); if INTERRUPT is zero, make system
+   calls be restarted after signal SIG.  */
+extern int siginterrupt (int __sig, int __interrupt) __THROW;
+
 # include <bits/sigstack.h>
 # include <bits/ss_flags.h>