mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-04-14 10:07:39 +08:00
Add compiler cmake files for RISC-V (rv64gc) targets
This adds the basic support for riscv64-unknown-elf compiler amd rv64gc ISA Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
This commit is contained in:
parent
935253357a
commit
34de392425
@ -0,0 +1,11 @@
|
||||
|
||||
if(CONFIG_ARCH_DPFPU)
|
||||
message(STATUS "Enabling double FP precision hardware instructions")
|
||||
set(cpu_flags "-march=rv64gc -mabi=lp64d -mcmodel=medany")
|
||||
else()
|
||||
set(cpu_flags "-march=rv64imac -mabi=lp64 -mcmodel=medany")
|
||||
endif()
|
||||
|
||||
set(CMAKE_C_FLAGS "${cpu_flags}" CACHE STRING "" FORCE)
|
||||
set(CMAKE_CXX_FLAGS "${cpu_flags}" CACHE STRING "" FORCE)
|
||||
set(CMAKE_ASM_FLAGS "${cpu_flags} -D__ASSEMBLY__" CACHE STRING "" FORCE)
|
||||
44
platforms/nuttx/cmake/Toolchain-riscv64-unknown-elf.cmake
Normal file
44
platforms/nuttx/cmake/Toolchain-riscv64-unknown-elf.cmake
Normal file
@ -0,0 +1,44 @@
|
||||
# riscv64-unknown-elf toolchain
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Generic)
|
||||
set(CMAKE_SYSTEM_VERSION 1)
|
||||
|
||||
set(triple riscv64-unknown-elf)
|
||||
set(CMAKE_LIBRARY_ARCHITECTURE ${triple})
|
||||
set(TOOLCHAIN_PREFIX ${triple})
|
||||
|
||||
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc)
|
||||
set(CMAKE_C_COMPILER_TARGET ${triple})
|
||||
|
||||
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++)
|
||||
set(CMAKE_CXX_COMPILER_TARGET ${triple})
|
||||
|
||||
set(CMAKE_ASM_COMPILER ${TOOLCHAIN_PREFIX}-gcc)
|
||||
|
||||
# needed for test compilation
|
||||
set(CMAKE_EXE_LINKER_FLAGS_INIT "--specs=nosys.specs")
|
||||
|
||||
# compiler tools
|
||||
find_program(CMAKE_AR ${TOOLCHAIN_PREFIX}-gcc-ar)
|
||||
find_program(CMAKE_GDB ${TOOLCHAIN_PREFIX}-gdb)
|
||||
find_program(CMAKE_LD ${TOOLCHAIN_PREFIX}-ld)
|
||||
find_program(CMAKE_LINKER ${TOOLCHAIN_PREFIX}-ld)
|
||||
find_program(CMAKE_NM ${TOOLCHAIN_PREFIX}-gcc-nm)
|
||||
find_program(CMAKE_OBJCOPY ${TOOLCHAIN_PREFIX}-objcopy)
|
||||
find_program(CMAKE_OBJDUMP ${TOOLCHAIN_PREFIX}-objdump)
|
||||
find_program(CMAKE_RANLIB ${TOOLCHAIN_PREFIX}-gcc-ranlib)
|
||||
find_program(CMAKE_STRIP ${TOOLCHAIN_PREFIX}-strip)
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH get_file_component(${CMAKE_C_COMPILER} PATH))
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
|
||||
# os tools
|
||||
foreach(tool grep make)
|
||||
string(TOUPPER ${tool} TOOL)
|
||||
find_program(${TOOL} ${tool})
|
||||
if(NOT ${TOOL})
|
||||
message(FATAL_ERROR "could not find ${tool}")
|
||||
endif()
|
||||
endforeach()
|
||||
Loading…
x
Reference in New Issue
Block a user