> I am using Yocto 2.5 and have a working multilib-enabled image based on poky > which includes libgdiplus (64-bit). Due to requirements I had to add the > 32-bit version, so I added lib32-libgdiplus to my image recipe. This caused > the following error output from bitbake:
> WARNING: tmlinux-image-1.0-r0 do_rootfs: The postinstall intercept hook > 'update_gio_module_cache-lib32' failed, details in > /home/pelle/development/var-fsl-yocto/build_kodkod/tmp/work/imx8qxpb0_var_som-poky-linux/tmlinux-image/1.0-r0/temp/log.do_rootfs > ERROR: tmlinux-image-1.0-r0 do_rootfs: The following packages could not be > configured offline and rootfs is read-only: ['100-lib32-libglib-2.0-0'] > ERROR: tmlinux-image-1.0-r0 do_rootfs: Function failed: do_rootfs > ERROR: Logfile of failure stored in: > /home/pelle/development/var-fsl-yocto/build_kodkod/tmp/work/imx8qxpb0_var_som-poky-linux/tmlinux-image/1.0-r0/temp/log.do_rootfs.30106 > ERROR: Task > (/home/pelle/development/var-fsl-yocto/sources/meta-tagmaster/recipes-core/images/tmlinux-image.bb:do_rootfs) > failed with exit code '1' > While searching for the root cause of this, I discovered a change to > update_gio_module_cache > (https://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/scripts/postinst-intercepts/update_gio_module_cache?id=87631af64032b18ea354b27cc586ec13391bd143) > that I thought might help. I applied this change (and the changes from > https://github.com/openembedded/openembedded-core/commit/d10fd6ae3fe46290c6e3a5250878966d9f12ca3f > for the qemuwrapper-cross_1.0.bb recipe) to my local code, and once again > tried building the image. The error message from bitbake is the same, but in > the do_rootfs log I find this: > /home/pelle/development/var-fsl-yocto/build_kodkod/tmp/work/imx8qxpb0_var_som-poky-linux/tmlinux-image/1.0-r0/intercept_scripts-bd1c31820bf736a004f4ebe71461d6fa3ae23f7d97783c8f28a606e086741d8a/update_gio_module_cache-lib32: > 15: > /home/pelle/development/var-fsl-yocto/build_kodkod/tmp/work/imx8qxpb0_var_som-poky-linux/tmlinux-image/1.0-r0/intercept_scripts-bd1c31820bf736a004f4ebe71461d6fa3ae23f7d97783c8f28a606e086741d8a/update_gio_module_cache-lib32: > lib32-qemuwrapper: not found > If I search my tmp directory, there is nothing called "lib32-qemuwrapper", > but there is "lib32-qemuwrapper-cross". Hi again, I have spent a few more hours digging into this and made some discoveries. The problem does not seem to be directly with libgdiplus, but with glib-2.0, which is responsible for calling the "update_gio_module_cache" script, which gets set up as a postinstall intercept script. The update_gio_module_cache script gets executed both for the regular libgdiplus (works fine), and for lib32-libgdiplus. The issue is with lib32-libgdiplus, because lib32-libgdiplus wants to run "lib32-qemuwrapper", but the location of lib32-qemuwrapper is not in the PATH when it runs the update_gio_module_cache-lib32 script (it seems like the incorrect sysroot is used). When looking at the output from bitbake -e for my image recipe, I can see that the variable that points out the location for the recipe-sysroot ($STAGING_DIR_HOST) directory gets correctly set up for the non-lib32 packages, but it uses the same variable content when running update_gio_module_cache-lib32. It seems to me like the do_rootfs task would have to do a second pass, with the recipe-sysroot set up correctly for multilib packages, to get this working. I am not familiar enough with bitbake to understand exactly how this should be resolved. My current "solution" is to modify the package_manager.py script to manually add the lib32-sysroot to the path before running intercept scripts (really ugly). Any pointers in the right direction would be much appreciated. //Pelle
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#51583): https://lists.yoctoproject.org/g/yocto/message/51583 Mute This Topic: https://lists.yoctoproject.org/mt/78364596/21656 Group Owner: [email protected] Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
