Re: [PATCH] libc: arm: fix setjmp abi non-conformance

Richard Earnshaw <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>

On 25/01/2023 13:30, Mike Frysinger wrote:
> On 13 Dec 2022 14:51, Victor L. Do Nascimento wrote:
>> As per the arm Procedure Call Standard for the Arm Architecture
>> section 6.1.2 [1], VFP registers s16-s31 (d8-d15, q4-q7) must be
>> preserved across subroutine calls.
>>
>> The current setjmp/longjmp implementations preserve only the core
>> registers, with the jump buffer size too small to store the required
>> co-processor registers.
>>
>> In accordance with the C Library ABI for the Arm Architecture
>> section 6.11 [2], this patch sets _JBTYPE to long long adjusting
>> _JBLEN to 20.
>>
>> It also emits vfp load/store instructions depending on architectural
>> support, predicated at compile time on ACLE feature-test macros.
> 
> this breaks building with GCC 11 and older:
> https://bugs.gentoo.org/891589#c7
> 
> i don't think it was intentional that this only work with GCC 12+, or if
> it was, that we want such requirements.  GCC 12 is less than a year old.
> -mike

This has been fixed with commit c6e601de84ea9f2be2b026c609cc3c1fe82a3103.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.