fix(build): use DWARF 4 when building debug

GCC 11 and Clang 14 now use the DWARF 5 standard by default however
Arm-DS currently only supports up to version 4. Therefore, for debug
builds, ensure the DWARF 4 standard is used.
Also update references for Arm DS-5 to it's successor Arm-DS (Arm
Development Studio).

Change-Id: Ica59588de3d121c1b795b3699f42c31f032cee49
Signed-off-by: Daniel Boulby <daniel.boulby@arm.com>
This commit is contained in:
Daniel Boulby 2022-05-03 16:46:16 +01:00
parent 453abc80b2
commit 4466cf8255
3 changed files with 10 additions and 16 deletions

View File

@ -307,13 +307,8 @@ endif
$(eval $(call add_define,DEBUG)) $(eval $(call add_define,DEBUG))
ifneq (${DEBUG}, 0) ifneq (${DEBUG}, 0)
BUILD_TYPE := debug BUILD_TYPE := debug
TF_CFLAGS += -g TF_CFLAGS += -g -gdwarf-4
ASFLAGS += -g -Wa,-gdwarf-4
ifneq ($(findstring clang,$(notdir $(CC))),)
ASFLAGS += -g
else
ASFLAGS += -g -Wa,--gdwarf-2
endif
# Use LOG_LEVEL_INFO by default for debug builds # Use LOG_LEVEL_INFO by default for debug builds
LOG_LEVEL := 40 LOG_LEVEL := 40

View File

@ -1051,11 +1051,11 @@ To compile a debug version and make the build more verbose use
make PLAT=<platform> DEBUG=1 V=1 all make PLAT=<platform> DEBUG=1 V=1 all
AArch64 GCC uses DWARF version 4 debugging symbols by default. Some tools (for AArch64 GCC 11 uses DWARF version 5 debugging symbols by default. Some tools
example DS-5) might not support this and may need an older version of DWARF (for example Arm-DS) might not support this and may need an older version of
symbols to be emitted by GCC. This can be achieved by using the DWARF symbols to be emitted by GCC. This can be achieved by using the
``-gdwarf-<version>`` flag, with the version being set to 2 or 3. Setting the ``-gdwarf-<version>`` flag, with the version being set to 2, 3, 4 or 5. Setting
version to 2 is recommended for DS-5 versions older than 5.16. the version to 4 is recommended for Arm-DS.
When debugging logic problems it might also be useful to disable all compiler When debugging logic problems it might also be useful to disable all compiler
optimizations by using ``-O0``. optimizations by using ``-O0``.
@ -1080,7 +1080,7 @@ It is also possible to introduce an infinite loop to help in debugging the
post-BL2 phase of TF-A. This can be done by rebuilding BL1 with the post-BL2 phase of TF-A. This can be done by rebuilding BL1 with the
``SPIN_ON_BL1_EXIT=1`` build flag. Refer to the :ref:`build_options_common` ``SPIN_ON_BL1_EXIT=1`` build flag. Refer to the :ref:`build_options_common`
section. In this case, the developer may take control of the target using a section. In this case, the developer may take control of the target using a
debugger when indicated by the console output. When using DS-5, the following debugger when indicated by the console output. When using Arm-DS, the following
commands can be used: commands can be used:
:: ::

View File

@ -7,7 +7,6 @@ AArch32 and AArch64 target platforms.
It may possible to build |TF-A| with combinations of software packages that are It may possible to build |TF-A| with combinations of software packages that are
different from those listed below, however only the software described in this different from those listed below, however only the software described in this
document can be officially supported. document can be officially supported.
Build Host Build Host
---------- ----------
@ -71,7 +70,7 @@ These tools are optional:
source files (``.dts`` files). DTC is available for Linux through the package source files (``.dts`` files). DTC is available for Linux through the package
repositories of most distributions. repositories of most distributions.
- Arm `Development Studio 5 (DS-5)`_ - Arm `Development Studio (Arm-DS)`_
The standard software package used for debugging software on Arm development The standard software package used for debugging software on Arm development
platforms and |FVP| models. platforms and |FVP| models.
@ -166,5 +165,5 @@ documentation, available `here <https://git-scm.com/docs/githooks>`_.
.. _Gerrit Code Review: https://www.gerritcodereview.com/ .. _Gerrit Code Review: https://www.gerritcodereview.com/
.. _Linaro Release Notes: https://community.arm.com/dev-platforms/w/docs/226/old-release-notes .. _Linaro Release Notes: https://community.arm.com/dev-platforms/w/docs/226/old-release-notes
.. _Linaro instructions: https://community.arm.com/dev-platforms/w/docs/304/arm-reference-platforms-deliverables .. _Linaro instructions: https://community.arm.com/dev-platforms/w/docs/304/arm-reference-platforms-deliverables
.. _Development Studio 5 (DS-5): https://developer.arm.com/products/software-development-tools/ds-5-development-studio .. _Development Studio (Arm-DS): https://developer.arm.com/Tools%20and%20Software/Arm%20Development%20Studio
.. _Linaro Release 20.01: http://releases.linaro.org/members/arm/platforms/20.01 .. _Linaro Release 20.01: http://releases.linaro.org/members/arm/platforms/20.01