@@ -29,7 +29,9 @@ LIC_FILES_CHKSUM ?= "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171
INHIBIT_DEFAULT_DEPS = "1"
DEPENDS += "dtc-native"
-inherit deploy kernel-arch
+inherit deploy
+
+export ARCH = "${@oe.kernel.map_kernel_arch(d)}"
COMPATIBLE_MACHINE ?= "^$"
@@ -4,11 +4,6 @@
# SPDX-License-Identifier: MIT
#
-# set the ARCH environment variable for kernel compilation (including
-# modules). return value must match one of the architecture directories
-# in the kernel source "arch" directory
-export ARCH = "${@oe.kernel.map_kernel_arch(d)}"
-
# Set TARGET_??_KERNEL_ARCH in the machine .conf to set architecture
# specific options necessary for building the kernel and modules.
TARGET_CC_KERNEL_ARCH ?= ""
@@ -6,6 +6,8 @@
inherit linux-kernel-base kernel-module-split features_check
+ARCH = "${@oe.kernel.map_kernel_arch(d)}"
+
COMPATIBLE_HOST = ".*-linux"
# Linux has a minimum ISA requires on riscv, see arch/riscv/Makefile
@@ -245,6 +247,7 @@ UBOOT_LOADADDRESS ?= "${UBOOT_ENTRYPOINT}"
# Some Linux kernel configurations need additional parameters on the command line
KERNEL_EXTRA_ARGS ?= ""
+EXTRA_OEMAKE += ' ARCH="${@oe.kernel.map_kernel_arch(d)}"'
EXTRA_OEMAKE += ' CC="${KERNEL_CC}" LD="${KERNEL_LD}" OBJCOPY="${KERNEL_OBJCOPY}" STRIP="${KERNEL_STRIP}"'
EXTRA_OEMAKE += ' HOSTCC="${BUILD_CC}" HOSTCFLAGS="${BUILD_CFLAGS}" HOSTLDFLAGS="${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}"'
EXTRA_OEMAKE += ' HOSTCXX="${BUILD_CXX}" HOSTCXXFLAGS="${BUILD_CXXFLAGS}"'
@@ -10,6 +10,7 @@ inherit kernel-arch
# in sstate, so we must force do_compile to run (once).
do_configure[depends] += "make-mod-scripts:do_compile"
+export ARCH = "${@oe.kernel.map_kernel_arch(d)}"
export OS = "${TARGET_OS}"
export CROSS_COMPILE = "${TARGET_PREFIX}"
@@ -21,7 +21,8 @@ DEPENDS += "gmp-native"
INHIBIT_DEFAULT_DEPS = "1"
DEPENDS += "virtual/cross-cc virtual/cross-binutils"
-EXTRA_OEMAKE = " HOSTCC="${BUILD_CC}" HOSTCFLAGS="${BUILD_CFLAGS}" HOSTLDFLAGS="${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}""
+EXTRA_OEMAKE = ' ARCH="${@oe.kernel.map_kernel_arch(d)}"'
+EXTRA_OEMAKE += " HOSTCC="${BUILD_CC}" HOSTCFLAGS="${BUILD_CFLAGS}" HOSTLDFLAGS="${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}""
EXTRA_OEMAKE += " HOSTCXX="${BUILD_CXX} ${BUILD_CXXFLAGS} ${BUILD_LDFLAGS}" CROSS_COMPILE=${TARGET_PREFIX}"
KERNEL_LOCALVERSION = "${@oe.kernel.get_localversion_file("${STAGING_KERNEL_BUILDDIR}")}"
@@ -58,6 +58,8 @@ PROVIDES = "virtual/perf"
inherit linux-kernel-base kernel-arch manpages pkgconfig
+ARCH = "${@oe.kernel.map_kernel_arch(d)}"
+
# needed for building the tools/perf Python bindings
inherit_defer ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3targetconfig', '', d)}
inherit python3-dir
Since ARCH is just a function now we can move it into the target class usages and drop it from the default environment. We still have to export in some cases where the usage is unknown but this does significatly reduce the scope and number of places exported to. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> --- meta/classes-recipe/devicetree.bbclass | 4 +++- meta/classes-recipe/kernel-arch.bbclass | 5 ----- meta/classes-recipe/kernel.bbclass | 3 +++ meta/classes-recipe/module-base.bbclass | 1 + meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb | 3 ++- meta/recipes-kernel/perf/perf.bb | 2 ++ 6 files changed, 11 insertions(+), 7 deletions(-)