about summary refs log tree commit diff
path: root/sysdeps
Commit message (Collapse)AuthorAgeFilesLines
* nptl: update default pthread-offsets.hAndreas Schwab2020-02-101-16/+6
| | | | | Remove unused definitions, and correct __PTHREAD_RWLOCK_FLAGS_OFFSET for __WORDSIZE == 64.
* nptl: add missing pthread-offsets.hAndreas Schwab2020-02-105-0/+25
| | | | | All architectures using their own definition of struct __pthread_rwlock_arch_t need to provide their own pthread-offsets.h.
* pthread: Move some join tests from nptl to sysdeps/pthreadSamuel Thibault2020-02-107-0/+516
| | | | So they can be checked with htl too.
* pthread: Move most barrier tests from nptl to sysdeps/pthreadSamuel Thibault2020-02-106-0/+531
| | | | So they can be checked with htl too.
* htl: Fix barrier_wait with one threadSamuel Thibault2020-02-101-1/+3
|
* pthread: Move most sem tests from nptl to sysdeps/pthreadSamuel Thibault2020-02-1014-0/+1205
| | | | So they can be checked with htl too.
* htl: Make sem_wait/sem_timedwait interruptibleSamuel Thibault2020-02-105-9/+37
|
* htl: Make sem_open return ENOSYSSamuel Thibault2020-02-101-1/+1
| | | | instead of EOPNOTSUPP, which is for sockets.
* htl: Add support for semaphore maximum valueSamuel Thibault2020-02-102-0/+10
|
* pthread: Move key tests from nptl to sysdeps/pthreadSamuel Thibault2020-02-105-0/+497
| | | | So they can be checked with htl too.
* hurd: Make nanosleep a cancellation pointSamuel Thibault2020-02-101-0/+5
|
* htl: Add support for libc cancellation pointsSamuel Thibault2020-02-102-2/+19
|
* htl: clean __pthread_get_cleanup_stack hidden protoSamuel Thibault2020-02-101-1/+1
|
* htl: XFAIL rwlock tests which need pshared supportSamuel Thibault2020-02-091-0/+2
|
* pthread: Move some rwlock tests from nptl to sysdeps/pthreadSamuel Thibault2020-02-098-0/+1106
| | | | So they can be checked with htl too.
* pthread: Move most once tests from nptl to sysdeps/pthreadSamuel Thibault2020-02-097-0/+525
| | | | So they can be checked with htl too.
* htl: support cancellation during pthread_onceSamuel Thibault2020-02-091-0/+10
|
* pthread: Move most cond tests from nptl to sysdeps/pthreadSamuel Thibault2020-02-0930-0/+3789
| | | | So they can be checked with htl too.
* htl: make pthread_cond_destroy return EBUSY on waitersSamuel Thibault2020-02-091-1/+8
|
* htl: Report missing mutex lock on pthread_cond_*waitSamuel Thibault2020-02-092-0/+55
|
* pthread: Move some attr tests from nptl to sysdeps/pthreadSamuel Thibault2020-02-092-0/+306
| | | | So they can be checked with htl too.
* htl: Fix default guard sizeSamuel Thibault2020-02-092-1/+5
| | | | | When it is not hardcoded by the architecture with PAGESIZE, we need to use the dynamic values from __vm_page_size.
* pthread: Move most mutex tests from nptl to sysdeps/pthreadSamuel Thibault2020-02-099-1/+1468
| | | | | | So they can be checked with htl too. XFAIL tst-mutex4, for which support is still missing in htl.
* pthread: Move spin tests from nptl to sysdeps/pthreadSamuel Thibault2020-02-095-0/+376
| | | | So they can be checked with htl too.
* htl: make pthread_spin_lock really spinSamuel Thibault2020-02-091-1/+1
| | | | | __spin_lock would actually use gsync_wait to block, which is not what pthread_spin_lock is about.
* htl: Avoid check-installed-headers looking at inlinesSamuel Thibault2020-02-091-2/+4
|
* htl: Do not put spin_lock inlines in public headersSamuel Thibault2020-02-092-36/+36
| | | | | | 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.
* pthread: Move basic tests from nptl to sysdeps/pthreadSamuel Thibault2020-02-098-1/+675
| | | | So they can be checked with htl too.
* htl: Fix calling pthread_exit in the child of a forkSamuel Thibault2020-02-091-0/+9
| | | | | We need to reset the threads counter, otherwise pthread_exit() would not call exit(0).
* x86: Remove <bits/select.h> and use the generic versionFlorian Weimer2020-02-091-63/+0
| | | | | | Particularly on CPUs without ERMS, the string instructions are slow, so it is unclear whether this architecture-specific implementation is in fact an optimization.
* C11 threads: Move implementation to sysdeps/pthreadSamuel Thibault2020-02-0947-64/+1633
| | | | | | | 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>
* htl: Add C11 threads types definitionsSamuel Thibault2020-02-091-0/+13
|
* nptl: Move nptl-specific types to separate headerSamuel Thibault2020-02-092-8/+15
| | | | Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
* htl: Make __PTHREAD_ONCE_INIT more flexibleSamuel Thibault2020-02-092-2/+2
| | | | | | by moving its (struct __pthread_once) cast into PTHREAD_ONCE_INIT. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
* htl: Add support for C11 threads behaviorSamuel Thibault2020-02-091-0/+3
| | | | | | | Essentially properly calling the thread function which returns an int instead of a void*. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
* htl: Add missing internal functions declarationsSamuel Thibault2020-02-091-0/+13
|
* htl: Rename _pthread_mutex_init/destroy to __pthread_mutex_init/destroySamuel Thibault2020-02-094-8/+9
|
* htl: Move internal mutex/rwlock symbols to GLIBC_PRIVATESamuel Thibault2020-02-091-7/+0
| | | | | Their prototypes have never been made public, and they are not used outside libc (checked on the whole Debian archive)
* Linux: Add io/tst-o_path-locks testFlorian Weimer2020-02-092-1/+101
| | | | | | 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.
* htl: Remove duplicate filesSamuel Thibault2020-02-092-56/+0
| | | | The generic versions have the same content.
* htl: Remove unused filesSamuel Thibault2020-02-0924-1100/+0
| | | | These have never been used.
* Remove a comment claiming that sin/cos round correctly.Wilco Dijkstra2020-02-071-4/+4
|
* y2038: linux: Provide __settimeofday64 implementationLukasz Majewski2020-02-071-0/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch provides new __settimeofday64 explicit 64 bit function for setting 64 bit time in the kernel (by internally calling __clock_settime64). Moreover, a 32 bit version - __settimeofday has been refactored to internally use __settimeofday64. The __settimeofday is now supposed to be used on systems still supporting 32 bit time (__TIMESIZE != 64) - hence the necessary conversion of struct timeval to 64 bit struct __timespec64. Internally the settimeofday uses __settimeofday64. This patch is necessary for having architectures with __WORDSIZE == 32 Y2038 safe. Build tests: ./src/scripts/build-many-glibcs.py glibcs Run-time tests: - Run specific tests on ARM/x86 32bit systems (qemu): https://github.com/lmajewski/meta-y2038 and run tests: https://github.com/lmajewski/y2038-tests/commits/master Above tests were performed with Y2038 redirection applied as well as without to test proper usage of both __settimeofday64 and __settimeofday. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
* y2038: alpha: Rename valid_timeval64_to_timeval to valid_timeval_to_timeval32Lukasz Majewski2020-02-074-9/+9
| | | | | | | | | | | | | | | | The name 'valid_timeval64_to_timeval' suggest conversion of struct __timeval64 to struct timeval (as in ./include/time.h). As on the alpha the struct timeval supports 64 bit time, it seems more feasible to emphasis struct timeval32 in the conversion function name. Hence the helper function naming change to 'valid_timeval_to_timeval32'. Build tests: ./src/scripts/build-many-glibcs.py glibcs Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
* y2038: alpha: Rename valid_timeval_to_timeval64 to valid_timeval32_to_timevalLukasz Majewski2020-02-074-7/+7
| | | | | | | | | | | | | | | | | | Without this patch the naming convention for functions to convert struct timeval32 to struct timeval (which supports 64 bit time on Alpha) was a bit misleading. The name 'valid_timeval_to_timeval64' suggest conversion of struct timeval to struct __timeval64 (as in ./include/time.h). As on alpha the struct timeval supports 64 bit time it seems more readable to emphasis struct timeval32 in the conversion function name. Hence the helper function naming change to 'valid_timeval32_to_timeval'. Build tests: ./src/scripts/build-many-glibcs.py glibcs Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
* y2038: Define __suseconds64_t type to be used with struct __timeval64Lukasz Majewski2020-02-076-0/+6
| | | | | | | | | | | | | | | The __suseconds64_t type is supposed to be the 64 bit type across all architectures. It would be mostly used internally in the glibc - however, when passed to Linux kernel (very unlikely), if necessary, it shall be converted to 32 bit type (i.e. __suseconds_t) Build tests: ./src/scripts/build-many-glibcs.py glibcs Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
* Update kernel version to 5.5 in tst-mman-consts.py.Joseph Myers2020-02-071-1/+1
| | | | | | | | This patch updates the kernel version in the test tst-mman-consts.py to 5.5. (There are no new constants covered by this test in 5.5 that need any other header changes.) Tested with build-many-glibcs.py.
* Update syscall lists for Linux 5.5.Joseph Myers2020-02-072-2/+3
| | | | | | | | | Linux 5.5 has no new syscalls to add to syscall-names.list, but it does newly enable the clone3 syscall for AArch64. This patch updates the kernel version listed in syscall-names.list and regenerates the AArch64 arch-syscall.h. Tested with build-many-glibcs.py.
* y2038: linux: Provide __timespec_get64 implementationLukasz Majewski2020-02-051-0/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch provides new instance of Linux specific timespec_get.c file placed in ./sysdeps/unix/sysv/linux/. When compared to this file version from ./time directory, it provides __timespec_get64 explicit 64 bit function for getting 64 bit time in the struct __timespec64 (for compilation using C11 standard). Moreover, a 32 bit version - __timespec_get internally uses __timespec_get64. The __timespec_get is now supposed to be used on systems still supporting 32 bit time (__TIMESIZE != 64) - hence the necessary conversion to 32 bit struct timespec. Internally the timespec_get uses __clock_gettime64. This patch is necessary for having architectures with __WORDSIZE == 32 Y2038 safe. Build tests: ./src/scripts/build-many-glibcs.py glibcs Run-time tests: - Run specific tests on ARM/x86 32bit systems (qemu): https://github.com/lmajewski/meta-y2038 and run tests: https://github.com/lmajewski/y2038-tests/commits/master Above tests were performed with Y2038 redirection applied as well as without to test proper usage of both __timespec_get64 and __timespec_get. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
* rt: avoid PLT setup in timer_[sg]ettimeAndreas Schwab2020-02-032-2/+4
| | | | | | | | | | The functions __timer_gettime64 and __timer_settime64 live in librt, not libc. Use proper hidden aliases so that the callers do not need to set up the PLT register. Fixes commits cae1635a70 ("y2038: linux: Provide __timer_settime64 implementation") and 562cdc19c7 ("y2038: linux: Provide __timer_gettime64 implementation").