Merge branch 'fix/clang_xtensa_ctors_call' into 'master'

fix(build): Fixed constructors placement by Clang for Xtensa

Closes IDFGH-16929

See merge request espressif/esp-idf!44064
This commit is contained in:
Alexey Gerenkov
2026-03-26 16:58:52 +08:00
3 changed files with 15 additions and 0 deletions
@@ -352,8 +352,13 @@ SECTIONS
KEEP (*(.preinit_array))
__preinit_array_end = ABSOLUTE(.);
ALIGNED_SYMBOL(4, __init_array_start)
#if CONFIG_IDF_TOOLCHAIN_CLANG
KEEP (*(SORT_BY_INIT_PRIORITY(EXCLUDE_FILE (*crtend.* *crtbegin.*) .init_array.*)))
KEEP (*(EXCLUDE_FILE (*crtend.* *crtbegin.*) .init_array))
#else
KEEP (*(SORT_BY_INIT_PRIORITY(EXCLUDE_FILE (*crtend.* *crtbegin.*) .ctors.*)))
KEEP (*(EXCLUDE_FILE (*crtend.* *crtbegin.*) .ctors))
#endif
__init_array_end = ABSOLUTE(.);
__bothinit_array_end = ABSOLUTE(.);
@@ -356,8 +356,13 @@ SECTIONS
KEEP (*(.preinit_array))
__preinit_array_end = ABSOLUTE(.);
ALIGNED_SYMBOL(4, __init_array_start)
#if CONFIG_IDF_TOOLCHAIN_CLANG
KEEP (*(SORT_BY_INIT_PRIORITY(EXCLUDE_FILE (*crtend.* *crtbegin.*) .init_array.*)))
KEEP (*(EXCLUDE_FILE (*crtend.* *crtbegin.*) .init_array))
#else
KEEP (*(SORT_BY_INIT_PRIORITY(EXCLUDE_FILE (*crtend.* *crtbegin.*) .ctors.*)))
KEEP (*(EXCLUDE_FILE (*crtend.* *crtbegin.*) .ctors))
#endif
__init_array_end = ABSOLUTE(.);
__bothinit_array_end = ABSOLUTE(.);
@@ -365,8 +365,13 @@ SECTIONS
KEEP (*(.preinit_array))
__preinit_array_end = ABSOLUTE(.);
ALIGNED_SYMBOL(4, __init_array_start)
#if CONFIG_IDF_TOOLCHAIN_CLANG
KEEP (*(SORT_BY_INIT_PRIORITY(EXCLUDE_FILE (*crtend.* *crtbegin.*) .init_array.*)))
KEEP (*(EXCLUDE_FILE (*crtend.* *crtbegin.*) .init_array))
#else
KEEP (*(SORT_BY_INIT_PRIORITY(EXCLUDE_FILE (*crtend.* *crtbegin.*) .ctors.*)))
KEEP (*(EXCLUDE_FILE (*crtend.* *crtbegin.*) .ctors))
#endif
__init_array_end = ABSOLUTE(.);
__bothinit_array_end = ABSOLUTE(.);