Excerpts from Bruce Ashfield's message of 2020-04-21 08:33:34 -04:00:
> On Tue, Apr 21, 2020 at 5:37 AM Dan Callaghan
> <[email protected]> wrote:
> >
> > We need to copy include/config/auto.conf into ${STAGING_KERNEL_BUILDDIR}
> > to avoid module compilation errors like this:
> >
> >     | make[1]: Entering directory 
> > 'build/tmp-glibc/work-shared/machine/kernel-source'
> >     | make[2]: Entering directory 
> > 'build/tmp-glibc/work-shared/machine/kernel-build-artifacts'
> >     |
> >     |   ERROR: Kernel configuration is invalid.
> >     |          include/generated/autoconf.h or include/config/auto.conf are 
> > missing.
> >     |          Run 'make oldconfig && make prepare' on kernel src to fix it.
> >     |
> >     | make[2]: *** 
> > [build/tmp-glibc/work-shared/machine/kernel-source/Makefile:641: 
> > include/config/auto.conf] Error 1
> >
> > We also need scripts/basic/fixdep to avoid errors like this:
> >
> >     | make[1]: Entering directory 
> > 'build/tmp-glibc/work-shared/machine/kernel-source'
> >     | make[2]: Entering directory 
> > 'build/tmp-glibc/work-shared/machine/kernel-build-artifacts'
> >     |   CC [M]  
> > build/tmp-glibc/work/vendor-linux/tehuti-module/0.3.6-r0/git/TLK10232_phy_Linux.o
> >     | /bin/sh: scripts/basic/fixdep: No such file or directory
> >     | make[3]: *** 
> > [build/tmp-glibc/work-shared/machine/kernel-source/scripts/Makefile.build:303:
> >  
> > build/tmp-glibc/work/vendor-linux/tehuti-module/0.3.6-r0/git/TLK10232_phy_Linux.o]
> >  Error 127
> >
> > And scripts/mod/modpost to avoid errors like this:
> >
> >     |   Building modules, stage 2.
> >     |   MODPOST 1 modules
> >     | /bin/sh: scripts/mod/modpost: No such file or directory
> >     | make[3]: *** 
> > [build/tmp-glibc/work-shared/machine/kernel-source/scripts/Makefile.modpost:92:
> >  __modpost] Error 127
> >
> > Most of the time, the absence of these files is masked by the
> > make-mod-scripts recipe's do_configure task, which causes a whole bunch
> > of extra files to be built into ${STAGING_KERNEL_BUILDDIR} (including
> > these two). Typically make-mod-scripts will be built before any kernel
> > modules, and so it didn't matter that do_shared_workdir was missing
> > these files.
> >
> 
> The design is that, make-mod-scripts is what provides those files, we
> don't want to copy them, since it is an ever incomplete list (more so
> in the past, but the concept still holds).

Okay, I think you're saying that what do_shared_workdir claims to do 
(populate ${STAGING_KERNEL_BUILDDIR} with whatever files are needed to 
build kernel modules) should actually be handled by make-mod-scripts 
instead.

Does that mean, do_shared_workdir has no purpose? Or is it doing 
something else I don't realise?

> > However the problem will be evident if you do certain sequences of
> > tasks, for example a complete build first (so that make-mod-scripts is
> > already built), then:
> >
> >     bitbake linux-yocto my-kernel-module -c clean
> >     bitbake my-kernel-module -c install
> 
> Why can't we fix the dependency ? We chased a few of these around when
> the mod-scripts recipe was introduced, and this just looks like a
> variant we missed.

Right, so there *is* already a correct dependency on 
make-mod-scripts:do_compile. The problem is, in the scenario I gave 
above, that task is already done and Bitbake is not going to run it 
again. But in fact, the stuff it left behind in 
${STAGING_KERNEL_BUILDDIR} was cleaned out when I cleaned the 
linux-yocto recipe.

I guess the real issue is that we have this "shared" work directory 
which a bunch of different recipes contribute files to, but can be 
cleaned out by running the "clean" task on any one of several different 
recipes.

-- 
Dan Callaghan <[email protected]>
Software Engineer
Opengear <https://opengear.com/>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#137364): 
https://lists.openembedded.org/g/openembedded-core/message/137364
Mute This Topic: https://lists.openembedded.org/mt/73168943/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub  
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to