1# SPDX-License-Identifier: Apache-2.0 2 3zephyr_get(XTENSA_TOOLCHAIN_PATH) 4assert( XTENSA_TOOLCHAIN_PATH "XTENSA_TOOLCHAIN_PATH is not set") 5 6if(NOT EXISTS ${XTENSA_TOOLCHAIN_PATH}) 7 message(FATAL_ERROR "Nothing found at XTENSA_TOOLCHAIN_PATH: '${XTENSA_TOOLCHAIN_PATH}'") 8endif() 9 10zephyr_get(TOOLCHAIN_VER) 11if(DEFINED TOOLCHAIN_VER) 12 set(XTENSA_TOOLCHAIN_VER ${TOOLCHAIN_VER}) 13else() 14 zephyr_get(TOOLCHAIN_VER_${NORMALIZED_BOARD_TARGET}) 15 if(DEFINED TOOLCHAIN_VER_${NORMALIZED_BOARD_TARGET}) 16 set(XTENSA_TOOLCHAIN_VER ${TOOLCHAIN_VER_${NORMALIZED_BOARD_TARGET}}) 17 else() 18 message(FATAL "Environment variable TOOLCHAIN_VER must be set or given as -DTOOLCHAIN_VER=<var>") 19 endif() 20endif() 21 22zephyr_get(XTENSA_CORE_${NORMALIZED_BOARD_TARGET}) 23if(DEFINED XTENSA_CORE_${NORMALIZED_BOARD_TARGET}) 24 set(XTENSA_CORE_LOCAL_C_FLAG "--xtensa-core=${XTENSA_CORE_${NORMALIZED_BOARD_TARGET}}") 25 list(APPEND TOOLCHAIN_C_FLAGS "--xtensa-core=${XTENSA_CORE_${NORMALIZED_BOARD_TARGET}}") 26 list(APPEND TOOLCHAIN_LD_FLAGS "--xtensa-core=${XTENSA_CORE_${NORMALIZED_BOARD_TARGET}}") 27else() 28 # Not having XTENSA_CORE is not necessarily fatal as 29 # the toolchain can have a default core configuration to use. 30 set(XTENSA_CORE_LOCAL_C_FLAG) 31endif() 32 33set(TOOLCHAIN_HOME ${XTENSA_TOOLCHAIN_PATH}/${XTENSA_TOOLCHAIN_VER}/XtensaTools) 34 35set(LINKER ld) 36set(BINTOOLS gnu) 37 38set(CROSS_COMPILE_TARGET xt) 39set(SYSROOT_TARGET xtensa-elf) 40 41set(CROSS_COMPILE ${TOOLCHAIN_HOME}/bin/${CROSS_COMPILE_TARGET}-) 42set(SYSROOT_DIR ${TOOLCHAIN_HOME}/${SYSROOT_TARGET}) 43 44set(NOSYSDEF_CFLAG "") 45 46list(APPEND TOOLCHAIN_C_FLAGS -fms-extensions) 47 48set(TOOLCHAIN_HAS_NEWLIB OFF CACHE BOOL "True if toolchain supports newlib") 49