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

By default Clang puts constructors into '.init_array'.
Close https://github.com/espressif/esp-idf/issues/17990
This commit is contained in:
Alexey Gerenkov
2026-05-12 17:56:45 +03:00
parent 089548e805
commit be24b7c287
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(.);