esp_system: fix placement of __stack_chk_fail from flash to RAM

When stack check is enabled, certain functions (sometimes placed in RAM)
are being decorated with stack guards and a call to __stask_chk_fail() in
case ofr stack corruption. For this reason, __stack_chk_fail() must be
placed in RAM too.

Add stack check config in heap tests on all targets to find eventual flash to RAM
calls due to stack checks when running callgraph_check.py
This commit is contained in:
Guillaume Souchere
2022-12-06 09:23:52 +01:00
parent 505a78f4f5
commit 4d16f46a88
2 changed files with 5 additions and 3 deletions

View File

@@ -23,10 +23,9 @@ __esp_stack_guard_setup (void)
__stack_chk_guard = (void *)esp_random();
}
void __stack_chk_fail (void)
IRAM_ATTR void __stack_chk_fail (void)
{
esp_rom_printf("\r\nStack smashing protect failure!\r\n\r\n");
abort();
esp_system_abort(DRAM_STR("Stack smashing protect failure!"));
}
#endif

View File

@@ -1,3 +1,6 @@
CONFIG_COMPILER_DUMP_RTL_FILES=y
CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=n
CONFIG_ESP_SYSTEM_MEMPROT_FEATURE=n # memory protection needs to be disabled for certain tests
CONFIG_COMPILER_STACK_CHECK_MODE_ALL=y
CONFIG_COMPILER_STACK_CHECK=y