Переглянути джерело

fix: resolve .eh_frame linker error in ARM Thumb build

- Move .eh_frame section from DISCARD to flash memory region
- Ensure compatibility with GCC crtbegin.o requirements for ARM Thumb builds

Signed-off-by: Jiajie Zhou <2293611667@qq.com>
Chris 6 місяців тому
батько
коміт
bef56807aa
1 змінених файлів з 5 додано та 1 видалено
  1. 5 1
      mlibc.ld

+ 5 - 1
mlibc.ld

@@ -144,10 +144,14 @@ SECTIONS
         . += (DEFINED(__stack_size) ? __stack_size : DEFAULT_STACK_SIZE);
     } >ram :ram
 
+    /* Exception handling frames - keep them but place in flash */
+    .eh_frame : {
+        KEEP(*(.eh_frame .eh_frame.*))
+    } >flash AT>flash :text
+
     /* @C_START@ */
     /DISCARD/ : {
         *(.note .note.*)
-        *(.eh_frame .eh_frame.*)
         *(.ARM.extab* .gnu.linkonce.armextab.*)
         *(.ARM.exidx*)
     }