-fuse-ld=lld is currently specified twice through the baremetal property (in cmake/linker/lld/linker_flags.cmake) and TOOLCHAIN_LD_FLAGS (in cmake/linker/lld/target.cmake). This doesn't really harm anything as it isn't duplicated on the link line (and specifying it multiple times wouldn't hurt even if it was), but it also doesn't really help anything. -fuse-ld isn't baremetal-specific and setting it via TOOLCHAIN_LD_FLAGS will cover this case anyway, so remove this duplicate. Signed-off-by: Jonathon Penix <jpenix@quicinc.com>
22 lines
838 B
CMake
22 lines
838 B
CMake
# Copyright (c) 2022 Google LLC
|
|
# Copyright (c) 2024 Nordic Semiconductor
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
# Since lld is a drop in replacement for ld, we can just use ld's flags as a base
|
|
# and adjust for lld specifics afterwards.
|
|
include(${ZEPHYR_BASE}/cmake/linker/ld/linker_flags.cmake OPTIONAL)
|
|
|
|
if(NOT CONFIG_NATIVE_LIBRARY AND NOT CONFIG_EXTERNAL_MODULE_LIBCPP)
|
|
set_property(TARGET linker PROPERTY cpp_base ${LINKERFLAGPREFIX},-z,norelro)
|
|
endif()
|
|
|
|
set_property(TARGET linker PROPERTY no_position_independent "${LINKERFLAGPREFIX},--no-pie")
|
|
|
|
set_property(TARGET linker PROPERTY lto_arguments)
|
|
|
|
check_set_linker_property(TARGET linker PROPERTY sort_alignment ${LINKERFLAGPREFIX},--sort-section=alignment)
|
|
|
|
if(CONFIG_RISCV_GP)
|
|
check_set_linker_property(TARGET linker PROPERTY relax ${LINKERFLAGPREFIX},--relax-gp)
|
|
endif()
|