Re: [PATCH] libc: arm: fix setjmp abi non-conformance
Richard Earnshaw <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <[email protected]> |
Newlib doesn't maintain branches (we just tag the repo and make a snapshot public based on that), so there's nowhere this can be backported to. Ultimately this is Jeff's (or Corinna's) call though. R. On 07/02/2023 15:24, Victor Do Nascimento 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.