37 lines
972 B
CMake
37 lines
972 B
CMake
|
# SPDX-License-Identifier: Apache-2.0
|
||
|
|
||
|
# See root CMakeLists.txt for description and expectations of these macros
|
||
|
|
||
|
macro(toolchain_ld_base)
|
||
|
|
||
|
if(NOT PROPERTY_LINKER_SCRIPT_DEFINES)
|
||
|
set_property(GLOBAL PROPERTY PROPERTY_LINKER_SCRIPT_DEFINES -D__GCC_LINKER_CMD__)
|
||
|
endif()
|
||
|
|
||
|
# TOOLCHAIN_LD_FLAGS comes from compiler/gcc/target.cmake
|
||
|
# LINKERFLAGPREFIX comes from linker/xt-ld/target.cmake
|
||
|
zephyr_ld_options(
|
||
|
${TOOLCHAIN_LD_FLAGS}
|
||
|
)
|
||
|
|
||
|
zephyr_ld_options(
|
||
|
${LINKERFLAGPREFIX},--gc-sections
|
||
|
${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
|
||
|
)
|
||
|
|
||
|
if (NOT CONFIG_LINKER_USE_RELAX)
|
||
|
zephyr_ld_options(
|
||
|
${LINKERFLAGPREFIX},--no-relax
|
||
|
)
|
||
|
endif()
|
||
|
|
||
|
endmacro()
|