mirror of
https://github.com/apache/nuttx.git
synced 2026-05-21 21:34:07 +08:00
risc-v/cmake: add support to Ubuntu stock toolchain
Ubuntu stock toolchain `gcc-riscv64-unknown-elf` complains about current CMake system (see issue#11573). This tries to fix it so that both newer XPack and stock toolchains can be used with CMake. Signed-off-by: Yanfeng Liu <yfliu2008@qq.com>
This commit is contained in:
@@ -271,21 +271,21 @@ if(${CONFIG_RISCV_TOOLCHAIN} STREQUAL GNU_RVG)
|
||||
# These models can't cover all implementation of RISCV, but it's enough for
|
||||
# most cases.
|
||||
|
||||
set(PLATFORM_FLAGS)
|
||||
set(LLVM_CPUFLAGS)
|
||||
|
||||
if(CONFIG_ARCH_RV32)
|
||||
if(${ARCHCPUEXTFLAGS} STREQUAL imc)
|
||||
list(APPEND PLATFORM_FLAGS -mcpu=sifive-e20)
|
||||
list(APPEND LLVM_CPUFLAGS -mcpu=sifive-e20)
|
||||
elseif(${ARCHCPUEXTFLAGS} STREQUAL imac)
|
||||
list(APPEND PLATFORM_FLAGS -mcpu=sifive-e31)
|
||||
list(APPEND LLVM_CPUFLAGS -mcpu=sifive-e31)
|
||||
elseif(${ARCHCPUEXTFLAGS} STREQUAL imafc)
|
||||
list(APPEND PLATFORM_FLAGS -mcpu=sifive-e76)
|
||||
list(APPEND LLVM_CPUFLAGS -mcpu=sifive-e76)
|
||||
endif()
|
||||
else()
|
||||
if(${ARCHCPUEXTFLAGS} STREQUAL imac)
|
||||
list(APPEND PLATFORM_FLAGS -mcpu=sifive-s51)
|
||||
list(APPEND LLVM_CPUFLAGS -mcpu=sifive-s51)
|
||||
elseif(${ARCHCPUEXTFLAGS} STREQUAL imafdc)
|
||||
list(APPEND PLATFORM_FLAGS -mcpu=sifive-u54)
|
||||
list(APPEND LLVM_CPUFLAGS -mcpu=sifive-u54)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
@@ -21,8 +21,10 @@
|
||||
get_directory_property(NUTTX_EXTRA_FLAGS DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
COMPILE_OPTIONS)
|
||||
|
||||
separate_arguments(LIBPRT_CFLAGS NATIVE_COMMAND ${CMAKE_C_FLAGS})
|
||||
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_FLAGS} ${NUTTX_EXTRA_FLAGS}
|
||||
COMMAND ${CMAKE_C_COMPILER} ${LIBPRT_CFLAGS} ${NUTTX_EXTRA_FLAGS}
|
||||
--print-libgcc-file-name
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
OUTPUT_VARIABLE extra_library)
|
||||
@@ -31,7 +33,7 @@ list(APPEND EXTRA_LIB ${extra_library})
|
||||
|
||||
if(NOT CONFIG_LIBM)
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_FLAGS} ${NUTTX_EXTRA_FLAGS}
|
||||
COMMAND ${CMAKE_C_COMPILER} ${LIBPRT_CFLAGS} ${NUTTX_EXTRA_FLAGS}
|
||||
--print-file-name=libm.a
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
OUTPUT_VARIABLE extra_library)
|
||||
@@ -40,7 +42,7 @@ endif()
|
||||
|
||||
if(CONFIG_LIBSUPCXX)
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_FLAGS} ${NUTTX_EXTRA_FLAGS}
|
||||
COMMAND ${CMAKE_C_COMPILER} ${LIBPRT_CFLAGS} ${NUTTX_EXTRA_FLAGS}
|
||||
--print-file-name=libsupc++.a
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
OUTPUT_VARIABLE extra_library)
|
||||
@@ -49,7 +51,7 @@ endif()
|
||||
|
||||
if(CONFIG_ARCH_COVERAGE)
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_FLAGS} ${NUTTX_EXTRA_FLAGS}
|
||||
COMMAND ${CMAKE_C_COMPILER} ${LIBPRT_CFLAGS} ${NUTTX_EXTRA_FLAGS}
|
||||
--print-file-name=libgcov.a
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
OUTPUT_VARIABLE extra_library)
|
||||
|
||||
Reference in New Issue
Block a user