[PATCH] libc: arm: setjmp jmp_buf exagerated size

Richard Earnshaw Richard.Earnshaw@foss.arm.com
Wed Feb 15 16:12:04 GMT 2023

On 15/02/2023 11:09, Bernhard Krug wrote:
> Patch sets correct jmp_buf size for armv6-m conforming to implementation in setjmp.S
> FYI a table of cortex architectures:
> __ARM_ARCH_6M__ cortex-m0/m0+/m1 no fpu option
> __ARM_ARCH_7M__ cortex-m3 no fpu option
> __ARM_ARCH_7EM__ cortex-m4 optional fpu
> check using __ARM_FP

I don't think it's as simple as this.  The ABI supports three variants, 
two of which are call compatible.

hard-float (where you must have hardware FP)
soft (where you haven't got any hardware FP)
softfp (where you have hardware FP but need to inter-operate with code 
that doesnt).

soft and softfp are call compatible and so any jump-bufs created need to 
support saving and restoring the FP context.

I guess a configure-time option to disable support for softfp might be 
an option, but the default needs to ensure things are compatible.


More information about the Newlib mailing list