This commit introduces a new ARCH_STACKWALK Kconfig which determines if the `arch_stack_walk()` is available should the arch supports it. Starting from RISCV, this will be able to converge the exception stack trace implementation & stack walking features. Existing exception stack trace implementation will be updated later. Eventually we will end up with the following: 1. If an arch implements `arch_stack_walk()` `ARCH_HAS_STACKWALK` should be selected. 2. If the above is enabled, `ARCH_SUPPORTS_STACKWALK` indicates if the dependencies are met for arch to enable stack walking. This Kconfig replaces `<arch>_EXCEPTION_STACK_TRACE` 2. If the above is enabled, then, `ARCH_STACKWALK` determines if `arch_stack_walk()` should be compiled. 3. `EXCEPTION_STACK_TRACE` should build on top of the `ARCH_STACKWALK`, stack traces will be printed when it is enabled. 4. `ARCH_STACKWALK_MAX_FRAMES` will be removed as it is replaced by `ARCH_STACKWALK_MAX_FRAMES` Signed-off-by: Yong Cong Sin <ycsin@meta.com> Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
30 lines
894 B
CMake
30 lines
894 B
CMake
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
zephyr_library()
|
|
|
|
zephyr_library_sources(
|
|
cpu_idle.c
|
|
fatal.c
|
|
irq_manage.c
|
|
prep_c.c
|
|
reboot.c
|
|
reset.S
|
|
switch.S
|
|
thread.c
|
|
)
|
|
|
|
if ((CONFIG_MP_MAX_NUM_CPUS GREATER 1) OR (CONFIG_SMP))
|
|
zephyr_library_sources(smp.c)
|
|
endif ()
|
|
|
|
zephyr_library_sources_ifdef(CONFIG_FPU_SHARING fpu.c fpu.S)
|
|
zephyr_library_sources_ifdef(CONFIG_DEBUG_COREDUMP coredump.c)
|
|
zephyr_library_sources_ifdef(CONFIG_IRQ_OFFLOAD irq_offload.c)
|
|
zephyr_library_sources_ifdef(CONFIG_GEN_SW_ISR_TABLE isr.S)
|
|
zephyr_library_sources_ifdef(CONFIG_RISCV_PMP pmp.c pmp.S)
|
|
zephyr_library_sources_ifdef(CONFIG_THREAD_LOCAL_STORAGE tls.c)
|
|
zephyr_library_sources_ifdef(CONFIG_USERSPACE userspace.S)
|
|
zephyr_library_sources_ifdef(CONFIG_SEMIHOST semihost.c)
|
|
zephyr_library_sources_ifdef(CONFIG_ARCH_STACKWALK stacktrace.c)
|
|
zephyr_linker_sources(ROM_START SORT_KEY 0x0vectors vector_table.ld)
|