In the qemux86-64 lib64 multilib case, gcc-cross-intermediate has build failure: | mv: cannot stat `/home/kyu3/sdb/multilib2/tmp/work/x86_64-pokymllib64-linux/lib64-gcc-cross-intermediate-4.6.1+svnr175454-r4/image/home/kyu3/sdb/ multilib2/tmp/sysroots/x86_64-linux/usr/x86_64-pokymllib64-linux/lib64/*': No such file or directory NOTE: package lib64-gcc-cross-intermediate-4.6.1+svnr175454-r4: task do_install: Failed ERROR: Task 1557 (virtual:multilib:lib64:/home/kyu3/src/poky/meta/recipes-devtools/gcc/gcc-cross-intermediate_4.6.bb, do_install) failed with exit code '1' Reproduce step: commit: 786033f53cad2a196ae6f3a05574148578ea3894 enable multilib in local.conf: MACHINE = "qemux86-64" require conf/multilib.conf MULTILIBS = "multilib:lib64" DEFAULTTUNE_virtclass-multilib-lib64 = "x86-64" # bitbake lib64-core-image-sato
The culprit is: " commit 35fa8dc5f7da90fdd40091a3c3600d3fcd232922 Author: Kumar Gala <galak@kernel.crashing.org> Date: Thu Aug 4 13:54:59 2011 -0500 gcc: use ${base_lib} to match gcc default configuration Rather than tweaking MULTILIB_DIRNAMES & MULTILIB_OSDIRNAMES like is done for x86-64 via 64bithack.patch. We can just go with gcc defaults and utilize ${base_lib} for where to find gcc libs. (From OE-Core rev: cfcc282efef30ea1988ccbe14835254a999584ea) Signed-off-by: Kumar Gala <galak@kernel.crashing.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> diff --git a/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc b/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc index df5958a..7b1bb38 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc +++ b/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc @@ -34,7 +34,7 @@ do_compile () { do_install () { oe_runmake 'DESTDIR=${D}' install install -d ${D}${target_base_libdir}/ - mv ${D}${exec_prefix}/${TARGET_SYS}/lib/* ${D}${target_base_libdir}/ + mv ${D}${exec_prefix}/${TARGET_SYS}/${baselib}/* ${D}${target_base_libdir}/ # We don't really need this (here shares/ contains man/, info/, locale/). rm -rf ${D}${datadir}/ " the reason is that: ${baselib} is lib64 in multilib case, while the files to be moved is still in ${D}${exec_prefix}/${TARGET_SYS}/lib/*, so mv will fail.
Fixed with http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=c04ae9bf71920c6ea2315dc87b9250bb2f6560b3