When enabling multilib and building lib32-IMAGE which
uses grub-efi, the build fails with the following error.

  install: cannot stat 
'/PROJ_DIR/build/tmp-glibc/deploy/images/intel-x86-64/grub-efi-bootia32.efi': 
No such file or directory

The grub-efi is in NON_MULTILIB_SCRIPTS. That means we
will use 64bit grub-efi for lib32-IMAGE.

So take into consideration of multilib to fix this problem.

Signed-off-by: Chen Qi <[email protected]>
---
 meta/classes/grub-efi.bbclass | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/meta/classes/grub-efi.bbclass b/meta/classes/grub-efi.bbclass
index 90badc0..ec692f1 100644
--- a/meta/classes/grub-efi.bbclass
+++ b/meta/classes/grub-efi.bbclass
@@ -9,9 +9,16 @@ efi_populate() {
 
        GRUB_IMAGE="grub-efi-bootia32.efi"
        DEST_IMAGE="bootia32.efi"
-       if [ "${TARGET_ARCH}" = "x86_64" ]; then
-               GRUB_IMAGE="grub-efi-bootx64.efi"
-               DEST_IMAGE="bootx64.efi"
+       if [ -n "${MLPREFIX}" ]; then
+               if [ "${TARGET_ARCH_MULTILIB_ORIGINAL}" = "x86_64" ]; then
+                       GRUB_IMAGE="grub-efi-bootx64.efi"
+                       DEST_IMAGE="bootx64.efi"
+               fi
+       else
+               if [ "${TARGET_ARCH}" = "x86_64" ]; then
+                       GRUB_IMAGE="grub-efi-bootx64.efi"
+                       DEST_IMAGE="bootx64.efi"
+               fi
        fi
        install -m 0644 ${DEPLOY_DIR_IMAGE}/${GRUB_IMAGE} 
${DEST}${EFIDIR}/${DEST_IMAGE}
        EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g')
-- 
1.9.1

-- 
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to