Files
meta-zephyr/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-kernel-common.inc
Peter Hoyes 871979b4d1 zephyr-core/zephyr-kernel: Use the upstream "cross-compile" toolchain
Zephyr upstream contains CMake configuration for a "cross-compile"
toolchain for "other cross compilers" which works with the Yocto-built
toolchain out-of-the-box, so use this instead of the "yocto" toolchain,
which requires a downstream patch to be carried.

The Yocto-built toolchain does not support --print-sysroot so that
toolchains can be shared between multiple builds with different
sysroots, so manually set SYSROOT_DIR to the staging directory.

Use the "cross-compile" toolchain by default.

Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2023-02-24 16:24:35 +08:00

56 lines
1.4 KiB
PHP

# Common settings for all Zephyr recipes
ZEPHYR_INHERIT_CLASSES += "zephyr cmake"
inherit ${ZEPHYR_INHERIT_CLASSES}
# There shouldn't be a manifest for zephyr kernels since there is no root
# filesystem.
IMAGE_NO_MANIFEST = "1"
ZEPHYR_TOOLCHAIN_VARIANT ?= "cross-compile"
require zephyr-toolchain-${ZEPHYR_TOOLCHAIN_VARIANT}.inc
ZEPHYR_MAKE_OUTPUT = "zephyr.elf"
ZEPHYR_MAKE_BIN_OUTPUT = "zephyr.bin"
ZEPHYR_MAKE_EFI_OUTPUT = "zephyr.efi"
EXTRA_OECMAKE = "\
-DZEPHYR_BASE=${ZEPHYR_BASE} \
-DBOARD=${BOARD} \
-DARCH=${ARCH} \
-DZEPHYR_TOOLCHAIN_VARIANT=${ZEPHYR_TOOLCHAIN_VARIANT} \
-DZEPHYR_MODULES=${ZEPHYR_MODULES} \
"
ZEPHYR_EXTRA_MODULES = ""
EXTRA_OECMAKE:append = " -DZEPHYR_EXTRA_MODULES=${ZEPHYR_EXTRA_MODULES}"
export ZEPHYR_BASE="${S}/zephyr"
DEPENDS += "gperf-native"
DEPENDS:append:qemuall = " qemu-native qemu-helper-native"
# The makefiles are explicit about the flags they want, so don't unset
# them so zephyr flags actually get used.
# This is done here rather than in the task so that things still work
# in devshell.
python () {
d.delVar('CFLAGS')
d.delVar('CXXFLAGS')
d.delVar('LDFLAGS')
}
OE_TERMINAL_EXPORTS += "BOARD"
OE_TERMINAL_EXPORTS += "ZEPHYR_SRC_DIR"
OE_TERMINAL_EXPORTS += "ZEPHYR_BASE"
IMAGE_FSTYPES = "elf bin"
do_configure:prepend() {
# Zephyr expects CPPFLAGS as cmake argument as and ignores env variables.
unset CPPFLAGS
}