Fix sigevent namespace (bug 21543)
Commit Message
signal.h defines the sigevent structure and constants if defined
__USE_POSIX199309 || defined __USE_XOPEN_EXTENDED. The
__USE_XOPEN_EXTENDED condition is incorrect; this structure does not
appear in XSI standards before Unix98 (which implies
__USE_POSIX199309). This patch fixes the conditionals accordingly
(the existing conditional is correct for siginfo_t, just not for
sigevent).
Tested for x86_64. This does not allow any conform/ XFAILs to be
removed because of other signal.h namespace bugs.
2017-06-02 Joseph Myers <joseph@codesourcery.com>
[BZ #21543]
* signal/signal.h: Only include <bits/types/sigevent_t.h> and
<bits/sigevent-consts.h> if [__USE_POSIX199309], not if
[__USE_XOPEN_EXTENDED].
Comments
On Fri, Jun 2, 2017 at 1:07 PM, Joseph Myers <joseph@codesourcery.com> wrote:
> [BZ #21543]
> * signal/signal.h: Only include <bits/types/sigevent_t.h> and
> <bits/sigevent-consts.h> if [__USE_POSIX199309], not if
> [__USE_XOPEN_EXTENDED].
LGTM.
Do you think you'll be able to fix signal.h namespace-wise all the way for 2.26?
zw
On Fri, 2 Jun 2017, Zack Weinberg wrote:
> On Fri, Jun 2, 2017 at 1:07 PM, Joseph Myers <joseph@codesourcery.com> wrote:
> > [BZ #21543]
> > * signal/signal.h: Only include <bits/types/sigevent_t.h> and
> > <bits/sigevent-consts.h> if [__USE_POSIX199309], not if
> > [__USE_XOPEN_EXTENDED].
>
> LGTM.
>
> Do you think you'll be able to fix signal.h namespace-wise all the way
> for 2.26?
I don't know. There are two patches pending review
<https://sourceware.org/ml/libc-alpha/2017-05/msg00744.html>
<https://sourceware.org/ml/libc-alpha/2017-06/msg00042.html>, but the big
part (for XPG42 and later) is the ucontext issues.
@@ -55,8 +55,11 @@ typedef __uid_t uid_t;
#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED
# include <bits/types/siginfo_t.h>
-# include <bits/types/sigevent_t.h>
# include <bits/siginfo-consts.h>
+#endif
+
+#ifdef __USE_POSIX199309
+# include <bits/types/sigevent_t.h>
# include <bits/sigevent-consts.h>
#endif