[OE-core] [PATCH] pango: use qemu to generate pango.modules during rootfs construction

Richard Purdie richard.purdie at linuxfoundation.org
Sat Sep 10 09:54:00 UTC 2011


On Sat, 2011-09-10 at 10:28 +0100, Phil Blundell wrote:
> On Sat, 2011-09-10 at 09:24 +0100, Richard Purdie wrote:
> > For what its worth, even on plain qemux86 I'm seeing:
> > 
> > qemu: Unsupported syscall: 240
> > inb: port=0x0000
> > qemu: uncaught target signal 11 (Segmentation fault) - core dumped
> > /media/data1/build1/poky/build/tmp/work/qemux86-poky-linux/core-image-sato-1.0-r0/rootfs/etc/rpm-postinsts/pango-module-basic-fc.sh: line 8: 11084 Segmentation fault      PSEUDO_RELOADED=YES qemu-i386 -L $D $D/usr/bin/pango-querymodules > "$D/etc/pango/pango.modules"
> > 
> > in the rootfs logs. Which reading things online suggests that qemu
> > doesn't support multithreading under qemu user emulation on i386.
> 
> That is rather strange.  It does work ok for me on mips, and I wasn't
> able to make it go wrong on x86-64 either in a quick test.
> 
> The other odd thing is that, from a quick look at the qemu source code,
> it does seem as though sys_futex (which is syscall 240 on i386 and
> syscall 202 on x86-64) ought to be supported if qemu was built with NPTL
> on.  However, in my x86-64 test I did see the "unsupported syscall 202"
> syscall although the binary still seemed to run fine.
> 
> And, well, the third weird thing is that your log message above implies
> that pango-querymodules is trying to do inb(0) which clearly is not
> going to work if you're not root.  I've no idea why it would be wanting
> to do that.

Its something about the context at rootfs generation time.

If I run the command manually, I see:

"""
sh-4.2$ /media/data1/build1/poky/build/tmp/sysroots/x86_64-linux/usr/bin/qemu-i386 -L . ./usr/bin/pango-querymodules 
qemu: Unsupported syscall: 240
# Pango Modules file
# Automatically generated file, do not edit
#
qemu: Unsupported syscall: 240

(pango-querymodules:24343): GLib-WARNING **: getpwuid_r(): failed due to unknown user id (1000)
# ModulesPath = /usr/lib/pango/1.6.0/modules
#
qemu: Unsupported syscall: 240
/usr/lib/pango/1.6.0/modules/pango-basic-fc.so BasicScriptEngineFc PangoEngineShape PangoRenderFc latin:* cyrillic:* greek:* armenian:* georgian:* runic:* ogham:* bopomofo:* cherokee:* coptic:* deseret:* ethiopic:* gothic:* han:* hiragana:* katakana:* old-italic:* canadian-aboriginal:* yi:* braille:* cypriot:* limbu:* osmanya:* shavian:* linear-b:* ugaritic:* glagolitic:* cuneiform:* phoenician:* common:
/usr/lib/pango/1.6.0/modules/pango-basic-x.so BasicScriptEngineX PangoEngineShape PangoRenderX common:
"""

which looks right. It does crash as part of rpm rootfs generation
though, possibly something to do with pseudo given the root operation it
attempts. Did you test this against rpm or ipk?

Cheers,

Richard






More information about the Openembedded-core mailing list