diff options
author | Jens Wiklander <jens.wiklander@linaro.org> | 2015-12-06 11:01:54 +0100 |
---|---|---|
committer | Pascal Brand <pascal.brand@st.com> | 2016-02-10 06:38:36 +0100 |
commit | 923c1f343db556196600a1788c437715083264f8 (patch) | |
tree | a6573f73668c47c70bc94e6edf83e55b178772b7 /mk/config.mk | |
parent | a1989c09670c506604b60b16d54281a633c5eb41 (diff) |
core: stack unwinding
Adds support for stack unwinding, currently only done for fatal aborts
from kernel mode if CFG_CORE_UNWIND = y
The ARMv7/Aarch32 implementation uses -funwind-tables to generate frame
unwinding information which is quite large. Enabling stack unwinding
currently consumes ~8 KiB. The code to parse the frame unwind
information is imported from FreeBSD.
The Aarch64 implementation takes advantage of the frame pointer and has
minimal overhead. The core code to unwind the stack is imported from
FreeBSD.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey 32/64)
Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU, FVP)
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
Diffstat (limited to 'mk/config.mk')
-rw-r--r-- | mk/config.mk | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/mk/config.mk b/mk/config.mk index aa278fea..546d6483 100644 --- a/mk/config.mk +++ b/mk/config.mk @@ -116,3 +116,9 @@ CFG_LIBUTILS_WITH_ISOC ?= y # nothing with ` -mgeneral-regs-only`) # With CFG_TA_FLOAT_SUPPORT enabled TA code is free use floating point types CFG_TA_FLOAT_SUPPORT ?= y + +# Enable stack unwinding for aborts from kernel mode if CFG_TEE_CORE_DEBUG +# is enabled +ifeq ($(CFG_TEE_CORE_DEBUG),1) +CFG_CORE_UNWIND ?= y +endif |