diff --git a/CMakeLists.txt b/CMakeLists.txt index 5422aa903a0..efc10de2503 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -376,14 +376,6 @@ if(CONFIG_USERSPACE) endif() endif() -# Sort the common symbols and each input section by alignment -# in descending order to minimize padding between these symbols. -zephyr_ld_option_ifdef( - CONFIG_LINKER_SORT_BY_ALIGNMENT - ${LINKERFLAGPREFIX},--sort-common=descending - ${LINKERFLAGPREFIX},--sort-section=alignment - ) - get_property(TOPT GLOBAL PROPERTY TOPT) set_ifndef( TOPT -Wl,-T) # clang doesn't pick -T for some reason and complains, # while -Wl,-T works for both, gcc and clang diff --git a/cmake/linker/ld/target_base.cmake b/cmake/linker/ld/target_base.cmake index 5a271468500..f69b50c14e5 100644 --- a/cmake/linker/ld/target_base.cmake +++ b/cmake/linker/ld/target_base.cmake @@ -12,4 +12,12 @@ macro(toolchain_ld_base) ${LINKERFLAGPREFIX},--build-id=none ) + # Sort the common symbols and each input section by alignment + # in descending order to minimize padding between these symbols. + zephyr_ld_option_ifdef( + CONFIG_LINKER_SORT_BY_ALIGNMENT + ${LINKERFLAGPREFIX},--sort-common=descending + ${LINKERFLAGPREFIX},--sort-section=alignment + ) + endmacro()