diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-09-26 12:00:49 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-09-30 15:01:46 +0100 |
commit | 5de83bbd7c55a63cbee88a3fb983c0889036a248 (patch) | |
tree | 53ce6c0ea7d7bd727d93ec5fcb0e7fbabf65caaa | |
parent | 791da075619139fa55751f8013c73d2fbf0cf64c (diff) | |
download | openembedded-core-contrib-5de83bbd7c55a63cbee88a3fb983c0889036a248.tar.gz |
staging: Ensure cleaned dependencies are added
Most recipe-sysroot dependencies are handled by these prefuncs. "configure"
is special with a decidated task, prepare_recipe_sysroot which runs
beforehand.
do_prepare_recipe_sysroot does not have to be run before/after
fetch/unpack/patch, they're independent tasks. If fetch/unpack/patch
have sysroot dependencies and those tasks rerun, stale items from the
sysroot could be uninstalled and since prepare_recipe_sysroot doesn't
re-run, they could be missing by the time configure runs.
Fix this by adding the prefunc for do_configure which would ensure
the sysroot is in a good state.
This issue can be reproduced by modifying do_unpack and watching
binutils-native and vulkan-headers failing due to missing makeinfo
or ninja.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/classes/staging.bbclass | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/meta/classes/staging.bbclass b/meta/classes/staging.bbclass index de3a19815a..f0a619b35b 100644 --- a/meta/classes/staging.bbclass +++ b/meta/classes/staging.bbclass @@ -614,7 +614,7 @@ python staging_taskhandler() { bbtasks = e.tasklist for task in bbtasks: deps = d.getVarFlag(task, "depends") - if deps and "populate_sysroot" in deps: + if task == "do_configure" or (deps and "populate_sysroot" in deps): d.appendVarFlag(task, "prefuncs", " extend_recipe_sysroot") } staging_taskhandler[eventmask] = "bb.event.RecipeTaskPreProcess" |