qemu/mcu/arm/mps2.ld: Add .ARM.exidx section to the linkerscript.

This commit fixes a linking issue on certain Arm toolchains where
library code is compiled with exception support.

If a library with exception support is included in the MicroPython
build, the linker had no place to put the stack unwinding tables
necessary to perform exception handling at runtime.  This change adds a
new section to the linkerscript (and therefore the final ELF file) where
that data can be placed into.

Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
This commit is contained in:
Alessandro Gatti 2025-08-25 23:18:13 +02:00 committed by Damien George
parent 6650506e06
commit 6c1d1f3ad4

View file

@ -19,7 +19,15 @@ SECTIONS
*(.rodata*)
. = ALIGN(4);
_etext = .;
_sidata = _etext;
} > RAM
.ARM.exidx : AT ( _etext ) {
. = ALIGN(4);
__exidx_start = .;
*(.ARM.exidx*)
*(.gnu.linkonce.armexidx.*)
__exidx_end = .;
_sidata = __exidx_end;
} > RAM
.data : AT ( _sidata )