mirror of
https://git.yoctoproject.org/poky
synced 2026-02-12 03:33:02 +01:00
Newer kernels (4.14/v4.15+) have dependencies for the build of modules (and hence external modules). Without these dependencies explicitly in the build chain, you can end up with build failures like: work-shared/qemux86/kernel-source/scripts/extract-cert.c:21:25: fatal error: openssl/bio.h: No such file or directory | #include <openssl/bio.h> | ^ | compilation terminated. | make[2]: *** [scripts/extract-cert] Error 1 | make[1]: *** [scripts] Error 2 To ensure that these headers are in place, and that the scripts use our build environment flags, we add a dependency on openssl-native and use oe_make to invoke the build. Older kernels have no issues with the extra dependency, so there's no need to make this conditional. (From OE-Core rev: 916cb2029d3c97bf12ebf03832b9ba980451dbcf) Fixes [YOCTO #12860] (From OE-Core rev: d2aa88a6a92985f21414fceea2dc0facbf7f8779) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> [Tweaked to have changes in module*.bbclass instead from where make-mod-scripts was split in sumo] Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
31 lines
1.1 KiB
Plaintext
31 lines
1.1 KiB
Plaintext
inherit kernel-arch
|
|
|
|
# This is instead of DEPENDS = "virtual/kernel"
|
|
do_configure[depends] += "virtual/kernel:do_compile_kernelmodules"
|
|
|
|
export OS = "${TARGET_OS}"
|
|
export CROSS_COMPILE = "${TARGET_PREFIX}"
|
|
|
|
# This points to the build artefacts from the main kernel build
|
|
# such as .config and System.map
|
|
# Confusingly it is not the module build output (which is ${B}) but
|
|
# we didn't pick the name.
|
|
export KBUILD_OUTPUT = "${STAGING_KERNEL_BUILDDIR}"
|
|
|
|
DEPENDS += "bc-native"
|
|
EXTRA_OEMAKE += " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}""
|
|
|
|
export KERNEL_VERSION = "${@base_read_file('${STAGING_KERNEL_BUILDDIR}/kernel-abiversion')}"
|
|
KERNEL_OBJECT_SUFFIX = ".ko"
|
|
|
|
# kernel modules are generally machine specific
|
|
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
|
|
|
# Function to ensure the kernel scripts are created. Expected to
|
|
# be called before do_compile. See module.bbclass for an example.
|
|
do_make_scripts() {
|
|
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
|
|
oe_runmake CC="${KERNEL_CC}" LD="${KERNEL_LD}" AR="${KERNEL_AR}" \
|
|
-C ${STAGING_KERNEL_DIR} O=${STAGING_KERNEL_BUILDDIR} scripts prepare
|
|
}
|