glibc/sysdeps/unix/sysv/linux/mips
Adhemerval Zanella 09c76a7409 Linux: Consolidate {RTLD_}SINGLE_THREAD_P definition
Current GLIBC has two ways to implement the single thread optimization
on syscalls to avoid calling the cancellation path: either by using
global variables (__{libc,pthread}_multiple_thread) or by accessing
the TCB field (defined by TLS_MULTIPLE_THREADS_IN_TCB).  Both the
variables and the macros to acces its value are defined in the
architecture sysdep-cancel.h header.

This patch consolidates its definition on only one header,
sysdeps/unix/sysv/linux/sysdep-cancel.h, and adds a new define
(SINGLE_THREAD_BY_GLOBAL) which the architecture defines if it prefer
to use the global variables instead of the TCB field.  This is an
optimization, so if the architecture does not define it, the TCB
method will be used as default.

Checked on x86_64-linux-gnu and on a build with major touched
ABIs (aarch64-linux-gnu, alpha-linux-gnu, arm-linux-gnueabihf,
hppa-linux-gnu, i686-linux-gnu, m68k-linux-gnu, microblaze-linux-gnu,
mips-linux-gnu, mips64-linux-gnu, powerpc-linux-gnu,
powerpc64le-linux-gnu, s390-linux-gnu, s390x-linux-gnu, sh4-linux-gnu,
sparcv9-linux-gnu, sparc64-linux-gnu, tilegx-linux-gnu).

	* sysdeps/unix/sysv/linux/aarch64/sysdep-cancel.h: Remove file.
	* sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/arm/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/nios2/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/tile/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h
	(SINGLE_THREAD_BY_GLOBAL): Define.
	* sysdeps/unix/sysv/linux/aarch64/sysdep.h (SINGLE_THREAD_BY_GLOBAL):
	Likewise.
	* sysdeps/unix/sysv/linux/alpha/sysdep.h (SINGLE_THREAD_BY_GLOBAL):
	Likewise.
	* sysdeps/unix/sysv/linux/arm/sysdep.h (SINGLE_THREAD_BY_GLOBAL):
	Likewise.
	* sysdeps/unix/sysv/linux/hppa/sysdep.h (SINGLE_THREAD_BY_GLOBAL):
	Likewise.
	* sysdeps/unix/sysv/linux/microblaze/sysdep.h
	(SINGLE_THREAD_BY_GLOBAL): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/sysdep.h (SINGLE_THREAD_BY_GLOBAL):
	Likewise.
2017-10-11 14:27:24 -03:00
..
bits Fix XPG4.2 bits/sigaction.h namespace (bug 21899). 2017-08-07 23:41:32 +00:00
mips32 New symbol version for logf, log2f and powf without SVID compat 2017-10-02 14:38:03 +01:00
mips64 New symbol version for logf, log2f and powf without SVID compat 2017-10-02 14:38:03 +01:00
sys Fix mcontext_t sigcontext namespace (bug 21457). 2017-08-30 22:02:04 +00:00
Implies
Makefile Remove abi-*-options compiler flags 2017-08-28 17:16:53 +02:00
Versions
____longjmp_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
_test_and_set.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
arch-fork.h
brk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
clone.S Call exit directly in clone (BZ #21512) 2017-06-26 17:52:20 -03:00
configure
configure.ac
dl-cache.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
dl-static.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
getcontext.S mips: Fix store/load gp registers to/from ucontext_t 2017-06-13 21:34:45 +00:00
getmsg.c
getrlimit64.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
getsysstats.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
init-first.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
kernel-features.h Remove __ASSUME_REQUEUE_PI 2017-04-04 18:02:02 -03:00
kernel_rt_sigframe.h Rename struct ucontext tag (bug 21457). 2017-06-26 22:03:58 +00:00
kernel_sigaction.h
kernel_stat.h Allow [f]statfs64 to alias [f]statfs 2016-11-22 09:59:12 -08:00
kernel_termios.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
ldsodefs.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
libc-abis
libc-vdso.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
makecontext.S mips: Fix store/load gp registers to/from ucontext_t 2017-06-13 21:34:45 +00:00
pipe.S
profil-counter.h
pt-vfork.S
putmsg.c
readelflib.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
register-dump.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
setcontext.S mips: Fix store/load gp registers to/from ucontext_t 2017-06-13 21:34:45 +00:00
setrlimit64.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
shlib-versions
sigaction.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sigcontextinfo.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
swapcontext.S mips: Fix store/load gp registers to/from ucontext_t 2017-06-13 21:34:45 +00:00
syscalls.list Consolidate Linux send implementation 2017-03-09 15:22:06 +01:00
ucontext_i.sym
ustat.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
vfork.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
xstatconv.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00