cmake: save eh_frame section in output with CONFIG_EXCEPTIONS.
.eh_frame section should not be removed directly in the
hex format and bin format output, it should be based on
whether we need exception handler feature.
Signed-off-by: Chen Peng1 <peng1.chen@intel.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ebeebb1..3a705f3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1417,6 +1417,17 @@
)
endif()
+if(NOT CONFIG_EXCEPTIONS)
+ set(eh_frame_section ".eh_frame")
+else()
+ set(eh_frame_section "")
+endif()
+set(remove_sections_argument_list "")
+foreach(section .comment COMMON ${eh_frame_section})
+ list(APPEND remove_sections_argument_list
+ $<TARGET_PROPERTY:bintools,elfconvert_flag_section_remove>${section})
+endforeach()
+
if(CONFIG_BUILD_OUTPUT_HEX OR BOARD_FLASH_RUNNER STREQUAL openocd)
get_property(elfconvert_formats TARGET bintools PROPERTY elfconvert_formats)
if(ihex IN_LIST elfconvert_formats)
@@ -1426,9 +1437,7 @@
$<TARGET_PROPERTY:bintools,elfconvert_flag>
${GAP_FILL}
$<TARGET_PROPERTY:bintools,elfconvert_flag_outtarget>ihex
- $<TARGET_PROPERTY:bintools,elfconvert_flag_section_remove>.comment
- $<TARGET_PROPERTY:bintools,elfconvert_flag_section_remove>COMMON
- $<TARGET_PROPERTY:bintools,elfconvert_flag_section_remove>.eh_frame
+ ${remove_sections_argument_list}
$<TARGET_PROPERTY:bintools,elfconvert_flag_infile>${KERNEL_ELF_NAME}
$<TARGET_PROPERTY:bintools,elfconvert_flag_outfile>${KERNEL_HEX_NAME}
$<TARGET_PROPERTY:bintools,elfconvert_flag_final>
@@ -1450,9 +1459,7 @@
$<TARGET_PROPERTY:bintools,elfconvert_flag>
${GAP_FILL}
$<TARGET_PROPERTY:bintools,elfconvert_flag_outtarget>binary
- $<TARGET_PROPERTY:bintools,elfconvert_flag_section_remove>.comment
- $<TARGET_PROPERTY:bintools,elfconvert_flag_section_remove>COMMON
- $<TARGET_PROPERTY:bintools,elfconvert_flag_section_remove>.eh_frame
+ ${remove_sections_argument_list}
$<TARGET_PROPERTY:bintools,elfconvert_flag_infile>${KERNEL_ELF_NAME}
$<TARGET_PROPERTY:bintools,elfconvert_flag_outfile>${KERNEL_BIN_NAME}
$<TARGET_PROPERTY:bintools,elfconvert_flag_final>