xref: /arm-trusted-firmware/common/backtrace/backtrace.mk (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu#
2*91f16700Schasinglulu# Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
3*91f16700Schasinglulu#
4*91f16700Schasinglulu# SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu#
6*91f16700Schasinglulu
7*91f16700Schasinglulu# Enable backtrace by default in DEBUG AArch64 builds
8*91f16700Schasingluluifeq (${ARCH},aarch32)
9*91f16700Schasinglulu        ENABLE_BACKTRACE 	:=	0
10*91f16700Schasingluluelse
11*91f16700Schasinglulu        ENABLE_BACKTRACE 	:=	${DEBUG}
12*91f16700Schasingluluendif
13*91f16700Schasinglulu
14*91f16700Schasingluluifeq (${ENABLE_BACKTRACE},1)
15*91f16700Schasinglulu        # Force the compiler to include the frame pointer
16*91f16700Schasinglulu        TF_CFLAGS		+=	-fno-omit-frame-pointer
17*91f16700Schasinglulu
18*91f16700Schasinglulu        BL_COMMON_SOURCES	+=	common/backtrace/backtrace.c
19*91f16700Schasingluluendif
20*91f16700Schasinglulu
21*91f16700Schasingluluifeq (${ARCH},aarch32)
22*91f16700Schasinglulu        ifeq (${ENABLE_BACKTRACE},1)
23*91f16700Schasinglulu                ifneq (${AARCH32_INSTRUCTION_SET},A32)
24*91f16700Schasinglulu                        $(error Error: AARCH32_INSTRUCTION_SET=A32 is needed \
25*91f16700Schasinglulu                        for ENABLE_BACKTRACE when compiling for AArch32.)
26*91f16700Schasinglulu                endif
27*91f16700Schasinglulu        endif
28*91f16700Schasingluluendif
29*91f16700Schasinglulu
30*91f16700Schasinglulu$(eval $(call assert_boolean,ENABLE_BACKTRACE))
31*91f16700Schasinglulu$(eval $(call add_define,ENABLE_BACKTRACE))
32