mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-06 06:04:33 +02:00
espsystem: add missing eh_frame sections on esp32c2
This commit is contained in:
@@ -96,3 +96,8 @@ _heap_end = 0x40000000;
|
|||||||
ASSERT(_flash_rodata_dummy_start == ORIGIN(default_rodata_seg),
|
ASSERT(_flash_rodata_dummy_start == ORIGIN(default_rodata_seg),
|
||||||
".flash_rodata_dummy section must be placed at the beginning of the rodata segment.")
|
".flash_rodata_dummy section must be placed at the beginning of the rodata segment.")
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if CONFIG_ESP_SYSTEM_USE_EH_FRAME
|
||||||
|
ASSERT ((__eh_frame_end > __eh_frame), "Error: eh_frame size is null!");
|
||||||
|
ASSERT ((__eh_frame_hdr_end > __eh_frame_hdr), "Error: eh_frame_hdr size is null!");
|
||||||
|
#endif
|
||||||
|
@@ -175,9 +175,6 @@ SECTIONS
|
|||||||
*(.gcc_except_table .gcc_except_table.*)
|
*(.gcc_except_table .gcc_except_table.*)
|
||||||
*(.gnu.linkonce.e.*)
|
*(.gnu.linkonce.e.*)
|
||||||
*(.gnu.version_r)
|
*(.gnu.version_r)
|
||||||
. = (. + 3) & ~ 3;
|
|
||||||
__eh_frame = ABSOLUTE(.);
|
|
||||||
KEEP(*(.eh_frame))
|
|
||||||
. = (. + 7) & ~ 3;
|
. = (. + 7) & ~ 3;
|
||||||
/*
|
/*
|
||||||
* C++ constructor and destructor tables
|
* C++ constructor and destructor tables
|
||||||
@@ -226,7 +223,27 @@ SECTIONS
|
|||||||
*(.tbss.*)
|
*(.tbss.*)
|
||||||
_thread_local_end = ABSOLUTE(.);
|
_thread_local_end = ABSOLUTE(.);
|
||||||
_rodata_reserved_end = ABSOLUTE(.);
|
_rodata_reserved_end = ABSOLUTE(.);
|
||||||
. = ALIGN(4);
|
. = ALIGN(ALIGNOF(.eh_frame));
|
||||||
|
} > default_rodata_seg
|
||||||
|
|
||||||
|
/* Keep this section shall be at least aligned on 4 */
|
||||||
|
.eh_frame : ALIGN(8)
|
||||||
|
{
|
||||||
|
__eh_frame = ABSOLUTE(.);
|
||||||
|
KEEP (*(.eh_frame))
|
||||||
|
__eh_frame_end = ABSOLUTE(.);
|
||||||
|
/* Guarantee that this section and the next one will be merged by making
|
||||||
|
* them adjacent. */
|
||||||
|
. = ALIGN(ALIGNOF(.eh_frame_hdr));
|
||||||
|
} > default_rodata_seg
|
||||||
|
|
||||||
|
/* To avoid any exception in C++ exception frame unwinding code, this section
|
||||||
|
* shall be aligned on 8. */
|
||||||
|
.eh_frame_hdr : ALIGN(8)
|
||||||
|
{
|
||||||
|
__eh_frame_hdr = ABSOLUTE(.);
|
||||||
|
KEEP (*(.eh_frame_hdr))
|
||||||
|
__eh_frame_hdr_end = ABSOLUTE(.);
|
||||||
} > default_rodata_seg
|
} > default_rodata_seg
|
||||||
|
|
||||||
.flash.rodata_noload (NOLOAD) :
|
.flash.rodata_noload (NOLOAD) :
|
||||||
|
Reference in New Issue
Block a user