a992f506ff
The types affected are __sig_atomic_t, sig_atomic_t, __sigset_t, sigset_t, sigval_t, sigevent_t, and siginfo_t. __sig_atomic_t is a scalar, so it's now directly available from bits/types.h. The others get bits/types/ headers. Side effects include: There have been small changes to which non-signal headers expose which subset of the signal-related types. A couple of architectures' nested siginfo_t fields had to be renamed to prevent undesired macro expansion. Internal code that wants to manipulate signal masks must now include <sigsetops.h> (which is not installed) and should be aware that __sigaddset, __sigandset, __sigdelset, __sigemptyset, and __sigorset no longer return a value (unlike the public API). Relatedly, the public signal.h no longer declares any of those functions. The obsolete sigmask() macro no longer has a system-specific definition -- in the cases where it matters, it didn't work anyway. New Linux architectures should create bits/siginfo-arch.h and/or bits/siginfo-consts-arch.h to customize their siginfo_t, rather than duplicating everything in bits/siginfo.h (which no longer exists). Add new __SI_* macros if necessary. Ports to other operating systems are strongly encouraged to generalize this scheme further. * bits/sigevent-consts.h * bits/siginfo-consts.h * bits/types/__sigset_t.h * bits/types/sigevent_t.h * bits/types/siginfo_t.h * sysdeps/unix/sysv/linux/bits/sigevent-consts.h * sysdeps/unix/sysv/linux/bits/siginfo-consts.h * sysdeps/unix/sysv/linux/bits/types/__sigset_t.h * sysdeps/unix/sysv/linux/bits/types/sigevent_t.h * sysdeps/unix/sysv/linux/bits/types/siginfo_t.h: New system-dependent bits headers. * sysdeps/unix/sysv/linux/bits/siginfo-arch.h * sysdeps/unix/sysv/linux/bits/siginfo-consts-arch.h * sysdeps/unix/sysv/linux/ia64/bits/siginfo-arch.h * sysdeps/unix/sysv/linux/ia64/bits/siginfo-consts-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/tile/bits/siginfo-consts-arch.h * sysdeps/unix/sysv/linux/x86/bits/siginfo-arch.h: New Linux-only system-dependent bits headers. * signal/bits/types/sig_atomic_t.h * signal/bits/types/sigset_t.h * signal/bits/types/sigval_t.h: New non-system-dependent bits headers. * sysdeps/generic/sigsetops.h * sysdeps/unix/sysv/linux/sigsetops.h: New internal headers. * include/bits/types/sig_atomic_t.h * include/bits/types/sigset_t.h * include/bits/types/sigval_t.h: New wrappers. * signal/sigsetops.h * bits/siginfo.h * bits/sigset.h * sysdeps/unix/sysv/linux/bits/siginfo.h * sysdeps/unix/sysv/linux/bits/sigset.h * sysdeps/unix/sysv/linux/ia64/bits/siginfo.h * sysdeps/unix/sysv/linux/mips/bits/siginfo.h * sysdeps/unix/sysv/linux/s390/bits/siginfo.h * sysdeps/unix/sysv/linux/sparc/bits/siginfo.h * sysdeps/unix/sysv/linux/tile/bits/siginfo.h * sysdeps/unix/sysv/linux/x86/bits/siginfo.h: Deleted. * signal/Makefile, sysdeps/unix/sysv/linux/Makefile: Update lists of installed headers. * posix/bits/types.h: Define __sig_atomic_t here. * signal/signal.h: Use the new bits headers; no need to handle __need_sig_atomic_t nor __need_sigset_t. Don't use __sigmask to define sigmask. * include/signal.h: No need to handle __need_sig_atomic_t nor __need_sigset_t. Don't define __sigemptyset. * io/sys/poll.h, setjmp/setjmp.h * sysdeps/arm/sys/ucontext.h, sysdeps/generic/sys/ucontext.h * sysdeps/i386/sys/ucontext.h, sysdeps/m68k/sys/ucontext.h * sysdeps/mach/hurd/i386/bits/sigcontext.h * sysdeps/mips/sys/ucontext.h, sysdeps/powerpc/novmxsetjmp.h * sysdeps/pthread/bits/sigthread.h * sysdeps/unix/sysv/linux/hppa/sys/ucontext.h * sysdeps/unix/sysv/linux/m68k/sys/ucontext.h * sysdeps/unix/sysv/linux/mips/sys/ucontext.h * sysdeps/unix/sysv/linux/nios2/sys/ucontext.h * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h * sysdeps/unix/sysv/linux/s390/sys/ucontext.h * sysdeps/unix/sysv/linux/sh/sys/ucontext.h * sysdeps/unix/sysv/linux/sparc/sys/ucontext.h * sysdeps/unix/sysv/linux/tile/sys/ucontext.h * sysdeps/unix/sysv/linux/x86/sys/ucontext.h: Use bits/types/__sigset_t.h. * misc/sys/select.h, posix/spawn.h * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h * sysdeps/unix/sysv/linux/sys/epoll.h * sysdeps/unix/sysv/linux/sys/signalfd.h: Use bits/types/sigset_t.h. * resolv/netdb.h, rt/mqueue.h: Use bits/types/sigevent_t.h. * rt/aio.h: Use bits/types/sigevent_t.h and bits/sigevent-consts.h. * socket/sys/socket.h: Don't include bits/sigset.h. * login/utmp_file.c, shadow/lckpwdf.c, signal/sigandset.c * signal/sigisempty.c, stdlib/abort.c, sysdeps/posix/profil.c * sysdeps/posix/sigignore.c, sysdeps/posix/sigintr.c * sysdeps/posix/signal.c, sysdeps/posix/sigset.c * sysdeps/posix/sprofil.c, sysdeps/posix/sysv_signal.c * sysdeps/unix/sysv/linux/nptl-signals.h: Include sigsetops.h. * signal/sigaddset.c, signal/sigandset.c, signal/sigdelset.c * signal/sigorset.c, stdlib/abort.c, sysdeps/posix/sigignore.c * sysdeps/posix/signal.c, sysdeps/posix/sigset.c: __sigaddset, __sigandset, __sigdelset, __sigemptyset, __sigorset now return no value. * signal/sigaddset.c, signal/sigdelset.c, signal/sigismem.c Include <errno.h>, <signal.h>, and <sigsetops.h> instead of "sigsetops.h". * signal/sigsetops.c: Explicitly define __sigismember, __sigaddset, and __sigdelset as compatibility symbols. * signal/Versions: Correct commentary on __sigpause, __sigaddset, __sigdelset, __sigismember. * inet/rcmd.c: Include sigsetops.h. Convert old code using __sigblock/__sigsetmask to use __sigprocmask and friends. |
||
---|---|---|
.. | ||
bits | ||
sys | ||
acct.c | ||
ar.h | ||
brk.c | ||
bug18240.c | ||
bug-hsearch1.c | ||
chflags.c | ||
chroot.c | ||
daemon.c | ||
dirname.c | ||
efgcvt_r.c | ||
efgcvt.c | ||
err.c | ||
err.h | ||
error.c | ||
error.h | ||
fchflags.c | ||
fdatasync.c | ||
fgetxattr.c | ||
flistxattr.c | ||
fremovexattr.c | ||
fsetxattr.c | ||
fstab.c | ||
fstab.h | ||
fsync.c | ||
ftruncate64.c | ||
ftruncate.c | ||
futimes.c | ||
futimesat.c | ||
getauxval.c | ||
getclktck.c | ||
getdomain.c | ||
getdtsz.c | ||
gethostid.c | ||
gethostname.c | ||
getloadavg.c | ||
getpagesize.c | ||
getpass.c | ||
getsysstats.c | ||
getttyent.c | ||
getusershell.c | ||
getxattr.c | ||
gtty.c | ||
hsearch_r.c | ||
hsearch.c | ||
ifunc-impl-list.c | ||
init-misc.c | ||
insremque.c | ||
ioctl.c | ||
lgetxattr.c | ||
libgen.h | ||
listxattr.c | ||
llistxattr.c | ||
lremovexattr.c | ||
lsearch.c | ||
lsetxattr.c | ||
lutimes.c | ||
madvise.c | ||
makedev.c | ||
Makefile | ||
mincore.c | ||
mkdtemp.c | ||
mkostemp64.c | ||
mkostemp.c | ||
mkostemps64.c | ||
mkostemps.c | ||
mkstemp64.c | ||
mkstemp.c | ||
mkstemps64.c | ||
mkstemps.c | ||
mktemp.c | ||
mlock.c | ||
mlockall.c | ||
mmap64.c | ||
mmap.c | ||
mntent_r.c | ||
mntent.c | ||
mntent.h | ||
mprotect.c | ||
msync.c | ||
munlock.c | ||
munlockall.c | ||
munmap.c | ||
preadv64.c | ||
preadv.c | ||
pselect.c | ||
ptrace.c | ||
pwritev64.c | ||
pwritev.c | ||
qefgcvt_r.c | ||
qefgcvt.c | ||
readv.c | ||
reboot.c | ||
regexp.c | ||
regexp.h | ||
remap_file_pages.c | ||
removexattr.c | ||
revoke.c | ||
sbrk.c | ||
search.h | ||
select.c | ||
setdomain.c | ||
setegid.c | ||
seteuid.c | ||
sethostid.c | ||
sethostname.c | ||
setregid.c | ||
setreuid.c | ||
setxattr.c | ||
sgtty.h | ||
sstk.c | ||
stab.h | ||
stty.c | ||
swapoff.c | ||
swapon.c | ||
sync.c | ||
syncfs.c | ||
syscall.c | ||
syscall.h | ||
sysexits.h | ||
syslog.c | ||
syslog.h | ||
truncate64.c | ||
truncate.c | ||
tsearch.c | ||
tst-atomic-long.c | ||
tst-atomic.c | ||
tst-dirname.c | ||
tst-efgcvt.c | ||
tst-empty.c | ||
tst-error1.c | ||
tst-fdset.c | ||
tst-hsearch.c | ||
tst-insremque.c | ||
tst-makedev.c | ||
tst-mntent2.c | ||
tst-mntent-blank-corrupt.c | ||
tst-mntent-blank-passno.c | ||
tst-mntent.c | ||
tst-preadvwritev64.c | ||
tst-preadvwritev-common.c | ||
tst-preadvwritev.c | ||
tst-pselect.c | ||
tst-tsearch.c | ||
ttyent.h | ||
ttyslot.c | ||
ualarm.c | ||
usleep.c | ||
ustat.c | ||
ustat.h | ||
utimes.c | ||
Versions | ||
vhangup.c | ||
writev.c |