aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-02-09microblaze: vfork syscall number is always availablefw/syscall-cleanupsFlorian Weimer1-4/+0
Due to the built-in tables, __NR_vfork is always defined, so the fork-based fallback code is never used. (It appears that the vfork system call was wired up when the port was contributed to the kernel.)
2020-02-09m68k: getpagesize syscall number is always availableFlorian Weimer1-4/+0
Due to the built-in tables, __NR_getpagesize is always defined.
2020-02-09Linux: epoll_pwait syscall number is always availableFlorian Weimer1-16/+0
Due to the built-in tables, __NR_epoll_pwait is always defined.
2020-02-09x86_64: Do not define __NR_semtimedop in <sysdep.h>Florian Weimer1-7/+0
The definition is always available from the built-in system call table.
2020-02-09ia64: Do not define __NR_semtimedop in <sysdep.h>Florian Weimer1-6/+0
The definition is always available from the built-in system call table.
2020-02-09Linux: open_by_handle_at syscall number is always availableFlorian Weimer1-9/+0
Due to the built-in tables, __NR_open_by_handle_at is always defined.
2020-02-09Linux: set_robust_list syscall number is always availableFlorian Weimer3-14/+6
Due to the built-in tables, __NR_set_robust_list is always defined (although it may not be available at run time).
2020-02-09Linux: pciconfig_iobase syscall number is always available on alphaFlorian Weimer1-2/+0
Due to the built-in tables, __NR_pciconfig_iobase is always defined.
2020-02-09Linux: getdents64 syscall number is always available on MIPSFlorian Weimer1-2/+0
Due to the built-in tables, __NR_getdents64 is always defined, although it may not be supported at run time.
2020-02-09Linux: exit_group syscall number is always availableFlorian Weimer1-2/+0
Due to the built-in tables, __NR_exit_group is always defined.
2020-02-09Linux: set_tid_address syscall number is always availableFlorian Weimer1-2/+0
Due to the built-in tables, __NR_set_tid_address is always defined.
2020-02-09Linux: pkey_mprotect syscall number is always availableFlorian Weimer1-5/+0
Due to the built-in tables, __NR_pkey_mprotect is always defined.
2020-02-09Linux: rt_sigqueueinfo syscall number is always availableFlorian Weimer2-10/+0
Due to the built-in tables, __NR_rt_sigqueueinfo is always defined. sysdeps/pthread/time_routines.c is not updated because it is shared with Hurd.
2020-02-09Linux: getrandom syscall number is always availableFlorian Weimer2-22/+0
Due to the built-in tables, __NR_getrandom is always defined.
2020-02-09Linux: Clean up preadv, pwritev system call namesFlorian Weimer4-28/+4
The names __NR_preadv64, __NR_pwritev64 appear to be a glibc invention. With the built-in tables, __NR_preadv and __NR_pwritev are always defined.
2020-02-09Linux: Clean up preadv2, pwritev2 system call namesFlorian Weimer4-22/+7
With the built-in tables __NR_preadv2 and __NR_pwritev2 are always defined. The kernel has never defined __NR_preadv64v2 and __NR_pwritev64v2 and is unlikely to do so, given that the preadv2 and pwritev2 system calls themselves are 64-bit.
2020-02-09Linux: Clean up pread64/pwrite64 system call namesFlorian Weimer7-41/+2
Linux removed the last definitions of __NR_pread and __NR_pwrite in commit 4ba66a9760722ccbb691b8f7116cad2f791cca7b, the removal of the blackfin port. All architectures now define __NR_pread64 and __NR_pwrite64 only.
2020-02-09Linux: sigaltstack syscall number is always availableFlorian Weimer1-4/+0
Due to the built-in tables, __NR_sigaltstack is always defined.
2020-02-09Linux: sched_getaffinity syscall number is always availableFlorian Weimer1-7/+3
Due to the built-in tables, __NR_sched_getaffinity is always defined.
2020-02-09Linux: sched_setaffinity syscall number is always availableFlorian Weimer1-6/+1
Due to the built-in tables, __NR_sched_setaffinity is always defined.
2020-02-09Linux: statx syscall number is always availableFlorian Weimer1-7/+4
Due to the built-in tables, __NR_statx is always defined.
2020-02-09Linux: mq_* syscall numbers are always availableFlorian Weimer7-41/+0
Due to the built-in tables, __NR_mq_getsetattr, __NR_mq_notify, __NR_mq_open, __NR_mq_timedreceive, __NR_mq_timedsend, __NR_mq_unlink are always defined.
2020-02-09Linux: mlock2 syscall number is always availableFlorian Weimer1-2/+0
Due to the built-in tables, __NR_mlock2 is always defined.
2020-02-09Linux: copy_file_range syscall number is always availableFlorian Weimer1-5/+0
Due to the built-in tables, __NR_copy_file_range is always defined.
2020-02-09Linux: renameat2 syscall number is always availableFlorian Weimer1-4/+3
Due to the built-in tables, __NR_renameat2 is always defined.
2020-02-09Linux: Enhance glibcsyscalls.h to support listing system callsFlorian Weimer1-1/+85
The script can now be called to query the definition status of system call numbers across all architectures, like this: $ python3 sysdeps/unix/sysv/linux/glibcsyscalls.py query-syscall sync_file_range sync_file_range2 sync_file_range: defined: aarch64 alpha csky hppa i386 ia64 m68k microblaze mips/mips32 mips/mips64/n32 mips/mips64/n64 nios2 riscv/rv64 s390/s390-32 s390/s390-64 sh sparc/sparc32 sparc/sparc64 x86_64/64 x86_64/x32 undefined: arm powerpc/powerpc32 powerpc/powerpc64 sync_file_range2: defined: arm powerpc/powerpc32 powerpc/powerpc64 undefined: aarch64 alpha csky hppa i386 ia64 m68k microblaze mips/mips32 mips/mips64/n32 mips/mips64/n64 nios2 riscv/rv64 s390/s390-32 s390/s390-64 sh sparc/sparc32 sparc/sparc64 x86_64/64 x86_64/x32
2020-02-09x86: Remove <bits/select.h> and use the generic versionFlorian Weimer1-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.
2020-02-09C11 threads: Move implementation to sysdeps/pthreadSamuel Thibault49-77/+127
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-09htl: Add C11 threads types definitionsSamuel Thibault1-0/+13
2020-02-09C11 threads: make thrd_join more portableSamuel Thibault1-1/+1
by making a __pthread_join call instead of an equivalent __pthread_clockjoin_ex call. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2020-02-09C11 threads: Fix thrd_t / pthread_t compatibility assertionSamuel Thibault1-2/+2
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2020-02-09C11 threads: do not require PTHREAD_DESTRUCTOR_ITERATIONSSamuel Thibault1-0/+2
It is optional in POSIX. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2020-02-09nptl: Move nptl-specific types to separate headerSamuel Thibault3-9/+16
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2020-02-09htl: Make __PTHREAD_ONCE_INIT more flexibleSamuel Thibault2-2/+2
by moving its (struct __pthread_once) cast into PTHREAD_ONCE_INIT. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2020-02-09htl: Add support for C11 threads behaviorSamuel Thibault3-1/+25
Essentially properly calling the thread function which returns an int instead of a void*. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2020-02-09htl: Add missing internal functions declarationsSamuel Thibault1-0/+13
2020-02-09htl: Rename _pthread_mutex_init/destroy to __pthread_mutex_init/destroySamuel Thibault6-11/+13
2020-02-09htl: Move internal mutex/rwlock symbols to GLIBC_PRIVATESamuel Thibault2-11/+4
Their prototypes have never been made public, and they are not used outside libc (checked on the whole Debian archive)
2020-02-09Linux: Add io/tst-o_path-locks testFlorian Weimer2-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.
2020-02-09support: Add the xlstat functionFlorian Weimer3-0/+30
2020-02-09htl: Remove duplicate filesSamuel Thibault2-56/+0
The generic versions have the same content.
2020-02-09htl: Remove unused filesSamuel Thibault27-1106/+0
These have never been used.
2020-02-07resolv: Fix CNAME chaining in resolv/tst-resolv-ai_idn-common.cFlorian Weimer1-1/+2
The second CNAME record optionally generated by the response function used the question name, not the redirected name from the first CNAME. This breaks the chain and results in failures of these IDNA tests if CNAME owner names are checked as expected (which the current implementation does not do).
2020-02-07Remove a comment claiming that sin/cos round correctly.Wilco Dijkstra1-4/+4
2020-02-07y2038: linux: Provide __settimeofday64 implementationLukasz Majewski2-0/+62
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>
2020-02-07y2038: Provide conversion helpers for struct __timeval64Lukasz Majewski1-0/+49
Those functions allow easy conversion between Y2038 safe, glibc internal struct __timeval64 and other time related data structures (like struct timeval or struct __timespec64). 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>
2020-02-07y2038: alpha: Rename valid_timeval64_to_timeval to valid_timeval_to_timeval32Lukasz Majewski4-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>
2020-02-07y2038: alpha: Rename valid_timeval_to_timeval64 to valid_timeval32_to_timevalLukasz Majewski4-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>
2020-02-07y2038: Introduce struct __timeval64 - new internal glibc typeLukasz Majewski1-0/+14
This type is a glibc's "internal" type similar to struct timeval but whose tv_sec field is a __time64_t rather than a time_t, which makes it Y2038-proof. This struct is NOT supposed to be passed to the kernel - instead it shall be converted to struct __timespec64 and clock_[sg]ettime syscalls shall be used (which are now Y2038 safe). 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>
2020-02-07y2038: Define __suseconds64_t type to be used with struct __timeval64Lukasz Majewski8-0/+8
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>