diff --git a/cmake/compiler/gcc/target.cmake b/cmake/compiler/gcc/target.cmake index 2e90f00f659..65e37d4bc5e 100644 --- a/cmake/compiler/gcc/target.cmake +++ b/cmake/compiler/gcc/target.cmake @@ -78,6 +78,8 @@ elseif("${ARCH}" STREQUAL "mips") include(${CMAKE_CURRENT_LIST_DIR}/target_mips.cmake) elseif("${ARCH}" STREQUAL "xtensa") include(${CMAKE_CURRENT_LIST_DIR}/target_xtensa.cmake) +elseif("${ARCH}" STREQUAL "rx") + include(${CMAKE_CURRENT_LIST_DIR}/target_rx.cmake) endif() if(SYSROOT_DIR) diff --git a/cmake/compiler/gcc/target_rx.cmake b/cmake/compiler/gcc/target_rx.cmake new file mode 100644 index 00000000000..6911b0cda72 --- /dev/null +++ b/cmake/compiler/gcc/target_rx.cmake @@ -0,0 +1,36 @@ +# SPDX-License-Identifier: Apache-2.0 + +list(APPEND TOOLCHAIN_C_FLAGS) +list(APPEND TOOLCHAIN_C_FLAGS -mlittle-endian-data -ffunction-sections -fdata-sections) + +list(APPEND TOOLCHAIN_LD_FLAGS) +list(APPEND TOOLCHAIN_LD_FLAGS -mlittle-endian-data) + +if(NOT CONFIG_PICOLIBC) + list(APPEND TOOLCHAIN_LD_FLAGS -lm) +endif() + +if(NOT CONFIG_FPU) + list(APPEND TOOLCHAIN_C_FLAGS -nofpu) +endif() + +if("cross-compile" STREQUAL ${ZEPHYR_TOOLCHAIN_VARIANT}) + if(CONFIG_CPU_RXV1) + list(APPEND TOOLCHAIN_C_FLAGS -misa=v1) + list(APPEND TOOLCHAIN_LD_FLAGS -misa=v1) + elseif(CONFIG_CPU_RXV2) + list(APPEND TOOLCHAIN_C_FLAGS -misa=v2) + list(APPEND TOOLCHAIN_LD_FLAGS -misa=v2) + else() + list(APPEND TOOLCHAIN_C_FLAGS -misa=v3) + list(APPEND TOOLCHAIN_LD_FLAGS -misa=v3) + endif() +elseif("zephyr" STREQUAL ${ZEPHYR_TOOLCHAIN_VARIANT}) + if(CONFIG_SOC_SERIES_RX130) + list(APPEND TOOLCHAIN_C_FLAGS -mcpu=rx100) + list(APPEND TOOLCHAIN_LD_FLAGS -mcpu=rx100) + elseif(CONFIG_SOC_SERIES_RX62N) + list(APPEND TOOLCHAIN_C_FLAGS -mcpu=rx600) + list(APPEND TOOLCHAIN_LD_FLAGS -mcpu=rx600) + endif() +endif()