glibc/sysdeps/posix
Adhemerval Zanella 5fb7fc9635 posix: Use posix_spawn on system
This patch uses posix_spawn on system implementation.  On Linux this has
the advantage of much lower memory consumption (usually 32 Kb minimum for
the mmap stack area).

Although POSIX does not require, glibc system implementation aims to be
thread and cancellation safe.  The cancellation code is moved to generic
implementation and enabled iff SIGCANCEL is defined (similar on how the
cancellation handler is enabled on nptl-init.c).

Checked on x86_64-linux-gnu, i686-linux-gnu, aarch64-linux-gnu,
arm-linux-gnueabihf, and powerpc64le-linux-gnu.

	* sysdeps/unix/sysv/linux/spawni.c (__spawni_child): Use
	__sigismember instead of sigismember.
	* sysdeps/posix/system.c [SIGCANCEL] (cancel_handler_args,
	cancel_handler): New definitions.
	(CLEANUP_HANDLER, CLEANUP_RESET): Likewise.
	(DO_LOCK, DO_UNLOCK, INIT_LOCK, ADD_REF, SUB_REF): Remove.
	(do_system): Use posix_spawn instead of fork and execl and remove
	reentracy code.
	* sysdeps/generic/not-errno.h (__kill_noerrno): New prototype.
	* sysdeps/unix/sysv/linux/not-errno.h (__kill_noerrno): Likewise.
	* sysdeps/unix/sysv/linux/ia64/system.c: Remove file.
	* sysdeps/unix/sysv/linux/s390/system.c: Likewise.
	* sysdeps/unix/sysv/linux/sparc/system.c: Likewise.
	* sysdeps/unix/sysv/linux/system.c: Likewise.
2018-11-30 18:42:05 -02:00
..
alarm.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
clock_getres.c hurd: Avoid some PLTs in libc and librt 2018-04-02 19:07:52 +00:00
clock.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
closedir.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ctermid.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
cuserid.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
dirfd.c hurd: Avoid PLT for dirfd 2018-04-05 01:52:29 +02:00
dirstream.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
dl-fileid.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
dup2.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
dup.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
euidaccess.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fdopendir.c Fix Linux fcntl OFD locks for non-LFS architectures (BZ#20251) 2018-06-26 13:22:53 -03:00
flock.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fpathconf.c Reject invalid definitions of _POSIX_CHOWN_RESTRICTED, _POSIX_NO_TRUNC, _POSIX_VDISABLE 2018-01-29 22:21:21 +01:00
gai_strerror-strs.h
gai_strerror.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
getaddrinfo.c Switch IDNA implementation to libidn2 [BZ #19728] [BZ #19729] [BZ #22247] 2018-05-23 15:27:24 +02:00
getcwd.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
getdtsz.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
gethostname.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
getpagesize.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
gettimeofday.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
isatty.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
isfdtype.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
killpg.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
libc_fatal.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
Makefile
mkfifo.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
mkfifoat.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
nice.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
open64.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
opendir.c Fix Linux fcntl OFD locks for non-LFS architectures (BZ#20251) 2018-06-26 13:22:53 -03:00
pathconf.c Reject invalid definitions of _POSIX_CHOWN_RESTRICTED, _POSIX_NO_TRUNC, _POSIX_VDISABLE 2018-01-29 22:21:21 +01:00
pause.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
posix_fallocate64.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
posix_fallocate.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
pread64.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
pread.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
preadv2.c preadv2/pwritev2: Handle offset == -1 [BZ #22753] 2018-02-02 10:46:26 +01:00
preadv64.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
preadv64v2.c preadv2/pwritev2: Handle offset == -1 [BZ #22753] 2018-02-02 10:46:26 +01:00
preadv_common.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
preadv.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
profil.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
pwrite64.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
pwrite.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
pwritev2.c preadv2/pwritev2: Handle offset == -1 [BZ #22753] 2018-02-02 10:46:26 +01:00
pwritev64.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
pwritev64v2.c preadv2/pwritev2: Handle offset == -1 [BZ #22753] 2018-02-02 10:46:26 +01:00
pwritev_common.c hurd: Fix pwritev* 2018-01-07 13:31:36 +01:00
pwritev.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
raise.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
readdir_r.c Consolidate Linux readdir{64}{_r} implementation 2018-04-06 17:49:02 -03:00
readdir.c Consolidate Linux readdir{64}{_r} implementation 2018-04-06 17:49:02 -03:00
readv.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
remove.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
rename.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
rewinddir.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
seekdir.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
shm_open.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
shm_unlink.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
shm-directory.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
shm-directory.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
sigblock.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
sigignore.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
sigintr.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
signal.c Filter out NPTL internal signals (BZ #22391) 2018-04-03 13:30:49 -03:00
sigpause.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
sigset.c Filter out NPTL internal signals (BZ #22391) 2018-04-03 13:30:49 -03:00
sigsetmask.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
sigsuspend.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
sigwait.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
sleep.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
spawni.c posix: New function posix_spawn_file_actions_addchdir_np [BZ #17405] 2018-11-06 16:08:12 +01:00
sprofil.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
Subdirs
sysconf.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
system.c posix: Use posix_spawn on system 2018-11-30 18:42:05 -02:00
sysv_signal.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
telldir.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tempname.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
time.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
timespec_get.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
truncate.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ttyname_r.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ttyname.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ulimit.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
usleep.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
utime.c Add missing start-of-file descriptive comment. 2018-03-06 09:21:04 +01:00
utimes.c Add missing start-of-file descriptive comment. 2018-03-06 09:21:04 +01:00
wait3.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
wait.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
waitid.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
writev.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00