glibc/sysdeps/unix
Adhemerval Zanella 8b0e795aaa Simplify Linux sig{timed}wait{info} implementations
This patch simplifies sig{timed}wait{info} by:

  - Assuming __NR_rt_sigtimedwait existence on all architectures due minimum
    kernel version requirement (it pre-dates Linux git inclusion for Linux
    2.6.12).

  - Call __sigtimedwait on both sigwait and sigwaitinfo.

  - Now that sigwait is based on an internal sigtimedwait call and it is
    present of both libc.so and libpthread.so we need to add an external
    private definition of __sigtimedwait for libpthread.so call.

Checked on x86_64-linux-gnu.

	* sysdeps/unix/sysv/linux/Versions (libc) [GLIBC_PRIVATE]: Add
	__sigtimedwait.
	* sysdeps/unix/sysv/linux/sigtimedwait.c: Simplify includes and
	assume __NR_rt_sigtimedwait.
	* sysdeps/unix/sysv/linux/sigwait.c (__sigwait): Call __sigtimedwait
	and add LIBC_CANCEL_HANDLED for cancellation marking.
	* sysdeps/unix/sysv/linux/sigwaitinfo.c (__sigwaitinfo): Likewise.

Signed-off-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Reviewed-by: Zack Weinberg <zackw@panix.com>
2017-11-06 17:37:57 -02:00
..
alpha
arm
bsd Hide internal __tcgetattr function [BZ #18822] 2017-10-01 17:48:24 -07:00
i386
inet Remove add-ons mechanism. 2017-10-05 15:58:13 +00:00
mips
powerpc
sh
sysv/linux Simplify Linux sig{timed}wait{info} implementations 2017-11-06 17:37:57 -02:00
x86_64
clock_gettime.c hurd: Fix exposition of s/gettimeofday through timespec_s/get 2017-09-25 01:55:02 +02:00
clock_nanosleep.c
clock_settime.c hurd: Fix exposition of s/gettimeofday through timespec_s/get 2017-09-25 01:55:02 +02:00
confstr.h
get_child_max.c
getlogin_r.c
getlogin.c
getpagesize.c
grantpt.c
ifreq.c
Implies
make-syscalls.sh Fix make-syscalls.sh VDSO support for GCC 8. 2017-09-26 21:21:01 +00:00
Makefile
s-proto-cancel.S
s-proto.S
setxid.h
sockatmark.c
stime.c
syscall-template.S Remove cancellation support for syscall generation 2017-08-24 14:58:35 -03:00
syscall.S
syscalls.list posix: Consolidate Linux fsync syscall 2017-05-18 18:06:47 -03:00
sysdep.h