Build: Add DWARF version
Add BUILD_DWARF_VERSION to indicate which DWARF version to use. Set it
to a special value when building, such as: "-DBUILD_DWARF_VERSION=2".
Change-Id: I20370cac9588dba7636d2ec404f7c674ef6bdd16
Signed-off-by: Edison Ai <edison.ai@arm.com>
diff --git a/cmake/Compiler/ARMClang.cmake b/cmake/Compiler/ARMClang.cmake
index a5ed2f3..a65add9 100644
--- a/cmake/Compiler/ARMClang.cmake
+++ b/cmake/Compiler/ARMClang.cmake
@@ -24,14 +24,20 @@
set(CMAKE_AR "${CMAKE_ARMCCLANG_AR}" CACHE FILEPATH "The ARMCC archiver" FORCE)
mark_as_advanced(CMAKE_ARMCCLANG_AR)
+if(NOT DEFINED BUILD_DWARF_VERSION)
+ set(BUILD_DWARF_VERSION "")
+else()
+ string(CONCAT BUILD_DWARF_VERSION "dwarf-" ${BUILD_DWARF_VERSION})
+endif()
+
macro(__compiler_armclang lang)
if(NOT CMAKE_${lang}_FLAGS_SET)
set(CMAKE_${lang}_FLAGS_SET TRUE)
string(APPEND CMAKE_${lang}_FLAGS_INIT " ")
- string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -g -O0")
+ string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -g${BUILD_DWARF_VERSION} -O0")
string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -Oz -DNDEBUG")
string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -O3 -DNDEBUG")
- string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -O3 -g -DNDEBUG")
+ string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -O3 -g${BUILD_DWARF_VERSION} -DNDEBUG")
set(CMAKE_${lang}_OUTPUT_EXTENSION ".o")
set(CMAKE_${lang}_OUTPUT_EXTENSION_REPLACE 1)
diff --git a/cmake/Compiler/GNUARM.cmake b/cmake/Compiler/GNUARM.cmake
index 17d416c..aa197a5 100644
--- a/cmake/Compiler/GNUARM.cmake
+++ b/cmake/Compiler/GNUARM.cmake
@@ -24,14 +24,20 @@
set(CMAKE_AR "${CMAKE_GNUARM_AR}" CACHE FILEPATH "The GNUARM archiver" FORCE)
mark_as_advanced(CMAKE_GNUARM_AR)
+if(NOT DEFINED BUILD_DWARF_VERSION)
+ set(BUILD_DWARF_VERSION "")
+else()
+ string(CONCAT BUILD_DWARF_VERSION "dwarf-" ${BUILD_DWARF_VERSION})
+endif()
+
macro(__compiler_gnuarm lang)
if(NOT CMAKE_${lang}_FLAGS_SET)
set(CMAKE_${lang}_FLAGS_SET TRUE)
string(APPEND CMAKE_${lang}_FLAGS_INIT " ")
- string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -g -O0")
+ string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -g${BUILD_DWARF_VERSION} -O0")
string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -Os -DNDEBUG")
string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -O3 -DNDEBUG")
- string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -O3 -g -DNDEBUG")
+ string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -O3 -g${BUILD_DWARF_VERSION} -DNDEBUG")
set(CMAKE_${lang}_OUTPUT_EXTENSION ".o")
set(CMAKE_${lang}_OUTPUT_EXTENSION_REPLACE 1)
diff --git a/docs/user_guides/tfm_build_instruction.rst b/docs/user_guides/tfm_build_instruction.rst
index f350251..5d91fa0 100644
--- a/docs/user_guides/tfm_build_instruction.rst
+++ b/docs/user_guides/tfm_build_instruction.rst
@@ -52,6 +52,13 @@
- ``Minsizerel``
* - -DMBEDTLS_DEBUG=<ON|OFF>
- Enables debug symbols for the Mbed TLS and Mbed Crypto libraries.
+ * - -DBUILD_DWARF_VERSION=<dwarf version>
+ - Configures DWARF version.
+ The possible values are:
+
+ - 2
+ - 3
+ - 4
.. Note::
Follow :doc:`secure boot <./tfm_secure_boot>` to build the binaries with or