summaryrefslogtreecommitdiff
path: root/upstream-layers/openembedded-core/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
blob: 4b0630313f390b48d883ca1d42546e6302b601b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
SUMMARY = "Build tools needed by external modules"
HOMEPAGE = "https://www.yoctoproject.org/"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"

inherit kernel-arch linux-kernel-base
inherit pkgconfig

PACKAGE_ARCH = "${MACHINE_ARCH}"

S = "${UNPACKDIR}"

do_configure[depends] += "virtual/kernel:do_shared_workdir openssl-native:do_populate_sysroot"
do_compile[depends] += "virtual/kernel:do_compile_kernelmodules"

DEV_PKG_DEPENDENCY = ""

DEPENDS += "bc-native bison-native"
DEPENDS += "gmp-native"

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 = "${@get_kernellocalversion_file("${STAGING_KERNEL_BUILDDIR}")}"
export LOCALVERSION = "${KERNEL_LOCALVERSION}"

# Build some host tools under work-shared.  CC, LD, and AR are probably
# not used, but this is the historical way of invoking "make scripts".
#
do_configure() {
	unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
	for t in prepare scripts_basic scripts; do
		oe_runmake CC="${KERNEL_CC}" LD="${KERNEL_LD}" \
		AR="${KERNEL_AR}" OBJCOPY="${KERNEL_OBJCOPY}" \
		STRIP="${KERNEL_STRIP}" \
		-C ${STAGING_KERNEL_DIR} O=${STAGING_KERNEL_BUILDDIR} $t
	done
}

# Linux rust build infrastructure does not currently support ccache
# see https://github.com/Rust-for-Linux/linux/issues/1224
# Quick summary: There are 2 issues: $HOSTCC is not escaped and rustc expect a path (and not a command)
# More details in: https://lists.openembedded.org/g/openembedded-core/message/229336
# Disable ccache for kernel build if kernel rust support is enabled to workaround this
CCACHE_DISABLE ?= "${@bb.utils.contains('KERNEL_FEATURES', 'rust', "1", "0", d)}"

#Fixes buildpath issues when compiling rust-out-of-tree module
RUST_DEBUG_REMAP ?= "--remap-path-prefix=${TMPDIR}/work-shared=${TARGET_DBGSRC_DIR} \
                     --remap-path-prefix=${TMPDIR}/work=${TARGET_DBGSRC_DIR} \
"
KRUSTFLAGS = " ${RUST_DEBUG_REMAP}"
EXTRA_OEMAKE:append = ' KRUSTFLAGS="${KRUSTFLAGS}"'