diff options
author | Zack Weinberg <zackw@panix.com> | 2017-05-22 22:28:09 -0400 |
---|---|---|
committer | Zack Weinberg <zackw@panix.com> | 2017-05-22 22:32:09 -0400 |
commit | 231a59ce2c5719d2d77752c21092960e28837b4a (patch) | |
tree | 8027ab11263bad7d73188b34aebc3d881fc0dec2 | |
parent | f1a67a2c78601599be51a17250ca02c7d830d79d (diff) | |
download | glibc-231a59ce2c5719d2d77752c21092960e28837b4a.tar.gz glibc-231a59ce2c5719d2d77752c21092960e28837b4a.tar.xz glibc-231a59ce2c5719d2d77752c21092960e28837b4a.zip |
Fix a bug in 'Remove __need macros from signal.h' (a992f506)
siginfo-arch.h is included in two different places, so the default definitions of the macros that it might or might not define need to be done conditionally afterward, not unconditionally beforehand. * sysdeps/unix/sysv/linux/bits/siginfo-consts.h (__SI_ASYNCIO_AFTER_SIGIO): Define default after including bits/siginfo-arch.h, only if not already defined. * sysdeps/unix/sysv/linux/bits/types/siginfo_t.h (__SI_ALIGNMENT, __SI_BAND_TYPE, __SI_CLOCK_T) (__SI_ERRNO_THEN_CODE, __SI_HAVE_SIGSYS, __SI_SEGFAULT_ADDL): Likewise. * sysdeps/unix/sysv/linux/ia64/bits/siginfo-arch.h * sysdeps/unix/sysv/linux/mips/bits/siginfo-arch.h * sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h * sysdeps/unix/sysv/linux/tile/bits/siginfo-arch.h * sysdeps/unix/sysv/linux/x86/bits/siginfo-arch.h: Unconditionally define __SI_* macros.
-rw-r--r-- | ChangeLog | 17 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/bits/siginfo-consts.h | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/bits/types/siginfo_t.h | 24 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/ia64/bits/siginfo-arch.h | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/mips/bits/siginfo-arch.h | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/bits/siginfo-arch.h | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86/bits/siginfo-arch.h | 2 |
8 files changed, 38 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog index dde43e08f5..f432020496 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2017-05-22 Zack Weinberg <zackw@panix.com> + + * sysdeps/unix/sysv/linux/bits/siginfo-consts.h + (__SI_ASYNCIO_AFTER_SIGIO): Define default after including + bits/siginfo-arch.h, only if not already defined. + * sysdeps/unix/sysv/linux/bits/types/siginfo_t.h + (__SI_ALIGNMENT, __SI_BAND_TYPE, __SI_CLOCK_T) + (__SI_ERRNO_THEN_CODE, __SI_HAVE_SIGSYS, __SI_SEGFAULT_ADDL): + Likewise. + + * sysdeps/unix/sysv/linux/ia64/bits/siginfo-arch.h + * sysdeps/unix/sysv/linux/mips/bits/siginfo-arch.h + * sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h + * sysdeps/unix/sysv/linux/tile/bits/siginfo-arch.h + * sysdeps/unix/sysv/linux/x86/bits/siginfo-arch.h: + Unconditionally define __SI_* macros. + 2017-05-22 Adhemerval Zanella <adhemerval.zanella@linaro.org> [BZ #21393] diff --git a/sysdeps/unix/sysv/linux/bits/siginfo-consts.h b/sysdeps/unix/sysv/linux/bits/siginfo-consts.h index a7a31bfe5f..525840cea1 100644 --- a/sysdeps/unix/sysv/linux/bits/siginfo-consts.h +++ b/sysdeps/unix/sysv/linux/bits/siginfo-consts.h @@ -25,8 +25,10 @@ /* Most of these constants are uniform across all architectures, but there is one exception. */ -#define __SI_ASYNCIO_AFTER_SIGIO 1 #include <bits/siginfo-arch.h> +#ifndef __SI_ASYNCIO_AFTER_SIGIO +# define __SI_ASYNCIO_AFTER_SIGIO 1 +#endif /* Values for `si_code'. Positive values are reserved for kernel-generated signals. */ diff --git a/sysdeps/unix/sysv/linux/bits/types/siginfo_t.h b/sysdeps/unix/sysv/linux/bits/types/siginfo_t.h index 1bb6da5264..bed69148f9 100644 --- a/sysdeps/unix/sysv/linux/bits/types/siginfo_t.h +++ b/sysdeps/unix/sysv/linux/bits/types/siginfo_t.h @@ -13,13 +13,25 @@ #endif /* Some fields of siginfo_t have architecture-specific variations. */ -#define __SI_ALIGNMENT /* nothing */ -#define __SI_BAND_TYPE long int -#define __SI_CLOCK_T __clock_t -#define __SI_ERRNO_THEN_CODE 1 -#define __SI_HAVE_SIGSYS 1 -#define __SI_SIGFAULT_ADDL /* nothing */ #include <bits/siginfo-arch.h> +#ifndef __SI_ALIGNMENT +# define __SI_ALIGNMENT /* nothing */ +#endif +#ifndef __SI_BAND_TYPE +# define __SI_BAND_TYPE long int +#endif +#ifndef __SI_CLOCK_T +# define __SI_CLOCK_T __clock_t +#endif +#ifndef __SI_ERRNO_THEN_CODE +# define __SI_ERRNO_THEN_CODE 1 +#endif +#ifndef __SI_HAVE_SIGSYS +# define __SI_HAVE_SIGSYS 1 +#endif +#ifndef __SI_SIGFAULT_ADDL +# define __SI_SIGFAULT_ADDL /* nothing */ +#endif typedef struct { diff --git a/sysdeps/unix/sysv/linux/ia64/bits/siginfo-arch.h b/sysdeps/unix/sysv/linux/ia64/bits/siginfo-arch.h index f824adb77a..8b5647062c 100644 --- a/sysdeps/unix/sysv/linux/ia64/bits/siginfo-arch.h +++ b/sysdeps/unix/sysv/linux/ia64/bits/siginfo-arch.h @@ -1,10 +1,8 @@ /* Architecture-specific adjustments to siginfo_t. ia64 version. */ #ifndef _BITS_SIGINFO_ARCH_H -#undef __SI_HAVE_SIGSYS #define __SI_HAVE_SIGSYS 0 -#undef __SI_SIGFAULT_ADDL #define __SI_SIGFAULT_ADDL \ int _si_imm; \ unsigned int _si_flags; \ diff --git a/sysdeps/unix/sysv/linux/mips/bits/siginfo-arch.h b/sysdeps/unix/sysv/linux/mips/bits/siginfo-arch.h index 4292d7c9cd..cd3af7db06 100644 --- a/sysdeps/unix/sysv/linux/mips/bits/siginfo-arch.h +++ b/sysdeps/unix/sysv/linux/mips/bits/siginfo-arch.h @@ -4,12 +4,10 @@ /* MIPS has the si_code and si_errno fields in the opposite order from all other architectures. */ -#undef __SI_ERRNO_THEN_CODE #define __SI_ERRNO_THEN_CODE 0 /* MIPS also has different values for SI_ASYNCIO, SI_MESGQ, and SI_TIMER than all other architectures. */ -#undef __SI_ASYNCIO_AFTER_SIGIO #define __SI_ASYNCIO_AFTER_SIGIO 0 #endif diff --git a/sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h b/sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h index 92fe30f11e..9f79715ebe 100644 --- a/sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h +++ b/sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h @@ -2,10 +2,8 @@ #ifndef _BITS_SIGINFO_ARCH_H #define _BITS_SIGINFO_ARCH_H 1 -#undef __SI_BAND_TYPE #define __SI_BAND_TYPE int -#undef __SI_SIGFAULT_ADDL #define __SI_SIGFAULT_ADDL \ int _si_trapno; diff --git a/sysdeps/unix/sysv/linux/tile/bits/siginfo-arch.h b/sysdeps/unix/sysv/linux/tile/bits/siginfo-arch.h index 013ad7187d..7d0c24c84b 100644 --- a/sysdeps/unix/sysv/linux/tile/bits/siginfo-arch.h +++ b/sysdeps/unix/sysv/linux/tile/bits/siginfo-arch.h @@ -2,7 +2,6 @@ #ifndef _BITS_SIGINFO_ARCH_H #define _BITS_SIGINFO_ARCH_H 1 -#undef __SI_SIGFAULT_ADDL #define __SI_SIGFAULT_ADDL \ int _si_trapno; diff --git a/sysdeps/unix/sysv/linux/x86/bits/siginfo-arch.h b/sysdeps/unix/sysv/linux/x86/bits/siginfo-arch.h index 6c85dbb6e8..7688a8d66d 100644 --- a/sysdeps/unix/sysv/linux/x86/bits/siginfo-arch.h +++ b/sysdeps/unix/sysv/linux/x86/bits/siginfo-arch.h @@ -10,9 +10,7 @@ attribute would be ignored if it were put in __SI_CLOCK_T instead of encapsulated in a typedef. */ typedef __clock_t __attribute__ ((__aligned__ (4))) __sigchld_clock_t; -# undef __SI_ALIGNMENT # define __SI_ALIGNMENT __attribute__ ((__aligned__ (8))) -# undef __SI_CLOCK_T # define __SI_CLOCK_T __sigchld_clock_t #endif |