aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
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>
2020-02-07Update kernel version to 5.5 in tst-mman-consts.py.Joseph Myers1-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.
2020-02-07Update syscall lists for Linux 5.5.Joseph Myers2-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.
2020-02-07NEWS: Set fill-column hint to 72Siddhesh Poyarekar1-1/+1
Match up with list-fixed-bugs.py and also with the fact that many email clients default to 72 chars when composing emails. Reviewed-by: Joseph Myers <joseph@codesourcery.com>
2020-02-05y2038: linux: Provide __timespec_get64 implementationLukasz Majewski2-0/+62
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>
2020-02-03Use binutils 2.34 branch in build-many-glibcs.py.Joseph Myers1-1/+1
This patch makes build-many-glibcs.py use binutils 2.34 branch. Tested with build-many-glibcs.py (compilers and glibcs builds).
2020-02-03Run nptl/tst-pthread-getattr in a containerDJ Delorie1-2/+4
See https://bugzilla.redhat.com/show_bug.cgi?id=1653942 This test depends on the kernel's assignment of memory regions, but running under ld.so explicitly changes those assignments, sometimes sufficiently to cause the test to fail (esp with address space randomization). The easiest way to "fix" the test, is to run it the way the user would - without ld.so. Running it in a container does that. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-02-03test-container: add exec, cwdDJ Delorie1-13/+65
exec <path_to_test_binary> [optional_argv_0] copies test binary to specified location and runs it from there. If the second argument is provided, that will be used for argv[0] cwd <directory> attempts to chdir(directory) before running test Note: "cwd" not "cd" as it takes effect just before the test binary runs, not when it's encountered in the script, so it can't be used as a path shortcut like "cd" would imply. cleanup: use xstrdup() instead of strdup() Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2020-02-03Use Linux 5.5 in build-many-glibcs.py.Joseph Myers1-1/+1
This patch makes build-many-glibcs.py use Linux 5.5. Tested with build-many-glibcs.py (compilers and glibcs builds).
2020-02-03rt: avoid PLT setup in timer_[sg]ettimeAndreas Schwab3-4/+6
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").
2020-02-03Update or_IN collation [BZ #22525]Mike FABIAN3-526/+186
- Add a test file or_IN.UTF-8.in. - Make the collation agree with CLDR.
2020-02-03Fix ckb_IQ [BZ #9809]Mike FABIAN5-310/+195
Add ckb_IQ to SUPPORTED file. Add ckb_IQ.UTF-8.in collation test file. Mention new ckb_IQ locale in NEWS.
2020-02-03Add new locale: ckb_IQ (Kurdish/Sorani spoken in Iraq) [BZ #9809]Jwtiyar Nariman1-0/+452
2020-02-03list-fixed-bugs.py: Wrap at 72 charsSiddhesh Poyarekar1-1/+1
Wrap the bug list output at 72 chars to make it easy to paste into emails. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2020-02-02y2038: linux: Provide __sched_rr_get_interval64 implementationLukasz Majewski3-1/+80
This patch replaces auto generated wrapper (as described in sysdeps/unix/sysv/linux/syscalls.list) for sched_rr_get_interval with one which adds extra support for reading 64 bit time values on machines with __TIMESIZE != 64. There is no functional change for architectures already supporting 64 bit time ABI. The sched_rr_get_interval declaration in ./include/sched.h is not followed by corresponding libc_hidden_proto(), so it has been assumed that newly introduced syscall wrapper doesn't require libc_hidden_def() (which has been added by template used with auto generation script). Moreover, the code for building sched_rr_gi.c file is already placed in ./posix/Makefiles, so there was no need to add it elsewhere. Performed tests and validation are the same as for timer_gettime() conversion (sysdeps/unix/sysv/linux/timer_gettime.c). Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2020-02-02y2038: linux: Provide __timerfd_settime64 implementationLukasz Majewski4-2/+93
This patch replaces auto generated wrapper (as described in sysdeps/unix/sysv/linux/syscalls.list) for timerfd_settime with one which adds extra support for reading and writing from Linux kernel 64 bit time values on machines with __TIMESIZE != 64. There is no functional change for archs already supporting 64 bit time ABI. This patch is conceptually identical to timer_settime conversion already done in sysdeps/unix/sysv/linux/timer_settime.c. Please refer to corresponding commit message for detailed description of introduced functions and the testing procedure. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> --- Changes for v4: - Update date from 2019 to 2020 Changes for v3: - Add missing libc_hidden_def() Changes for v2: - Remove "Contributed by" from the file header - Remove early check for (fd < 0) in __timerfd_settime64 as the fd correctness check is already done in Linux kernel - Add single descriptive comment line to provide concise explanation of the code
2020-02-02y2038: linux: Provide __timerfd_gettime64 implementationLukasz Majewski4-2/+73
This patch replaces auto generated wrapper (as described in sysdeps/unix/sysv/linux/syscalls.list) for timerfd_gettime with one which adds extra support for reading 64 bit time values on machines with __TIMESIZE != 64. There is no functional change for architectures already supporting 64 bit time ABI. This patch is conceptually identical to timer_gettime conversion already done in sysdeps/unix/sysv/linux/timer_gettime.c. Please refer to corresponding commit message for detailed description of introduced functions and the testing procedure. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> --- Changes for v4: - Update date from 2019 to 2020 Changes for v3: - Add missing libc_hidden_def() Changes for v2: - Remove "Contributed by" from the file header - Remove early check for (fd < 0) in __timerfd_gettime64 as the fd correctness check is already done in Linux kernel - Add single descriptive comment line to provide concise explanation of the code
2020-02-01i386: Remove _exit.SH.J. Lu1-44/+0
The generic implementation is suffice since __NR_exit_group is always support and i386 does define ABORT_INSTRUCTION. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2020-02-01i386: Use ENTRY/END in assembly codesH.J. Lu3-15/+10
Use ENTRY and END in assembly codes so that ENDBR32 will be added at function entries when CET is enabled. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2020-02-01i386-mcount.S: Add _CET_ENDBR to _mcount and __fentry__H.J. Lu1-0/+2
Since _mcount and __fentry__ don't use ENTRY, we need to add _CET_ENDBR by hand. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2020-02-01i386/sub_n.S: Add a missing _CET_ENDBR to indirect jump targetH.J. Lu1-0/+1
Add a missing _CET_ENDBR to indirect jump targe in sysdeps/i386/sub_n.S. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2020-02-01i386: Don't unnecessarily save and restore EAX, ECX and EDX [BZ# 25262]H.J. Lu4-29/+10
On i386, since EAX, ECX and EDX are caller-saved, there are no need to save and restore EAX, ECX and EDX in getcontext, setcontext and swapcontext. They just need to clear EAX on success. The extra scratch registers are needed to enable CET. Tested on i386. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2020-02-01x86: Don't make 2 calls to dlerror () in a rowH.J. Lu2-2/+2
We shouldn't make 2 calls to dlerror () in a row since the first call will clear the error. We should just use the return value from the first call. Tested on Linux/x86-64. Reviewed-by: Florian Weimer <fweimer@redhat.com>
2020-02-01Open master for 2.32 developmentglibc-2.31.9000Siddhesh Poyarekar2-2/+25
happy hacking!
2020-02-01Generate ChangeLog.old/ChangeLog.20 for 2.31glibc-2.31Siddhesh Poyarekar1-0/+6542
We're ready to tag!
2020-02-01Update version numbers for 2.31 releaseSiddhesh Poyarekar2-3/+3
2020-02-01Add bugs fixed in 2.31 in NEWSSiddhesh Poyarekar1-2/+77
2020-02-01Update newest tested versions of dependencies in install.texiSiddhesh Poyarekar2-10/+10
Updated versions of gcc, binutils, awk, bison and perl.
2020-02-01Add more contributors to the manualSiddhesh Poyarekar1-0/+18
2020-02-01Add note to NEWS about kernel headers dependency on risc-vSiddhesh Poyarekar1-1/+2
It was discovered that RISC-V 64-bit still needs kernel headers >= 5.0 to be installed to build correctly: https://gitlab.com/kubu93/toolchains-builder/-/jobs/422726962 Fix up the NEWS item to make that clear.
2020-02-01Add Portuguese (Portugal) translationSiddhesh Poyarekar1-0/+2422
2020-01-31Add NEWS entry about 64-bit time_t syscall use on 32-bit targetsSzabolcs Nagy1-0/+7
This internal change ideally should not affect the public API or ABI, but there is a widespread use of seccomp sandboxes, even on 32-bit targets, that don't handle new Linux syscall usage well, so it's worth mentioning in the NEWS. Co-authored-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
2020-01-30nptl: Avoid using PTHREAD_MUTEX_DEFAULT in macro definition [BZ #25271]Florian Weimer1-1/+1
Commit 1c3f9acf1f1f75faa7a28bf39af64afd ("nptl: Add struct_mutex.h") replaced a zero constant with the identifier PTHREAD_MUTEX_DEFAULT in the macro PTHREAD_MUTEX_INITIALIZER. However, that constant is not available in ISO C11 mode: In file included from /usr/include/bits/thread-shared-types.h:74, from /usr/include/bits/pthreadtypes.h:23, from /usr/include/pthread.h:26, from bug25271.c:1: bug25271.c:3:21: error: ‘PTHREAD_MUTEX_DEFAULT’ undeclared here (not in a function) 3 | pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER; | ^~~~~~~~~~~~~~~~~~~~~~~~~ This commit change the constant to the equivalent PTHREAD_MUTEX_TIMED_NP, which is in the POSIX extension namespace and thus always available.
2020-01-24Build raise with -fasynchronous-unwind-tables.Joseph Myers1-0/+1
In testing glibc for Arm and MIPS, I see: FAIL: misc/tst-sigcontext-get_pc If this test - backtracing through a call to raise - is valid, then raise needs to be built with -fasynchronous-unwind-tables (as the test itself is) to have the required unwind information for that backtracing to work. Adding that option, which this patch does, causes the test for pass for Arm. For MIPS, the test still does not pass (the backtrace has an address that is 2 bytes after the "address in signal handler", for unknown reasons), although the patch allows a longer backtrace to be produced.
2020-01-24Fix locale/tst-locale-locpath cross-testing when sshd sets LANG.Joseph Myers1-3/+1
The locale/tst-locale-locpath test unsets LANG, then runs a test with test_wrapper_env and expects LANG to remain unset for that test. This does not work for cross-testing with cross-test-ssh.sh when sshd (on the system specified as an argument to cross-test-ssh.sh) is configured to have a default LANG setting. The general design used in cross testing, after commit 8540f6d2a74fe9d67440535ebbcfa252180a3172 ("Don't require test wrappers to preserve environment variables, use more consistent environment.", 6 June 2014), is that environment settings required by tests should be passed explicitly to $(test-wrapper-env). This patch changes tst-locale-locpath.sh to pass an explicit LANG= rather than expecting "unset LANG" to be in effect for the program run under test_wrapper_env. Note that this does slightly change the environment in which the test is run natively (empty LANG instead of unset LANG) but that difference does not appear relevant to what it is trying to test. Tested for Arm that this fixes the failure seen for that test in cross-testing.
2020-01-24Fix elf/tst-rtld-preload cross-testing.Joseph Myers2-9/+8
As noted in <https://sourceware.org/ml/libc-alpha/2019-06/msg00824.html>, elf/tst-rtld-preload fails when cross-testing because it attempts to run the test wrapper with itself. Unfortunately, that thread never resulted in a complete and correct patch for that test. This patch addresses the issues with that test more thoroughly. The test is changed not to use the wrapper twice, including updating the message it prints about the command it runs to be more complete and accurate after the change; the Makefile is changed not to pass the redundant '$(test-wrapper)' argument. Tested for Arm that this fixes the failure seen for that test in cross-testing.
2020-01-23Fix cross-testing of tst-ifunc-fault-* tests.Joseph Myers1-3/+4
The tests elf/tst-ifunc-fault-bindnow and elf/tst-ifunc-fault-lazy fail in cross-testing because they run the dynamic linker directly without using the test wrapper. This patch fixes them to use the test wrapper instead. Tested that this fixes the failure of those two tests for powerpc soft-float.
2020-01-23gitlog-to-changelog: Drop scripts in favour of gnulib versionSiddhesh Poyarekar5-1181/+0
The ChangeLog automation scripts were incorporated in gnulib as vcs-to-changelog for a while now since other projects expressed the desire to use and extend this script. In the interest of avoiding duplication of code, drop the glibc version of gitlog-to-changelog and use the gnulib one directly. The only file that remains is vcstocl_quirks.py, which specifies properties and quirks of the glibc project source code. This patch also drops the shebang at the start of vcstocl_quirks.py since the file is not intended to be directly executable.