Re: [PATCH] libc: arm: fix setjmp abi non-conformance
Mike Frysinger <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <Y9Eu+ya/PXTGJfKd@vapier> |
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
signature.asc
(application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEuQK1JxMl+JKsJRrUQWM7n+g39YEFAmPRLvsACgkQQWM7n+g3 9YEFsBAA0uaP7uqdei/LLW5NRZh/eRSF2dmYV3UsZRCr14Ug6d+qmlYN3miD7+CG uF5XlW9xlHrtOU2QV8ozQ1u5PMQ7xstUNAGCbcOgOFhAImx29uRSYkLRwa1+lcCe 5gfQstgalrCpM09khqBcn954uO0YKSvAHobj97DBnZwtDfMejvg+NKapuKyFhVpI jlm6c7gRmCxaT0xIX+2yo74U2RVdcx2MFxCZpLmgw0GMs4a4TXvLHCOplHCwblKq Ya6BpdNEEBFe9J6ddwdOkrsxPTyjxtG5NFPJZvlMxLktBRLAvdxg2WEhZlffHoVv 4TjxSletJG+/xc4A2s8HI/APwVCEyEHfiO9onqyO+xBum1AsxKE0V4E15sHc+Vc/ vTKc63Ws/1o+U6ZEj4u5xErvXzphBGz/T5F1EZHcepIz609z8Is+XmFyJ2NB/trQ CSBOBaP9SPqQgAnEwkMmTFQb3CmPh/t7jIqib64zcqqcRGqgQsT8YaFoqb2Hzdo2 k0VcSffpE5farddkY3qYFDRQYODUK0uzU76kbR4KvvzWIa31JZX7YXlvYLaG7c86 B7nt+YR5UwlmhY4hipydAGCpAlsLDHAY/VK4AJqI2WFIgY1ow8+9l+6v8KKfPB7O Oncne9W+UBbXZuTw6ZjzMei8cFZwIseS+8w5lMoNTYurCY/TJS0= =NIR3 -----END PGP SIGNATURE-----