From: Mark Hatle <mark.hatle@windriver.com>
To: <openembedded-core@lists.openembedded.org>
Subject: Re: prelink issue with ppc64?
Date: Wed, 3 Aug 2011 10:09:22 -0500 [thread overview]
Message-ID: <4E3964A2.9020704@windriver.com> (raw)
In-Reply-To: <AE047C85-8214-4716-920E-3B0177117231@kernel.crashing.org>
On 8/3/11 9:53 AM, Kumar Gala wrote:
>
> On Aug 3, 2011, at 9:37 AM, Mark Hatle wrote:
>
>> On 8/3/11 12:35 AM, Kumar Gala wrote:
>>> If prelink gets a chance to properly run I get a rootfs that does:
>>>
>>> /sbin/init: relocation error: /lib64/libc.so.6: symbol _rtld_global_ro, version GLIBC_PRIVATE not defined in file ld64.so.1 with link time reference
>>>
>>> if 'baselib' is set to /lib we get:
>>>
>>> /local/home/galak/git/poky/build-p5020/tmp/sysroots/x86_64-linux/usr/sbin/prelink: /sbin/init.sysvinit: Using /lib/ld64.so.1, not /lib64/ld64.so.1 as dynamic linker
>>>
>>> if 'baselib' is set to /lib64 we get:
>>>
>>> Assigned virtual address space slots for libraries:
>>> /lib64/ld64.so.1 00000080f4910000-00000080f49473d0
>>> /lib64/libc.so.6 00000080f4950000-00000080f4afe090
>>> /lib64/libdl.so.2 00000080f4b10000-00000080f4b23520
>>> /lib64/libcrypt.so.1 00000080f4b10000-00000080f4b57708
>>> /lib64/libutil.so.1 00000080f4b10000-00000080f4b234a0
>>> Would prelink /lib64/ld-2.13.so
>>> Would prelink /lib64/libc-2.13.so
>>>
>>> Not sure what prelink is doing but it seems to breaking things. Any ideas?
>>>
>>> ---
>>>
>>> I'm also concerned that we use /etc/prelink.conf when invoking prelink.
>>
>> Prelinker is being run within the rootfs, so the /etc/prelink.conf being used is
>> the one inside of the image -- NOT the system version.
>
> Is this because of psuedo or something else?
In the cross prelinker, we pass in the --root=<image>. This instructs the
cross-prelinker to prefix <image> to most paths.
>> I would suspect that the cross-prelinker rtld emulation is likely setup for the
>> LSB style library paths and may be causing some of the problems.
You can run the cross-prelinker's rtld emulation by running the prelink-rtld
program located in build/tmp-eglibc/work/x86_64-linux/usr/sbin/prelink-rtld
Passing --root=<path> will setup the sysroot path for reference, adding in
--target-paths will allow you to pass further arguments as referenced on the
sysroot.
So prelink-rtld --root=/foo/bar/build/sysroot/image --target-paths /sbin/init
Should give you back an ldd like syntax within the sysroot, for /sbin/init.
(without --target-paths, you need to specify the full path to the /sbin/init..
this is useful when running the rtld against items outside of the image.)
>>
>> I'd suggest simply disabling prelink and getting everything to work first.. once
>> it does we can work through any prelinker issues. (Prelink on PPC64 hasn't been
>> tested within the oe-core environment.. so it could very well have issues beyond
>> the ld.so path.)
>
> Everything else is working, so prelink is what fails for me (at least for a simple minimal) build.
>
> any suggestions on how to try and debug further, who might be more familiar with prelink and what its doing? When I ran readelf -a on ld-2.13.so after prelink was getting weird results, not sure if thats normal or not.
I'm the prelink maintainer for Yocto, however I know more about the way the
cross-prelinker functionality works then how the ELF specific prelink functions
work. I've been relying on the upstream prelink project to manage the
individual architecture/ABI prelink standards.
My suggestion is to disable cross-prelinking, and revert to the upstream prelink
project -- run the binary on the target and see if it fails in the same way. If
it does, then we know it's a deeper problem then the cross prelink integration.
You can pull down the git repository: git://git.yoctoproject.org/prelink-cross.git
The "master" branch is identical to the upstream SVN branch. The
"cross_prelink" branch is the current state of integration.
--Mark
> - k
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
next prev parent reply other threads:[~2011-08-03 15:13 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-03 5:35 prelink issue with ppc64? Kumar Gala
2011-08-03 14:37 ` Mark Hatle
2011-08-03 14:53 ` Kumar Gala
2011-08-03 15:09 ` Mark Hatle [this message]
2011-08-04 5:37 ` Kumar Gala
2011-08-04 14:03 ` Kumar Gala
2011-08-04 15:12 ` Mark Hatle
2011-08-04 15:05 ` Mark Hatle
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=4E3964A2.9020704@windriver.com \
--to=mark.hatle@windriver.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox