From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Laurentiu Palcu <laurentiu.palcu@intel.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH] postinst-intercepts, qemu.bbclass: fix segfaults in postinstalls
Date: Tue, 09 Apr 2013 22:58:59 +0100 [thread overview]
Message-ID: <1365544739.12407.115.camel@ted> (raw)
In-Reply-To: <1365522831-17183-1-git-send-email-laurentiu.palcu@intel.com>
On Tue, 2013-04-09 at 18:53 +0300, Laurentiu Palcu wrote:
> Postinstalls that use qemu are throwing a segmentation fault when
> building for qemux86-64 on a 64bit host (it might also happen for
> qemux86 if building on a 32bit host but I didn't test). It looks like
> qemu looks for ld.so.cache which is not found because it is generated
> after rootfs_(rpm|ipk|deb)_do_rootfs is called and then it tries to load
> libraries from the default paths (which are the host's). In order to
> avoid this, pass the LD_LIBRARY_PATH explicitly to the target's dynamic
> loader.
>
> Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
> ---
> meta/classes/qemu.bbclass | 4 +++-
> scripts/postinst-intercepts/update_font_cache | 3 ++-
> scripts/postinst-intercepts/update_pixbuf_cache | 3 ++-
> 3 files changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass
> index 0e71d6a..6881826 100644
> --- a/meta/classes/qemu.bbclass
> +++ b/meta/classes/qemu.bbclass
> @@ -29,4 +29,6 @@ def qemu_run_binary(data, rootfs_path, binary):
> if qemu_binary == "qemu-allarch":
> qemu_binary = "qemuwrapper"
>
> - return "PSEUDO_UNLOAD=1 " + qemu_binary + " -L " + rootfs_path + " " + rootfs_path + binary
> + return "PSEUDO_UNLOAD=1 " + qemu_binary + " -L " + rootfs_path\
> + + " -E LD_LIBRARY_PATH=" + rootfs_path + "/lib:" + rootfs_path\
> + + "/usr/lib " + rootfs_path + binary
This isn't going to work with multilibs. Can we reorder the rootfs code
so the ld.so.cache piece happens before the intercepts?
Cheers,
Richard
> diff --git a/scripts/postinst-intercepts/update_font_cache b/scripts/postinst-intercepts/update_font_cache
> index ad1bab3..fa2c0ef 100644
> --- a/scripts/postinst-intercepts/update_font_cache
> +++ b/scripts/postinst-intercepts/update_font_cache
> @@ -1,5 +1,6 @@
> #!/bin/sh
>
> -PSEUDO_UNLOAD=1 qemuwrapper -L $D $D${bindir}/fc-cache --sysroot=$D >/dev/null 2>&1
> +PSEUDO_UNLOAD=1 qemuwrapper -L $D -E LD_LIBRARY_PATH=$D/lib:$D/usr/lib\
> + $D${bindir}/fc-cache --sysroot=$D >/dev/null 2>&1
>
>
> diff --git a/scripts/postinst-intercepts/update_pixbuf_cache b/scripts/postinst-intercepts/update_pixbuf_cache
> index 9134529..fbb6fd1 100644
> --- a/scripts/postinst-intercepts/update_pixbuf_cache
> +++ b/scripts/postinst-intercepts/update_pixbuf_cache
> @@ -2,7 +2,8 @@
>
> export GDK_PIXBUF_MODULEDIR=$D${libdir}/gdk-pixbuf-2.0/2.10.0/loaders
>
> -PSEUDO_UNLOAD=1 qemuwrapper -L $D $D${bindir}/gdk-pixbuf-query-loaders \
> +PSEUDO_UNLOAD=1 qemuwrapper -L $D -E LD_LIBRARY_PATH=$D/lib:$D/usr/lib\
> + $D${bindir}/gdk-pixbuf-query-loaders \
> >$GDK_PIXBUF_MODULEDIR/../loaders.cache 2>/dev/null && \
> sed -i -e "s:$D::g" $GDK_PIXBUF_MODULEDIR/../loaders.cache
>
next prev parent reply other threads:[~2013-04-09 22:16 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-09 15:53 [PATCH] postinst-intercepts, qemu.bbclass: fix segfaults in postinstalls Laurentiu Palcu
2013-04-09 21:58 ` Richard Purdie [this message]
2013-04-10 7:38 ` Laurentiu Palcu
2013-04-10 8:03 ` Richard Purdie
2013-04-10 11:25 ` [PATCH v2] " Laurentiu Palcu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1365544739.12407.115.camel@ted \
--to=richard.purdie@linuxfoundation.org \
--cc=laurentiu.palcu@intel.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.