From 18d59c1b36e97d438ed964eb483c119517c18fee Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Tue, 27 Jun 2017 10:45:04 -0300 Subject: 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. --- ChangeLog | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index 5cafa4ccfd..1f04a0c649 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,37 @@ 2018-07-24 Adhemerval Zanella + [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. + [BZ #14092] * conform/Makefile (conformtest-headers-ISO11): Add threads.h. (linknamespace-libs-ISO11): Add libpthread.a. -- cgit v1.2.3