mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
fix(system): print warning if stray section is found while linking
This commit is contained in:
parent
8508c85551
commit
2b36636f6f
21
Kconfig
21
Kconfig
@ -607,6 +607,27 @@ mainmenu "Espressif IoT Development Framework Configuration"
|
|||||||
default "gcc" if COMPILER_RT_LIB_GCCLIB
|
default "gcc" if COMPILER_RT_LIB_GCCLIB
|
||||||
default "" if COMPILER_RT_LIB_HOST
|
default "" if COMPILER_RT_LIB_HOST
|
||||||
|
|
||||||
|
choice COMPILER_ORPHAN_SECTIONS
|
||||||
|
prompt "Orphan sections handling"
|
||||||
|
default COMPILER_ORPHAN_SECTIONS_WARNING
|
||||||
|
depends on !IDF_TARGET_LINUX
|
||||||
|
help
|
||||||
|
If the linker finds orphan sections, it attempts to place orphan sections after sections of the same
|
||||||
|
attribute such as code vs data, loadable vs non-loadable, etc.
|
||||||
|
That means that orphan sections could placed between sections defined in IDF linker scripts.
|
||||||
|
This could lead to corruption of the binary image. Configure the linker action here.
|
||||||
|
|
||||||
|
config COMPILER_ORPHAN_SECTIONS_WARNING
|
||||||
|
bool "Place with warning"
|
||||||
|
help
|
||||||
|
Places orphan sections without a warning message.
|
||||||
|
|
||||||
|
config COMPILER_ORPHAN_SECTIONS_PLACE
|
||||||
|
bool "Place silently"
|
||||||
|
help
|
||||||
|
Places orphan sections without a warning/error message.
|
||||||
|
endchoice
|
||||||
|
|
||||||
endmenu # Compiler Options
|
endmenu # Compiler Options
|
||||||
|
|
||||||
menu "Component config"
|
menu "Component config"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@ -119,6 +119,7 @@ SECTIONS
|
|||||||
|
|
||||||
.dram0.data : ALIGN(0x10)
|
.dram0.data : ALIGN(0x10)
|
||||||
{
|
{
|
||||||
|
*(.dram1 .dram1.*) /* catch stray DRAM_ATTR */
|
||||||
*(.data)
|
*(.data)
|
||||||
*(.data.*)
|
*(.data.*)
|
||||||
*(.gnu.linkonce.d.*)
|
*(.gnu.linkonce.d.*)
|
||||||
@ -144,6 +145,7 @@ SECTIONS
|
|||||||
*(.gcc_except_table)
|
*(.gcc_except_table)
|
||||||
*(.gnu.linkonce.e.*)
|
*(.gnu.linkonce.e.*)
|
||||||
*(.gnu.version_r)
|
*(.gnu.version_r)
|
||||||
|
*(.eh_frame_hdr)
|
||||||
*(.eh_frame)
|
*(.eh_frame)
|
||||||
. = (. + 3) & ~ 3;
|
. = (. + 3) & ~ 3;
|
||||||
/* C++ constructor and destructor tables, properly ordered: */
|
/* C++ constructor and destructor tables, properly ordered: */
|
||||||
@ -208,12 +210,55 @@ SECTIONS
|
|||||||
*/
|
*/
|
||||||
.xt.prop 0 :
|
.xt.prop 0 :
|
||||||
{
|
{
|
||||||
KEEP (*(.xt.prop .gnu.linkonce.prop.*))
|
KEEP (*(.xt.prop .xt.prop.* .gnu.linkonce.prop.*))
|
||||||
}
|
}
|
||||||
|
|
||||||
.xt.lit 0 :
|
.xt.lit 0 :
|
||||||
{
|
{
|
||||||
KEEP (*(.xt.lit .gnu.linkonce.p.*))
|
KEEP (*(.xt.lit .xt.lit.* .gnu.linkonce.p.*))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.xtensa.info 0: { *(.xtensa.info) }
|
||||||
|
|
||||||
|
/* DWARF 1 */
|
||||||
|
.debug 0 : { *(.debug) }
|
||||||
|
.line 0 : { *(.line) }
|
||||||
|
/* GNU DWARF 1 extensions */
|
||||||
|
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||||
|
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||||
|
/* DWARF 1.1 and DWARF 2 */
|
||||||
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
|
/* DWARF 2 */
|
||||||
|
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||||
|
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||||
|
.debug_line 0 : { *(.debug_line) }
|
||||||
|
.debug_frame 0 : { *(.debug_frame) }
|
||||||
|
.debug_str 0 : { *(.debug_str) }
|
||||||
|
.debug_loc 0 : { *(.debug_loc) }
|
||||||
|
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||||
|
.debug_pubtypes 0 : { *(.debug_pubtypes) }
|
||||||
|
/* DWARF 3 */
|
||||||
|
.debug_ranges 0 : { *(.debug_ranges) }
|
||||||
|
/* SGI/MIPS DWARF 2 extensions */
|
||||||
|
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||||
|
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||||
|
.debug_typenames 0 : { *(.debug_typenames) }
|
||||||
|
.debug_varnames 0 : { *(.debug_varnames) }
|
||||||
|
/* GNU DWARF 2 extensions */
|
||||||
|
.debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) }
|
||||||
|
.debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) }
|
||||||
|
/* DWARF 4 */
|
||||||
|
.debug_types 0 : { *(.debug_types) }
|
||||||
|
/* DWARF 5 */
|
||||||
|
.debug_addr 0 : { *(.debug_addr) }
|
||||||
|
.debug_line_str 0 : { *(.debug_line_str) }
|
||||||
|
.debug_loclists 0 : { *(.debug_loclists) }
|
||||||
|
.debug_macro 0 : { *(.debug_macro) }
|
||||||
|
.debug_names 0 : { *(.debug_names) }
|
||||||
|
.debug_rnglists 0 : { *(.debug_rnglists) }
|
||||||
|
.debug_str_offsets 0 : { *(.debug_str_offsets) }
|
||||||
|
|
||||||
|
.comment 0 : { *(.comment) }
|
||||||
|
.note.GNU-stack 0: { *(.note.GNU-stack) }
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@ -140,6 +140,7 @@ SECTIONS
|
|||||||
|
|
||||||
.dram0.data :
|
.dram0.data :
|
||||||
{
|
{
|
||||||
|
*(.dram1 .dram1.*) /* catch stray DRAM_ATTR */
|
||||||
*(.data)
|
*(.data)
|
||||||
*(.data.*)
|
*(.data.*)
|
||||||
*(.gnu.linkonce.d.*)
|
*(.gnu.linkonce.d.*)
|
||||||
@ -165,6 +166,7 @@ SECTIONS
|
|||||||
*(.gcc_except_table)
|
*(.gcc_except_table)
|
||||||
*(.gnu.linkonce.e.*)
|
*(.gnu.linkonce.e.*)
|
||||||
*(.gnu.version_r)
|
*(.gnu.version_r)
|
||||||
|
*(.eh_frame_hdr)
|
||||||
*(.eh_frame)
|
*(.eh_frame)
|
||||||
. = (. + 3) & ~ 3;
|
. = (. + 3) & ~ 3;
|
||||||
/* C++ constructor and destructor tables, properly ordered: */
|
/* C++ constructor and destructor tables, properly ordered: */
|
||||||
@ -218,6 +220,57 @@ SECTIONS
|
|||||||
_etext = .;
|
_etext = .;
|
||||||
} > iram_seg
|
} > iram_seg
|
||||||
|
|
||||||
|
.riscv.attributes 0: { *(.riscv.attributes) }
|
||||||
|
|
||||||
|
/* DWARF 1 */
|
||||||
|
.debug 0 : { *(.debug) }
|
||||||
|
.line 0 : { *(.line) }
|
||||||
|
/* GNU DWARF 1 extensions */
|
||||||
|
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||||
|
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||||
|
/* DWARF 1.1 and DWARF 2 */
|
||||||
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
|
/* DWARF 2 */
|
||||||
|
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||||
|
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||||
|
.debug_line 0 : { *(.debug_line) }
|
||||||
|
.debug_frame 0 : { *(.debug_frame) }
|
||||||
|
.debug_str 0 : { *(.debug_str) }
|
||||||
|
.debug_loc 0 : { *(.debug_loc) }
|
||||||
|
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||||
|
.debug_pubtypes 0 : { *(.debug_pubtypes) }
|
||||||
|
/* DWARF 3 */
|
||||||
|
.debug_ranges 0 : { *(.debug_ranges) }
|
||||||
|
/* SGI/MIPS DWARF 2 extensions */
|
||||||
|
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||||
|
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||||
|
.debug_typenames 0 : { *(.debug_typenames) }
|
||||||
|
.debug_varnames 0 : { *(.debug_varnames) }
|
||||||
|
/* GNU DWARF 2 extensions */
|
||||||
|
.debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) }
|
||||||
|
.debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) }
|
||||||
|
/* DWARF 4 */
|
||||||
|
.debug_types 0 : { *(.debug_types) }
|
||||||
|
/* DWARF 5 */
|
||||||
|
.debug_addr 0 : { *(.debug_addr) }
|
||||||
|
.debug_line_str 0 : { *(.debug_line_str) }
|
||||||
|
.debug_loclists 0 : { *(.debug_loclists) }
|
||||||
|
.debug_macro 0 : { *(.debug_macro) }
|
||||||
|
.debug_names 0 : { *(.debug_names) }
|
||||||
|
.debug_rnglists 0 : { *(.debug_rnglists) }
|
||||||
|
.debug_str_offsets 0 : { *(.debug_str_offsets) }
|
||||||
|
|
||||||
|
.comment 0 : { *(.comment) }
|
||||||
|
.note.GNU-stack 0: { *(.note.GNU-stack) }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Discarding .rela.* sections results in the following mapping:
|
||||||
|
* .rela.text.* -> .text.*
|
||||||
|
* .rela.data.* -> .data.*
|
||||||
|
* And so forth...
|
||||||
|
*/
|
||||||
|
/DISCARD/ : { *(.rela.*) }
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@ -140,6 +140,7 @@ SECTIONS
|
|||||||
|
|
||||||
.dram0.data :
|
.dram0.data :
|
||||||
{
|
{
|
||||||
|
*(.dram1 .dram1.*) /* catch stray DRAM_ATTR */
|
||||||
*(.data)
|
*(.data)
|
||||||
*(.data.*)
|
*(.data.*)
|
||||||
*(.gnu.linkonce.d.*)
|
*(.gnu.linkonce.d.*)
|
||||||
@ -165,6 +166,7 @@ SECTIONS
|
|||||||
*(.gcc_except_table)
|
*(.gcc_except_table)
|
||||||
*(.gnu.linkonce.e.*)
|
*(.gnu.linkonce.e.*)
|
||||||
*(.gnu.version_r)
|
*(.gnu.version_r)
|
||||||
|
*(.eh_frame_hdr)
|
||||||
*(.eh_frame)
|
*(.eh_frame)
|
||||||
. = (. + 3) & ~ 3;
|
. = (. + 3) & ~ 3;
|
||||||
/* C++ constructor and destructor tables, properly ordered: */
|
/* C++ constructor and destructor tables, properly ordered: */
|
||||||
@ -218,6 +220,58 @@ SECTIONS
|
|||||||
_etext = .;
|
_etext = .;
|
||||||
} > iram_seg
|
} > iram_seg
|
||||||
|
|
||||||
|
.riscv.attributes 0: { *(.riscv.attributes) }
|
||||||
|
|
||||||
|
/* DWARF 1 */
|
||||||
|
.debug 0 : { *(.debug) }
|
||||||
|
.line 0 : { *(.line) }
|
||||||
|
/* GNU DWARF 1 extensions */
|
||||||
|
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||||
|
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||||
|
/* DWARF 1.1 and DWARF 2 */
|
||||||
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
|
/* DWARF 2 */
|
||||||
|
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||||
|
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||||
|
.debug_line 0 : { *(.debug_line) }
|
||||||
|
.debug_frame 0 : { *(.debug_frame) }
|
||||||
|
.debug_str 0 : { *(.debug_str) }
|
||||||
|
.debug_loc 0 : { *(.debug_loc) }
|
||||||
|
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||||
|
.debug_pubtypes 0 : { *(.debug_pubtypes) }
|
||||||
|
/* DWARF 3 */
|
||||||
|
.debug_ranges 0 : { *(.debug_ranges) }
|
||||||
|
/* SGI/MIPS DWARF 2 extensions */
|
||||||
|
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||||
|
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||||
|
.debug_typenames 0 : { *(.debug_typenames) }
|
||||||
|
.debug_varnames 0 : { *(.debug_varnames) }
|
||||||
|
/* GNU DWARF 2 extensions */
|
||||||
|
.debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) }
|
||||||
|
.debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) }
|
||||||
|
/* DWARF 4 */
|
||||||
|
.debug_types 0 : { *(.debug_types) }
|
||||||
|
/* DWARF 5 */
|
||||||
|
.debug_addr 0 : { *(.debug_addr) }
|
||||||
|
.debug_line_str 0 : { *(.debug_line_str) }
|
||||||
|
.debug_loclists 0 : { *(.debug_loclists) }
|
||||||
|
.debug_macro 0 : { *(.debug_macro) }
|
||||||
|
.debug_names 0 : { *(.debug_names) }
|
||||||
|
.debug_rnglists 0 : { *(.debug_rnglists) }
|
||||||
|
.debug_str_offsets 0 : { *(.debug_str_offsets) }
|
||||||
|
|
||||||
|
.comment 0 : { *(.comment) }
|
||||||
|
.note.GNU-stack 0: { *(.note.GNU-stack) }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Discarding .rela.* sections results in the following mapping:
|
||||||
|
* .rela.text.* -> .text.*
|
||||||
|
* .rela.data.* -> .data.*
|
||||||
|
* And so forth...
|
||||||
|
*/
|
||||||
|
/DISCARD/ : { *(.rela.*) }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -139,6 +139,7 @@ SECTIONS
|
|||||||
|
|
||||||
.dram0.data :
|
.dram0.data :
|
||||||
{
|
{
|
||||||
|
*(.dram1 .dram1.*) /* catch stray DRAM_ATTR */
|
||||||
*(.data)
|
*(.data)
|
||||||
*(.data.*)
|
*(.data.*)
|
||||||
*(.gnu.linkonce.d.*)
|
*(.gnu.linkonce.d.*)
|
||||||
@ -164,6 +165,7 @@ SECTIONS
|
|||||||
*(.gcc_except_table)
|
*(.gcc_except_table)
|
||||||
*(.gnu.linkonce.e.*)
|
*(.gnu.linkonce.e.*)
|
||||||
*(.gnu.version_r)
|
*(.gnu.version_r)
|
||||||
|
*(.eh_frame_hdr)
|
||||||
*(.eh_frame)
|
*(.eh_frame)
|
||||||
. = (. + 3) & ~ 3;
|
. = (. + 3) & ~ 3;
|
||||||
/* C++ constructor and destructor tables, properly ordered: */
|
/* C++ constructor and destructor tables, properly ordered: */
|
||||||
@ -217,6 +219,58 @@ SECTIONS
|
|||||||
_etext = .;
|
_etext = .;
|
||||||
} > iram_seg
|
} > iram_seg
|
||||||
|
|
||||||
|
.riscv.attributes 0: { *(.riscv.attributes) }
|
||||||
|
|
||||||
|
/* DWARF 1 */
|
||||||
|
.debug 0 : { *(.debug) }
|
||||||
|
.line 0 : { *(.line) }
|
||||||
|
/* GNU DWARF 1 extensions */
|
||||||
|
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||||
|
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||||
|
/* DWARF 1.1 and DWARF 2 */
|
||||||
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
|
/* DWARF 2 */
|
||||||
|
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||||
|
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||||
|
.debug_line 0 : { *(.debug_line) }
|
||||||
|
.debug_frame 0 : { *(.debug_frame) }
|
||||||
|
.debug_str 0 : { *(.debug_str) }
|
||||||
|
.debug_loc 0 : { *(.debug_loc) }
|
||||||
|
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||||
|
.debug_pubtypes 0 : { *(.debug_pubtypes) }
|
||||||
|
/* DWARF 3 */
|
||||||
|
.debug_ranges 0 : { *(.debug_ranges) }
|
||||||
|
/* SGI/MIPS DWARF 2 extensions */
|
||||||
|
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||||
|
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||||
|
.debug_typenames 0 : { *(.debug_typenames) }
|
||||||
|
.debug_varnames 0 : { *(.debug_varnames) }
|
||||||
|
/* GNU DWARF 2 extensions */
|
||||||
|
.debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) }
|
||||||
|
.debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) }
|
||||||
|
/* DWARF 4 */
|
||||||
|
.debug_types 0 : { *(.debug_types) }
|
||||||
|
/* DWARF 5 */
|
||||||
|
.debug_addr 0 : { *(.debug_addr) }
|
||||||
|
.debug_line_str 0 : { *(.debug_line_str) }
|
||||||
|
.debug_loclists 0 : { *(.debug_loclists) }
|
||||||
|
.debug_macro 0 : { *(.debug_macro) }
|
||||||
|
.debug_names 0 : { *(.debug_names) }
|
||||||
|
.debug_rnglists 0 : { *(.debug_rnglists) }
|
||||||
|
.debug_str_offsets 0 : { *(.debug_str_offsets) }
|
||||||
|
|
||||||
|
.comment 0 : { *(.comment) }
|
||||||
|
.note.GNU-stack 0: { *(.note.GNU-stack) }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Discarding .rela.* sections results in the following mapping:
|
||||||
|
* .rela.text.* -> .text.*
|
||||||
|
* .rela.data.* -> .data.*
|
||||||
|
* And so forth...
|
||||||
|
*/
|
||||||
|
/DISCARD/ : { *(.rela.*) }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -138,6 +138,7 @@ SECTIONS
|
|||||||
|
|
||||||
.dram0.data :
|
.dram0.data :
|
||||||
{
|
{
|
||||||
|
*(.dram1 .dram1.*) /* catch stray DRAM_ATTR */
|
||||||
*(.data)
|
*(.data)
|
||||||
*(.data.*)
|
*(.data.*)
|
||||||
*(.gnu.linkonce.d.*)
|
*(.gnu.linkonce.d.*)
|
||||||
@ -163,6 +164,7 @@ SECTIONS
|
|||||||
*(.gcc_except_table)
|
*(.gcc_except_table)
|
||||||
*(.gnu.linkonce.e.*)
|
*(.gnu.linkonce.e.*)
|
||||||
*(.gnu.version_r)
|
*(.gnu.version_r)
|
||||||
|
*(.eh_frame_hdr)
|
||||||
*(.eh_frame)
|
*(.eh_frame)
|
||||||
. = (. + 3) & ~ 3;
|
. = (. + 3) & ~ 3;
|
||||||
/* C++ constructor and destructor tables, properly ordered: */
|
/* C++ constructor and destructor tables, properly ordered: */
|
||||||
@ -216,6 +218,58 @@ SECTIONS
|
|||||||
_etext = .;
|
_etext = .;
|
||||||
} > iram_seg
|
} > iram_seg
|
||||||
|
|
||||||
|
.riscv.attributes 0: { *(.riscv.attributes) }
|
||||||
|
|
||||||
|
/* DWARF 1 */
|
||||||
|
.debug 0 : { *(.debug) }
|
||||||
|
.line 0 : { *(.line) }
|
||||||
|
/* GNU DWARF 1 extensions */
|
||||||
|
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||||
|
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||||
|
/* DWARF 1.1 and DWARF 2 */
|
||||||
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
|
/* DWARF 2 */
|
||||||
|
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||||
|
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||||
|
.debug_line 0 : { *(.debug_line) }
|
||||||
|
.debug_frame 0 : { *(.debug_frame) }
|
||||||
|
.debug_str 0 : { *(.debug_str) }
|
||||||
|
.debug_loc 0 : { *(.debug_loc) }
|
||||||
|
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||||
|
.debug_pubtypes 0 : { *(.debug_pubtypes) }
|
||||||
|
/* DWARF 3 */
|
||||||
|
.debug_ranges 0 : { *(.debug_ranges) }
|
||||||
|
/* SGI/MIPS DWARF 2 extensions */
|
||||||
|
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||||
|
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||||
|
.debug_typenames 0 : { *(.debug_typenames) }
|
||||||
|
.debug_varnames 0 : { *(.debug_varnames) }
|
||||||
|
/* GNU DWARF 2 extensions */
|
||||||
|
.debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) }
|
||||||
|
.debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) }
|
||||||
|
/* DWARF 4 */
|
||||||
|
.debug_types 0 : { *(.debug_types) }
|
||||||
|
/* DWARF 5 */
|
||||||
|
.debug_addr 0 : { *(.debug_addr) }
|
||||||
|
.debug_line_str 0 : { *(.debug_line_str) }
|
||||||
|
.debug_loclists 0 : { *(.debug_loclists) }
|
||||||
|
.debug_macro 0 : { *(.debug_macro) }
|
||||||
|
.debug_names 0 : { *(.debug_names) }
|
||||||
|
.debug_rnglists 0 : { *(.debug_rnglists) }
|
||||||
|
.debug_str_offsets 0 : { *(.debug_str_offsets) }
|
||||||
|
|
||||||
|
.comment 0 : { *(.comment) }
|
||||||
|
.note.GNU-stack 0: { *(.note.GNU-stack) }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Discarding .rela.* sections results in the following mapping:
|
||||||
|
* .rela.text.* -> .text.*
|
||||||
|
* .rela.data.* -> .data.*
|
||||||
|
* And so forth...
|
||||||
|
*/
|
||||||
|
/DISCARD/ : { *(.rela.*) }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@ -138,6 +138,7 @@ SECTIONS
|
|||||||
|
|
||||||
.dram0.data :
|
.dram0.data :
|
||||||
{
|
{
|
||||||
|
*(.dram1 .dram1.*) /* catch stray DRAM_ATTR */
|
||||||
*(.data)
|
*(.data)
|
||||||
*(.data.*)
|
*(.data.*)
|
||||||
*(.gnu.linkonce.d.*)
|
*(.gnu.linkonce.d.*)
|
||||||
@ -163,6 +164,7 @@ SECTIONS
|
|||||||
*(.gcc_except_table)
|
*(.gcc_except_table)
|
||||||
*(.gnu.linkonce.e.*)
|
*(.gnu.linkonce.e.*)
|
||||||
*(.gnu.version_r)
|
*(.gnu.version_r)
|
||||||
|
*(.eh_frame_hdr)
|
||||||
*(.eh_frame)
|
*(.eh_frame)
|
||||||
. = (. + 3) & ~ 3;
|
. = (. + 3) & ~ 3;
|
||||||
/* C++ constructor and destructor tables, properly ordered: */
|
/* C++ constructor and destructor tables, properly ordered: */
|
||||||
@ -216,6 +218,58 @@ SECTIONS
|
|||||||
_etext = .;
|
_etext = .;
|
||||||
} > iram_seg
|
} > iram_seg
|
||||||
|
|
||||||
|
.riscv.attributes 0: { *(.riscv.attributes) }
|
||||||
|
|
||||||
|
/* DWARF 1 */
|
||||||
|
.debug 0 : { *(.debug) }
|
||||||
|
.line 0 : { *(.line) }
|
||||||
|
/* GNU DWARF 1 extensions */
|
||||||
|
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||||
|
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||||
|
/* DWARF 1.1 and DWARF 2 */
|
||||||
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
|
/* DWARF 2 */
|
||||||
|
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||||
|
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||||
|
.debug_line 0 : { *(.debug_line) }
|
||||||
|
.debug_frame 0 : { *(.debug_frame) }
|
||||||
|
.debug_str 0 : { *(.debug_str) }
|
||||||
|
.debug_loc 0 : { *(.debug_loc) }
|
||||||
|
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||||
|
.debug_pubtypes 0 : { *(.debug_pubtypes) }
|
||||||
|
/* DWARF 3 */
|
||||||
|
.debug_ranges 0 : { *(.debug_ranges) }
|
||||||
|
/* SGI/MIPS DWARF 2 extensions */
|
||||||
|
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||||
|
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||||
|
.debug_typenames 0 : { *(.debug_typenames) }
|
||||||
|
.debug_varnames 0 : { *(.debug_varnames) }
|
||||||
|
/* GNU DWARF 2 extensions */
|
||||||
|
.debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) }
|
||||||
|
.debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) }
|
||||||
|
/* DWARF 4 */
|
||||||
|
.debug_types 0 : { *(.debug_types) }
|
||||||
|
/* DWARF 5 */
|
||||||
|
.debug_addr 0 : { *(.debug_addr) }
|
||||||
|
.debug_line_str 0 : { *(.debug_line_str) }
|
||||||
|
.debug_loclists 0 : { *(.debug_loclists) }
|
||||||
|
.debug_macro 0 : { *(.debug_macro) }
|
||||||
|
.debug_names 0 : { *(.debug_names) }
|
||||||
|
.debug_rnglists 0 : { *(.debug_rnglists) }
|
||||||
|
.debug_str_offsets 0 : { *(.debug_str_offsets) }
|
||||||
|
|
||||||
|
.comment 0 : { *(.comment) }
|
||||||
|
.note.GNU-stack 0: { *(.note.GNU-stack) }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Discarding .rela.* sections results in the following mapping:
|
||||||
|
* .rela.text.* -> .text.*
|
||||||
|
* .rela.data.* -> .data.*
|
||||||
|
* And so forth...
|
||||||
|
*/
|
||||||
|
/DISCARD/ : { *(.rela.*) }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -138,6 +138,7 @@ SECTIONS
|
|||||||
|
|
||||||
.dram0.data :
|
.dram0.data :
|
||||||
{
|
{
|
||||||
|
*(.dram1 .dram1.*) /* catch stray DRAM_ATTR */
|
||||||
*(.data)
|
*(.data)
|
||||||
*(.data.*)
|
*(.data.*)
|
||||||
*(.gnu.linkonce.d.*)
|
*(.gnu.linkonce.d.*)
|
||||||
@ -163,6 +164,7 @@ SECTIONS
|
|||||||
*(.gcc_except_table)
|
*(.gcc_except_table)
|
||||||
*(.gnu.linkonce.e.*)
|
*(.gnu.linkonce.e.*)
|
||||||
*(.gnu.version_r)
|
*(.gnu.version_r)
|
||||||
|
*(.eh_frame_hdr)
|
||||||
*(.eh_frame)
|
*(.eh_frame)
|
||||||
. = (. + 3) & ~ 3;
|
. = (. + 3) & ~ 3;
|
||||||
/* C++ constructor and destructor tables, properly ordered: */
|
/* C++ constructor and destructor tables, properly ordered: */
|
||||||
@ -216,6 +218,58 @@ SECTIONS
|
|||||||
_etext = .;
|
_etext = .;
|
||||||
} > iram_seg
|
} > iram_seg
|
||||||
|
|
||||||
|
.riscv.attributes 0: { *(.riscv.attributes) }
|
||||||
|
|
||||||
|
/* DWARF 1 */
|
||||||
|
.debug 0 : { *(.debug) }
|
||||||
|
.line 0 : { *(.line) }
|
||||||
|
/* GNU DWARF 1 extensions */
|
||||||
|
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||||
|
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||||
|
/* DWARF 1.1 and DWARF 2 */
|
||||||
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
|
/* DWARF 2 */
|
||||||
|
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||||
|
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||||
|
.debug_line 0 : { *(.debug_line) }
|
||||||
|
.debug_frame 0 : { *(.debug_frame) }
|
||||||
|
.debug_str 0 : { *(.debug_str) }
|
||||||
|
.debug_loc 0 : { *(.debug_loc) }
|
||||||
|
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||||
|
.debug_pubtypes 0 : { *(.debug_pubtypes) }
|
||||||
|
/* DWARF 3 */
|
||||||
|
.debug_ranges 0 : { *(.debug_ranges) }
|
||||||
|
/* SGI/MIPS DWARF 2 extensions */
|
||||||
|
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||||
|
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||||
|
.debug_typenames 0 : { *(.debug_typenames) }
|
||||||
|
.debug_varnames 0 : { *(.debug_varnames) }
|
||||||
|
/* GNU DWARF 2 extensions */
|
||||||
|
.debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) }
|
||||||
|
.debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) }
|
||||||
|
/* DWARF 4 */
|
||||||
|
.debug_types 0 : { *(.debug_types) }
|
||||||
|
/* DWARF 5 */
|
||||||
|
.debug_addr 0 : { *(.debug_addr) }
|
||||||
|
.debug_line_str 0 : { *(.debug_line_str) }
|
||||||
|
.debug_loclists 0 : { *(.debug_loclists) }
|
||||||
|
.debug_macro 0 : { *(.debug_macro) }
|
||||||
|
.debug_names 0 : { *(.debug_names) }
|
||||||
|
.debug_rnglists 0 : { *(.debug_rnglists) }
|
||||||
|
.debug_str_offsets 0 : { *(.debug_str_offsets) }
|
||||||
|
|
||||||
|
.comment 0 : { *(.comment) }
|
||||||
|
.note.GNU-stack 0: { *(.note.GNU-stack) }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Discarding .rela.* sections results in the following mapping:
|
||||||
|
* .rela.text.* -> .text.*
|
||||||
|
* .rela.data.* -> .data.*
|
||||||
|
* And so forth...
|
||||||
|
*/
|
||||||
|
/DISCARD/ : { *(.rela.*) }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@ -138,7 +138,7 @@ SECTIONS
|
|||||||
|
|
||||||
.dram0.data :
|
.dram0.data :
|
||||||
{
|
{
|
||||||
_data_start = ABSOLUTE(.);
|
*(.dram1 .dram1.*) /* catch stray DRAM_ATTR */
|
||||||
*(.data)
|
*(.data)
|
||||||
*(.data.*)
|
*(.data.*)
|
||||||
*(.gnu.linkonce.d.*)
|
*(.gnu.linkonce.d.*)
|
||||||
@ -164,6 +164,7 @@ SECTIONS
|
|||||||
*(.gcc_except_table)
|
*(.gcc_except_table)
|
||||||
*(.gnu.linkonce.e.*)
|
*(.gnu.linkonce.e.*)
|
||||||
*(.gnu.version_r)
|
*(.gnu.version_r)
|
||||||
|
*(.eh_frame_hdr)
|
||||||
*(.eh_frame)
|
*(.eh_frame)
|
||||||
. = (. + 3) & ~ 3;
|
. = (. + 3) & ~ 3;
|
||||||
/* C++ constructor and destructor tables, properly ordered: */
|
/* C++ constructor and destructor tables, properly ordered: */
|
||||||
@ -217,6 +218,58 @@ SECTIONS
|
|||||||
_etext = .;
|
_etext = .;
|
||||||
} > iram_seg
|
} > iram_seg
|
||||||
|
|
||||||
|
.riscv.attributes 0: { *(.riscv.attributes) }
|
||||||
|
|
||||||
|
/* DWARF 1 */
|
||||||
|
.debug 0 : { *(.debug) }
|
||||||
|
.line 0 : { *(.line) }
|
||||||
|
/* GNU DWARF 1 extensions */
|
||||||
|
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||||
|
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||||
|
/* DWARF 1.1 and DWARF 2 */
|
||||||
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
|
/* DWARF 2 */
|
||||||
|
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||||
|
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||||
|
.debug_line 0 : { *(.debug_line) }
|
||||||
|
.debug_frame 0 : { *(.debug_frame) }
|
||||||
|
.debug_str 0 : { *(.debug_str) }
|
||||||
|
.debug_loc 0 : { *(.debug_loc) }
|
||||||
|
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||||
|
.debug_pubtypes 0 : { *(.debug_pubtypes) }
|
||||||
|
/* DWARF 3 */
|
||||||
|
.debug_ranges 0 : { *(.debug_ranges) }
|
||||||
|
/* SGI/MIPS DWARF 2 extensions */
|
||||||
|
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||||
|
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||||
|
.debug_typenames 0 : { *(.debug_typenames) }
|
||||||
|
.debug_varnames 0 : { *(.debug_varnames) }
|
||||||
|
/* GNU DWARF 2 extensions */
|
||||||
|
.debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) }
|
||||||
|
.debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) }
|
||||||
|
/* DWARF 4 */
|
||||||
|
.debug_types 0 : { *(.debug_types) }
|
||||||
|
/* DWARF 5 */
|
||||||
|
.debug_addr 0 : { *(.debug_addr) }
|
||||||
|
.debug_line_str 0 : { *(.debug_line_str) }
|
||||||
|
.debug_loclists 0 : { *(.debug_loclists) }
|
||||||
|
.debug_macro 0 : { *(.debug_macro) }
|
||||||
|
.debug_names 0 : { *(.debug_names) }
|
||||||
|
.debug_rnglists 0 : { *(.debug_rnglists) }
|
||||||
|
.debug_str_offsets 0 : { *(.debug_str_offsets) }
|
||||||
|
|
||||||
|
.comment 0 : { *(.comment) }
|
||||||
|
.note.GNU-stack 0: { *(.note.GNU-stack) }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Discarding .rela.* sections results in the following mapping:
|
||||||
|
* .rela.text.* -> .text.*
|
||||||
|
* .rela.data.* -> .data.*
|
||||||
|
* And so forth...
|
||||||
|
*/
|
||||||
|
/DISCARD/ : { *(.rela.*) }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@ -131,9 +131,15 @@ SECTIONS
|
|||||||
_bss_end = ABSOLUTE(.);
|
_bss_end = ABSOLUTE(.);
|
||||||
} > dram_seg
|
} > dram_seg
|
||||||
|
|
||||||
.dram0.data :
|
.dram0.bootdesc : ALIGN(0x10)
|
||||||
{
|
{
|
||||||
_data_start = ABSOLUTE(.);
|
_data_start = ABSOLUTE(.);
|
||||||
|
*(.data_bootloader_desc .data_bootloader_desc.*) /* Should be the first. Bootloader version info. DO NOT PUT ANYTHING BEFORE IT! */
|
||||||
|
} > dram_seg
|
||||||
|
|
||||||
|
.dram0.data :
|
||||||
|
{
|
||||||
|
*(.dram1 .dram1.*) /* catch stray DRAM_ATTR */
|
||||||
*(.data)
|
*(.data)
|
||||||
*(.data.*)
|
*(.data.*)
|
||||||
*(.gnu.linkonce.d.*)
|
*(.gnu.linkonce.d.*)
|
||||||
@ -159,6 +165,7 @@ SECTIONS
|
|||||||
*(.gcc_except_table)
|
*(.gcc_except_table)
|
||||||
*(.gnu.linkonce.e.*)
|
*(.gnu.linkonce.e.*)
|
||||||
*(.gnu.version_r)
|
*(.gnu.version_r)
|
||||||
|
*(.eh_frame_hdr)
|
||||||
*(.eh_frame)
|
*(.eh_frame)
|
||||||
. = (. + 3) & ~ 3;
|
. = (. + 3) & ~ 3;
|
||||||
/* C++ constructor and destructor tables, properly ordered: */
|
/* C++ constructor and destructor tables, properly ordered: */
|
||||||
@ -212,6 +219,58 @@ SECTIONS
|
|||||||
_etext = .;
|
_etext = .;
|
||||||
} > iram_seg
|
} > iram_seg
|
||||||
|
|
||||||
|
.riscv.attributes 0: { *(.riscv.attributes) }
|
||||||
|
|
||||||
|
/* DWARF 1 */
|
||||||
|
.debug 0 : { *(.debug) }
|
||||||
|
.line 0 : { *(.line) }
|
||||||
|
/* GNU DWARF 1 extensions */
|
||||||
|
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||||
|
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||||
|
/* DWARF 1.1 and DWARF 2 */
|
||||||
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
|
/* DWARF 2 */
|
||||||
|
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||||
|
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||||
|
.debug_line 0 : { *(.debug_line) }
|
||||||
|
.debug_frame 0 : { *(.debug_frame) }
|
||||||
|
.debug_str 0 : { *(.debug_str) }
|
||||||
|
.debug_loc 0 : { *(.debug_loc) }
|
||||||
|
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||||
|
.debug_pubtypes 0 : { *(.debug_pubtypes) }
|
||||||
|
/* DWARF 3 */
|
||||||
|
.debug_ranges 0 : { *(.debug_ranges) }
|
||||||
|
/* SGI/MIPS DWARF 2 extensions */
|
||||||
|
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||||
|
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||||
|
.debug_typenames 0 : { *(.debug_typenames) }
|
||||||
|
.debug_varnames 0 : { *(.debug_varnames) }
|
||||||
|
/* GNU DWARF 2 extensions */
|
||||||
|
.debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) }
|
||||||
|
.debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) }
|
||||||
|
/* DWARF 4 */
|
||||||
|
.debug_types 0 : { *(.debug_types) }
|
||||||
|
/* DWARF 5 */
|
||||||
|
.debug_addr 0 : { *(.debug_addr) }
|
||||||
|
.debug_line_str 0 : { *(.debug_line_str) }
|
||||||
|
.debug_loclists 0 : { *(.debug_loclists) }
|
||||||
|
.debug_macro 0 : { *(.debug_macro) }
|
||||||
|
.debug_names 0 : { *(.debug_names) }
|
||||||
|
.debug_rnglists 0 : { *(.debug_rnglists) }
|
||||||
|
.debug_str_offsets 0 : { *(.debug_str_offsets) }
|
||||||
|
|
||||||
|
.comment 0 : { *(.comment) }
|
||||||
|
.note.GNU-stack 0: { *(.note.GNU-stack) }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Discarding .rela.* sections results in the following mapping:
|
||||||
|
* .rela.text.* -> .text.*
|
||||||
|
* .rela.data.* -> .data.*
|
||||||
|
* And so forth...
|
||||||
|
*/
|
||||||
|
/DISCARD/ : { *(.rela.*) }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@ -108,6 +108,7 @@ SECTIONS
|
|||||||
|
|
||||||
.dram0.data :
|
.dram0.data :
|
||||||
{
|
{
|
||||||
|
*(.dram1 .dram1.*) /* catch stray DRAM_ATTR */
|
||||||
*(.data)
|
*(.data)
|
||||||
*(.data.*)
|
*(.data.*)
|
||||||
*(.gnu.linkonce.d.*)
|
*(.gnu.linkonce.d.*)
|
||||||
@ -133,6 +134,7 @@ SECTIONS
|
|||||||
*(.gcc_except_table)
|
*(.gcc_except_table)
|
||||||
*(.gnu.linkonce.e.*)
|
*(.gnu.linkonce.e.*)
|
||||||
*(.gnu.version_r)
|
*(.gnu.version_r)
|
||||||
|
*(.eh_frame_hdr)
|
||||||
*(.eh_frame)
|
*(.eh_frame)
|
||||||
. = (. + 3) & ~ 3;
|
. = (. + 3) & ~ 3;
|
||||||
/* C++ constructor and destructor tables, properly ordered: */
|
/* C++ constructor and destructor tables, properly ordered: */
|
||||||
@ -205,4 +207,48 @@ SECTIONS
|
|||||||
KEEP (*(.xt.lit .gnu.linkonce.p.*))
|
KEEP (*(.xt.lit .gnu.linkonce.p.*))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.xtensa.info 0: { *(.xtensa.info) }
|
||||||
|
|
||||||
|
/* DWARF 1 */
|
||||||
|
.debug 0 : { *(.debug) }
|
||||||
|
.line 0 : { *(.line) }
|
||||||
|
/* GNU DWARF 1 extensions */
|
||||||
|
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||||
|
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||||
|
/* DWARF 1.1 and DWARF 2 */
|
||||||
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
|
/* DWARF 2 */
|
||||||
|
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||||
|
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||||
|
.debug_line 0 : { *(.debug_line) }
|
||||||
|
.debug_frame 0 : { *(.debug_frame) }
|
||||||
|
.debug_str 0 : { *(.debug_str) }
|
||||||
|
.debug_loc 0 : { *(.debug_loc) }
|
||||||
|
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||||
|
.debug_pubtypes 0 : { *(.debug_pubtypes) }
|
||||||
|
/* DWARF 3 */
|
||||||
|
.debug_ranges 0 : { *(.debug_ranges) }
|
||||||
|
/* SGI/MIPS DWARF 2 extensions */
|
||||||
|
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||||
|
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||||
|
.debug_typenames 0 : { *(.debug_typenames) }
|
||||||
|
.debug_varnames 0 : { *(.debug_varnames) }
|
||||||
|
/* GNU DWARF 2 extensions */
|
||||||
|
.debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) }
|
||||||
|
.debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) }
|
||||||
|
/* DWARF 4 */
|
||||||
|
.debug_types 0 : { *(.debug_types) }
|
||||||
|
/* DWARF 5 */
|
||||||
|
.debug_addr 0 : { *(.debug_addr) }
|
||||||
|
.debug_line_str 0 : { *(.debug_line_str) }
|
||||||
|
.debug_loclists 0 : { *(.debug_loclists) }
|
||||||
|
.debug_macro 0 : { *(.debug_macro) }
|
||||||
|
.debug_names 0 : { *(.debug_names) }
|
||||||
|
.debug_rnglists 0 : { *(.debug_rnglists) }
|
||||||
|
.debug_str_offsets 0 : { *(.debug_str_offsets) }
|
||||||
|
|
||||||
|
.comment 0 : { *(.comment) }
|
||||||
|
.note.GNU-stack 0: { *(.note.GNU-stack) }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@ -142,6 +142,7 @@ SECTIONS
|
|||||||
|
|
||||||
.dram0.data :
|
.dram0.data :
|
||||||
{
|
{
|
||||||
|
*(.dram1 .dram1.*) /* catch stray DRAM_ATTR */
|
||||||
*(.data)
|
*(.data)
|
||||||
*(.data.*)
|
*(.data.*)
|
||||||
*(.gnu.linkonce.d.*)
|
*(.gnu.linkonce.d.*)
|
||||||
@ -167,6 +168,7 @@ SECTIONS
|
|||||||
*(.gcc_except_table)
|
*(.gcc_except_table)
|
||||||
*(.gnu.linkonce.e.*)
|
*(.gnu.linkonce.e.*)
|
||||||
*(.gnu.version_r)
|
*(.gnu.version_r)
|
||||||
|
*(.eh_frame_hdr)
|
||||||
*(.eh_frame)
|
*(.eh_frame)
|
||||||
. = (. + 3) & ~ 3;
|
. = (. + 3) & ~ 3;
|
||||||
/* C++ constructor and destructor tables, properly ordered: */
|
/* C++ constructor and destructor tables, properly ordered: */
|
||||||
@ -239,6 +241,50 @@ SECTIONS
|
|||||||
KEEP (*(.xt.lit .gnu.linkonce.p.*))
|
KEEP (*(.xt.lit .gnu.linkonce.p.*))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.xtensa.info 0: { *(.xtensa.info) }
|
||||||
|
|
||||||
|
/* DWARF 1 */
|
||||||
|
.debug 0 : { *(.debug) }
|
||||||
|
.line 0 : { *(.line) }
|
||||||
|
/* GNU DWARF 1 extensions */
|
||||||
|
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||||
|
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||||
|
/* DWARF 1.1 and DWARF 2 */
|
||||||
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
|
/* DWARF 2 */
|
||||||
|
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||||
|
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||||
|
.debug_line 0 : { *(.debug_line) }
|
||||||
|
.debug_frame 0 : { *(.debug_frame) }
|
||||||
|
.debug_str 0 : { *(.debug_str) }
|
||||||
|
.debug_loc 0 : { *(.debug_loc) }
|
||||||
|
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||||
|
.debug_pubtypes 0 : { *(.debug_pubtypes) }
|
||||||
|
/* DWARF 3 */
|
||||||
|
.debug_ranges 0 : { *(.debug_ranges) }
|
||||||
|
/* SGI/MIPS DWARF 2 extensions */
|
||||||
|
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||||
|
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||||
|
.debug_typenames 0 : { *(.debug_typenames) }
|
||||||
|
.debug_varnames 0 : { *(.debug_varnames) }
|
||||||
|
/* GNU DWARF 2 extensions */
|
||||||
|
.debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) }
|
||||||
|
.debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) }
|
||||||
|
/* DWARF 4 */
|
||||||
|
.debug_types 0 : { *(.debug_types) }
|
||||||
|
/* DWARF 5 */
|
||||||
|
.debug_addr 0 : { *(.debug_addr) }
|
||||||
|
.debug_line_str 0 : { *(.debug_line_str) }
|
||||||
|
.debug_loclists 0 : { *(.debug_loclists) }
|
||||||
|
.debug_macro 0 : { *(.debug_macro) }
|
||||||
|
.debug_names 0 : { *(.debug_names) }
|
||||||
|
.debug_rnglists 0 : { *(.debug_rnglists) }
|
||||||
|
.debug_str_offsets 0 : { *(.debug_str_offsets) }
|
||||||
|
|
||||||
|
.comment 0 : { *(.comment) }
|
||||||
|
.note.GNU-stack 0: { *(.note.GNU-stack) }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
87
components/esp_system/ld/elf_misc.ld.in
Normal file
87
components/esp_system/ld/elf_misc.ld.in
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
#include "sdkconfig.h"
|
||||||
|
|
||||||
|
/* DWARF 1 */
|
||||||
|
.debug 0 : { *(.debug) }
|
||||||
|
.line 0 : { *(.line) }
|
||||||
|
/* GNU DWARF 1 extensions */
|
||||||
|
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||||
|
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||||
|
/* DWARF 1.1 and DWARF 2 */
|
||||||
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
|
/* DWARF 2 */
|
||||||
|
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||||
|
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||||
|
.debug_line 0 : { *(.debug_line) }
|
||||||
|
.debug_frame 0 : { *(.debug_frame) }
|
||||||
|
.debug_str 0 : { *(.debug_str) }
|
||||||
|
.debug_loc 0 : { *(.debug_loc) }
|
||||||
|
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||||
|
.debug_pubtypes 0 : { *(.debug_pubtypes) }
|
||||||
|
/* DWARF 3 */
|
||||||
|
.debug_ranges 0 : { *(.debug_ranges) }
|
||||||
|
/* SGI/MIPS DWARF 2 extensions */
|
||||||
|
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||||
|
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||||
|
.debug_typenames 0 : { *(.debug_typenames) }
|
||||||
|
.debug_varnames 0 : { *(.debug_varnames) }
|
||||||
|
/* GNU DWARF 2 extensions */
|
||||||
|
.debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) }
|
||||||
|
.debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) }
|
||||||
|
/* DWARF 4 */
|
||||||
|
.debug_types 0 : { *(.debug_types) }
|
||||||
|
/* DWARF 5 */
|
||||||
|
.debug_addr 0 : { *(.debug_addr) }
|
||||||
|
.debug_line_str 0 : { *(.debug_line_str) }
|
||||||
|
.debug_loclists 0 : { *(.debug_loclists) }
|
||||||
|
.debug_macro 0 : { *(.debug_macro) }
|
||||||
|
.debug_names 0 : { *(.debug_names) }
|
||||||
|
.debug_rnglists 0 : { *(.debug_rnglists) }
|
||||||
|
.debug_str_offsets 0 : { *(.debug_str_offsets) }
|
||||||
|
|
||||||
|
.comment 0 : { *(.comment) }
|
||||||
|
.note.GNU-stack 0: { *(.note.GNU-stack) }
|
||||||
|
|
||||||
|
#if CONFIG_IDF_TARGET_ARCH_RISCV
|
||||||
|
.riscv.attributes 0: { *(.riscv.attributes) }
|
||||||
|
|
||||||
|
/DISCARD/ :
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Discarding .rela.* sections results in the following mapping:
|
||||||
|
* .rela.text.* -> .text.*
|
||||||
|
* .rela.data.* -> .data.*
|
||||||
|
* And so forth...
|
||||||
|
*/
|
||||||
|
*(.rela.*)
|
||||||
|
#if !(CONFIG_COMPILER_CXX_EXCEPTIONS || CONFIG_ESP_SYSTEM_USE_EH_FRAME)
|
||||||
|
*(.eh_frame_hdr)
|
||||||
|
*(.eh_frame)
|
||||||
|
#endif // !(CONFIG_COMPILER_CXX_EXCEPTIONS || CONFIG_ESP_SYSTEM_USE_EH_FRAME)
|
||||||
|
}
|
||||||
|
#elif CONFIG_IDF_TARGET_ARCH_XTENSA
|
||||||
|
/**
|
||||||
|
* .xt.prop and .xt.lit sections will be used by the debugger and disassembler
|
||||||
|
* to get more information about raw data present in the code.
|
||||||
|
* Indeed, it may be required to add some padding at some points in the code
|
||||||
|
* in order to align a branch/jump destination on a particular bound.
|
||||||
|
* Padding these instructions will generate null bytes that shall be
|
||||||
|
* interpreted as data, and not code by the debugger or disassembler.
|
||||||
|
* This section will only be present in the ELF file, not in the final binary
|
||||||
|
* For more details, check GCC-212
|
||||||
|
*/
|
||||||
|
.xtensa.info 0: { *(.xtensa.info) }
|
||||||
|
.xt.prop 0 : { *(.xt.prop .xt.prop.* .gnu.linkonce.prop.*) }
|
||||||
|
.xt.lit 0 : { *(.xt.lit .xt.lit.* .gnu.linkonce.p.*) }
|
||||||
|
|
||||||
|
/DISCARD/ :
|
||||||
|
{
|
||||||
|
*(.fini)
|
||||||
|
*(.eh_frame_hdr)
|
||||||
|
#if !CONFIG_COMPILER_CXX_EXCEPTIONS
|
||||||
|
*(.eh_frame)
|
||||||
|
#endif // !CONFIG_COMPILER_CXX_EXCEPTIONS
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
#error "Target architecture is not supported!"
|
||||||
|
#endif
|
@ -218,6 +218,7 @@ SECTIONS
|
|||||||
*(.UserEnter.literal);
|
*(.UserEnter.literal);
|
||||||
*(.UserEnter.text);
|
*(.UserEnter.text);
|
||||||
. = ALIGN (16);
|
. = ALIGN (16);
|
||||||
|
*(.entry.literal)
|
||||||
*(.entry.text)
|
*(.entry.text)
|
||||||
*(.init.literal)
|
*(.init.literal)
|
||||||
*(.init)
|
*(.init)
|
||||||
@ -490,33 +491,7 @@ SECTIONS
|
|||||||
ALIGNED_SYMBOL(8, _heap_low_start)
|
ALIGNED_SYMBOL(8, _heap_low_start)
|
||||||
} > dram0_0_seg
|
} > dram0_0_seg
|
||||||
|
|
||||||
/**
|
#include "elf_misc.ld.in"
|
||||||
* This section will be used by the debugger and disassembler to get more
|
|
||||||
* information about raw data present in the code.
|
|
||||||
* Indeed, it may be required to add some padding at some points in the code
|
|
||||||
* in order to align a branch/jump destination on a particular bound.
|
|
||||||
* Padding these instructions will generate null bytes that shall be
|
|
||||||
* interpreted as data, and not code by the debugger or disassembler.
|
|
||||||
* This section will only be present in the ELF file, not in the final binary
|
|
||||||
* For more details, check GCC-212
|
|
||||||
*/
|
|
||||||
.xt.prop 0 :
|
|
||||||
{
|
|
||||||
KEEP (*(.xt.prop .xt.prop.* .gnu.linkonce.prop.*))
|
|
||||||
}
|
|
||||||
|
|
||||||
.xt.lit 0 :
|
|
||||||
{
|
|
||||||
KEEP (*(.xt.lit .xt.lit.* .gnu.linkonce.p.*))
|
|
||||||
}
|
|
||||||
|
|
||||||
/DISCARD/ :
|
|
||||||
{
|
|
||||||
*(.eh_frame_hdr)
|
|
||||||
#if !CONFIG_COMPILER_CXX_EXCEPTIONS
|
|
||||||
*(.eh_frame)
|
|
||||||
#endif // !CONFIG_COMPILER_CXX_EXCEPTIONS
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT(((_iram_end - ORIGIN(iram0_0_seg)) <= LENGTH(iram0_0_seg)),
|
ASSERT(((_iram_end - ORIGIN(iram0_0_seg)) <= LENGTH(iram0_0_seg)),
|
||||||
|
@ -345,20 +345,7 @@ SECTIONS
|
|||||||
ALIGNED_SYMBOL(16, _heap_start)
|
ALIGNED_SYMBOL(16, _heap_start)
|
||||||
} > dram0_0_seg
|
} > dram0_0_seg
|
||||||
|
|
||||||
/DISCARD/ :
|
#include "elf_misc.ld.in"
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Discarding .rela.* sections results in the following mapping:
|
|
||||||
* .rela.text.* -> .text.*
|
|
||||||
* .rela.data.* -> .data.*
|
|
||||||
* And so forth...
|
|
||||||
*/
|
|
||||||
*(.rela.*)
|
|
||||||
#if !(CONFIG_COMPILER_CXX_EXCEPTIONS || CONFIG_ESP_SYSTEM_USE_EH_FRAME)
|
|
||||||
*(.eh_frame_hdr)
|
|
||||||
*(.eh_frame)
|
|
||||||
#endif // !(CONFIG_COMPILER_CXX_EXCEPTIONS || CONFIG_ESP_SYSTEM_USE_EH_FRAME)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT(((_iram_end - ORIGIN(iram0_0_seg)) <= LENGTH(iram0_0_seg)),
|
ASSERT(((_iram_end - ORIGIN(iram0_0_seg)) <= LENGTH(iram0_0_seg)),
|
||||||
|
@ -457,20 +457,7 @@ SECTIONS
|
|||||||
ALIGNED_SYMBOL(16, _heap_start)
|
ALIGNED_SYMBOL(16, _heap_start)
|
||||||
} > dram0_0_seg
|
} > dram0_0_seg
|
||||||
|
|
||||||
/DISCARD/ :
|
#include "elf_misc.ld.in"
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Discarding .rela.* sections results in the following mapping:
|
|
||||||
* .rela.text.* -> .text.*
|
|
||||||
* .rela.data.* -> .data.*
|
|
||||||
* And so forth...
|
|
||||||
*/
|
|
||||||
*(.rela.*)
|
|
||||||
#if !(CONFIG_COMPILER_CXX_EXCEPTIONS || CONFIG_ESP_SYSTEM_USE_EH_FRAME)
|
|
||||||
*(.eh_frame_hdr)
|
|
||||||
*(.eh_frame)
|
|
||||||
#endif // !(CONFIG_COMPILER_CXX_EXCEPTIONS || CONFIG_ESP_SYSTEM_USE_EH_FRAME)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT(((_iram_end - ORIGIN(iram0_0_seg)) <= LENGTH(iram0_0_seg)),
|
ASSERT(((_iram_end - ORIGIN(iram0_0_seg)) <= LENGTH(iram0_0_seg)),
|
||||||
|
@ -448,20 +448,7 @@ SECTIONS
|
|||||||
ALIGNED_SYMBOL(16, _heap_start)
|
ALIGNED_SYMBOL(16, _heap_start)
|
||||||
} > dram0_0_seg
|
} > dram0_0_seg
|
||||||
|
|
||||||
/DISCARD/ :
|
#include "elf_misc.ld.in"
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Discarding .rela.* sections results in the following mapping:
|
|
||||||
* .rela.text.* -> .text.*
|
|
||||||
* .rela.data.* -> .data.*
|
|
||||||
* And so forth...
|
|
||||||
*/
|
|
||||||
*(.rela.*)
|
|
||||||
#if !(CONFIG_COMPILER_CXX_EXCEPTIONS || CONFIG_ESP_SYSTEM_USE_EH_FRAME)
|
|
||||||
*(.eh_frame_hdr)
|
|
||||||
*(.eh_frame)
|
|
||||||
#endif // !(CONFIG_COMPILER_CXX_EXCEPTIONS || CONFIG_ESP_SYSTEM_USE_EH_FRAME)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT(((_iram_end - ORIGIN(iram0_0_seg)) <= LENGTH(iram0_0_seg)),
|
ASSERT(((_iram_end - ORIGIN(iram0_0_seg)) <= LENGTH(iram0_0_seg)),
|
||||||
|
@ -448,20 +448,7 @@ SECTIONS
|
|||||||
ALIGNED_SYMBOL(16, _heap_start)
|
ALIGNED_SYMBOL(16, _heap_start)
|
||||||
} > sram_seg
|
} > sram_seg
|
||||||
|
|
||||||
/DISCARD/ :
|
#include "elf_misc.ld.in"
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Discarding .rela.* sections results in the following mapping:
|
|
||||||
* .rela.text.* -> .text.*
|
|
||||||
* .rela.data.* -> .data.*
|
|
||||||
* And so forth...
|
|
||||||
*/
|
|
||||||
*(.rela.*)
|
|
||||||
#if !(CONFIG_COMPILER_CXX_EXCEPTIONS || CONFIG_ESP_SYSTEM_USE_EH_FRAME)
|
|
||||||
*(.eh_frame_hdr)
|
|
||||||
*(.eh_frame)
|
|
||||||
#endif // !(CONFIG_COMPILER_CXX_EXCEPTIONS || CONFIG_ESP_SYSTEM_USE_EH_FRAME)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT(((_iram_end - ORIGIN(sram_seg)) <= LENGTH(sram_seg)),
|
ASSERT(((_iram_end - ORIGIN(sram_seg)) <= LENGTH(sram_seg)),
|
||||||
|
@ -438,18 +438,5 @@ SECTIONS
|
|||||||
ALIGNED_SYMBOL(16, _heap_start)
|
ALIGNED_SYMBOL(16, _heap_start)
|
||||||
} > sram_seg
|
} > sram_seg
|
||||||
|
|
||||||
/DISCARD/ :
|
#include "elf_misc.ld.in"
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Discarding .rela.* sections results in the following mapping:
|
|
||||||
* .rela.text.* -> .text.*
|
|
||||||
* .rela.data.* -> .data.*
|
|
||||||
* And so forth...
|
|
||||||
*/
|
|
||||||
*(.rela.*)
|
|
||||||
#if !(CONFIG_COMPILER_CXX_EXCEPTIONS || CONFIG_ESP_SYSTEM_USE_EH_FRAME)
|
|
||||||
*(.eh_frame_hdr)
|
|
||||||
*(.eh_frame)
|
|
||||||
#endif // !(CONFIG_COMPILER_CXX_EXCEPTIONS || CONFIG_ESP_SYSTEM_USE_EH_FRAME)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -448,20 +448,7 @@ SECTIONS
|
|||||||
ALIGNED_SYMBOL(16, _heap_start)
|
ALIGNED_SYMBOL(16, _heap_start)
|
||||||
} > sram_seg
|
} > sram_seg
|
||||||
|
|
||||||
/DISCARD/ :
|
#include "elf_misc.ld.in"
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Discarding .rela.* sections results in the following mapping:
|
|
||||||
* .rela.text.* -> .text.*
|
|
||||||
* .rela.data.* -> .data.*
|
|
||||||
* And so forth...
|
|
||||||
*/
|
|
||||||
*(.rela.*)
|
|
||||||
#if !(CONFIG_COMPILER_CXX_EXCEPTIONS || CONFIG_ESP_SYSTEM_USE_EH_FRAME)
|
|
||||||
*(.eh_frame_hdr)
|
|
||||||
*(.eh_frame)
|
|
||||||
#endif // !(CONFIG_COMPILER_CXX_EXCEPTIONS || CONFIG_ESP_SYSTEM_USE_EH_FRAME)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT(((_iram_end - ORIGIN(sram_seg)) <= LENGTH(sram_seg)),
|
ASSERT(((_iram_end - ORIGIN(sram_seg)) <= LENGTH(sram_seg)),
|
||||||
|
@ -438,18 +438,5 @@ SECTIONS
|
|||||||
ALIGNED_SYMBOL(16, _heap_start)
|
ALIGNED_SYMBOL(16, _heap_start)
|
||||||
} > sram_seg
|
} > sram_seg
|
||||||
|
|
||||||
/DISCARD/ :
|
#include "elf_misc.ld.in"
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Discarding .rela.* sections results in the following mapping:
|
|
||||||
* .rela.text.* -> .text.*
|
|
||||||
* .rela.data.* -> .data.*
|
|
||||||
* And so forth...
|
|
||||||
*/
|
|
||||||
*(.rela.*)
|
|
||||||
#if !(CONFIG_COMPILER_CXX_EXCEPTIONS || CONFIG_ESP_SYSTEM_USE_EH_FRAME)
|
|
||||||
*(.eh_frame_hdr)
|
|
||||||
*(.eh_frame)
|
|
||||||
#endif // !(CONFIG_COMPILER_CXX_EXCEPTIONS || CONFIG_ESP_SYSTEM_USE_EH_FRAME)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -514,18 +514,5 @@ SECTIONS
|
|||||||
ALIGNED_SYMBOL(16, _heap_start_high)
|
ALIGNED_SYMBOL(16, _heap_start_high)
|
||||||
} > sram_high
|
} > sram_high
|
||||||
|
|
||||||
/DISCARD/ :
|
#include "elf_misc.ld.in"
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Discarding .rela.* sections results in the following mapping:
|
|
||||||
* .rela.text.* -> .text.*
|
|
||||||
* .rela.data.* -> .data.*
|
|
||||||
* And so forth...
|
|
||||||
*/
|
|
||||||
*(.rela.*)
|
|
||||||
#if !(CONFIG_COMPILER_CXX_EXCEPTIONS || CONFIG_ESP_SYSTEM_USE_EH_FRAME)
|
|
||||||
*(.eh_frame_hdr)
|
|
||||||
*(.eh_frame)
|
|
||||||
#endif // !(CONFIG_COMPILER_CXX_EXCEPTIONS || CONFIG_ESP_SYSTEM_USE_EH_FRAME)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -204,6 +204,7 @@ SECTIONS
|
|||||||
*(.UserEnter.literal);
|
*(.UserEnter.literal);
|
||||||
*(.UserEnter.text);
|
*(.UserEnter.text);
|
||||||
. = ALIGN (16);
|
. = ALIGN (16);
|
||||||
|
*(.entry.literal)
|
||||||
*(.entry.text)
|
*(.entry.text)
|
||||||
*(.init.literal)
|
*(.init.literal)
|
||||||
*(.init)
|
*(.init)
|
||||||
@ -454,33 +455,7 @@ SECTIONS
|
|||||||
ALIGNED_SYMBOL(8, _heap_low_start)
|
ALIGNED_SYMBOL(8, _heap_low_start)
|
||||||
} > dram0_0_seg
|
} > dram0_0_seg
|
||||||
|
|
||||||
/**
|
#include "elf_misc.ld.in"
|
||||||
* This section will be used by the debugger and disassembler to get more
|
|
||||||
* information about raw data present in the code.
|
|
||||||
* Indeed, it may be required to add some padding at some points in the code
|
|
||||||
* in order to align a branch/jump destination on a particular bound.
|
|
||||||
* Padding these instructions will generate null bytes that shall be
|
|
||||||
* interpreted as data, and not code by the debugger or disassembler.
|
|
||||||
* This section will only be present in the ELF file, not in the final binary
|
|
||||||
* For more details, check GCC-212
|
|
||||||
*/
|
|
||||||
.xt.prop 0 :
|
|
||||||
{
|
|
||||||
KEEP (*(.xt.prop .xt.prop.* .gnu.linkonce.prop.*))
|
|
||||||
}
|
|
||||||
|
|
||||||
.xt.lit 0 :
|
|
||||||
{
|
|
||||||
KEEP (*(.xt.lit .xt.lit.* .gnu.linkonce.p.*))
|
|
||||||
}
|
|
||||||
|
|
||||||
/DISCARD/ :
|
|
||||||
{
|
|
||||||
*(.eh_frame_hdr)
|
|
||||||
#if !CONFIG_COMPILER_CXX_EXCEPTIONS
|
|
||||||
*(.eh_frame)
|
|
||||||
#endif // !CONFIG_COMPILER_CXX_EXCEPTIONS
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT(((_iram_text_end - ORIGIN(iram0_0_seg)) <= LENGTH(iram0_0_seg)),
|
ASSERT(((_iram_text_end - ORIGIN(iram0_0_seg)) <= LENGTH(iram0_0_seg)),
|
||||||
|
@ -20,7 +20,7 @@ SECTIONS
|
|||||||
ALIGNED_SYMBOL(4, _rtc_fast_start)
|
ALIGNED_SYMBOL(4, _rtc_fast_start)
|
||||||
ALIGNED_SYMBOL(4, _rtc_text_start)
|
ALIGNED_SYMBOL(4, _rtc_text_start)
|
||||||
|
|
||||||
*(.rtc.entry.text)
|
*(.rtc.entry.literal .rtc.entry.text)
|
||||||
|
|
||||||
mapping[rtc_text]
|
mapping[rtc_text]
|
||||||
|
|
||||||
@ -187,6 +187,7 @@ SECTIONS
|
|||||||
*(.UserEnter.literal);
|
*(.UserEnter.literal);
|
||||||
*(.UserEnter.text);
|
*(.UserEnter.text);
|
||||||
. = ALIGN (16);
|
. = ALIGN (16);
|
||||||
|
*(.entry.literal)
|
||||||
*(.entry.text)
|
*(.entry.text)
|
||||||
*(.init.literal)
|
*(.init.literal)
|
||||||
*(.init)
|
*(.init)
|
||||||
@ -487,33 +488,7 @@ SECTIONS
|
|||||||
ALIGNED_SYMBOL(8, _heap_low_start)
|
ALIGNED_SYMBOL(8, _heap_low_start)
|
||||||
} > dram0_0_seg
|
} > dram0_0_seg
|
||||||
|
|
||||||
/**
|
#include "elf_misc.ld.in"
|
||||||
* This section will be used by the debugger and disassembler to get more
|
|
||||||
* information about raw data present in the code.
|
|
||||||
* Indeed, it may be required to add some padding at some points in the code
|
|
||||||
* in order to align a branch/jump destination on a particular bound.
|
|
||||||
* Padding these instructions will generate null bytes that shall be
|
|
||||||
* interpreted as data, and not code by the debugger or disassembler.
|
|
||||||
* This section will only be present in the ELF file, not in the final binary
|
|
||||||
* For more details, check GCC-212
|
|
||||||
*/
|
|
||||||
.xt.prop 0 :
|
|
||||||
{
|
|
||||||
KEEP (*(.xt.prop .xt.prop.* .gnu.linkonce.prop.*))
|
|
||||||
}
|
|
||||||
|
|
||||||
.xt.lit 0 :
|
|
||||||
{
|
|
||||||
KEEP (*(.xt.lit .xt.lit.* .gnu.linkonce.p.*))
|
|
||||||
}
|
|
||||||
|
|
||||||
/DISCARD/ :
|
|
||||||
{
|
|
||||||
*(.eh_frame_hdr)
|
|
||||||
#if !CONFIG_COMPILER_CXX_EXCEPTIONS
|
|
||||||
*(.eh_frame)
|
|
||||||
#endif // !CONFIG_COMPILER_CXX_EXCEPTIONS
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT(((_iram_end - ORIGIN(iram0_0_seg)) <= LENGTH(iram0_0_seg)),
|
ASSERT(((_iram_end - ORIGIN(iram0_0_seg)) <= LENGTH(iram0_0_seg)),
|
||||||
|
@ -67,7 +67,7 @@ idf_build_set_property(__COMPONENT_MANAGER_INTERFACE_VERSION 2)
|
|||||||
# Parse and store the VERSION argument provided to the project() command.
|
# Parse and store the VERSION argument provided to the project() command.
|
||||||
#
|
#
|
||||||
function(__parse_and_store_version_arg)
|
function(__parse_and_store_version_arg)
|
||||||
# The project_name is the fisrt argument that was passed to the project() command
|
# The project_name is the first argument that was passed to the project() command
|
||||||
set(project_name ${ARGV0})
|
set(project_name ${ARGV0})
|
||||||
|
|
||||||
# Parse other arguments passed to the project() call
|
# Parse other arguments passed to the project() call
|
||||||
@ -663,7 +663,7 @@ macro(project project_name)
|
|||||||
# 3. git describe if the project is in a git repository
|
# 3. git describe if the project is in a git repository
|
||||||
# 4. Default to 1 if none of the above conditions are true
|
# 4. Default to 1 if none of the above conditions are true
|
||||||
#
|
#
|
||||||
# PS: PROJECT_VER will get overidden later if CONFIG_APP_PROJECT_VER_FROM_CONFIG is defined.
|
# PS: PROJECT_VER will get overridden later if CONFIG_APP_PROJECT_VER_FROM_CONFIG is defined.
|
||||||
# See components/esp_app_format/CMakeLists.txt.
|
# See components/esp_app_format/CMakeLists.txt.
|
||||||
if(NOT DEFINED PROJECT_VER)
|
if(NOT DEFINED PROJECT_VER)
|
||||||
# Read the version information from the version.txt file if it is present
|
# Read the version information from the version.txt file if it is present
|
||||||
@ -825,6 +825,10 @@ macro(project project_name)
|
|||||||
# Do not print RWX segment warnings
|
# Do not print RWX segment warnings
|
||||||
target_link_options(${project_elf} PRIVATE "-Wl,--no-warn-rwx-segments")
|
target_link_options(${project_elf} PRIVATE "-Wl,--no-warn-rwx-segments")
|
||||||
endif()
|
endif()
|
||||||
|
if(CONFIG_ESP_ORPHAN_SECTION_WARNING)
|
||||||
|
# Print warnings if orphan sections are found
|
||||||
|
target_link_options(${project_elf} PRIVATE "-Wl,--orphan-handling=warn")
|
||||||
|
endif()
|
||||||
unset(idf_target)
|
unset(idf_target)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -426,3 +426,7 @@
|
|||||||
-
|
-
|
||||||
re: "implicit declaration of function '(opendir|readdir|telldir|seekdir|rewinddir|closedir|readdir_r|scandir|alphasort)'"
|
re: "implicit declaration of function '(opendir|readdir|telldir|seekdir|rewinddir|closedir|readdir_r|scandir|alphasort)'"
|
||||||
hint: "Please include <dirent.h> (not <sys/dirent.h>)"
|
hint: "Please include <dirent.h> (not <sys/dirent.h>)"
|
||||||
|
|
||||||
|
-
|
||||||
|
re: "unplaced orphan section"
|
||||||
|
hint: "Avoid creating custom sections. Please refer to the 'Linker Script Generation' article in the IDF documentation to address this. Or set option CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE (not recommended)."
|
||||||
|
3
tools/test_apps/system/g0_components/sdkconfig.defaults
Normal file
3
tools/test_apps/system/g0_components/sdkconfig.defaults
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# G0 components test does not use IDF's linker scripts, so stray sections could exist.
|
||||||
|
# Suppress linker's messages about orphan sections.
|
||||||
|
CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE=y
|
Loading…
Reference in New Issue
Block a user