This version works better for me. On 2020-11-13 9:27 p.m., Bruce Ashfield wrote: > From: Bruce Ashfield <[email protected]> > > The upstream commit 596b0474d3d [kbuild: preprocess module linker > script], adds a dependency on module.lds for external module > building. > > Since module.lds is generated as part of 'modules_prepare', we > must make it available with the other kernel artifacts in the > kernel shared workdir, otherwise out of tree builds fail. > > This fixes errors like: > > | make[4]: *** No rule to make target 'scripts/module.lds', needed by > > 'build/tmp/work/qemuarm64-poky-linux/cryptodev-module/1.11-r0/git/cryptodev.ko'. > Stop. > | make[4]: *** Waiting for unfinished jobs.... > > We also ensure that kernel-devsrc has a copy to support on > target module builds that are often prepared with 'make scripts > prepare'. Those targets won't regenerate it, so the build fails. > If 'make modules_prepare' is used, the file will be regenerated > and overwrite our copy (as expected). > > Signed-off-by: Pan, Kris <[email protected]> > Signed-off-by: Lili Li <[email protected]> > Signed-off-by: Bruce Ashfield <[email protected]> Tested-by: Scott Branden <[email protected]> > --- > > v2: > - I was right that we really only should be copying this in one > location, but it wasn't clear that the main kernel build no > longer runs modules_prepare so the do_shared_workdir task will > *never* fine module.lds on a clean run. > > So we just need the single copy after we've build our modules > to ensure that the file is available. > > Tested against a clean kernel and module build, just building > the module. Dependencies are correct and the file is copied > for the module to build. > > We could do the same thing for Module.symvers, but historically > it was generated during the main kernel build .. so we can leave > it there for old kernel support. > > > meta/classes/kernel.bbclass | 1 + > meta/recipes-kernel/linux/kernel-devsrc.bb | 6 ++++++ > 2 files changed, 7 insertions(+) > > diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass > index be93a258f6..af4c891de4 100644 > --- a/meta/classes/kernel.bbclass > +++ b/meta/classes/kernel.bbclass > @@ -391,6 +391,7 @@ do_compile_kernelmodules() { > # other kernel modules and will look at this > # file to do symbol lookups > cp ${B}/Module.symvers ${STAGING_KERNEL_BUILDDIR}/ > + [ -e ${B}/scripts/module.lds ] && install -Dm 0644 > ${B}/scripts/module.lds ${STAGING_KERNEL_BUILDDIR}/scripts/module.lds > else > bbnote "no modules to compile" > fi > diff --git a/meta/recipes-kernel/linux/kernel-devsrc.bb > b/meta/recipes-kernel/linux/kernel-devsrc.bb > index 81b1e36041..5f0dedbdf7 100644 > --- a/meta/recipes-kernel/linux/kernel-devsrc.bb > +++ b/meta/recipes-kernel/linux/kernel-devsrc.bb > @@ -100,6 +100,12 @@ do_install() { > # be dealt with. > # cp -a scripts $kerneldir/build > > + # although module.lds can be regenerated on target via 'make > modules_prepare' > + # there are several places where 'makes scripts prepare' is done, and > that won't > + # regenerate the file. So we copy it onto the target as a migration to > using > + # modules_prepare > + cp -a --parents scripts/module.lds $kerneldir/build/ 2>/dev/null || : > + > if [ -d arch/${ARCH}/scripts ]; then > cp -a arch/${ARCH}/scripts $kerneldir/build/arch/${ARCH} > fi > > >
smime.p7s
Description: S/MIME Cryptographic Signature
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#144668): https://lists.openembedded.org/g/openembedded-core/message/144668 Mute This Topic: https://lists.openembedded.org/mt/78246068/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
