From e9fcd1082abe1d7515b18b3607f68ff60d0e6781 Mon Sep 17 00:00:00 2001 From: Wei-Chia Su Date: Wed, 23 Jul 2025 23:47:16 +0100 Subject: [PATCH] cmake: Normalize source paths via -ffile-prefix-map for consistent builds Applied -ffile-prefix-map to all bare-metal toolchain files (GNU, Clang, ARMClang) to normalize source and build paths at compile time. This change ensures: - Consistent and relative paths in debug info and __FILE__ macros - Cleaner objdump output and improved compatibility with coverage tools Signed-off-by: Wei-Chia Su --- cmake/Toolchain/ArmClang-Baremetal.cmake | 5 ++++- cmake/Toolchain/Clang-Baremetal.cmake | 3 +++ cmake/Toolchain/GNU-Baremetal.cmake | 5 ++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/cmake/Toolchain/ArmClang-Baremetal.cmake b/cmake/Toolchain/ArmClang-Baremetal.cmake index 872af1ed4..2293cac69 100644 --- a/cmake/Toolchain/ArmClang-Baremetal.cmake +++ b/cmake/Toolchain/ArmClang-Baremetal.cmake @@ -1,6 +1,6 @@ # # Arm SCP/MCP Software -# Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved. +# Copyright (c) 2021-2025, Arm Limited and Contributors. All rights reserved. # # SPDX-License-Identifier: BSD-3-Clause # @@ -13,6 +13,9 @@ foreach(language IN ITEMS ASM C CXX) string(APPEND CMAKE_${language}_FLAGS_INIT "-fdata-sections ") string(APPEND CMAKE_${language}_FLAGS_INIT "-fshort-enums ") string(APPEND CMAKE_${language}_FLAGS_INIT "-mfloat-abi=soft ") + string(APPEND CMAKE_${language}_FLAGS_INIT + "-ffile-prefix-map=${CMAKE_SOURCE_DIR}=. " + "-ffile-prefix-map=${CMAKE_BINARY_DIR}=${CMAKE_SOURCE_DIR} ") string(APPEND CMAKE_${language}_FLAGS_DEBUG_INIT "-Og ") endforeach() diff --git a/cmake/Toolchain/Clang-Baremetal.cmake b/cmake/Toolchain/Clang-Baremetal.cmake index e660a5e88..ee5fb82e9 100644 --- a/cmake/Toolchain/Clang-Baremetal.cmake +++ b/cmake/Toolchain/Clang-Baremetal.cmake @@ -77,6 +77,9 @@ foreach(language IN ITEMS ASM C CXX) string(APPEND CMAKE_${language}_FLAGS_INIT "-Wno-unused-parameter ") string(APPEND CMAKE_${language}_FLAGS_INIT "-Wno-missing-field-initializers ") + string(APPEND CMAKE_${language}_FLAGS_INIT + "-ffile-prefix-map=${CMAKE_SOURCE_DIR}=. " + "-ffile-prefix-map=${CMAKE_BINARY_DIR}=${CMAKE_SOURCE_DIR} ") string(APPEND CMAKE_${language}_FLAGS_DEBUG_INIT "-Og") endforeach() diff --git a/cmake/Toolchain/GNU-Baremetal.cmake b/cmake/Toolchain/GNU-Baremetal.cmake index 6cd9afc4b..d55768ad2 100644 --- a/cmake/Toolchain/GNU-Baremetal.cmake +++ b/cmake/Toolchain/GNU-Baremetal.cmake @@ -1,6 +1,6 @@ # # Arm SCP/MCP Software -# Copyright (c) 2021-2024, Arm Limited and Contributors. All rights reserved. +# Copyright (c) 2021-2025, Arm Limited and Contributors. All rights reserved. # # SPDX-License-Identifier: BSD-3-Clause # @@ -34,6 +34,9 @@ foreach(language IN ITEMS ASM C CXX) string(APPEND CMAKE_${language}_FLAGS_INIT "-Wno-unused-parameter ") string(APPEND CMAKE_${language}_FLAGS_INIT "-Wno-missing-field-initializers ") + string(APPEND CMAKE_${language}_FLAGS_INIT + "-ffile-prefix-map=${CMAKE_SOURCE_DIR}=. " + "-ffile-prefix-map=${CMAKE_BINARY_DIR}=${CMAKE_SOURCE_DIR} ") string(APPEND CMAKE_${language}_FLAGS_DEBUG_INIT "-Og") endforeach() -- GitLab