diff --git a/Kconfig.zephyr b/Kconfig.zephyr index 2d8031260ce..cd486362964 100644 --- a/Kconfig.zephyr +++ b/Kconfig.zephyr @@ -497,7 +497,8 @@ choice COMPILER_OPTIMIZATIONS prompt "Optimization level" default NO_OPTIMIZATIONS if COVERAGE default DEBUG_OPTIMIZATIONS if DEBUG - default SIZE_OPTIMIZATIONS_AGGRESSIVE if "$(ZEPHYR_TOOLCHAIN_VARIANT)" = "llvm" + default SIZE_OPTIMIZATIONS_AGGRESSIVE if "$(ZEPHYR_TOOLCHAIN_VARIANT)" = "llvm" \ + || "${ZEPHYR_TOOLCHAIN_VARIANT}" = "zephyr-llvm" default SIZE_OPTIMIZATIONS help Note that these flags shall only control the compiler diff --git a/cmake/modules/FindHostTools.cmake b/cmake/modules/FindHostTools.cmake index a1ea6631bf5..da3024e2c24 100644 --- a/cmake/modules/FindHostTools.cmake +++ b/cmake/modules/FindHostTools.cmake @@ -96,7 +96,9 @@ zephyr_file(APPLICATION_ROOT TOOLCHAIN_ROOT) # Host-tools don't unconditionally set TOOLCHAIN_HOME anymore, # but in case Zephyr's SDK toolchain is used, set TOOLCHAIN_HOME -if("${ZEPHYR_TOOLCHAIN_VARIANT}" STREQUAL "zephyr") +if(("${ZEPHYR_TOOLCHAIN_VARIANT}" STREQUAL "zephyr-gnu") OR + ("${ZEPHYR_TOOLCHAIN_VARIANT}" STREQUAL "zephyr-llvm") OR + ("${ZEPHYR_TOOLCHAIN_VARIANT}" STREQUAL "zephyr")) set(TOOLCHAIN_HOME ${HOST_TOOLS_HOME}) endif() diff --git a/cmake/modules/FindZephyr-sdk.cmake b/cmake/modules/FindZephyr-sdk.cmake index 90bbed017ce..45edf24dd91 100644 --- a/cmake/modules/FindZephyr-sdk.cmake +++ b/cmake/modules/FindZephyr-sdk.cmake @@ -54,7 +54,9 @@ endif() # 1) Zephyr specified as toolchain (ZEPHYR_SDK_INSTALL_DIR still used if defined) # 2) No toolchain specified == Default to Zephyr toolchain # Until we completely deprecate it -if(("zephyr" STREQUAL ${ZEPHYR_TOOLCHAIN_VARIANT}) OR +if(("zephyr-gnu" STREQUAL ${ZEPHYR_TOOLCHAIN_VARIANT}) OR + ("zephyr-llvm" STREQUAL ${ZEPHYR_TOOLCHAIN_VARIANT}) OR + ("zephyr" STREQUAL ${ZEPHYR_TOOLCHAIN_VARIANT}) OR (NOT DEFINED ZEPHYR_TOOLCHAIN_VARIANT) OR (DEFINED ZEPHYR_SDK_INSTALL_DIR) OR (Zephyr-sdk_FIND_REQUIRED)) diff --git a/cmake/toolchain/zephyr-gnu/generic.cmake b/cmake/toolchain/zephyr-gnu/generic.cmake new file mode 100644 index 00000000000..86b92c0daf9 --- /dev/null +++ b/cmake/toolchain/zephyr-gnu/generic.cmake @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: Apache-2.0 + +include(${ZEPHYR_SDK_INSTALL_DIR}/cmake/zephyr/gnu/generic.cmake) + +set(TOOLCHAIN_KCONFIG_DIR ${ZEPHYR_SDK_INSTALL_DIR}/cmake/zephyr) + +message(STATUS "Found toolchain: zephyr-sdk-gnu ${SDK_VERSION} (${ZEPHYR_SDK_INSTALL_DIR})") diff --git a/cmake/toolchain/zephyr-gnu/target.cmake b/cmake/toolchain/zephyr-gnu/target.cmake new file mode 100644 index 00000000000..62c0ba371dc --- /dev/null +++ b/cmake/toolchain/zephyr-gnu/target.cmake @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: Apache-2.0 + +include(${ZEPHYR_SDK_INSTALL_DIR}/cmake/zephyr/gnu/target.cmake) diff --git a/cmake/toolchain/zephyr-llvm/generic.cmake b/cmake/toolchain/zephyr-llvm/generic.cmake new file mode 100644 index 00000000000..a73aabfbb46 --- /dev/null +++ b/cmake/toolchain/zephyr-llvm/generic.cmake @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: Apache-2.0 + +include(${ZEPHYR_SDK_INSTALL_DIR}/cmake/zephyr/llvm/generic.cmake) + +set(TOOLCHAIN_KCONFIG_DIR ${ZEPHYR_SDK_INSTALL_DIR}/cmake/zephyr) + +message(STATUS "Found toolchain: zephyr-sdk-llvm ${SDK_VERSION} (${ZEPHYR_SDK_INSTALL_DIR})") diff --git a/cmake/toolchain/zephyr-llvm/target.cmake b/cmake/toolchain/zephyr-llvm/target.cmake new file mode 100644 index 00000000000..380d45859f8 --- /dev/null +++ b/cmake/toolchain/zephyr-llvm/target.cmake @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: Apache-2.0 + +include(${ZEPHYR_SDK_INSTALL_DIR}/cmake/zephyr/llvm/target.cmake) diff --git a/cmake/toolchain/zephyr/generic.cmake b/cmake/toolchain/zephyr/generic.cmake deleted file mode 100644 index f59d18c56fc..00000000000 --- a/cmake/toolchain/zephyr/generic.cmake +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 - -include(${ZEPHYR_SDK_INSTALL_DIR}/cmake/zephyr/generic.cmake) - -set(TOOLCHAIN_KCONFIG_DIR ${ZEPHYR_SDK_INSTALL_DIR}/cmake/zephyr) - -message(STATUS "Found toolchain: zephyr ${SDK_VERSION} (${ZEPHYR_SDK_INSTALL_DIR})") diff --git a/cmake/toolchain/zephyr/target.cmake b/cmake/toolchain/zephyr/target.cmake deleted file mode 100644 index 9eda6fa4e39..00000000000 --- a/cmake/toolchain/zephyr/target.cmake +++ /dev/null @@ -1,3 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 - -include(${ZEPHYR_SDK_INSTALL_DIR}/cmake/zephyr/target.cmake) diff --git a/lib/runtime/Kconfig b/lib/runtime/Kconfig index afb78f5b82b..0be6b404edc 100644 --- a/lib/runtime/Kconfig +++ b/lib/runtime/Kconfig @@ -4,7 +4,8 @@ config COMPILER_RT_SUPPORTED bool default y - depends on "${ZEPHYR_TOOLCHAIN_VARIANT}" = "llvm" + depends on "${ZEPHYR_TOOLCHAIN_VARIANT}" = "llvm" \ + || "${ZEPHYR_TOOLCHAIN_VARIANT}" = "zephyr-llvm" help Selected when the compiler supports compiler-rt runtime library. diff --git a/modules/trusted-firmware-m/CMakeLists.txt b/modules/trusted-firmware-m/CMakeLists.txt index fff2be36070..1a0653e3e54 100644 --- a/modules/trusted-firmware-m/CMakeLists.txt +++ b/modules/trusted-firmware-m/CMakeLists.txt @@ -202,10 +202,14 @@ if (CONFIG_BUILD_WITH_TFM) # Get the toolchain variant # TODO: Add support for cross-compile toolchain variant # TODO: Enforce GCC version check against TF-M compiler requirements - if(${ZEPHYR_TOOLCHAIN_VARIANT} STREQUAL "zephyr") + if(${ZEPHYR_TOOLCHAIN_VARIANT} STREQUAL "zephyr-gnu") set(TFM_TOOLCHAIN_FILE "toolchain_GNUARM.cmake") set(TFM_TOOLCHAIN_PREFIX "arm-zephyr-eabi") - set(TFM_TOOLCHAIN_PATH ${ZEPHYR_SDK_INSTALL_DIR}/arm-zephyr-eabi/bin) + set(TFM_TOOLCHAIN_PATH ${ZEPHYR_SDK_INSTALL_DIR}/gnu/arm-zephyr-eabi/bin) + elseif(${ZEPHYR_TOOLCHAIN_VARIANT} STREQUAL "zephyr-llvm") + set(TFM_TOOLCHAIN_FILE "toolchain_GNUARM.cmake") + set(TFM_TOOLCHAIN_PREFIX "arm-zephyr-eabi") + set(TFM_TOOLCHAIN_PATH ${ZEPHYR_SDK_INSTALL_DIR}/llvm/bin) elseif(${ZEPHYR_TOOLCHAIN_VARIANT} STREQUAL "gnuarmemb") set(TFM_TOOLCHAIN_FILE "toolchain_GNUARM.cmake") set(TFM_TOOLCHAIN_PREFIX "arm-none-eabi")