qemu-mips & qemu-ppc binaries are crashing while building locales in the eglibc build process. RP commented, it's a possible caused by some issue in interaction between pseudo and qemu. NOTE: PATH="/home/nitin/build/build-eglibc/tmp/sysroots/x86_64-linux/usr/bin/ppc603e-poky-linux:/home/nitin/build/build-eglibc/tmp/sysroots/ppc603e-poky-linux/usr/bin/crossscripts:/home/nitin/build/build-eglibc/tmp/sysroots/x86_64-linux/usr/sbin:/home/nitin/build/build-eglibc/tmp/sysroots/x86_64-linux/usr/bin:/home/nitin/build/build-eglibc/tmp/sysroots/x86_64-linux/sbin:/home/nitin/build/build-eglibc/tmp/sysroots/x86_64-linux//bin:/home/nitin/build/build-eglibc/tmp/sysroots/x86_64-linux/usr/bin/ppc603e-poky-linux:/home/nitin/build/build-eglibc/tmp/sysroots/ppc603e-poky-linux/usr/bin/crossscripts:/home/nitin/build/build-eglibc/tmp/sysroots/x86_64-linux/usr/sbin:/home/nitin/build/build-eglibc/tmp/sysroots/x86_64-linux/usr/bin:/home/nitin/build/build-eglibc/tmp/sysroots/x86_64-linux/sbin:/home/nitin/build/build-eglibc/tmp/sysroots/x86_64-linux//bin:/usr/lib64/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib64/ccache:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/nitin/prj/poky.git/bitbake/bin/:/home/nitin/bin:/home/nitin/prj/poky.git/scripts:/home/nitin/prj/poky.git/scripts" I18NPATH="/home/nitin/build/build-eglibc/tmp/work/ppc603e-poky-linux/eglibc-2.12-r2/locale-tree/usr/share/i18n" qemu-ppc -s 1048576 -r 2.4.0 -L /home/nitin/build/build-eglibc/tmp/work/ppc603e-poky-linux/eglibc-2.12-r2/locale-tree -E LD_LIBRARY_PATH=/home/nitin/build/build-eglibc/tmp/work/ppc603e-poky-linux/eglibc-2.12-r2/locale-tree/lib /home/nitin/build/build-eglibc/tmp/work/ppc603e-poky-linux/eglibc-2.12-r2/locale-tree/bin/localedef --force --old-style --no-archive --prefix=/home/nitin/build/build-eglibc/tmp/work/ppc603e-poky-linux/eglibc-2.12-r2/locale-tree --inputfile=/usr/share/i18n/locales/es_NI --charmap=UTF-8 es_NI^M NOTE: stdout:^M NOTE: ^M NOTE: stderr:^M NOTE: Invalid data memory access: 0xee341008^M NIP 4010ae98 LR 4010ac50 CTR 00000000 XER 00000000^M MSR 00006040 HID0 00000000 HF 00006000 idx 0^M TB 00000000 00000000 ^M GPR00 0000000000000006 00000000400fd7b8 0000000000000000 000000009a581010^M GPR04 0000000000000030 0000000058480040 0000000058480017 0000000058480000^M GPR08 0000000072060000 00000000000215db 00000000ffffffff 0000000072060000^M GPR12 0000000040111094 0000000000000000 000000004012ff18 000000000000000d^M GPR16 00000000ee340ff4 0000000042101010 0000000058480000 000000004012fd10^M GPR20 0000000000000001 00000000400fd818 00000000400fdd90 0000000000000000^M GPR24 00000000401310f8 00000000ffffffff 0000000042101000 000000007205ffff^M GPR28 00000000ac23fff4 000000003902ffff 00000000401307ec 0000000042101000^M CR 44044042 [ G G - G G - G E ] RES ffffffff^M FPR00 0000000000000000 0000000000000000 0000000000000000 0000000000000000^M FPR04 0000000000000000 0000000000000000 0000000000000000 0000000000000000^M FPR08 0000000000000000 0000000000000000 0000000000000000 0000000000000000^M FPR12 0000000000000000 0000000000000000 0000000000000000 0000000000000000^M FPR16 0000000000000000 0000000000000000 0000000000000000 0000000000000000^M FPR20 0000000000000000 0000000000000000 0000000000000000 0000000000000000^M FPR24 0000000000000000 0000000000000000 0000000000000000 0000000000000000^M FPR28 0000000000000000 0000000000000000 0000000000000000 0000000000000000^M FPSCR 00000000^M ^M ERROR: Task failed: localedef returned an error^M NOTE: package eglibc-2.12-r2: task do_package: Failed^M ERROR: Task 387 (/home/nitin/prj/poky.git/meta/packages/eglibc/eglibc_2.12.bb, do_package) failed with 1^M
After doing "git bisect" found that the issue started with this commit. $ git bisect good 940c2b470af70b40fc6506823cd9c43e9b621075 is the first bad commit commit 940c2b470af70b40fc6506823cd9c43e9b621075 Author: Richard Purdie <rpurdie@linux.intel.com> Date: Thu Aug 19 22:41:00 2010 +0100 Revert "base.bbclass: Temporarily disable fakeroot for install/package until other fixes get merged" This reverts commit 2225e1214285f0e9a3c0ee2962b3d678c5c05292 and reenables the functionality now its safe to do so. :040000 040000 a0a3c2d3b2c8c0d05826f63429809f21197517ea 9083f4f0073acc105d60385f0d01f4605358ed00 M meta
Adding comment which flew over the mailing list: From RP: Great, now I see the commit in question, this makes sense. It looks like pseudo and qemu interacting badly together. Mark: This looks like its a pseudo related problem, is there a way we can drop the pseudo context to run a command? It may also be worth experimenting with LD_LIBRARY_PATH to see if that can help things at all... Cheers, Richard From Mark: To disable pseudo, while already running, you need to set: "PSEUDO_RELOADED=YES", and then exec something.... This will cause pseudo to disable itself from the LD_PRELOAD, and thus fall out of memory on the exec. It'd be interesting to know what the interaction is with pseudo. In our environment we don't run qemu with pseudo, but we do run the user-mode NFS server. --Mark
*** Bug 292 has been marked as a duplicate of this bug. ***
The following commit (which is already in poky's master) worked around the bug: commit ec8924ac78f9c65beb90e15872d57fd1044ad835 Author: Nitin A Kamble <nitin.a.kamble@intel.com> Date: Wed Sep 8 12:30:19 2010 -0700 libc-package.bbclass: fix qemu issue with pseudo This solution is what Mark Hatle recommended. To disable pseudo, while already running, you need to set: PSEUDO_RELOADED=YES, and then exec something... This causes pseudo to disable itself from LD_PRELOAD, and thus fall out of memory on the exec. This Fixes [BUGID #226] Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
*** Bug 339 has been marked as a duplicate of this bug. ***
qemu was updated to fix this