diff --git a/components/esp_system/ld/esp32p4/sections.rev3.ld.in b/components/esp_system/ld/esp32p4/sections.rev3.ld.in index e370942abf..8163968790 100644 --- a/components/esp_system/ld/esp32p4/sections.rev3.ld.in +++ b/components/esp_system/ld/esp32p4/sections.rev3.ld.in @@ -403,20 +403,12 @@ SECTIONS * C++ constructor tables. * * Excluding crtbegin.o/crtend.o since IDF doesn't use the toolchain crt. - * - * RISC-V gcc is configured with --enable-initfini-array so it emits - * .init_array section instead. But the init_priority sections will be - * sorted for iteration in ascending order during startup. - * The rest of the init_array sections is sorted for iteration in descending - * order during startup, however. Hence a different section is generated for - * the init_priority functions which is iterated in ascending order during - * startup. The corresponding code can be found in startup.c. */ - ALIGNED_SYMBOL(4, __init_priority_array_start) - KEEP (*(EXCLUDE_FILE (*crtend.* *crtbegin.*) .init_array.*)) - __init_priority_array_end = ABSOLUTE(.); - + ALIGNED_SYMBOL(4, __preinit_array_start) + KEEP (*(.preinit_array)) + __preinit_array_end = ABSOLUTE(.); ALIGNED_SYMBOL(4, __init_array_start) + KEEP (*(SORT_BY_INIT_PRIORITY(EXCLUDE_FILE (*crtend.* *crtbegin.*) .init_array.*))) KEEP (*(EXCLUDE_FILE (*crtend.* *crtbegin.*) .init_array)) __init_array_end = ABSOLUTE(.); diff --git a/tools/test_apps/system/.build-test-rules.yml b/tools/test_apps/system/.build-test-rules.yml index a763213fea..10f75ab836 100644 --- a/tools/test_apps/system/.build-test-rules.yml +++ b/tools/test_apps/system/.build-test-rules.yml @@ -94,10 +94,6 @@ tools/test_apps/system/gdb_loadable_elf: tools/test_apps/system/init_array: enable: - if: INCLUDE_DEFAULT == 1 or IDF_TARGET == "linux" - disable_test: - - if: IDF_TARGET == "esp32p4" - temporary: true - reason: p4 rev3 migration # TODO: IDF-14425 depends_components: - esp_system depends_filepatterns: diff --git a/tools/test_apps/system/init_array/pytest_init_array.py b/tools/test_apps/system/init_array/pytest_init_array.py index df3b1ae8e8..fe367c7998 100644 --- a/tools/test_apps/system/init_array/pytest_init_array.py +++ b/tools/test_apps/system/init_array/pytest_init_array.py @@ -7,7 +7,6 @@ from pytest_embedded_idf.utils import idf_parametrize @pytest.mark.generic @idf_parametrize('target', ['supported_targets', 'preview_targets', 'linux'], indirect=['target']) -@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration # TODO: IDF-14425') def test_init_array(dut: Dut) -> None: dut.expect_exact('preinit_func') dut.expect_exact('init_prio_101')