mirror of
https://github.com/apache/nuttx.git
synced 2026-09-03 23:52:58 +00:00
tools/export: prefix each linker script in toolchain.cmake.
make export writes several names into LDNAME for boards that use more than one linker script. The exported toolchain.cmake only prefixed the first file, so ld searched for the rest in the application build directory. Normalize NUTTX_PATH so the generated -T arguments do not keep the scripts/../scripts form. Fixes apache/nuttx#19820. Signed-off-by: Zhaoqi Xu <lzy00419@outlook.com>
This commit is contained in:
parent
c36e45eb6f
commit
a2c0773089
1 changed files with 11 additions and 4 deletions
|
|
@ -4,10 +4,17 @@ set(NUTTX 1)
|
|||
|
||||
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||
|
||||
set(NUTTX_PATH ${CMAKE_CURRENT_LIST_DIR}/..)
|
||||
set(NUTTX_PATH "${CMAKE_CURRENT_LIST_DIR}/..")
|
||||
get_filename_component(NUTTX_PATH "${NUTTX_PATH}" ABSOLUTE)
|
||||
include(${NUTTX_PATH}/scripts/target.cmake)
|
||||
|
||||
set(LINKER_SCRIPT ${NUTTX_PATH}/scripts/${LDNAME})
|
||||
# LDNAME may list several space-separated linker scripts. Prefix each one.
|
||||
separate_arguments(_ldname_list UNIX_COMMAND "${LDNAME}")
|
||||
set(_ldscripts)
|
||||
foreach(_ld IN LISTS _ldname_list)
|
||||
list(APPEND _ldscripts "-T${NUTTX_PATH}/scripts/${_ld}")
|
||||
endforeach()
|
||||
string(REPLACE ";" " " LINKER_SCRIPT "${_ldscripts}")
|
||||
|
||||
set(CMAKE_C_FLAGS "${ARCHCPUFLAGS} ${ARCHCFLAGS} -D__NuttX__")
|
||||
set(CMAKE_CXX_FLAGS "${ARCHCPUFLAGS} ${ARCHCXXFLAGS} -D__NuttX__")
|
||||
|
|
@ -27,10 +34,10 @@ add_compile_options(-ffunction-sections -fdata-sections)
|
|||
set(ENTRY_NAME "_start")
|
||||
|
||||
set(CMAKE_C_LINK_EXECUTABLE
|
||||
"<CMAKE_LINKER> ${LDFLAGS} --entry=${ENTRY_NAME} -T${LINKER_SCRIPT} <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -L${NUTTX_PATH}/libs --start-group ${LDLIBS} ${EXTRA_LIBS} --end-group"
|
||||
"<CMAKE_LINKER> ${LDFLAGS} --entry=${ENTRY_NAME} ${LINKER_SCRIPT} <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -L${NUTTX_PATH}/libs --start-group ${LDLIBS} ${EXTRA_LIBS} --end-group"
|
||||
)
|
||||
set(CMAKE_CXX_LINK_EXECUTABLE
|
||||
"<CMAKE_LINKER> ${LDFLAGS} --entry=${ENTRY_NAME} -T${LINKER_SCRIPT} <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -L${NUTTX_PATH}/libs --start-group ${LDLIBS} ${EXTRA_LIBS} --end-group"
|
||||
"<CMAKE_LINKER> ${LDFLAGS} --entry=${ENTRY_NAME} ${LINKER_SCRIPT} <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -L${NUTTX_PATH}/libs --start-group ${LDLIBS} ${EXTRA_LIBS} --end-group"
|
||||
)
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue