diff options
author | Bruce Ashfield <bruce.ashfield@windriver.com> | 2018-07-28 16:49:50 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-08-15 10:22:26 +0100 |
commit | d2aa88a6a92985f21414fceea2dc0facbf7f8779 (patch) | |
tree | 528fc8305f1080bf4fc83a7e7a51840598d7b068 | |
parent | 49b208fc7b3d52826ba57a86ed52bc30e181ff78 (diff) | |
download | openembedded-core-contrib-d2aa88a6a92985f21414fceea2dc0facbf7f8779.tar.gz |
make-mod-scripts: add build requirements for external modules
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]
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>
-rw-r--r-- | meta/classes/module-base.bbclass | 5 | ||||
-rw-r--r-- | meta/classes/module.bbclass | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/meta/classes/module-base.bbclass b/meta/classes/module-base.bbclass index 64729770c7..9f3465eb9d 100644 --- a/meta/classes/module-base.bbclass +++ b/meta/classes/module-base.bbclass @@ -12,6 +12,9 @@ export CROSS_COMPILE = "${TARGET_PREFIX}" # 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" @@ -22,6 +25,6 @@ PACKAGE_ARCH = "${MACHINE_ARCH}" # be called before do_compile. See module.bbclass for an example. do_make_scripts() { unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS - make CC="${KERNEL_CC}" LD="${KERNEL_LD}" AR="${KERNEL_AR}" \ + oe_runmake CC="${KERNEL_CC}" LD="${KERNEL_LD}" AR="${KERNEL_AR}" \ -C ${STAGING_KERNEL_DIR} O=${STAGING_KERNEL_BUILDDIR} scripts prepare } diff --git a/meta/classes/module.bbclass b/meta/classes/module.bbclass index 78d1b21dbd..282900dc6d 100644 --- a/meta/classes/module.bbclass +++ b/meta/classes/module.bbclass @@ -2,7 +2,7 @@ inherit module-base kernel-module-split pkgconfig addtask make_scripts after do_prepare_recipe_sysroot before do_configure do_make_scripts[lockfiles] = "${TMPDIR}/kernel-scripts.lock" -do_make_scripts[depends] += "virtual/kernel:do_shared_workdir" +do_make_scripts[depends] += "virtual/kernel:do_shared_workdir openssl-native:do_populate_sysroot" EXTRA_OEMAKE += "KERNEL_SRC=${STAGING_KERNEL_DIR}" |