Skip to content

Commit

Permalink
lmp-staging: archiver multiconfig signature workaround
Browse files Browse the repository at this point in the history
The OE archiver bbclass do_deploy_archives task is broken
with multiconfig for shared recipes, the tasks have
diferent signatures for each machine used in the
multiconfig and this can rise race conditions.

To eliminate this race conditions we will use the signature
of the previous task do_unpack_and_patch that works with
multiconfig, this will make the do_deploy_archives task
machine agnostic.

Steps to reproduce:

| bitbake mc:k3r5:gcc-source-12.2.0 gcc-source-12.2.0 -c do_deploy_archives -S none

And check the signatures:

| cat locked-sigs.inc |grep gcc-source | sort | uniq
| # gcc-source-12.2.0:do_deploy_archives:541a6951ee58276d9698f631a18ff47962131fb5a21d9b7d60e27bc84165ecb2 \
| # gcc-source-12.2.0:do_deploy_archives:b3149f6c89dc250d02a978e2492126dcef43ffac974856d94e2be3d8038bc2fd \

Signed-off-by: Jose Quaresma <[email protected]>
  • Loading branch information
quaresmajose committed Oct 18, 2022
1 parent c86f9e2 commit f92d49f
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions meta-lmp-base/classes/lmp-staging.bbclass
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@ python __anonymous() {

if pn in ["clang", "rust"]:
d.appendVarFlag('do_compile', 'lockfiles', " ${TMPDIR}/lmp-hack-avoid-oom-do_compile.lock")

if pn.startswith("gcc-source-") and \
if bb.data.inherits_class('archiver', d) and \
d.getVarFlag('ARCHIVER_MODE', 'src') == "original" and \
d.getVarFlag('ARCHIVER_MODE', 'diff') == '1':
d.setVarFlag('do_deploy_archives', 'vardepvalue', '%s:do_unpack_and_patch' % pn)
}

inherit ${INHERIT_KERNEL_MODSIGN}

0 comments on commit f92d49f

Please sign in to comment.