glibc/sysdeps/sh
Adhemerval Zanella 1c3f9acf1f nptl: Add struct_mutex.h
The current way of defining the common mutex definition for POSIX and
C11 on pthreadtypes-arch.h (added by commit 06be6368da) is
not really the best options for newer ports.  It requires define some
misleading flags that should be always defined as 0
(__PTHREAD_COMPAT_PADDING_MID and __PTHREAD_COMPAT_PADDING_END), it
exposes options used solely for linuxthreads compat mode
(__PTHREAD_MUTEX_USE_UNION and __PTHREAD_MUTEX_NUSERS_AFTER_KIND), and
requires newer ports to explicit define them (adding more boilerplate
code).

This patch adds a new default __pthread_mutex_s definition meant to
be used by newer ports.  Its layout mimics the current usage on both
32 and 64 bits ports and it allows most ports to use the generic
definition.  Only ports that use some arch-specific definition (such
as hardware lock-elision or linuxthreads compat) requires specific
headers.

For 32 bit, the generic definitions mimic the other 32-bit ports
of using an union to define the fields uses on adaptive and robust
mutexes (thus not allowing both usage at same time) and by using a
single linked-list for robust mutexes.  Both decisions seemed to
follow what recent ports have done and make the resulting
pthread_mutex_t/mtx_t object smaller.

Also the static intialization macro for pthread_mutex_t is set to use
a macro __PTHREAD_MUTEX_INITIALIZER where the architecture can redefine
in its struct_mutex.h if it requires additional fields to be
initialized.

Checked with a build on affected abis.

Change-Id: I30a22c3e3497805fd6e52994c5925897cffcfe13
2019-11-26 13:53:36 +00:00
..
be sh: Split BE/LE abilist 2019-08-29 09:58:31 -03:00
bits Split up endian.h to minimize exposure of BYTE_ORDER. 2019-10-01 14:54:46 -07:00
le sh: Split BE/LE abilist 2019-08-29 09:58:31 -03:00
nofpu Add sysdeps/ieee754/soft-fp. 2017-12-12 23:35:21 +00:00
nptl nptl: Add struct_mutex.h 2019-11-26 13:53:36 +00:00
sh3 Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
sh4 Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
____longjmp_chk.S Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
_mcount.S Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
abort-instr.h SH: ABORT_INSTRUCTION. 2012-06-23 11:47:39 +02:00
bsd-_setjmp.S Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
bsd-setjmp.S Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
configure rename configure.in to configure.ac 2013-10-30 17:32:08 +10:00
configure.ac rename configure.in to configure.ac 2013-10-30 17:32:08 +10:00
crti.S Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
crtn.S Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
dl-machine.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
dl-tls.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
dl-trampoline.S Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
fpu_control.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
gccframe.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
gmp-mparam.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
Implies Remove sysdeps/sh/soft-fp directory. 2018-05-23 20:05:31 +00:00
jmpbuf-offsets.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
jmpbuf-unwind.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
ldbl-classify-compat.h Move LDBL_CLASSIFY_COMPAT to its own header. 2018-02-01 21:01:00 +00:00
ldsodefs.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
libc-tls.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
libm-test-ulps sh: Update libm-tests-ulps 2019-08-05 15:59:18 -03:00
libm-test-ulps-name Do not hardcode platform names in manual/libm-err-tab.pl (bug 14139). 2016-11-04 16:49:06 +00:00
linkmap.h Rename bits/linkmap.h to linkmap.h (bug 14912). 2015-09-04 19:44:27 +00:00
machine-gmon.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
Makefile Enable unwind info in libc-start.c and backtrace.c 2017-09-19 15:07:58 +01:00
memcpy.S Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
memset.S Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
memusage.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
preconfigure sh: Split BE/LE abilist 2019-08-29 09:58:31 -03:00
preconfigure.ac sh: Split BE/LE abilist 2019-08-29 09:58:31 -03:00
sfp-machine.h Remove sysdeps/sh/soft-fp directory. 2018-05-23 20:05:31 +00:00
sotruss-lib.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
stackguard-macros.h Add SH implementation of stackguard-macros.h. 2013-09-27 10:59:02 +09:00
stackinfo.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
start.S Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
strlen.S Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
sysdep.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
tininess.h Fix strtod handling of underflow (bug 14047). 2012-10-30 13:51:27 +00:00
tls-macros.h Split tls-macros.h into sysdeps directories. 2012-07-17 11:30:58 +00:00
tst-audit.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00