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 Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
i786 Move remaining nptl/sysdeps/unix/sysv/linux/i386/ files. 2014-05-14 13:37:40 -07:00
____longjmp_chk.S __fortify_fail: Remove internal_function attribute 2017-08-13 21:10:44 +02:00
_exit.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
alphasort64.c posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
arch-fork.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
brk.c i386: Add <startup.h> [BZ #21913] 2017-08-08 08:43:15 -07:00
c++-types.data x86: Move abilist files out of nptl/ subdirectories. 2014-05-14 15:45:23 -07:00
clone.S Call exit directly in clone (BZ #21512) 2017-06-26 17:52:20 -03:00
configure Require Linux kernel 3.2 or later on x86 / x86_64. 2017-05-08 10:45:20 +00:00
configure.ac Require Linux kernel 3.2 or later on x86 / x86_64. 2017-05-08 10:45:20 +00:00
dl-librecon.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
dl-procinfo.h Add include guards to dl-procinfo.h 2017-06-07 11:11:38 +05:30
dl-sysdep.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fxstat.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
fxstatat.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
get_clockfreq.c Narrowing the visibility of libc-internal.h even further. 2017-03-01 20:33:46 -05:00
getcontext.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
getdents64.c posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
getmsg.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
gettimeofday.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Implies NPTL is no longer an add-on! 2014-07-07 09:29:06 -07:00
init-first.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
kernel-features.h Simplify accept4, recvmmsg, sendmmsg code. 2017-05-09 21:59:36 +00:00
ld.abilist ld.so: Remove __libc_memalign 2016-11-30 16:23:58 +01:00
ldconfig.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
libanl.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libBrokenLocale.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libc-do-syscall.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
libc-lowlevellock.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
libc.abilist posix: Add compat glob symbol to not follow dangling symbols 2017-09-25 18:04:16 -07:00
libcrypt.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libdl.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libm.abilist New symbol version for logf, log2f and powf without SVID compat 2017-10-02 14:38:03 +01:00
libnsl.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libpthread.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libresolv.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
librt.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libthread_db.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
libutil.abilist Simplify the abilist format 2015-11-06 13:58:53 +01:00
lll_timedlock_wait.c Move sysdeps/unix/sysv/linux/i386/i486/*.? to i386 2015-09-30 10:12:44 -07:00
lll_timedwait_tid.c Move sysdeps/unix/sysv/linux/i386/i486/*.? to i386 2015-09-30 10:12:44 -07:00
localplt.data ld.so: Introduce struct dl_exception 2017-08-10 16:54:57 +02:00
lockf64.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
lowlevellock.h robust mutexes: Fix broken x86 assembly by removing it 2017-01-13 17:16:07 +01:00
lowlevellock.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
lxstat.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
makecontext.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Makefile Build divdi3 only for architecture that required it 2017-04-06 15:14:34 -03:00
profil-counter.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
putmsg.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
readdir64_r.c posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
readdir64.c Mark internal dirent functions with attribute_hidden [BZ #18822] 2017-10-01 15:51:11 -07:00
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
scandir64.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
setcontext.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
shlib-versions Clean up gnu/lib-names.h generation (bug 14171). 2014-09-26 17:33:04 +00:00
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
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 Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
syscall.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
syscalls.list posix: Consolidate Linux waitpid syscall 2017-05-18 18:06:47 -03:00
sysdep.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sysdep.h i386: Update I386_USE_SYSENTER for early PIC syscall 2017-08-04 12:30:38 -07:00
time.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
ucontext_i.sym * sysdeps/unix/sysv/linux/i386/ucontext_i.h: File removed. 2005-12-22 05:18:34 +00:00
Versions Clean pthread functions namespaces for C11 threads 2017-06-23 17:38:17 -03:00
versionsort64.c posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
vfork.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
xstat.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00