glibc/sysdeps/unix/sysv/linux/powerpc/powerpc64
Adhemerval Zanella 3f823e87cc Call exit directly in clone (BZ #21512)
On aarch64, alpha, arm, hppa, mips, nios2, powerpc, sh, sparc, tile,
and x86_64 the clone syscall jumps to _exit after the child execution
and the function ends the process execution by calling exit_group.
This behavior have a small issue where threads created with
CLONE_THREAD using clone syscall directly will eventually exit the
whole group altogether instead of just the thread created.  Also,
s390, microblaze, ia64, i386, and m68k differs by calling exit
syscall directly.

This patch changes all architectures to call the exit syscall
directly, as for s390, microblaze, ia64, i386, and m68k.  This do not
have change glibc internal behavior in any sort, since the only
usage of clone implementation in posix_spawn calls _exit directly
in the created child (fork uses a direct call to clone).

Checked on x86_64-linux-gnu, i686-linux-gnu, aarch64-linux-gnu,
powerpc-linux-gnu, powerpc64le-linux-gnu, sparc64-linux-gnu,
and sparcv9-linux-gnu.

	[BZ #21512]
	* sysdeps/unix/sysv/linux/aarch64/clone.S (__clone): Call exit
	syscall instead of jump to _exit.
	(CLONE_VM_BIT): Remove unused define.
	(CLONE_VM): Likewise.
	(CLONE_THREAD_BIT): Likewise.
	(CLONE_THREAD): Likewise.
	* sysdeps/unix/sysv/linux/alpha/clone.S (__clone): Likewise.
	(CLONE_VM): Remove unused define.
	* sysdeps/unix/sysv/linux/arm/clone.S (__clone): Likewise.
	(CLONE_VM): Remove unused define.
	(CLONE_THREAD): Likewise.
	* sysdeps/unix/sysv/linux/i386/clone.S (CLONE_VM): Likewise.
	* sysdeps/unix/sysv/linux/ia64/clone2.S (__clone2): Call exit
	syscall instead of jump to _exit.
	* sysdeps/unix/sysv/linux/hppa/clone.S (__clone): Likewise.
	* sysdeps/unix/sysv/linux/mips/clone.S (__clone): Likewise.
	(CLONE_VM): Remove unused define.
	(CLONE_THREAD): Likewise.
	* sysdeps/unix/sysv/linux/nios2/clone.S (__clone): Likewise.
	(CLONE_VM): Remove unused define.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S (__clone):
	Likewise.
	(CLONE_VM): Remove unused define.
	(CLONE_THREAD): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S (__clone):
	Likewise.
	(CLONE_VM): Remove unused define.
	(CLONE_THREAD): Likewise.
	* sysdeps/unix/sysv/linux/sh/clone.S  (__clone): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__clone): Likewise.
	(CLONE_VM): Remove unused define.
	* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S (__clone): Likewise.
	(CLONE_VM): Remove unused define.
	* sysdeps/unix/sysv/linux/tile/clone.S (__clone): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/clone.S (__clone): Likewise.
	(CLONE_VM): Remove unused define.
	* sysdeps/unix/sysv/linux/Makefile (tests): Add tst-clone3.
	* sysdeps/unix/sysv/linux/tst-clone3.c: New file.

Fix
2017-06-26 17:52:20 -03:00
..
970
a2
cell
fpu Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
____longjmp_chk.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
brk.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
c++-types.data
clone.S Call exit directly in clone (BZ #21512) 2017-06-26 17:52:20 -03:00
configure powerpc: Set minimum kernel version for powerpc64le 2017-02-07 10:49:47 +05:30
configure.ac powerpc: Set minimum kernel version for powerpc64le 2017-02-07 10:49:47 +05:30
dl-cache.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fcntl.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
getcontext.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Implies
kernel_stat.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
ld-le.abilist ld.so: Remove __libc_memalign 2016-11-30 16:23:58 +01:00
ld.abilist ld.so: Remove __libc_memalign 2016-11-30 16:23:58 +01:00
ldsodefs.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
libanl-le.abilist
libanl.abilist
libBrokenLocale-le.abilist
libBrokenLocale.abilist
libc-le.abilist powerpc64le: Enable float128 2017-06-26 15:04:47 -03:00
libc.abilist posix: Implement preadv2 and pwritev2 2017-05-31 17:35:46 -03:00
libcrypt-le.abilist
libcrypt.abilist
libdl-le.abilist
libdl.abilist
libm-le.abilist powerpc64le: Enable float128 2017-06-26 15:04:47 -03:00
libm.abilist Add fromfp functions. 2016-12-31 00:40:59 +00:00
libnsl-le.abilist
libnsl.abilist
libpthread-le.abilist
libpthread.abilist
libresolv-le.abilist
libresolv.abilist
librt-le.abilist
librt.abilist
libthread_db-le.abilist
libthread_db.abilist
libutil-le.abilist
libutil.abilist
localplt.data ld.so: Remove __libc_memalign 2016-11-30 16:23:58 +01:00
makecontext.S PowerPC64 FRAME_PARM_SAVE 2017-06-14 10:43:33 +09:30
setcontext.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
shlib-versions
swapcontext.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sysdep-cancel.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sysdep.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
timer_create.c
timer_delete.c
timer_getoverr.c
timer_gettime.c
timer_settime.c
ucontext_i.sym
umount.c
Versions Revert {send,sendm,recv,recvm}msg conformance changes 2016-06-10 11:58:16 -03:00
vfork.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00