1. env vim local.conf ... MACHINE = "qemux86-64" require conf/multilib.conf MULTILIBS ?= "multilib:lib32" DEFAULTTUNE_virtclass-multilib-lib32 ?= "x86" ... 2. build lib32-core-image-minimal and core-image-minimal $ bitbake lib32-core-image-minimal $ bitbake core-image-minimal 3. Check both images's WORKDIR, they are located in the same dir $ ls tmp/work/qemux86_64-poky-linux/ -al ... drwxrwxr-x 3 jiahongxu jiahongxu 4096 Oct 13 16:01 core-image-minimal drwxrwxr-x 3 jiahongxu jiahongxu 4096 Oct 16 11:11 lib32-core-image-minimal ... 4.lib32-core-image-minimal's WORKDIR is supposed to be in tmp/work/qemux86_64-pokymllib32-linux/
The reason is variable TARGET_VENDOR was not override for multilib in that situation. Is it necessary to do the multilib expansion on TARGET_VENDOR ? (See the following patch) It affected many other variables, such as: "HOST_VENDOR, STAGING_BINDIR_TOOLCHAIN, TARGET_SYS, MULTIMACH_TARGET_SYS, REAL_MULTIMACH_TARGET_SYS, SSTATE_PKGSPEC" If we do the modification, there may be potential issues which were caused by the above variables. Any suggestions is welcomed. //Hongxu
While building multilib extended images such as libXX-core-image-minimal, the WORKDIR has the same dir with the building of core-image-minimal. $ ls tmp/work/qemux86_64-poky-linux/ -al ... drwxrwxr-x 3 jiahongxu jiahongxu 4096 Oct 13 16:01 core-image-minimal drwxrwxr-x 3 jiahongxu jiahongxu 4096 Oct 16 11:11 lib32-core-image-minimal ... While image class is inherited, it did not assign OVERRIDES with 'virtclass-multilib-libXXX', so the reason is variable TARGET_VENDOR was not override for multilib in that situation. It refers what did for PN and MLPREFIX, and manually do the multilib override for TARGET_VENDOR in RecipePreFinalise handler. [YOCTO #6844] Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> --- meta/classes/multilib.bbclass | 3 +++ 1 file changed, 3 insertions(+) diff --git a/meta/classes/multilib.bbclass b/meta/classes/multilib.bbclass index 6e143dd..2a90d9e 100644 --- a/meta/classes/multilib.bbclass +++ b/meta/classes/multilib.bbclass @@ -21,6 +21,9 @@ python multilib_virtclass_handler () { if bb.data.inherits_class('image', e.data): e.data.setVar("MLPREFIX", variant + "-") e.data.setVar("PN", variant + "-" + e.data.getVar("PN", False)) + target_vendor = e.data.getVar("TARGET_VENDOR_" + "virtclass-multilib-" + variant, False) + if target_vendor: + e.data.setVar("TARGET_VENDOR", target_vendor) return if bb.data.inherits_class('cross-canadian', e.data): --
Merged into master: commit facfeb0b4475a88eed2694ee95d570f66ec6601e Author: Hongxu Jia <hongxu.jia@windriver.com> Date: Thu Oct 16 15:16:25 2014 +0800 multilib.bbclass: fix incorrect TARGET_VENDOR in multilib image While building multilib extended images such as libXX-core-image-minimal, the WORKDIR has the same dir with the building of core-image-minimal. $ ls tmp/work/qemux86_64-poky-linux/ -al ... drwxrwxr-x 3 jiahongxu jiahongxu 4096 Oct 13 16:01 core-image-minimal drwxrwxr-x 3 jiahongxu jiahongxu 4096 Oct 16 11:11 lib32-core-image-minimal ... While image class is inherited, it did not assign OVERRIDES with 'virtclass-multilib-libXXX', so the reason is variable TARGET_VENDOR was not override for multilib in that situation. It refers what did for PN and MLPREFIX, and manually do the multilib override for TARGET_VENDOR in RecipePreFinalise handler. [YOCTO #6844] (From OE-Core rev: 7ca012fb3addb11ba3f899efa0619ddd8d3c6946)