libc: arm: setjmp jmp_buf exagerated size

Bernhard Krug b.krug@elektronenpumpe.de
Tue Feb 14 22:47:23 GMT 2023


Hello, 

using setjmp to implement eight coroutines on an ARM Cortex-M0+ the allocated size of .data escalates, in my example, from 476 bytes to 1444 bytes!

I think "libc: arm: fix setjmp abi non-conformance" shouldn't use jmp_buf made of 20 long long ints on a 32bit arm without fpu :D

Can the #ifndef device detection/decision tree from the setjmp asm/source file be also used in the headers to set reasonable sizes?

For my machine and use-case gcc emits asm copying ten registers (as expected) which would be rightly sized.

Thanks for your work and consideration :)


More information about the Newlib mailing list