]> sourceware.org Git - glibc.git/log
glibc.git
4 months agostdlib: Allow concurrent quick_exit (BZ 31997)
Adhemerval Zanella [Mon, 5 Aug 2024 14:27:35 +0000 (11:27 -0300)]
stdlib: Allow concurrent quick_exit (BZ 31997)

As for exit, also allows concurrent quick_exit to avoid race
conditions when it is called concurrently.  Since it uses the same
internal function as exit, the __exit_lock lock is moved to
__run_exit_handlers.  It also solved a potential concurrent when
calling exit and quick_exit concurrently.

The test case 'expected' is expanded to a value larger than the
minimum required by C/POSIX (32 entries) so at_quick_exit() will
require libc to allocate a new block.  This makes the test mre likely to
trigger concurrent issues (through free() at __run_exit_handlers)
if quick_exit() interacts with the at_quick_exit list concurrently.

This is also the latest interpretation of the Austin Ticket [1].

Checked on x86_64-linux-gnu.

[1] https://austingroupbugs.net/view.php?id=1845
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
4 months agoelf: Avoid re-initializing already allocated TLS in dlopen (bug 31717)
Florian Weimer [Thu, 1 Aug 2024 21:31:30 +0000 (23:31 +0200)]
elf: Avoid re-initializing already allocated TLS in dlopen (bug 31717)

The old code used l_init_called as an indicator for whether TLS
initialization was complete.  However, it is possible that
TLS for an object is initialized, written to, and then dlopen
for this object is called again, and l_init_called is not true at
this point.  Previously, this resulted in TLS being initialized
twice, discarding any interim writes (technically introducing a
use-after-free bug even).

This commit introduces an explicit per-object flag, l_tls_in_slotinfo.
It indicates whether _dl_add_to_slotinfo has been called for this
object.  This flag is used to avoid double-initialization of TLS.
In update_tls_slotinfo, the first_static_tls micro-optimization
is removed because preserving the initalization flag for subsequent
use by the second loop for static TLS is a bit complicated, and
another per-object flag does not seem to be worth it.  Furthermore,
the l_init_called flag is dropped from the second loop (for static
TLS initialization) because l_need_tls_init on its own prevents
double-initialization.

The remaining l_init_called usage in resize_scopes and update_scopes
is just an optimization due to the use of scope_has_map, so it is
not changed in this commit.

The isupper check ensures that libc.so.6 is TLS is not reverted.
Such a revert happens if l_need_tls_init is not cleared in
_dl_allocate_tls_init for the main_thread case, now that
l_init_called is not checked anymore in update_tls_slotinfo
in elf/dl-open.c.

Reported-by: Jonathon Anderson <janderson@rice.edu>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
4 months agoelf: Clarify and invert second argument of _dl_allocate_tls_init
Florian Weimer [Thu, 1 Aug 2024 21:31:23 +0000 (23:31 +0200)]
elf: Clarify and invert second argument of _dl_allocate_tls_init

Also remove an outdated comment: _dl_allocate_tls_init is
called as part of pthread_create.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
4 months agoFix name space violation in fortify wrappers (bug 32052)
Andreas Schwab [Mon, 5 Aug 2024 08:55:51 +0000 (10:55 +0200)]
Fix name space violation in fortify wrappers (bug 32052)

Rename the identifier sz to __sz everywhere.

Fixes: a643f60c53 ("Make sure that the fortified function conditionals are constant")
4 months agoiconv: Fix matching of multi-character transliterations (bug 31859)
Andreas Schwab [Mon, 10 Jun 2024 10:19:17 +0000 (12:19 +0200)]
iconv: Fix matching of multi-character transliterations (bug 31859)

Only return __GCONV_INCOMPLETE_INPUT for a partial match when the end of
the input buffer is reached.  Otherwise it is a non-match, and other
patterns should be tried.

4 months agox86: Tunables may incorrectly set Prefer_PMINUB_for_stringop (bug 32047)
Florian Weimer [Fri, 2 Aug 2024 13:22:14 +0000 (15:22 +0200)]
x86: Tunables may incorrectly set Prefer_PMINUB_for_stringop (bug 32047)

