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

Jeff Johnston jjohnstn@redhat.com
Tue Feb 7 21:45:44 GMT 2023


A new snapshot can be made.  There is also an issue with -idirafter not
being supported by a few platforms.  How urgent is this?  Can it
wait until the other issue is fixed?

-- Jeff J.

On Tue, Feb 7, 2023 at 10:25 AM Victor Do Nascimento <
Victor.DoNascimento@arm.com> wrote:

> Dear Richard (now also CCing the mailing list),
>
> One of the folks over at the Gentoo bug discussion inquired about
> getting the patch back-ported to the latest source snapshot (where the
> problem originally presented itself), newlib-4.3.0.20230120.
>
> Is that an option at all?
>
> Cheers,
> Victor
>
> On 2/3/23 13:09, Richard Earnshaw wrote:
> >
> >
> > 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.
>
>


More information about the Newlib mailing list