On Tue, 2019-04-30 at 03:15 -0400, [email protected] wrote: > From: Kai Kang <[email protected]> > > It exists a situation that there is a common config file includes > multilib.conf but variable MULTILIBS is not set by default: > > require conf/multilib.conf > MULTILIBS ?= "" > > When build target-sdk-provides-dummy in the same build project with > following steps, it fails. > > 1 $ echo 'MACHINE = "qemux86"' >>conf/local.conf > $ bitbake target-sdk-provides-dummy > 2 $ cat <<EOF >>conf/local.conf > MACHINE = "qemux86-64" > MULTILIBS = "multilib:lib32" > DEFAULTTUNE_virtclass-multilib-lib32 = "i586" > EOF > $ bitbake target-sdk-provides-dummy > $ bitbake lib32-target-sdk-provides-dummy > > It fails to build lib32-target-sdk-provides-dummy with error > messages: > > > ERROR: target-sdk-provides-dummy-1.0-r0 do_packagedata: The recipe > > target-sdk-provides-dummy > > is trying to install files into a shared area when those files > > already exist. Those files > > and their manifest location are: > > .../tmp/pkgdata/qemux86-64/lib32-target-sdk-provides-dummy > > (matched in manifest-qemux86_64-lib32-target-sdk-provides- > > dummy.packagedata) > > .../tmp/pkgdata/qemux86-64/runtime/lib32-target-sdk-provides- > > dummy > > (matched in manifest-qemux86_64-lib32-target-sdk-provides- > > dummy.packagedata) > > ... snip ... > > Please verify which recipe should provide the above files. > > Because target-sdk-provides-dummy is a virtual package, its sstate > caches are same for both qemux86 and qemux86_64. So when build > target-sdk-provides-dummy for qemux86_64, it re-uses the sstate cache > from qemux86 and then create file lib32-target-sdk-provides-dummy > under > ${PKGDATA_DIR} which should not and then conflicts with lib32-target- > sdk-provides-dummy. > > Make do_package always be executed to fix the issue. Because it is a > dummy > package, it won't cost too much build time. > > Signed-off-by: Kai Kang <[email protected]> > --- > meta/recipes-core/meta/target-sdk-provides-dummy.bb | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/meta/recipes-core/meta/target-sdk-provides-dummy.bb > b/meta/recipes-core/meta/target-sdk-provides-dummy.bb > index 85472a825c..e09a08bcd7 100644 > --- a/meta/recipes-core/meta/target-sdk-provides-dummy.bb > +++ b/meta/recipes-core/meta/target-sdk-provides-dummy.bb > @@ -52,3 +52,5 @@ DUMMYPROVIDES = "\ > " > > require dummy-sdk-package.inc > + > +do_package[nostamp] = "1"
This isn't the right way to fix it, we should probably whitelist that particular file for multiple providers. See SSTATE_DUPWHITELIST. Cheers, Richard -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
