glibc/sysdeps/unix/sysv/linux/i386
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
..
i686
i786
Implies
Makefile
Versions Clean pthread functions namespaces for C11 threads 2017-06-23 17:38:17 -03:00
____longjmp_chk.S __fortify_fail: Remove internal_function attribute 2017-08-13 21:10:44 +02:00
_exit.S
alphasort64.c posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
arch-fork.h
brk.c i386: Add <startup.h> [BZ #21913] 2017-08-08 08:43:15 -07:00
c++-types.data
clone.S Call exit directly in clone (BZ #21512) 2017-06-26 17:52:20 -03:00
configure
configure.ac
dl-librecon.h
dl-procinfo.h Add include guards to dl-procinfo.h 2017-06-07 11:11:38 +05:30
dl-sysdep.h
fxstat.c
fxstatat.c
get_clockfreq.c
getcontext.S
getdents64.c posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
getmsg.c
gettimeofday.c
init-first.c
kernel-features.h Simplify accept4, recvmmsg, sendmmsg code. 2017-05-09 21:59:36 +00:00
ld.abilist
ldconfig.h
libBrokenLocale.abilist
libanl.abilist
libc-do-syscall.S
libc-lowlevellock.S
libc.abilist posix: Add compat glob symbol to not follow dangling symbols 2017-09-25 18:04:16 -07:00
libcrypt.abilist
libdl.abilist
libm.abilist New symbol version for logf, log2f and powf without SVID compat 2017-10-02 14:38:03 +01:00
libnsl.abilist
libpthread.abilist
libresolv.abilist
librt.abilist
libthread_db.abilist
libutil.abilist
lll_timedlock_wait.c
lll_timedwait_tid.c
localplt.data ld.so: Introduce struct dl_exception 2017-08-10 16:54:57 +02:00
lockf64.c
lowlevellock.S
lowlevellock.h
lxstat.c
makecontext.S
profil-counter.h
putmsg.c
readdir64.c Mark internal dirent functions with attribute_hidden [BZ #18822] 2017-10-01 15:51:11 -07:00
readdir64_r.c posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
readelflib.c
register-dump.h
scandir64.c
setcontext.S
shlib-versions
sigaction.c
sigcontextinfo.h
smp.h Consolidate non cancellable close call 2017-08-18 18:38:55 -03:00
startup.h i386: Add <startup.h> [BZ #21913] 2017-08-08 08:43:15 -07:00
swapcontext.S
syscall.S
syscalls.list posix: Consolidate Linux waitpid syscall 2017-05-18 18:06:47 -03:00
sysdep.c
sysdep.h i386: Update I386_USE_SYSENTER for early PIC syscall 2017-08-04 12:30:38 -07:00
time.c
ucontext_i.sym
versionsort64.c posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
vfork.S
xstat.c