glibc/conform/data
Adhemerval Zanella 18d59c1b36 nptl: Add C11 threads mtx_* functions
This patch adds the mtx_* definitions from C11 threads (ISO/IEC 9899:2011),
more specifically mtx_init, mtx_destroy, mtx_lock, mtx_timedlock, mtx_trylock,
mtx_unlock, and required types.

Mostly of the definitions are composed based on POSIX conterparts, and mtx_t
is also based on internal pthread fields, but with a distinct internal layout
to avoid possible issues with code interchange (such as trying to pass POSIX
structure on C11 functions and to avoid inclusion of pthread.h).  The idea
is to make possible to share POSIX internal implementations for mostly of
the code (and making adjustment only when required).

Checked with a build for all major ABI (aarch64-linux-gnu, alpha-linux-gnu,
arm-linux-gnueabi, i386-linux-gnu, ia64-linux-gnu, m68k-linux-gnu,
microblaze-linux-gnu [1], mips{64}-linux-gnu, nios2-linux-gnu,
powerpc{64le}-linux-gnu, s390{x}-linux-gnu, sparc{64}-linux-gnu,
and x86_64-linux-gnu).

Also ran a full check on aarch64-linux-gnu, x86_64-linux-gnu, i686-linux-gnu,
arm-linux-gnueabhf, and powerpc64le-linux-gnu.

	[BZ #14092]
	* conform/data/threads.h-data (mtx_plain): New constant.
	(mtx_recursive): Likewise.
	(mtx_timed): Likewise.
	(mtx_t): New type.
	(mtx_init): New function.
	(mtx_lock): Likewise.
	(mtx_timedlock): Likewise.
	(mtx_trylock): Likewise.
	(mtx_unlock): Likewise.
	(mtx_destroy): Likewise.
	* nptl/Makefile (libpthread-routines): Add mtx_destroy, mtx_init,
	mtx_lock, mtx_timedlock, mtx_trylock, and mtx_unlock object.
	* nptl/Versions (libpthread) [GLIBC_2.28]): Add mtx_init, mtx_lock,
	mtx_timedlock, mtx_trylock, mtx_unlock, and mtx_destroy.
	* nptl/mtx_destroy.c: New file.
	* nptl/mtx_init.c: Likewise.
	* nptl/mtx_lock.c: Likewise.
	* nptl/mtx_timedlock.c: Likewise.
	* nptl/mtx_trylock.c: Likewise.
	* nptl/mtx_unlock.c: Likewise.
	* sysdeps/nptl/threads.h (mtx_plain): New enumeration.
	(mtx_recursive): Likewise.
	(mtx_timed): Likewise.
	(mtx_t): New type.
	(mtx_init): New prototype.
	(mtx_lock): Likewise.
	(mtx_timedlock): Likewise.
	(mtx_trylock): Likewise.
	(mtx_unlock): Likewise.
	(mtx_destroy): Likewise.
2018-07-24 14:06:54 -03:00
..
arpa conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
net conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
netinet hurd: Fix symbols exposition 2018-04-19 20:14:45 +02:00
sys hurd xfails: Add missing bug references 2018-04-20 17:14:13 +02:00
aio.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
assert.h-data conformtest: Update expectations for some ISO C headers. 2012-05-01 20:05:49 +00:00
complex.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
cpio.h-data conformtest: Clean up expectations for POSIX for various headers. 2012-11-19 22:20:44 +00:00
ctype.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
dirent.h-data First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
dlfcn.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
errno.h-data conformtest: Clean up expectations for POSIX for more headers. 2012-11-19 22:21:47 +00:00
fcntl.h-data hurd: xfail some structure fields ABI incompatibility with standards 2018-04-19 01:52:51 +02:00
fenv.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
float.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
fmtmsg.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
fnmatch.h-data First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
ftw.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
glob.h-data conformtest: Clean up expectations for POSIX for various headers. 2012-11-19 22:20:44 +00:00
grp.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
iconv.h-data First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
inttypes.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
iso646.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
langinfo.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
libgen.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
limits.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
locale.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
math.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
monetary.h-data First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
mqueue.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
ndbm.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
netdb.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
nl_types.h-data First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
poll.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
pthread.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
pwd.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
regex.h-data conformtest: Clean up expectations for POSIX for various headers. 2012-11-19 22:20:44 +00:00
sched.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
search.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
semaphore.h-data conformtest: Allow time.h inclusion from semaphore.h for XOPEN2K. 2017-04-28 16:52:16 +00:00
setjmp.h-data conformtest: Update expectations for more ISO C headers. 2012-05-09 10:05:14 +00:00
signal.h-data hurd xfails: Add missing bug references 2018-04-20 17:14:13 +02:00
spawn.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
stdalign.h-data conformtest: Clean up / correct / expand C99 and C11 expectations. 2012-11-07 19:36:48 +00:00
stdarg.h-data conformtest: Correct XOPEN2K stdarg.h expectations. 2016-04-26 13:56:04 +00:00
stdbool.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
stddef.h-data conformtest: Update expectations for some ISO C headers. 2012-05-01 20:05:49 +00:00
stdint.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
stdio.h-data Don't install libio.h or _G_config.h. 2018-02-07 10:07:31 -05:00
stdlib.h-data Disallow use of DES encryption functions in new programs. 2018-06-29 16:53:18 +02:00
stdnoreturn.h-data conformtest: Clean up / correct / expand C99 and C11 expectations. 2012-11-07 19:36:48 +00:00
string.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
strings.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
stropts.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
syslog.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
tar.h-data conformtest: clean up POSIX expectations for semaphore.h, signal.h, tar.h. 2014-03-07 03:21:04 +00:00
termios.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
tgmath.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
threads.h-data nptl: Add C11 threads mtx_* functions 2018-07-24 14:06:54 -03:00
time.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
uchar.h-data conformtest: Clean up / correct / expand C99 and C11 expectations. 2012-11-07 19:36:48 +00:00
ucontext.h-data conformtest: XFAIL uc_mcontext test for powerpc32 (bug 21635). 2017-06-20 17:51:36 +00:00
ulimit.h-data First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
unistd.h-data Disallow use of DES encryption functions in new programs. 2018-06-29 16:53:18 +02:00
utime.h-data Fix up POSIX testing in conformtest 2012-02-26 13:17:27 -05:00
utmpx.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
varargs.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
wchar.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
wctype.h-data conformtest: Fix XPG standard naming. 2017-04-27 20:29:35 +00:00
wordexp.h-data conformtest: Clean up expectations for POSIX for various headers. 2012-11-19 22:20:44 +00:00