From 39208ac1cdcbd32bbb45a52544ce7a22f8ac9ed3 Mon Sep 17 00:00:00 2001 From: Rafal Kupiec Date: Tue, 2 Jan 2024 10:49:51 +0100 Subject: [PATCH] Add ability to produce linker map file --- sdk/cmake/functions.cmake | 8 -------- sdk/cmake/xtchain.cmake | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/sdk/cmake/functions.cmake b/sdk/cmake/functions.cmake index 2e27199..93a710f 100644 --- a/sdk/cmake/functions.cmake +++ b/sdk/cmake/functions.cmake @@ -88,14 +88,6 @@ function(set_install_target TARGET DESTINATION) install(TARGETS ${TARGET} DESTINATION ${EXECTOS_BINARY_DIR}/output/binaries/${DESTINATION}) endfunction() -# This function enables or disables binary ordinals export for specified module -function(set_ordinals MODULE STATE) - if(NOT ${ARGC} EQUAL 2) - message(FATAL_ERROR "Invalid number of arguments passed to set_ordinals() function") - endif() - set_module_property(${MODULE} ENABLE_EXPORTS ${STATE}) -endfunction() - # This function is responsible for compiling module SPEC file function(set_specfile SPECFILE) if(NOT ${ARGC} EQUAL 1) diff --git a/sdk/cmake/xtchain.cmake b/sdk/cmake/xtchain.cmake index 5a5526a..3925dc5 100644 --- a/sdk/cmake/xtchain.cmake +++ b/sdk/cmake/xtchain.cmake @@ -80,6 +80,24 @@ function(set_imagebase MODULE IMAGEBASE) add_module_linker_flags(${MODULE} "/BASE:${IMAGEBASE}") endfunction() +# This function enables or disables map file generation for specified module +function(set_linker_map MODULE STATE) + if(NOT ${ARGC} EQUAL 2) + message(FATAL_ERROR "Invalid number of arguments passed to set_ordinals() function") + endif() + if(STATE STREQUAL "TRUE") + add_module_linker_flags(${MODULE} "/MAP:${CMAKE_CURRENT_BINARY_DIR}/${MODULE}.map") + endif() +endfunction() + +# This function enables or disables binary ordinals export for specified module +function(set_ordinals MODULE STATE) + if(NOT ${ARGC} EQUAL 2) + message(FATAL_ERROR "Invalid number of arguments passed to set_ordinals() function") + endif() + set_module_property(${MODULE} ENABLE_EXPORTS ${STATE}) +endfunction() + # This functions sets PE/COFF subsystem and XTOS version of the binary function(set_subsystem MODULE SUBSYSTEM) string(TOUPPER ${SUBSYSTEM} SUBSYSTEM)