Hi Jacob, Jacob Kroon <jacob.kr...@gmail.com> escreveu no dia terça, 2/08/2022 à(s) 17:19:
> On 7/20/22 13:30, Jose Quaresma wrote: > > The task do_compile_kernelmodules runs after the shared_workdir and > > is installing some files in STAGING_KERNEL_BUILDDIR, this can races > > in other recipes that depends on "virtual/kernel:do_shared_workdir" > > as the STAGING_KERNEL_BUILDDIR is not fully populated when the > > shared_workdir task ends. > > > > To address this issue a new task is added in place of the previows one > > so the shared_workdir will run after the do_compile_kernelmodules and > > the new shared_workdir_prepare will replce of the old shared_workdir. > > > > Signed-off-by: Jose Quaresma <jose.quare...@foundries.io> > > --- > > meta/classes/kernel.bbclass | 11 +++++++++-- > > 1 file changed, 9 insertions(+), 2 deletions(-) > > > > diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass > > index 5d2f17c3be..5558769c92 100644 > > --- a/meta/classes/kernel.bbclass > > +++ b/meta/classes/kernel.bbclass > > @@ -504,7 +504,8 @@ do_kernel_version_sanity_check() { > > exit 0 > > } > > > > -addtask shared_workdir after do_compile before do_compile_kernelmodules > > +addtask shared_workdir_prepare after do_compile before > do_compile_kernelmodules > > +addtask shared_workdir after do_compile_kernelmodules > > addtask shared_workdir_setscene > > > > do_shared_workdir_setscene () { > > @@ -520,10 +521,16 @@ emit_depmod_pkgdata() { > > > > PACKAGEFUNCS += "emit_depmod_pkgdata" > > > > -do_shared_workdir[cleandirs] += " ${STAGING_KERNEL_BUILDDIR}" > > do_shared_workdir () { > > cd ${B} > > > > + kerneldir=${STAGING_KERNEL_BUILDDIR} > > +} > > Does the above do anything actually useful ? I thought neither the > current workdir or a variable set in a shell function would be preserved > for the next task ? > It is strictly necessary to be backward compatible with what we have before, otherwise any possible do_shared_workdir:appends that may exist in other layers would stop working. For setting the task work dir you can use the [dirs] flag in the task where the last directory will be the task workdir. https://docs.yoctoproject.org/bitbake/2.0/bitbake-user-manual/bitbake-user-manual-metadata.html#variable-flags Without it the work dir of the task is the current directory where you run bitbake. About the variable created during tasks it only exists until the end of the task where they were created. You can check that inside $WORKDIR/temp/run.TASK, in each case is $WORKDIR/temp/run.do_shared_workdir So we have to keep the working directory as well as the variables from the do_shared_workdir_prepare that are expected at the end of the do_shared_workdir. Jose > > + > > +do_shared_workdir_prepare[cleandirs] += " ${STAGING_KERNEL_BUILDDIR}" > > +do_shared_workdir_prepare () { > > + cd ${B} > > + > > kerneldir=${STAGING_KERNEL_BUILDDIR} > > install -d $kerneldir > > > > Jacob > -- Best regards, José Quaresma
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#168813): https://lists.openembedded.org/g/openembedded-core/message/168813 Mute This Topic: https://lists.openembedded.org/mt/92502346/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-