This is the mail archive of the
libc-ports@sources.redhat.com
mailing list for the libc-ports project.
Re: [Patch, mips]: Add support for FR=1/o32. Update implemention of setjmp/longjmp
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: Matheus Almeida <Matheus dot Almeida at imgtec dot com>
- Cc: "libc-ports at sourceware dot org" <libc-ports at sourceware dot org>, Doug Gilmore <Doug dot Gilmore at imgtec dot com>
- Date: Tue, 26 Nov 2013 16:21:29 +0000
- Subject: Re: [Patch, mips]: Add support for FR=1/o32. Update implemention of setjmp/longjmp
- Authentication-results: sourceware.org; auth=none
- References: <D27A34061895C147B6015779E8B217303D4981CE at KLMAIL01 dot kl dot imgtec dot org>
On Tue, 26 Nov 2013, Matheus Almeida wrote:
> This patch updates the definition of setjmp, longjmp and jmp_buf so that
> on a call to setjmp/longjmp, all the required floating-point
> callee-saved registers are properly saved/restored.
>
> We are aware that updating the size of jmp_buf can potentially break
> existing applications but we expect the number of applications built
> with FR=1 mode to be very small, possibly zero. Nevertheless this should
> be clearly stated in the release notes that existing applications built
> with FR=1 (-mfp64) need to be recompiled in order to use new versions of
> the library.
I don't recall a response to
<https://sourceware.org/ml/binutils/2013-09/msg00045.html>, and don't see
one in the binutils list archives. I believe that just like the NaN
changes, this needs to be considered as an incompatible ABI variant, with
ELF header checks in the dynamic linker to ensure that all loaded objects
are compatible (whether or not you also define new dynamic linker names
for one or both of o32/-mfp64/legacy-NaN and o32/-mfp64/NaN-2008) -
incompatibilities should be detected by the dynamic linker, not "need to
be recompiled". I suggest looking at Maciej's NaN changes as a model.
Also as suggested in that message to the binutils list, I think *context
functions need updating as well as setjmp/longjmp, and there should be an
ABI supplement document explaining o32 function call and return for
-mfp64.
What's the kernel.org kernel version with support for this feature (that
is, the kernel that checks the ELF header flag and ensures the FPU is
correctly set up for the process)? As with NaN-2008, arch_minimum_kernel
should be set to the appropriate kernel version, or 10.0.0 until the
relevant support is in the kernel.org tree.
--
Joseph S. Myers
joseph@codesourcery.com