Instead of setting XCC_USE_CLANG=1, this patch adds xcc-clang toolchain
that is basically xcc using the clang compiler.
Initially, the new toolchain simply includes files from current xcc
toolchain and (re)sets some variables. This should be a more scalable
approach to diverge the toolchains in the future than placing
"if($ENV{XCC_USE_CLANG})" at several places.
It should also help to filter tests that run (or not) exclusively with
the clang variant of XCC on twister.
The XCC_USE_CLANG flag is documented as deprecated, and a message is
emitted during build if still in use. Its new behaviour is to instruct
Zephyr to use `xcc-clang` toolchain.
Signed-off-by: Ederson de Souza <ederson.desouza@intel.com>
25 lines
879 B
CMake
25 lines
879 B
CMake
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
include(${ZEPHYR_BASE}/cmake/toolchain/xcc/common.cmake)
|
|
|
|
set(COMPILER xcc)
|
|
set(OPTIMIZE_FOR_DEBUG_FLAG "-O0")
|
|
set(CC xcc)
|
|
set(C++ xc++)
|
|
|
|
list(APPEND TOOLCHAIN_C_FLAGS
|
|
-imacros${ZEPHYR_BASE}/include/toolchain/xcc_missing_defs.h
|
|
)
|
|
|
|
# GCC-based XCC uses GNU Assembler (xt-as).
|
|
# However, CMake doesn't recognize it when invoking through xt-xcc.
|
|
# This results in CMake going through all possible combinations of
|
|
# command line arguments while invoking xt-xcc to determine
|
|
# assembler vendor. This multiple invocation of xt-xcc unnecessarily
|
|
# lengthens the CMake phase of build, especially when XCC needs to
|
|
# obtain license information from remote licensing servers. So here
|
|
# forces the assembler ID to be GNU to speed things up a bit.
|
|
set(CMAKE_ASM_COMPILER_ID "GNU")
|
|
|
|
message(STATUS "Found toolchain: xcc (${XTENSA_TOOLCHAIN_PATH})")
|