Fixes commit 5bcf6265f215326d14dfacdce8532792c2c7f8f8 ("x86:
Disable non-temporal memset on Skylake Server").

Reviewed-by: Noah Goldstein <goldstein.w.n@gmail.com>
4 months agox86: Add missing switch/case fall-through markers to init_cpu_features
Florian Weimer [Fri, 2 Aug 2024 13:22:07 +0000 (15:22 +0200)]
x86: Add missing switch/case fall-through markers to init_cpu_features

The commits introducing these fall-throughs intended them to
happen.

Reviewed-by: Noah Goldstein <goldstein.w.n@gmail.com>
4 months agostdlib: Link tst-concurrent-exit with $(shared-thread-library)
Florian Weimer [Fri, 2 Aug 2024 12:45:10 +0000 (14:45 +0200)]
stdlib: Link tst-concurrent-exit with $(shared-thread-library)

This avoids a Hurd build failure.  Fixes commit f6ba993e0cda0ca
("stdlib: Allow concurrent exit (BZ 31997)").

4 months agohurd: Fix missing pthread_ compat symbol in libc
Samuel Thibault [Wed, 17 Jul 2024 00:03:13 +0000 (02:03 +0200)]
hurd: Fix missing pthread_ compat symbol in libc

5476f8cd2e68 ("htl: move pthread_self info libc.") and
9dfa2562162b ("htl: move pthread_equal into libc") to
1dc0bc8f0748 ("htl: move pthread_attr_setdetachstate into libc")
moved some pthread_ symbols from libpthread.so to libc.so, but missed
adding the compat version like 5476f8cd2e68 ("htl: move pthread_self
info libc.") did: libc already had these symbols as forwards,
but versioned GLIBC_2.21, while the symbols in libpthread.so were
versioned GLIBC_2.12.

To fix running executables built before this, we thus have to add the
GLIBC_2.12 version, otherwise execution fails with e.g.

/usr/lib/i386-gnu/libglib-2.0.so: symbol lookup error: /usr/lib/i386-gnu/libglib-2.0.so: undefined symbol: pthread_attr_setinheritsched, version GLIBC_2.12

4 months agoresolv: Fix tst-resolv-short-response for older GCC (bug 32042)
Florian Weimer [Thu, 1 Aug 2024 08:46:10 +0000 (10:46 +0200)]
resolv: Fix tst-resolv-short-response for older GCC (bug 32042)

Previous GCC versions do not support the C23 change that
allows labels on declarations.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
4 months agoAdd mremap tests
H.J. Lu [Wed, 24 Jul 2024 21:05:15 +0000 (14:05 -0700)]
Add mremap tests

Add tests for MREMAP_MAYMOVE and MREMAP_FIXED.  On Linux, also test
MREMAP_DONTUNMAP.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
4 months agomremap: Update manual entry
H.J. Lu [Wed, 24 Jul 2024 21:05:14 +0000 (14:05 -0700)]
mremap: Update manual entry

Update mremap manual entry:

1. Change mremap to variadic.
2. Document MREMAP_FIXED and MREMAP_DONTUNMAP.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
4 months agolinux: Update the mremap C implementation [BZ #31968]
H.J. Lu [Wed, 24 Jul 2024 21:05:13 +0000 (14:05 -0700)]
linux: Update the mremap C implementation [BZ #31968]

Update the mremap C implementation to support the optional argument for
MREMAP_DONTUNMAP added in Linux 5.7 since it may not always be correct
to implement a variadic function as a non-variadic function on all Linux
targets.  Return MAP_FAILED and set errno to EINVAL for unknown flag bits.
This fixes BZ #31968.

Note: A test must be added when a new flag bit is introduced.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
4 months agoEnhanced test coverage for strncmp, wcsncmp
Florian Weimer [Thu, 27 Jun 2024 14:26:56 +0000 (16:26 +0200)]
Enhanced test coverage for strncmp, wcsncmp

Add string/test-strncmp-nonarray and
wcsmbs/test-wcsncmp-nonarray.

This is the test that uncovered bug 31934.  Test run time
is more than one minute on a fairly current system, so turn
these into xtests that do not run automatically.

Reviewed-by: Noah Goldstein <goldstein.w.n@gmail.com>
4 months agoEnhance test coverage for strnlen, wcsnlen
Florian Weimer [Wed, 26 Jun 2024 09:27:54 +0000 (11:27 +0200)]
Enhance test coverage for strnlen, wcsnlen

This commit adds string/test-strnlen-nonarray and
wcsmbs/test-wcsnlen-nonarray.

Reviewed-by: Noah Goldstein <goldstein.w.n@gmail.com>
4 months agostdlib: Mark `abort` as `cold`
Noah Goldstein [Mon, 29 Jul 2024 07:34:33 +0000 (15:34 +0800)]
stdlib: Mark `abort` as `cold`

This helps HotColdSplitting in GCC/LLVM.

Thought about doing `exit` as well since its only called once per
process, but since its easy to imagine a hot path leading into
`exit(0)`, its less clear if its profitable.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
4 months agox86_64 hurd: ensure we have a large enough buffer to receive exception_raise requests.
Flavio Cruz [Tue, 30 Jul 2024 04:51:20 +0000 (00:51 -0400)]
x86_64 hurd: ensure we have a large enough buffer to receive exception_raise requests.

Message-ID: <gtxd6s4s7fi7hdrlb7zayq3akij7x6jqawwq3zfl3v4nqspulo@euucuzeonrl6>

4 months agostdlib: Allow concurrent exit (BZ 31997)
Adhemerval Zanella [Thu, 25 Jul 2024 18:41:44 +0000 (15:41 -0300)]
stdlib: Allow concurrent exit (BZ 31997)

Even if C/POSIX standard states that exit is not formally thread-unsafe,
calling it more than once is UB.  The glibc already supports
it for the single-thread, and both elf/nodelete2.c and tst-rseq-disable.c
call exit from a DSO destructor (which is called by _dl_fini, registered
at program startup with __cxa_atexit).

However, there are still race issues when it is called more than once
concurrently by multiple threads.  A recent Rust PR triggered this
issue [1], which resulted in an Austin Group ask for clarification [2].
Besides it, there is a discussion to make concurrent calling not UB [3],
wtih a defined semantic where any remaining callers block until the first
call to exit has finished (reentrant calls, leaving through longjmp, and
exceptions are still undefined).

For glibc, at least reentrant calls are required to be supported to avoid
changing the current behaviour.  This requires locking using a recursive
lock, where any exit called by atexit() handlers resumes at the point of
the current handler (thus avoiding calling the current handle multiple
times).

Checked on x86_64-linux-gnu and aarch64-linux-gnu.

[1] https://github.com/rust-lang/rust/issues/126600
[2] https://austingroupbugs.net/view.php?id=1845
[3] https://www.openwall.com/lists/libc-coord/2024/07/24/4
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
4 months agoAdd F_DUPFD_QUERY from Linux 6.10 to bits/fcntl-linux.h
Adhemerval Zanella [Tue, 16 Jul 2024 17:08:49 +0000 (17:08 +0000)]
Add F_DUPFD_QUERY from Linux 6.10 to bits/fcntl-linux.h

It was added by commit c62b758bae6af16 as a way for userspace to
check if two file descriptors refer to the same struct file.

Checked on aarch64-linux-gnu.
Reviewed-by: Florian Weimer <fweimer@redhat.com>
4 months agoAdd STATX_SUBVOL from Linux 6.10 to bits/statx-generic.h
Adhemerval Zanella [Tue, 16 Jul 2024 17:08:48 +0000 (17:08 +0000)]
Add STATX_SUBVOL from Linux 6.10 to bits/statx-generic.h

Tested for aarch64-linux-gnu.
Reviewed-by: Florian Weimer <fweimer@redhat.com>
4 months agoUpdate kernel version to 6.10 in header constant tests
Adhemerval Zanella [Tue, 16 Jul 2024 17:08:47 +0000 (17:08 +0000)]
Update kernel version to 6.10 in header constant tests

This patch updates the kernel version in the tests tst-mman-consts.py,
tst-mount-consts.py, and tst-pidfd-consts.py to 6.9.

There are no new constants covered by these tests in 6.10.

Tested with build-many-glibcs.py.
Reviewed-by: Florian Weimer <fweimer@redhat.com>
4 months agoUpdate syscall lists for Linux 6.10
Adhemerval Zanella [Tue, 16 Jul 2024 17:08:46 +0000 (17:08 +0000)]
Update syscall lists for Linux 6.10

Linux 6.10 changes for syscall are:

  * mseal for all architectures.
  * map_shadow_stack for x32.
  * Replace sync_file_range with sync_file_range2 for csky (which
    fixes a broken sync_file_range usage).

Update syscall-names.list and regenerate the arch-syscall.h headers
with build-many-glibcs.py update-syscalls.

Tested with build-many-glibcs.py.
Reviewed-by: Florian Weimer <fweimer@redhat.com>
4 months agoUse Linux 6.10 in build-many-glibcs.py
Adhemerval Zanella [Tue, 16 Jul 2024 17:08:45 +0000 (17:08 +0000)]
Use Linux 6.10 in build-many-glibcs.py

Tested with build-many-glibcs.py (host-libraries, compilers and glibcs
builds).
Reviewed-by: Florian Weimer <fweimer@redhat.com>
4 months agoMitigation for "clone on sparc might fail with -EFAULT for no valid reason" (bz 31394)
Michael Karcher [Sun, 28 Jul 2024 13:30:57 +0000 (15:30 +0200)]
Mitigation for "clone on sparc might fail with -EFAULT for no valid reason" (bz 31394)

It seems the kernel can not deal with uncommitted stack space in the area intended
for the register window when executing the clone() system call. So create a nested
frame (proxy for the kernel frame) and flush it from the processor to memory to
force committing pages to the stack before invoking the system call.

Bug: https://www.mail-archive.com/debian-glibc@lists.debian.org/msg62592.html
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31394
See-also: https://lore.kernel.org/sparclinux/62f9be9d-a086-4134-9a9f-5df8822708af@mkarcher.dialup.fu-berlin.de/
Signed-off-by: Michael Karcher <sourceware-bugzilla@mkarcher.dialup.fu-berlin.de>
Reviewed-by: DJ Delorie <dj@redhat.com>
4 months agomanual: make setrlimit() description less ambiguous
Lukas Bulwahn [Mon, 29 Jul 2024 09:08:17 +0000 (11:08 +0200)]
manual: make setrlimit() description less ambiguous

The existing description for setrlimit() has some ambiguity. It could be
understood to have the semantics of getrlimit(), i.e., the limits from the
process are stored in the provided rlp pointer.

Make the description more explicit that rlp are the input values, and that
the limits of the process is changed with this function.

Reviewed-by: Florian Weimer <fweimer@redhat.com>
4 months agomanual/stdio: Clarify putc and putwc
Arjun Shankar [Mon, 29 Jul 2024 12:30:59 +0000 (14:30 +0200)]
manual/stdio: Clarify putc and putwc

The manual entry for `putc' described what "most systems" do instead of
describing the glibc implementation and its guarantees.  This commit
fixes that by warning that putc may be implemented as a macro that
double-evaluates `stream', and removing the performance claim.

Even though the current `putc' implementation does not double-evaluate
`stream', offering this obscure guarantee as an extension to what
POSIX allows does not seem very useful.

The entry for `putwc' is also edited to bring it in line with `putc'.
Reviewed-by: Florian Weimer <fweimer@redhat.com>
4 months agoMIPS: Regenerate ulps
Julian Zhu [Sat, 27 Jul 2024 10:27:52 +0000 (18:27 +0800)]
MIPS: Regenerate ulps

From new tests added by 4dc22baa84bdb4111c0ac0db7139bf9ab953bf61.

Signed-off-by: Julian Zhu <jz531210@gmail.com>
4 months agomalloc: Link threading tests with $(shared-thread-library)
Florian Weimer [Sat, 27 Jul 2024 14:23:55 +0000 (16:23 +0200)]
malloc: Link threading tests with $(shared-thread-library)

Fixes build failures on Hurd.

4 months agoassert: Mark `__assert_fail` as `cold`
Noah Goldstein [Fri, 26 Jul 2024 08:35:13 +0000 (16:35 +0800)]
assert: Mark `__assert_fail` as `cold`

This helps compilers split the codegen for setting up the arguments
(`__expression`, `__filename`, etc...) from the potentially hot cold
where the `assert` is to a presumably cold region on the assertion
failure path.

Reviewed-by: Florian Weimer <fweimer@redhat.com>
Reviewed-by: Sam James <sam@gentoo.org>
4 months agostdio-common: Add test for vfscanf with matches longer than INT_MAX [BZ #27650]
Maciej W. Rozycki [Fri, 26 Jul 2024 12:21:34 +0000 (13:21 +0100)]
stdio-common: Add test for vfscanf with matches longer than INT_MAX [BZ #27650]

Complement commit b03e4d7bd25b ("stdio: fix vfscanf with matches longer
than INT_MAX (bug 27650)") and add a test case for the issue, inspired
by the reproducer provided with the bug report.

This has been verified to succeed as from the commit referred and fail
beforehand.

As the test requires 2GiB of data to be passed around its performance
has been evaluated using a choice of systems and the execution time
determined to be respectively in the range of 9s for POWER9@2.166GHz,
24s for FU740@1.2GHz, and 40s for 74Kf@950MHz.  As this is on the verge
of and beyond the default timeout it has been increased by the factor of
8.  Regardless, following recent practice the test has been added to the
standard rather than extended set.

Reviewed-by: DJ Delorie <dj@redhat.com>
4 months agosupport: Add FAIL test failure helper
Maciej W. Rozycki [Fri, 26 Jul 2024 12:21:34 +0000 (13:21 +0100)]
support: Add FAIL test failure helper

Add a FAIL test failure helper analogous to FAIL_RET, that does not
cause the current function to return, providing a standardized way to
report a test failure with a message supplied while permitting the
caller to continue executing, for further reporting, cleaning up, etc.

Update existing test cases that provide a conflicting definition of FAIL
by removing the local FAIL definition and then as follows:

- tst-fortify-syslog: provide a meaningful message in addition to the
  file name already added by <support/check.h>; 'support_record_failure'
  is already called by 'support_print_failure_impl' invoked by the new
  FAIL test failure helper.

- tst-ctype: no update to FAIL calls required, with the name of the file
  and the line number within of the failure site additionally included
  by the new FAIL test failure helper, and error counting plus count
  reporting upon test program termination also already provided by
  'support_record_failure' and 'support_report_failure' respectively,
  called by 'support_print_failure_impl' and 'adjust_exit_status' also
  respectively.  However in a number of places 'printf' is called and
  the error count adjusted by hand, so update these places to make use
  of FAIL instead.  And last but not least adjust the final summary just
  to report completion, with any error count following as reported by
  the test driver.

- test-tgmath2: no update to FAIL calls required, with the name of the
  file of the failure site additionally included by the new FAIL test
  failure helper.  Also there is no need to track the return status by
  hand as any call to FAIL will eventually cause the test case to return
  an unsuccesful exit status regardless of the return status from the
  test function, via a call to 'adjust_exit_status' made by the test
  driver.

Reviewed-by: DJ Delorie <dj@redhat.com>
4 months agoposix: Use <support/check.h> facilities in tst-truncate and tst-truncate64
Maciej W. Rozycki [Fri, 26 Jul 2024 12:21:34 +0000 (13:21 +0100)]
posix: Use <support/check.h> facilities in tst-truncate and tst-truncate64

Remove local FAIL macro in favor to FAIL_RET from <support/check.h>,
which provides equivalent reporting, with the name of the file of the
failure site additionally included, for the tst-truncate-common core
shared between the tst-truncate and tst-truncate64 tests.

Reviewed-by: DJ Delorie <dj@redhat.com>
4 months agonptl: Use <support/check.h> facilities in tst-setuid3
Maciej W. Rozycki [Fri, 26 Jul 2024 12:21:34 +0000 (13:21 +0100)]
nptl: Use <support/check.h> facilities in tst-setuid3

Remove local FAIL macro in favor to FAIL_EXIT1 from <support/check.h>,
which provides equivalent reporting, with the name of the file and the
line number within of the failure site additionally included.  Remove
FAIL_ERR altogether and include ": %m" explicitly with the format string
supplied to FAIL_EXIT1 as there seems little value to have a separate
macro just for this.

Reviewed-by: DJ Delorie <dj@redhat.com>
4 months agosparc: Regenerate ULPs
Adhemerval Zanella [Thu, 25 Jul 2024 14:06:53 +0000 (11:06 -0300)]
sparc: Regenerate ULPs

From new tests added by 4dc22baa84bdb4111c0ac0db7139bf9ab953bf61.

4 months agoi386: Regenerate ULPs
Adhemerval Zanella [Thu, 25 Jul 2024 13:49:06 +0000 (10:49 -0300)]
i386: Regenerate ULPs

From new tests added by 4dc22baa84bdb4111c0ac0db7139bf9ab953bf61.

4 months agoarm: Regenerate ULPs
Adhemerval Zanella [Thu, 25 Jul 2024 13:41:00 +0000 (10:41 -0300)]
arm: Regenerate ULPs

From new tests added by 4dc22baa84bdb4111c0ac0db7139bf9ab953bf61.

4 months agoaarch64: Regenerate ULPs
Adhemerval Zanella [Thu, 25 Jul 2024 13:40:32 +0000 (10:40 -0300)]
aarch64: Regenerate ULPs

From new tests added by 4dc22baa84bdb4111c0ac0db7139bf9ab953bf61.

4 months agopowerpc: Regenerate ULPs for soft-fp
Adhemerval Zanella [Thu, 25 Jul 2024 13:33:40 +0000 (10:33 -0300)]
powerpc: Regenerate ULPs for soft-fp

From new tests added by 4dc22baa84bdb4111c0ac0db7139bf9ab953bf61.

4 months agopowerpc: Update ulps for fpu
jeevitha [Wed, 24 Jul 2024 05:58:54 +0000 (11:28 +0530)]
powerpc: Update ulps for fpu

Adjust the ULPs for the log2p1 implementation.

4 months agoriscv: Update ulps
Khem Raj [Wed, 24 Jul 2024 04:43:56 +0000 (21:43 -0700)]
riscv: Update ulps

Generated with make regen-ulps using gcc14 on a visionfive2 SBC.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
4 months agos390x: Regenerate ULPs.
Stefan Liebler [Thu, 25 Jul 2024 12:14:22 +0000 (14:14 +0200)]
s390x: Regenerate ULPs.

Needed due to:
"This patch adds larger ulp errors for the log2p1 function."
commit 4dc22baa84bdb4111c0ac0db7139bf9ab953bf61

4 months agox32/cet: Support shadow stack during startup for Linux 6.10
H.J. Lu [Tue, 23 Jul 2024 00:47:22 +0000 (17:47 -0700)]
x32/cet: Support shadow stack during startup for Linux 6.10

Use RXX_LP in RTLD_START_ENABLE_X86_FEATURES.  Support shadow stack during
startup for Linux 6.10:

commit 2883f01ec37dd8668e7222dfdb5980c86fdfe277
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Mar 15 07:04:33 2024 -0700

    x86/shstk: Enable shadow stacks for x32

    1. Add shadow stack support to x32 signal.
    2. Use the 64-bit map_shadow_stack syscall for x32.
    3. Set up shadow stack for x32.

Add the map_shadow_stack system call to <fixup-asm-unistd.h> and regenerate
arch-syscall.h.  Tested on Intel Tiger Lake with CET enabled x32.  There
are no regressions with CET enabled x86-64.  There are no changes in CET
enabled x86-64 _dl_start_user.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Reviewed-by: Noah Goldstein <goldstein.w.n@gmail.com>
4 months agox86-64: Remove sysdeps/x86_64/x32/dl-machine.h
H.J. Lu [Tue, 23 Jul 2024 00:47:21 +0000 (17:47 -0700)]
x86-64: Remove sysdeps/x86_64/x32/dl-machine.h

Remove sysdeps/x86_64/x32/dl-machine.h by folding x32 ARCH_LA_PLTENTER,
ARCH_LA_PLTEXIT and RTLD_START into sysdeps/x86_64/dl-machine.h.  There
are no regressions on x86-64 nor x32.  There are no changes in x86-64
_dl_start_user.  On x32, _dl_start_user changes are

 <_dl_start_user>:
  mov    %eax,%r12d
+ mov    %esp,%r13d
  mov    (%rsp),%edx
  mov    %edx,%esi
- mov    %esp,%r13d
  and    $0xfffffff0,%esp
  mov    0x0(%rip),%edi        # <_dl_start_user+0x14>
  lea    0x8(%r13,%rdx,4),%ecx

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Reviewed-by: Noah Goldstein <goldstein.w.n@gmail.com>
4 months agohppa: Update libm-test-ulps
John David Anglin [Wed, 24 Jul 2024 20:43:01 +0000 (16:43 -0400)]
hppa: Update libm-test-ulps

4 months agomanual: Do not mention STATIC_TLS in dynamic linker hardening recommendations
Florian Weimer [Wed, 24 Jul 2024 10:50:17 +0000 (12:50 +0200)]
manual: Do not mention STATIC_TLS in dynamic linker hardening recommendations

The current toolchain does not consistently generate it, and
glibc does not use it.

Reviewed-by: Szabolcs Nagy <szabolcs.nagy@arm.com>
4 months agoresolv: Implement strict-error stub resolver option (bug 27929)
Florian Weimer [Wed, 24 Jul 2024 10:06:47 +0000 (12:06 +0200)]
resolv: Implement strict-error stub resolver option (bug 27929)

For now, do not enable this mode by default due to the potential
impact on compatibility with existing deployments.

Reviewed-by: DJ Delorie <dj@redhat.com>
4 months agoresolv: Support clearing option flags with a “-” prefix (bug 14799)
Florian Weimer [Wed, 24 Jul 2024 10:06:47 +0000 (12:06 +0200)]
resolv: Support clearing option flags with a “-” prefix (bug 14799)

I think using a “-” prefix is less confusing than introducing
double-negation construct (“no-no-tld-query”).

Reviewed-by: DJ Delorie <dj@redhat.com>
4 months agoresolv: Do not wait for non-existing second DNS response after error (bug 30081)
Florian Weimer [Wed, 24 Jul 2024 10:06:47 +0000 (12:06 +0200)]
resolv: Do not wait for non-existing second DNS response after error (bug 30081)

In single-request mode, there is no second response after an error
because the second query has not been sent yet.  Waiting for it
introduces an unnecessary timeout.

Reviewed-by: DJ Delorie <dj@redhat.com>
4 months agoresolv: Allow short error responses to match any query (bug 31890)
Florian Weimer [Wed, 24 Jul 2024 10:06:47 +0000 (12:06 +0200)]
resolv: Allow short error responses to match any query (bug 31890)

Reviewed-by: DJ Delorie <dj@redhat.com>
4 months agomalloc: add multi-threaded tests for aligned_alloc/calloc/malloc
Miguel Martín [Tue, 16 Jul 2024 15:14:57 +0000 (17:14 +0200)]
malloc: add multi-threaded tests for aligned_alloc/calloc/malloc

Improve aligned_alloc/calloc/malloc test coverage by adding
multi-threaded tests with random memory allocations and with/without
cross-thread memory deallocations.

Perform a number of memory allocation calls with random sizes limited
to 0xffff.

Use the existing DSO ('malloc/tst-aligned_alloc-lib.c') to randomize
allocator selection.

The multi-threaded allocation/deallocation is staged as described below:

- Stage 1: Half of the threads will be allocating memory and the
  other half will be waiting for them to finish the allocation.
- Stage 2: Half of the threads will be allocating memory and the
  other half will be deallocating memory.
- Stage 3: Half of the threads will be deallocating memory and the
  second half waiting on them to finish.

Add 'malloc/tst-aligned-alloc-random-thread.c' where each thread will
deallocate only the memory that was previously allocated by itself.

Add 'malloc/tst-aligned-alloc-random-thread-cross.c' where each thread
will deallocate memory that was previously allocated by another thread.

The intention is to be able to utilize existing malloc testing to ensure
that similar allocation APIs are also exposed to the same rigors.
Reviewed-by: Arjun Shankar <arjun@redhat.com>
4 months agomalloc: avoid global locks in tst-aligned_alloc-lib.c
Miguel Martín [Tue, 16 Jul 2024 15:14:56 +0000 (17:14 +0200)]
malloc: avoid global locks in tst-aligned_alloc-lib.c

Make sure the DSO used by aligned_alloc/calloc/malloc tests does not get
a global lock on multithreaded tests.
Reviewed-by: Arjun Shankar <arjun@redhat.com>
4 months agoThis patch adds larger ulp errors for the log2p1 function.
Paul Zimmermann [Mon, 22 Jul 2024 06:54:23 +0000 (08:54 +0200)]
This patch adds larger ulp errors for the log2p1 function.

Changes in v2:
- added larger error for long double on AMD reported by Adhemerval
  (https://sourceware.org/pipermail/libc-alpha/2024-June/157755.html)

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
4 months agoNEWS: Add new section
Andreas K. Hüttel [Sun, 21 Jul 2024 16:50:57 +0000 (18:50 +0200)]
NEWS: Add new section

Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
4 months agoIncrease version number to 2.40.9000 glibc-2.40.9000
Andreas K. Hüttel [Sun, 21 Jul 2024 16:49:35 +0000 (18:49 +0200)]
Increase version number to 2.40.9000

Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
4 months agoAdd ChangeLog file glibc-2.40
Andreas K. Hüttel [Sun, 21 Jul 2024 16:33:37 +0000 (18:33 +0200)]
Add ChangeLog file

Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
4 months agoIncrease version number to 2.40
Andreas K. Hüttel [Sun, 21 Jul 2024 16:23:25 +0000 (18:23 +0200)]
Increase version number to 2.40

Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
4 months agopo/*: regenerate (only line number changes)
Andreas K. Hüttel [Sun, 21 Jul 2024 15:50:35 +0000 (17:50 +0200)]
po/*: regenerate (only line number changes)

Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
4 months agocontrib.texi: Fix format of MIPS and RISC-V
Andreas K. Hüttel [Sun, 21 Jul 2024 12:12:30 +0000 (14:12 +0200)]
contrib.texi: Fix format of MIPS and RISC-V

Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
4 months agolibc.pot: regenerate (only line number changes)
Andreas K. Hüttel [Sat, 20 Jul 2024 22:33:43 +0000 (00:33 +0200)]
libc.pot: regenerate (only line number changes)

Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
4 months agoinstall.texi: bump "latest verified" versions
Andreas K. Hüttel [Sat, 20 Jul 2024 22:27:35 +0000 (00:27 +0200)]
install.texi: bump "latest verified" versions

Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
4 months agoNEWS: drop 2.40 section "Changes to build and runtime requirements"
Andreas K. Hüttel [Sat, 20 Jul 2024 21:42:05 +0000 (23:42 +0200)]
NEWS: drop 2.40 section "Changes to build and runtime requirements"

Can't find anything that should go here.

Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
4 months agocontrib.texi: update
Andreas K. Hüttel [Sat, 20 Jul 2024 17:47:52 +0000 (19:47 +0200)]
contrib.texi: update

Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
4 months agoNEWS: add fixed security advisories list
Andreas K. Hüttel [Sat, 20 Jul 2024 16:55:07 +0000 (18:55 +0200)]
NEWS: add fixed security advisories list

Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
4 months agoNEWS: add resolved bugs list
Andreas K. Hüttel [Sat, 20 Jul 2024 16:52:15 +0000 (18:52 +0200)]
NEWS: add resolved bugs list

Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
4 months agoNEWS: add more major improvements for 2.40
Andreas K. Hüttel [Sat, 20 Jul 2024 14:22:54 +0000 (16:22 +0200)]
NEWS: add more major improvements for 2.40

Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
4 months agolinux: Trivial test output fix in tst-pkey
Andreas K. Hüttel [Fri, 19 Jul 2024 20:57:23 +0000 (22:57 +0200)]
linux: Trivial test output fix in tst-pkey

Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
4 months agoelf: Fix localplt.awk for DT_RELR-enabled builds (BZ 31978)
Adhemerval Zanella [Tue, 16 Jul 2024 10:57:45 +0000 (07:57 -0300)]
elf: Fix localplt.awk for DT_RELR-enabled builds (BZ 31978)

For each input readelf output, localplt.awk parses each 'Relocation
section' entry, checks its offset against the dynamic section entry, and
saves each DT_JMPREL, DT_RELA, and DT_REL offset value it finds. After
all lines are read, the script checks if any segment offset differed
from 0, meaning at least one 'Relocation section' was matched.

However, if the shared object was built with RELR support and the static
linker could place all the relocation on DT_RELR, there would be no
DT_JMPREL, DT_RELA, and DT_REL entries; only a DT_RELR.

For the current three ABIs that support (aarch64, x86, and powerpc64),
the powerpc64 ld.so shows the behavior above. Both x86_64 and aarch64
show extra relocations on '.rela.dyn', which makes the script check to
succeed.

This patch fixes by handling DT_RELR, where the offset is checked
against the dynamic section entries and if the shared object contains an
entry it means that there are no extra PLT entries (since all
relocations are relative).

It fixes the elf/check-localplt failure on powerpc.

Checked with a build/check for aarch64-linux-gnu, x86_64-linux-gnu,
i686-linux-gnu, arm-linux-gnueabihf, s390x-linux-gnu, powerpc-linux-gnu,
powerpc64-linux-gnu, and powerpc64le-linux-gnu.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
4 months agolinux: Also check pkey_get for ENOSYS on tst-pkey (BZ 31996)
Adhemerval Zanella [Fri, 19 Jul 2024 14:23:15 +0000 (11:23 -0300)]
linux: Also check pkey_get for ENOSYS on tst-pkey (BZ 31996)

The powerpc pkey_get/pkey_set support was only added for 64-bit [1],
and tst-pkey only checks if the support was present with pkey_alloc
(which does not fail on powerpc32, at least running a 64-bit kernel).

Checked on powerpc-linux-gnu.

[1] https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a803367bab167f5ec4fde1f0d0ec447707c29520
Reviewed-By: Andreas K. Huettel <dilfridge@gentoo.org>
4 months agopowerpc: Update soft-fp ulps
Adhemerval Zanella [Fri, 19 Jul 2024 14:22:58 +0000 (11:22 -0300)]
powerpc: Update soft-fp ulps

Results based on regen-ulps using gcc 11.2.1 on a POWER8 machine.

4 months agoFix usage of _STACK_GROWS_DOWN and _STACK_GROWS_UP defines [BZ 31989]
John David Anglin [Fri, 19 Jul 2024 14:10:17 +0000 (10:10 -0400)]
Fix usage of _STACK_GROWS_DOWN and _STACK_GROWS_UP defines [BZ 31989]

Signed-off-by: John David Anglin <dave.anglin@bell.net>
Reviewed-By: Andreas K. Hüttel <dilfridge@gentoo.org>
4 months agoAdjust check-local-headers test for libaudit 4.0
Florian Weimer [Fri, 19 Jul 2024 13:57:46 +0000 (15:57 +0200)]
Adjust check-local-headers test for libaudit 4.0

The new version introduces /usr/include/audit_logging.h and
/usr/include/audit-records.h.

4 months agoelf: Parse the auxv values as unsigned on tst-tunables-enable_secure-env.c (BZ 31890)
Adhemerval Zanella [Thu, 18 Jul 2024 12:15:44 +0000 (09:15 -0300)]
elf: Parse the auxv values as unsigned on tst-tunables-enable_secure-env.c (BZ 31890)

AT_HWCAP on some architecture can indeed use all bits.

Checked on x86_64-linux-gnu and powerpc-linux-gnu.
Reviewed-By: Andreas K. Hüttel <dilfridge@gentoo.org>
4 months agox32: xfail elf/tst-platform-1 [BZ #22363]
H.J. Lu [Thu, 18 Jul 2024 22:23:50 +0000 (15:23 -0700)]
x32: xfail elf/tst-platform-1 [BZ #22363]

Xfail elf/tst-platform-1 on x32 since kernel passes i686 in AT_PLATFORM.
See https://sourceware.org/bugzilla/show_bug.cgi?id=22363

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Reviewed-by: Sam James <sam@gentoo.org>
4 months agoelf/tst-rtld-does-not-exist: Pass --inhibit-cache to rtld
Xi Ruoyao [Wed, 17 Jul 2024 10:09:15 +0000 (18:09 +0800)]
elf/tst-rtld-does-not-exist: Pass --inhibit-cache to rtld

This avoids a test failure when the system has no /etc/ld.so.cache.

Tested on x86_64-linux-gnu.

Signed-off-by: Xi Ruoyao <xry111@xry111.site>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
5 months agoRevert "LoongArch: Add cfi instructions for _dl_tlsdesc_dynamic"
Andreas K. Hüttel [Wed, 17 Jul 2024 13:19:47 +0000 (15:19 +0200)]
Revert "LoongArch: Add cfi instructions for _dl_tlsdesc_dynamic"

We're in freeze for the 2.40 release.

This reverts commit 43224b1379d60b1ad98d29ef3d7905d55f828a9f.

Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
5 months agohtl: Fix __pthread_init_thread declaration and definition
Samuel Thibault [Wed, 17 Jul 2024 12:56:14 +0000 (14:56 +0200)]
htl: Fix __pthread_init_thread declaration and definition

0e75c4a4634f ("hurd: Fix pthread_self() without libpthread") added a
declaration for ___pthread_init_thread instead of __pthread_init_thread,
and missed defining the external hidden symbol.

5 months agohurd: Fix pthread_self() without libpthread
Samuel Thibault [Wed, 17 Jul 2024 12:06:25 +0000 (14:06 +0200)]
hurd: Fix pthread_self() without libpthread

5476f8cd2e68 ("htl: move pthread_self info libc.") moved the htl
pthread_self() function from libpthread to libc, replacing the previous libc
stub that just returns 0. And 53da64d1cf36 ("htl: Initialize ___pthread_self
early") added initialization code which is needed before being able to
call pthread_self. It is currently in libpthread, and thus never called
before programs can call pthread_self from libc, which then segfaults
when accessing _pthread_self()->thread.

This moves the initialization to libc itself, as initialized variables, so
pthread_self can always be called fine.

5 months agoLoongArch: Add cfi instructions for _dl_tlsdesc_dynamic
mengqinggang [Fri, 5 Jul 2024 02:40:33 +0000 (10:40 +0800)]
LoongArch: Add cfi instructions for _dl_tlsdesc_dynamic

In _dl_tlsdesc_dynamic, there are three 'addi.d sp, sp, -size'
instructions to allocate stack size for Float/LSX/LASX registers.
Every 'addi.d sp, sp, -size' needs a cfi_adjust_cfa_offset because
of sp is used to compute CFA. But only one 'addi.d sp, sp, -size'
will be run according to HWCAP value. And all cfi_adjust_cfa_offset
will be executed in stack unwinding, it result in incorrect CFA.

Change _dl_tlsdesc_dynamic to _dl_tlsdesc_dynamic,
_dl_tlsdesc_dynamic_lsx and _dl_tlsdesc_dynamic_lasx.
Conflicting cfi instructions can be distributed to the three functions.
And cfi instructions can correspond to stack down instructions.

5 months agox86: Disable non-temporal memset on Skylake Server
Noah Goldstein [Mon, 15 Jul 2024 08:19:17 +0000 (16:19 +0800)]
x86: Disable non-temporal memset on Skylake Server

The original commit enabling non-temporal memset on Skylake Server had
erroneous benchmarks (actually done on ICX).

Further benchmarks indicate non-temporal stores may in fact by a
regression on Skylake Server.

This commit may be over-cautious in some cases, but should avoid any
regressions for 2.40.

Tested using qemu on all x86_64 cpu arch supported by both qemu +
GLIBC.

Reviewed-by: DJ Delorie <dj@redhat.com>
Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
5 months agoAdd pthread_getname_np and pthread_setname_np for Hurd
Flavio Cruz [Thu, 11 Jul 2024 22:37:35 +0000 (23:37 +0100)]
Add pthread_getname_np and pthread_setname_np for Hurd

We use thread_get_name and thread_set_name to get and set the thread
name, so nothing is stored in the thread structure since these functions
are supposed to be called sparingly.

One notable difference with Linux is that the thread name is up to 32
chars, whereas Linux's is 16.

Also added a mach_RPC_CHECK to check for the existing of gnumach RPCs.

5 months agomath: Update alpha ulps
Andreas K. Hüttel [Sun, 14 Jul 2024 10:44:15 +0000 (12:44 +0200)]
math: Update alpha ulps

Linux alphadev 6.9.8-gentoo-alpha #1 Sun Jul  7 00:45:49 EDT 2024 alpha EV68CB Titan GNU/Linux
gcc (Gentoo 14.1.1_p20240622 p2) 14.1.1 20240622
GNU ld (Gentoo 2.42 p6) 2.42.0

Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
5 months agohurd: Fix restoring message to be retried
Samuel Thibault [Sat, 13 Jul 2024 15:00:55 +0000 (17:00 +0200)]
hurd: Fix restoring message to be retried

save_data stores the start of the original message to be retried,
overwritten by the EINTR reply. In 64b builds the overwrite is however
rounded up to the 64b pointer size, so we have to save more than just
the 32b err.

Thanks a lot to Luca Dariz for the investigation!

5 months agonptl: Convert tst-sem11 and tst-sem12 tests to use the test driver
Maciej W. Rozycki [Thu, 11 Jul 2024 13:17:20 +0000 (14:17 +0100)]
nptl: Convert tst-sem11 and tst-sem12 tests to use the test driver

Fix an issue with commit 2af4e3e5668f ("Test of semaphores.") by making
the tst-sem11 and tst-sem12 tests use the test driver, preventing them
from ever causing testing to hang forever and never complete, such as
currently happening with the 'mips-linux-gnu' (o32 ABI) target.  Adjust
the name of the PREPARE macro, which clashes with the interpretation of
its presence by the test driver, by using a TF_ prefix in reference to
the name of the 'tf' function.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
5 months agonptl: Add copyright notice tst-sem11 and tst-sem12 tests
Maciej W. Rozycki [Thu, 11 Jul 2024 13:17:15 +0000 (14:17 +0100)]
nptl: Add copyright notice tst-sem11 and tst-sem12 tests

Add a copyright notice to the tst-sem11 and tst-sem12 tests, observing
that they have been originally contributed back in 2007, with commit
2af4e3e5668f ("Test of semaphores.").
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
5 months agotests: XFAIL audit tests failing on all mips configurations, bug 29404
Andreas K. Hüttel [Fri, 12 Jul 2024 16:36:44 +0000 (18:36 +0200)]
tests: XFAIL audit tests failing on all mips configurations, bug 29404

Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
5 months agotime/Makefile: Split and sort tests
Samuel Dobron [Thu, 11 Jul 2024 03:31:11 +0000 (05:31 +0200)]
time/Makefile: Split and sort tests

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
5 months agos390x: Fix segfault in wcsncmp [BZ #31934]
Stefan Liebler [Thu, 11 Jul 2024 09:28:53 +0000 (11:28 +0200)]
s390x: Fix segfault in wcsncmp [BZ #31934]

The z13/vector-optimized wcsncmp implementation segfaults if n=1
and there is only one character (equal on both strings) before
the page end.  Then it loads and compares one character and misses
to check n again.  The following load fails.

This patch removes the extra load and compare of the first character
and just start with the loop which uses vector-load-to-block-boundary.
This code-path also checks n.

With this patch both tests are passing:
- the simplified one mentioned in the bugzilla 31934
- the full one in Florian Weimer's patch:
"manual: Document a GNU extension for strncmp/wcsncmp"
(https://patchwork.sourceware.org/project/glibc/patch/874j9eml6y.fsf@oldenburg.str.redhat.com/):
On s390x-linux-gnu (z16), the new wcsncmp test fails due to bug 31934.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
5 months agoLinux: Make __rseq_size useful for feature detection (bug 31965)
Florian Weimer [Mon, 8 Jul 2024 19:14:00 +0000 (21:14 +0200)]
Linux: Make __rseq_size useful for feature detection (bug 31965)

The __rseq_size value is now the active area of struct rseq
(so 20 initially), not the full struct size including padding
at the end (32 initially).

Update misc/tst-rseq to print some additional diagnostics.

Reviewed-by: Michael Jeanson <mjeanson@efficios.com>
Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
5 months agopo: incorporate translations (bg)
Andreas K. Hüttel [Tue, 9 Jul 2024 11:35:12 +0000 (13:35 +0200)]
po: incorporate translations (bg)

Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
5 months agomanual: add syscalls
DJ Delorie [Mon, 8 Jul 2024 21:52:15 +0000 (17:52 -0400)]
manual: add syscalls

The purpose of this patch is to add some system calls that (1) aren't
otherwise documented, and (2) are merely redirected to the kernel, so
can refer to their documentation; and define a standard way of doing
so in the future.  A more detailed explaination of how system calls
are wrapped is added along with reference to the Linux Man-Pages
project.

Default version of man-pages is in configure.ac but can be overridden
by --with-man-pages=X.Y

Reviewed-by: Alejandro Colomar <alx@kernel.org>
5 months agolibio: handle opening a file when all files are closed (bug 31963)
Andreas Schwab [Mon, 8 Jul 2024 13:52:35 +0000 (15:52 +0200)]
libio: handle opening a file when all files are closed (bug 31963)

_IO_list_all becomes NULL when all files (including standard files) are
closed.

5 months agoldconfig: Ignore all GDB extension files
Adam Sampson [Mon, 6 May 2024 17:16:33 +0000 (18:16 +0100)]
ldconfig: Ignore all GDB extension files

ldconfig already ignores files with the -gdb.py suffix, but GDB also
looks for -gdb.gdb and -gdb.scm files. These aren't as widely used, but
libguile at least comes with a -gdb.scm file.

Rename is_gdb_python_file to is_gdb_extension_file, and make it
recognise all three types of GDB extension.

Signed-off-by: Adam Sampson <ats@offog.org>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
5 months agoldconfig: Move endswithn into a new header file
Adam Sampson [Mon, 6 May 2024 17:16:32 +0000 (18:16 +0100)]
ldconfig: Move endswithn into a new header file

is_gdb_python_file is doing a similar test, so it can use this helper
function as well.

Signed-off-by: Adam Sampson <ats@offog.org>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
5 months agomath: Update m68k ULPs
Andreas K. Hüttel [Mon, 8 Jul 2024 19:51:03 +0000 (21:51 +0200)]
math: Update m68k ULPs

This hasn't been looked at for a loong time (already guessing from
the number of missing entries), and it ain't pretty.
There are some 9-ulps results for float.

- ZaZaZebra (qemu-system-m68k clone of PowerBook 190 system)
- GCC 13.3.1 20240614 (Gentoo 13.3.1_p20240614 p17)
- ld GNU ld (Gentoo 2.42 p6) 2.42.0
- Linux ZaZaZebra  4.19.0-5-m68k #1 Gentoo 4.19.37-5 (2019-06-19) m68k 68040 68040 GNU/Linux
- manual build
- ../glibc/configure --enable-fortify-source --prefix=/usr
- Tested by Immolo (via Andreas K. Hüttel)

Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
5 months agostdlib: fix arc4random fallback to /dev/urandom (BZ 31612)
Adhemerval Zanella [Fri, 5 Apr 2024 13:27:29 +0000 (10:27 -0300)]
stdlib: fix arc4random fallback to /dev/urandom (BZ 31612)

The __getrandom_nocancel used by __arc4random_buf uses
INLINE_SYSCALL_CALL (which returns -1/errno) and the loop checks for
the return value instead of errno to fallback to /dev/urandom.

The malloc code now uses __getrandom_nocancel_nostatus, which uses
INTERNAL_SYSCALL_CALL, so there is no need to use the variant that does
not set errno (BZ#29624).

Checked on x86_64-linux-gnu.

Reviewed-by: Xi Ruoyao <xry111@xry111.site>
5 months agoelf: Make dl-rseq-symbols Linux only
Adhemerval Zanella [Thu, 4 Jul 2024 13:09:07 +0000 (10:09 -0300)]
elf: Make dl-rseq-symbols Linux only

And avoid a Hurd build failures.

Checked on x86_64-linux-gnu.

5 months agonptl: fix potential merge of __rseq_* relro symbols
Michael Jeanson [Wed, 3 Jul 2024 16:35:34 +0000 (12:35 -0400)]
nptl: fix potential merge of __rseq_* relro symbols

While working on a patch to add support for the extensible rseq ABI, we
came across an issue where a new 'const' variable would be merged with
the existing '__rseq_size' variable. We tracked this to the use of
'-fmerge-all-constants' which allows the compiler to merge identical
constant variables. This means that all 'const' variables in a compile
unit that are of the same size and are initialized to the same value can
be merged.

In this specific case, on 32 bit systems 'unsigned int' and 'ptrdiff_t'
are both 4 bytes and initialized to 0 which should trigger the merge.
However for reasons we haven't delved into when the attribute 'section
(".data.rel.ro")' is added to the mix, only variables of the same exact
types are merged. As far as we know this behavior is not specified
anywhere and could change with a new compiler version, hence this patch.

Move the definitions of these variables into an assembler file and add
hidden writable aliases for internal use. This has the added bonus of
removing the asm workaround to set the values on rseq registration.

Tested on Debian 12 with GCC 12.2.

Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Reviewed-by: Florian Weimer <fweimer@redhat.com>
5 months agoriscv: Update nofpu libm test ulps
Darius Rad [Wed, 3 Jul 2024 18:50:59 +0000 (14:50 -0400)]
riscv: Update nofpu libm test ulps

Fixes 32 test failures.

5 months agomanual: Recommendations for dynamic linker hardening
Florian Weimer [Thu, 2 May 2024 14:26:36 +0000 (16:26 +0200)]
manual: Recommendations for dynamic linker hardening

This new section in the manual provides recommendations for
use of glibc in environments with higher integrity requirements.
It's reflecting both current implementation shortcomings, and
challenges we inherit from ELF and psABI requirements.

Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
5 months agosocket: Add new test for shutdown
Sergey Kolosov [Tue, 25 Jun 2024 09:19:03 +0000 (11:19 +0200)]
socket: Add new test for shutdown

This commit adds shutdown test with SHUT_RD, SHUT_WR, SHUT_RDWR for an
UNIX socket connection.

Reviewed-by: DJ Delorie <dj@redhat.com>
This page took 0.091167 seconds and 5 git commands to generate.