Commit Graph

35456 Commits

Author SHA1 Message Date
Samuel Thibault
8ba6ad703c hurd: Add __pthread_spin_wait and use it
900778283a ("htl: make pthread_spin_lock really spin") made
pthread_spin_lock really spin and not block, but the current users of
__pthread_spin_lock were assuming that it blocks, i.e. they use it as a
lightweight mutex fitting in just one int.

__pthread_spin_wait provides that support back.
2020-02-11 00:32:44 +01:00
Paul E. Murphy
cd7965bd97 ldbl-128ibm-compat: set PRINTF_CHK flag in {,v}sprintf_chk
This should be unconditionally set to match the common implementation,
and fixes multiple test failures related to sprintf.

Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
2020-02-10 16:51:03 -06:00
Joseph Myers
a179673f3d Use --disable-gdbserver in build-many-glibcs.py.
Now that binutils-gdb has gdbserver at top level, an extra
--disable-gdbserver configure option is needed when configuring
binutils from a git checkout to avoid it also building gdbserver
unnecessarily (although fairly harmlessly).  This patch updates the
options used in build-many-glibcs.py accordingly (although this might
end up not being needed depending on what happens regarding whether
gdbserver gets built for host != target).

Tested with a build-many-glibcs.py compilers build for
aarch64-linux-gnu using binutils-gdb master.
2020-02-10 22:17:59 +00:00
Wilco Dijkstra
511c91b114 Improve random memcpy benchmark
Improve the random memcpy benchmark.  Double the number of copies and
increase the memory sizes tested to 512KB.  Add a more detailed
distribution of memcpy alignment and sizes up to 4096 based on SPEC2017
traces.

Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
2020-02-10 16:08:40 +00:00
Andreas Schwab
6d0d2eb1e7 nptl: update default pthread-offsets.h
Remove unused definitions, and correct __PTHREAD_RWLOCK_FLAGS_OFFSET for
__WORDSIZE == 64.
2020-02-10 17:01:21 +01:00
Andreas Schwab
4970c9e0b5 nptl: add missing pthread-offsets.h
All architectures using their own definition of struct
__pthread_rwlock_arch_t need to provide their own pthread-offsets.h.
2020-02-10 17:01:21 +01:00
Samuel Thibault
1433e270a1 htl: Avoid a local plt for pthread_self 2020-02-10 13:22:56 +01:00
Samuel Thibault
c0463e8b79 pthread: Move some join tests from nptl to sysdeps/pthread
So they can be checked with htl too.
2020-02-10 01:21:46 +00:00
Samuel Thibault
1905cf47bc htl: Make joining self return EDEADLK 2020-02-10 01:19:00 +00:00
Samuel Thibault
6acd77229a pthread: Move most barrier tests from nptl to sysdeps/pthread
So they can be checked with htl too.
2020-02-10 01:03:55 +00:00
Samuel Thibault
f3a7ff069f htl: Fix barrier_wait with one thread 2020-02-10 01:03:54 +00:00
Samuel Thibault
8a195ec810 pthread: Move most sem tests from nptl to sysdeps/pthread
So they can be checked with htl too.
2020-02-10 01:03:54 +00:00
Samuel Thibault
e9644c20ce htl: Make sem_wait/sem_timedwait interruptible 2020-02-10 01:03:54 +00:00
Samuel Thibault
1cec114b17 htl: Make sem_open return ENOSYS
instead of EOPNOTSUPP, which is for sockets.
2020-02-10 01:03:54 +00:00
Samuel Thibault
5e77ec7c6e htl: Add support for semaphore maximum value 2020-02-10 01:03:54 +00:00
Samuel Thibault
819bb5e660 pthread: Move key tests from nptl to sysdeps/pthread
So they can be checked with htl too.
2020-02-10 01:03:54 +00:00
Samuel Thibault
7e7182256a hurd: Make nanosleep a cancellation point 2020-02-10 01:03:53 +00:00
Samuel Thibault
59b7fe99f2 htl: Add support for libc cancellation points 2020-02-10 01:03:50 +00:00
Samuel Thibault
f1cd3407e4 htl: clean __pthread_get_cleanup_stack hidden proto 2020-02-10 00:06:59 +00:00
Samuel Thibault
782ee4e256 htl: XFAIL rwlock tests which need pshared support 2020-02-09 22:29:28 +00:00
Samuel Thibault
d5ec049d44 pthread: Move some rwlock tests from nptl to sysdeps/pthread
So they can be checked with htl too.
2020-02-09 20:07:51 +00:00
Samuel Thibault
28c30a6232 pthread: Move most once tests from nptl to sysdeps/pthread
So they can be checked with htl too.
2020-02-09 19:50:21 +00:00
Samuel Thibault
52b6cdb4e3 htl: support cancellation during pthread_once 2020-02-09 19:43:46 +00:00
Samuel Thibault
d8f1f2d9ab pthread: Move most cond tests from nptl to sysdeps/pthread
So they can be checked with htl too.
2020-02-09 19:24:44 +00:00
Samuel Thibault
faae4b2bdd htl: make pthread_cond_destroy return EBUSY on waiters 2020-02-09 19:24:42 +00:00
Samuel Thibault
cd94860c56 htl: Report missing mutex lock on pthread_cond_*wait 2020-02-09 18:33:14 +00:00
Samuel Thibault
db12905d1d htl: Fix linking static testcases
They need libpthread.a
2020-02-09 17:57:27 +00:00
Samuel Thibault
6db1094f7a htl: Move __register_atfork from forward to own file
Since we need it also in the static linking case.
2020-02-09 17:55:37 +00:00
Samuel Thibault
44a41fc253 pthread: Move some attr tests from nptl to sysdeps/pthread
So they can be checked with htl too.
2020-02-09 17:30:30 +00:00
Samuel Thibault
34f168fb82 htl: Fix default guard size
When it is not hardcoded by the architecture with PAGESIZE, we need to
use the dynamic values from __vm_page_size.
2020-02-09 17:28:33 +00:00
Samuel Thibault
74159dc58a pthread: Move most mutex tests from nptl to sysdeps/pthread
So they can be checked with htl too.

