about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-05-04 17:38:05 +0000
committerJoseph Myers <joseph@codesourcery.com>2017-05-04 17:38:05 +0000
commit4c3992fc459322a7c712700ba3244fcb125163d7 (patch)
treec85e4e90f56807b4766167edb13d6e12909c50db
parentfd9f30f6f9b266405d88eb11b1f8793451629125 (diff)
downloadglibc-4c3992fc459322a7c712700ba3244fcb125163d7.tar.gz
glibc-4c3992fc459322a7c712700ba3244fcb125163d7.tar.xz
glibc-4c3992fc459322a7c712700ba3244fcb125163d7.zip
Fix signal.h bsd_signal namespace (bug 21445).
signal.h declares bsd_signal for __USE_XOPEN.  But this function was
obsoleted in the 2001 edition of POSIX and removed in the 2008
edition, so it should not be declared when the 2008 edition is in use.
This patch fixes the conditionals accordingly.  (This does not fix any
conform/ test failures because of other namespace issues in signal.h.)

Tested for x86_64.

	[BZ #21445]
	* signal/signal.h [__USE_XOPEN2K8] (bsd_signal): Do not declare.
-rw-r--r--ChangeLog3
-rw-r--r--signal/signal.h2
2 files changed, 4 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index f5d749b6f8..7d023fc867 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2017-05-04  Joseph Myers  <joseph@codesourcery.com>
 
+	[BZ #21445]
+	* signal/signal.h [__USE_XOPEN2K8] (bsd_signal): Do not declare.
+
 	[BZ #21457]
 	* sysdeps/unix/sysv/linux/mips/sys/ucontext.h
 	[_MIPS_SIM != _ABIO32] (mcontext_t): Rename field reserved to
diff --git a/signal/signal.h b/signal/signal.h
index 84f2a1f11e..6db2d2f100 100644
--- a/signal/signal.h
+++ b/signal/signal.h
@@ -108,7 +108,7 @@ extern __sighandler_t __REDIRECT_NTH (signal,
 # endif
 #endif
 
-#ifdef __USE_XOPEN
+#if defined __USE_XOPEN && !defined __USE_XOPEN2K8
 /* The X/Open definition of `signal' conflicts with the BSD version.
    So they defined another function `bsd_signal'.  */
 extern __sighandler_t bsd_signal (int __sig, __sighandler_t __handler)