cmake/toolchain/GccRiscV32.cmake (33 lines of code) (raw):

# ++ # # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT license. # # Module Name: # # GccRiscV32.cmake # # Abstract: # # GCC RISC-V 32-bit Toolchain file # # -- set(CMAKE_SYSTEM_NAME Generic) set(CMAKE_SYSTEM_VERSION 1) set(CMAKE_SYSTEM_PROCESSOR riscv32) set(CERBERUS_MCU_FLAGS -march=rv32imac) # arch = rv32imac - 32 bit ISA with integer, machine, atomic and compressed set(CERBERUS_MCU_FLAGS "${CERBERUS_MCU_FLAGS} -mabi=ilp32") # abi = ilp32 - int, long & pointers are 32bit, char=8bit, short=16bit, long long = 64bit set(CERBERUS_MCU_FLAGS "${CERBERUS_MCU_FLAGS} -mno-relax") # no riscv linker relax support set(CERBERUS_MCU_LINK_FLAGS -march=rv32imac) set(CERBERUS_MCU_LINK_FLAGS "${CERBERUS_MCU_LINK_FLAGS} -mabi=ilp32") # Relocate to 32-bit section below if using the appropriate global RISCV32 macro. # TODO - relocate to Gcc.cmake and/or Clang.cmake as needed for portability. set(CMAKE_ASM_FLAGS_INIT "-march=rv32imac -mabi=ilp32") if(DEFINED RISCV32_UNKNOWN_ELF) if(NOT TOOLCHAIN_PREFIX) set(TOOLCHAIN_PREFIX "riscv32-unknown-elf-") endif() include(${CMAKE_CURRENT_LIST_DIR}/Gcc.cmake) else() include(${CMAKE_CURRENT_LIST_DIR}/GccRiscV64UnknownElf.cmake) endif()