This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: nptl/tst-thread-exit-clobber failure on armv7l-*-linux-gnueabihf
- From: Joseph Myers <joseph at codesourcery dot com>
- To: Szabolcs Nagy <Szabolcs dot Nagy at arm dot com>
- Cc: Florian Weimer <fweimer at redhat dot com>, "libc-alpha at sourceware dot org" <libc-alpha at sourceware dot org>, nd <nd at arm dot com>
- Date: Tue, 29 Jan 2019 21:52:16 +0000
- Subject: Re: nptl/tst-thread-exit-clobber failure on armv7l-*-linux-gnueabihf
- References: <87d0ogsjtu.fsf@oldenburg2.str.redhat.com> <ed20fb0c-3684-6020-af3d-7df1fedec9ac@arm.com>
On Tue, 29 Jan 2019, Szabolcs Nagy wrote:
> the arm _dl_runtime_resolve code does not seem to preserve fp regs,
> i'm not sure why that works, but we should look out for gcc-9 changes
> that may start using fp regs in the arm dynamic linker.
As discussed in that GCC bug, this (for Arm) is glibc bug 15792.
As discussed elsewhere, audit modules, interposed malloc and IFUNC
resolvers can all execute arbitrary user-provided code from within the
dynamic linker. This means that, if there is a requirement for the
dynamic linker not to clobber some normally call-clobbered registers
(either because they are used as argument registers, or because the
dynamic linker can be used to call lazily-bound functions whose ABI has a
more restricted clobber set), the dynamic linker actually needs to save
those registers; compiling it not to use them itself is insufficient.
--
Joseph S. Myers
joseph@codesourcery.com