@@ -13,7 +13,8 @@ foreach(MODULE ${MODULES_LIST})
1313 add_executable (${MODULE} )
1414 add_subdirectory (${LMDK_BASE} /modules/${MODULE} ${MODULE} _module)
1515
16- ### set_target_properties(${MODULE} PROPERTIES OUTPUT_NAME ${MODULE}.mod)
16+ # uncomment line below to compile module with debug information
17+ #target_compile_options(${MODULE} PUBLIC "-g3")
1718
1819 target_include_directories (${MODULE} PRIVATE
1920 "${LMDK_BASE} /include"
@@ -35,9 +36,9 @@ foreach(MODULE ${MODULES_LIST})
3536 )
3637
3738 target_link_options (${MODULE} PRIVATE
38- "-nostdlib" "-nodefaultlibs "
39+ "-nostartfiles "
3940 "-Wl,--no-undefined" "-Wl,--unresolved-symbols=report-all" "-Wl,--error-unresolved-symbols"
40- # "-Wl,--gc-sections" # may remove .bss and that will result in rimage error, do not use for now
41+ "-Wl,--gc-sections"
4142 "-Wl,-Map,$<TARGET_FILE:${MODULE} >.map" # optional: just for debug
4243 "-T" "${MODULE} _ldscripts/elf32xtensa.x"
4344 )
@@ -55,13 +56,26 @@ cmake_path(APPEND SOF_BASE "../build-rimage" OUTPUT_VARIABLE RIMAGE_SOF_INSTALL_
5556cmake_path(NORMAL_PATH RIMAGE_SOF_INSTALL_DIR)
5657cmake_path(ABSOLUTE_PATH SIGNING_KEY BASE_DIRECTORY ${CMAKE_SOURCE_DIR} NORMALIZE)
5758
59+ foreach (MOD_NAME IN LISTS MODULES_LIST)
60+ list (APPEND RIMAGE_MODULES_LIST ${MOD_NAME} .mod)
61+
62+ # Change .module section flags to tell rimage to not include it in a final image
63+ add_custom_target (${MOD_NAME} .mod
64+ COMMENT "Preparing .mod(ule) files for rimage"
65+ DEPENDS ${MOD_NAME}
66+ COMMAND ${CMAKE_OBJCOPY}
67+ --set-section-flags .module=noload,readonly
68+ ${MOD_NAME} ${MOD_NAME} .mod
69+ )
70+ endforeach ()
71+
5872find_program (RIMAGE_COMMAND NAMES rimage
5973 PATHS "${RIMAGE_INSTALL_DIR} "
6074 HINTS "${RIMAGE_SOF_INSTALL_DIR} "
6175 REQUIRED)
6276
6377add_custom_target (${PROJECT_NAME} _target ALL
64- DEPENDS ${MODULES_LIST }
65- COMMAND ${RIMAGE_COMMAND} -k ${SIGNING_KEY} -f 2.0.0 -b 1 -o ${RIMAGE_OUTPUT_FILE} -c ${TOML} -e ${MODULES_LIST }
78+ DEPENDS ${RIMAGE_MODULES_LIST }
79+ COMMAND ${RIMAGE_COMMAND} -k ${SIGNING_KEY} -f 2.0.0 -b 1 -o ${RIMAGE_OUTPUT_FILE} -c ${TOML} -e ${RIMAGE_MODULES_LIST }
6680 COMMAND ${CMAKE_COMMAND} -E cat ${RIMAGE_OUTPUT_FILE} .xman ${RIMAGE_OUTPUT_FILE} > ${OUTPUT_FILE}
6781)
0 commit comments