XFAIL tst-mutex4, for which support is still missing in htl.
2020-02-09 17:17:06 +00:00
Samuel Thibault
71d52ac4d6 pthread: Move spin tests from nptl to sysdeps/pthread
So they can be checked with htl too.
2020-02-09 17:00:44 +00:00
Samuel Thibault
900778283a htl: make pthread_spin_lock really spin
__spin_lock would actually use gsync_wait to block, which is not what
pthread_spin_lock is about.
2020-02-09 16:54:58 +00:00
Samuel Thibault
e622ce98c5 htl: Avoid check-installed-headers looking at inlines 2020-02-09 16:42:36 +00:00
Samuel Thibault
865bf71109 htl: Do not put spin_lock inlines in public headers
They were not getting used anyway.
Also do not make libsupport use them, it would make tests using it have
to be made to link against libmachuser for gsync_wait.
2020-02-09 16:36:37 +00:00
Samuel Thibault
cca76b6db2 pthread: Move basic tests from nptl to sysdeps/pthread
So they can be checked with htl too.
2020-02-09 16:12:53 +00:00
Samuel Thibault
19a64d9f6e htl: Fix calling pthread_exit in the child of a fork
We need to reset the threads counter, otherwise pthread_exit() would not
call exit(0).
2020-02-09 17:01:06 +01:00
Florian Weimer
3430ed09d3 x86: Remove <bits/select.h> and use the generic version
Particularly on CPUs without ERMS, the string instructions are slow,
so it is unclear whether this architecture-specific implementation is
in fact an optimization.
2020-02-09 14:02:27 +01:00
Samuel Thibault
b05de10400 C11 threads: Move implementation to sysdeps/pthread
so it gets shared by nptl and htl. Also add htl versions of thrd_current and
thrd_yield.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2020-02-09 13:56:48 +01:00
Samuel Thibault
6cefe985b8 htl: Add C11 threads types definitions 2020-02-09 13:56:48 +01:00
Samuel Thibault
f1cea28137 C11 threads: make thrd_join more portable
by making a __pthread_join call instead of an equivalent __pthread_clockjoin_ex
call.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2020-02-09 13:56:48 +01:00
Samuel Thibault
c9abd9b4f3 C11 threads: Fix thrd_t / pthread_t compatibility assertion
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2020-02-09 13:56:48 +01:00
Samuel Thibault
fc7283264d C11 threads: do not require PTHREAD_DESTRUCTOR_ITERATIONS
It is optional in POSIX.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2020-02-09 13:56:48 +01:00
Samuel Thibault
e5ad057068 nptl: Move nptl-specific types to separate header
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2020-02-09 13:56:48 +01:00
Samuel Thibault
f827f0e473 htl: Make __PTHREAD_ONCE_INIT more flexible
by moving its (struct __pthread_once) cast into PTHREAD_ONCE_INIT.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2020-02-09 13:56:48 +01:00
Samuel Thibault
0c0361235c htl: Add support for C11 threads behavior
Essentially properly calling the thread function which returns an int
instead of a void*.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2020-02-09 13:56:48 +01:00
Samuel Thibault
95669bbf2c htl: Add missing internal functions declarations 2020-02-09 13:56:48 +01:00
Samuel Thibault
e775f443bd htl: Rename _pthread_mutex_init/destroy to __pthread_mutex_init/destroy 2020-02-09 13:56:45 +01:00
Samuel Thibault
0093df204a htl: Move internal mutex/rwlock symbols to GLIBC_PRIVATE
Their prototypes have never been made public, and they are not used outside
libc (checked on the whole Debian archive)
2020-02-09 13:06:35 +01:00
Florian Weimer
f6233ab412 Linux: Add io/tst-o_path-locks test
The O_PATH-based fchmodat emulation will rely on the fact that closing
an O_PATH descriptor never releases POSIX advisory locks, so this
commit adds a test case for this behavior.
2020-02-09 11:51:08 +01:00