glibc/sysdeps/unix/sysv/linux/x86/bits/siginfo-arch.h
Zack Weinberg 231a59ce2c 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.
2017-05-22 22:32:09 -04:00

18 lines
729 B
C

/* Architecture-specific adjustments to siginfo_t. x86 version. */
#ifndef _BITS_SIGINFO_ARCH_H
#define _BITS_SIGINFO_ARCH_H 1
#if defined __x86_64__ && __WORDSIZE == 32
/* si_utime and si_stime must be 4 byte aligned for x32 to match the
kernel. We align siginfo_t to 8 bytes so that si_utime and
si_stime are actually aligned to 8 bytes since their offsets are
multiple of 8 bytes. Note: with some compilers, the alignment
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;
# define __SI_ALIGNMENT __attribute__ ((__aligned__ (8)))
# define __SI_CLOCK_T __sigchld_clock_t
#endif
#endif