[yocto] prelink & mklibs problem

Qiang Yu yuq825 at gmail.com
Thu Dec 11 22:57:38 PST 2014


Hi Mark,

I have used the 81bab23a4661fdaaa859325d6d3603811ecf1849 version prelink to
build my image.
Prelink run smoothly without output like before, the image is also
modified, so the prelink works.
My application also run correctly. But how can I make sure the prelink take
effect when I start an
executable?

Here attaches the do_rootfs log:
NOTE: ###### Generate images #######
NOTE: Executing mklibs_optimize_image ...
DEBUG: Executing shell function mklibs_optimize_image
DEBUG: Shell function mklibs_optimize_image finished
NOTE: Executing prelink_image ...
DEBUG: Executing shell function prelink_image
Size before prelinking 49340.
Size after prelinking 49592.
DEBUG: Shell function prelink_image finished

Regards,
Qiang




On Thu, Dec 11, 2014 at 7:09 AM, Mark Hatle <mark.hatle at windriver.com>
wrote:

> On 12/9/14, 9:01 PM, Mark Hatle wrote:
>
>> On 12/9/14, 8:41 PM, Qiang Yu wrote:
>>
>>> I have submitted a bug here:
>>> https://bugzilla.yoctoproject.org/show_bug.cgi?id=7056
>>>
>>
>> (Responded in the bug as well...)  I have a test version of the cross
>> prelink
>> with the ARM HF patch available, as commit:
>>
>> 2cde4ff118b5244f5577d9bc585c1ee521740af0
>>
>> To enable it, use the following in your local.conf:
>>
>> SRCREV_pn-prelink = "2cde4ff118b5244f5577d9bc585c1ee521740af0"
>>
>
> That link breaks regular arm prelink, it also missed a patch for the
> prelink-rtld.
>
> Got a new one:
>
> SRCREV_pn-prelink = "81bab23a4661fdaaa859325d6d3603811ecf1849"
>
> --Mark
>
>
>  If this works for you, I'll finish the patch and submit the changes.
>>
>> --Mark
>>
>>  Regards,
>>> Qiang
>>>
>>> On Tue, Dec 9, 2014 at 11:51 PM, Mark Hatle <mark.hatle at windriver.com
>>> <mailto:mark.hatle at windriver.com>> wrote:
>>>
>>>      On 12/8/14, 3:55 AM, Jegan Chandru wrote:
>>>
>>>          I recommend you to file a bug here
>>> https://bugzilla.yoctoproject.__org/
>>>          <https://bugzilla.yoctoproject.org/> if not
>>>          done already. You may get a proper answer on armhf support
>>> there. From
>>>          what I
>>>          see, (someone please correct me if I am wrong), there is no
>>> prelink
>>>          dynamic link
>>>          armhf patch. You can also create and submit the patch for
>>> review. AFAIK,
>>>          you are
>>>          gonna need to something like below,
>>>
>>>          .dynamic_linker = "/lib/ld-linux-armhf.so.3" in arch-arm.c.
>>>
>>>          This is not tested though. Please do a test yourselves.
>>>
>>>
>>>      See: http://marc.info/?l=fedora-__arm&m=135417053128837&w=2
>>>      <http://marc.info/?l=fedora-arm&m=135417053128837&w=2>
>>>
>>>      Nobody had requested prelink support for armhf up to this point.
>>>
>>>      Open an enhancement / bug and assign it to me.  I'll do what I can
>>> to
>>>      integrate the patch officially.
>>>
>>>      I had been waiting for the prelink upstream to merge this, but they
>>> never
>>>      bothered to, so I'll have to make it a Yocto Project 'cross-prelink'
>>>      specific path.
>>>
>>>      --Mark
>>>
>>>          -JC
>>>
>>>          On Mon, Dec 8, 2014 at 1:52 PM, Qiang Yu <yuq825 at gmail.com
>>>          <mailto:yuq825 at gmail.com>
>>>          <mailto:yuq825 at gmail.com <mailto:yuq825 at gmail.com>>> wrote:
>>>
>>>               Thanks for your reply. I almost give up.
>>>
>>>               You mean that current yocto build doesn't support hard
>>> float ABI
>>>          prelink,
>>>               and the prelink source code needs to
>>>               be modified to use ld-linux-armhf.so.3?
>>>
>>>               So this problem affect all armhf build of yocto, in other
>>> words prelink
>>>               doesn't work for yocto armhf at all now?
>>>
>>>               Regards,
>>>               Qiang
>>>
>>>               On Mon, Dec 8, 2014 at 3:28 PM, Jegan Chandru <
>>> pcjegan at gmail.com
>>>          <mailto:pcjegan at gmail.com>
>>>               <mailto:pcjegan at gmail.com <mailto:pcjegan at gmail.com>>>
>>> wrote:
>>>
>>>                   Hi,
>>>
>>>                   I think it has to do with the ld-linux-armhf.so.3. May
>>> be you
>>>          should
>>>                   tell prelink that you have hard float ARM ABI to
>>> prelink for, than
>>>                   ld-linux.so.3 . It means you need to add
>>> ld-linux-armhf.so.3 as a
>>>                   dynamic linker.
>>>                   You should patch the prelink source to get this done.
>>>
>>>                   HTH.
>>>
>>>                   -JC
>>>
>>>
>>>
>>>                   On Fri, Dec 5, 2014 at 7:41 AM, Qiang Yu <
>>> yuq825 at gmail.com
>>>          <mailto:yuq825 at gmail.com>
>>>                   <mailto:yuq825 at gmail.com <mailto:yuq825 at gmail.com>>>
>>> wrote:
>>>
>>>                       Hi all,
>>>
>>>                       I'm building a image with local.conf:
>>>                       USER_CLASSES ?= "buildstats image-mklibs
>>> image-prelink"
>>>
>>>                       but I think prelink does nothing on my image,
>>> because the
>>>          MD5SUM is
>>>                       the same before and after
>>>                       the prelink stage. The mklibs stage is also
>>> strange not print
>>>                       anything. How to make prelink and
>>>                       mklibs really work?
>>>
>>>                       Here is the log of log.do_rootfs:
>>>
>>>                       NOTE: ###### Generate images #######
>>>                       NOTE: Executing mklibs_optimize_image ...
>>>                       DEBUG: Executing shell function
>>> mklibs_optimize_image
>>>                       DEBUG: Shell function mklibs_optimize_image
>>> finished
>>>                       NOTE: Executing prelink_image ...
>>>                       DEBUG: Executing shell function prelink_image
>>>                       Size before prelinking 49304.
>>>
>>>          /opt/yocto/rootfs/tmp/__sysroots/x86_64-linux/usr/__
>>> sbin/prelink:
>>>                       /sbin/fstab-decode: Using
>>> /lib/ld-linux-armhf.so.3, not
>>>                       /lib/ld-linux.so.3 as dynamic linker
>>>
>>>          /opt/yocto/rootfs/tmp/__sysroots/x86_64-linux/usr/__
>>> sbin/prelink:
>>>                       /sbin/bootlogd: Using /lib/ld-linux-armhf.so.3, not
>>>                       /lib/ld-linux.so.3 as dynamic linker
>>>
>>>          /opt/yocto/rootfs/tmp/__sysroots/x86_64-linux/usr/__
>>> sbin/prelink:
>>>                       /sbin/killall5: Using /lib/ld-linux-armhf.so.3, not
>>>                       /lib/ld-linux.so.3 as dynamic linker
>>>
>>>          /opt/yocto/rootfs/tmp/__sysroots/x86_64-linux/usr/__
>>> sbin/prelink:
>>>                       /sbin/init.sysvinit: Using
>>> /lib/ld-linux-armhf.so.3, not
>>>                       /lib/ld-linux.so.3 as dynamic linker
>>>
>>>          /opt/yocto/rootfs/tmp/__sysroots/x86_64-linux/usr/__
>>> sbin/prelink:
>>>                       /sbin/halt.sysvinit: Using
>>> /lib/ld-linux-armhf.so.3, not
>>>                       /lib/ld-linux.so.3 as dynamic linker
>>>
>>>          /opt/yocto/rootfs/tmp/__sysroots/x86_64-linux/usr/__
>>> sbin/prelink:
>>>                       /sbin/shutdown.sysvinit: Using
>>> /lib/ld-linux-armhf.so.3, not
>>>                       /lib/ld-linux.so.3 as dynamic linker
>>>
>>>          /opt/yocto/rootfs/tmp/__sysroots/x86_64-linux/usr/__
>>> sbin/prelink:
>>>                       /sbin/runlevel.sysvinit: Using
>>> /lib/ld-linux-armhf.so.3, not
>>>                       /lib/ld-linux.so.3 as dynamic linker
>>>
>>>          /opt/yocto/rootfs/tmp/__sysroots/x86_64-linux/usr/__
>>> sbin/prelink:
>>>                       /usr/sbin/dropbearmulti: Using
>>> /lib/ld-linux-armhf.so.3, not
>>>                       /lib/ld-linux.so.3 as dynamic linker
>>>
>>>          /opt/yocto/rootfs/tmp/__sysroots/x86_64-linux/usr/__
>>> sbin/prelink:
>>>                       /bin/mountpoint.sysvinit: Using
>>> /lib/ld-linux-armhf.so.3, not
>>>                       /lib/ld-linux.so.3 as dynamic linker
>>>
>>>          /opt/yocto/rootfs/tmp/__sysroots/x86_64-linux/usr/__
>>> sbin/prelink:
>>>                       /bin/busybox.suid: Using /lib/ld-linux-armhf.so.3,
>>> not
>>>                       /lib/ld-linux.so.3 as dynamic linker
>>>
>>>          /opt/yocto/rootfs/tmp/__sysroots/x86_64-linux/usr/__
>>> sbin/prelink:
>>>                       /bin/busybox.nosuid: Using
>>> /lib/ld-linux-armhf.so.3, not
>>>                       /lib/ld-linux.so.3 as dynamic linker
>>>
>>>          /opt/yocto/rootfs/tmp/__sysroots/x86_64-linux/usr/__
>>> sbin/prelink:
>>>                       /usr/bin/utmpdump.sysvinit: Using
>>> /lib/ld-linux-armhf.so.3, not
>>>                       /lib/ld-linux.so.3 as dynamic linker
>>>
>>>          /opt/yocto/rootfs/tmp/__sysroots/x86_64-linux/usr/__
>>> sbin/prelink:
>>>                       /usr/bin/mesg.sysvinit: Using
>>> /lib/ld-linux-armhf.so.3, not
>>>                       /lib/ld-linux.so.3 as dynamic linker
>>>
>>>          /opt/yocto/rootfs/tmp/__sysroots/x86_64-linux/usr/__
>>> sbin/prelink:
>>>                       /usr/bin/last.sysvinit: Using
>>> /lib/ld-linux-armhf.so.3, not
>>>                       /lib/ld-linux.so.3 as dynamic linker
>>>
>>>          /opt/yocto/rootfs/tmp/__sysroots/x86_64-linux/usr/__
>>> sbin/prelink:
>>>                       /usr/bin/opkg-cl: Using /lib/ld-linux-armhf.so.3,
>>> not
>>>                       /lib/ld-linux.so.3 as dynamic linker
>>>
>>>          /opt/yocto/rootfs/tmp/__sysroots/x86_64-linux/usr/__
>>> sbin/prelink:
>>>                       /usr/bin/bmw: Using /lib/ld-linux-armhf.so.3, not
>>>          /lib/ld-linux.so.3
>>>                       as dynamic linker
>>>
>>>          /opt/yocto/rootfs/tmp/__sysroots/x86_64-linux/usr/__
>>> sbin/prelink:
>>>                       /usr/bin/wall.sysvinit: Using
>>> /lib/ld-linux-armhf.so.3, not
>>>                       /lib/ld-linux.so.3 as dynamic linker
>>>                       Size after prelinking 49304.
>>>                       DEBUG: Shell function prelink_image finished
>>>
>>>                       Regards,
>>>                       Qiang
>>>
>>>
>>>                       --
>>>                       _________________________________________________
>>>                       yocto mailing list
>>>          yocto at yoctoproject.org <mailto:yocto at yoctoproject.org>
>>>          <mailto:yocto at yoctoproject.org <mailto:yocto at yoctoproject.org
>>> >__>
>>>          https://lists.yoctoproject.__org/listinfo/yocto
>>>          <https://lists.yoctoproject.org/listinfo/yocto>
>>>
>>>
>>>
>>>
>>>                   --
>>>                   JCP
>>>
>>>
>>>
>>>
>>>
>>>          --
>>>          JCP
>>>
>>>
>>>
>>>      --
>>>      _________________________________________________
>>>      yocto mailing list
>>>      yocto at yoctoproject.org <mailto:yocto at yoctoproject.org>
>>>      https://lists.yoctoproject.__org/listinfo/yocto
>>>      <https://lists.yoctoproject.org/listinfo/yocto>
>>>
>>>
>>>
>>
> --
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20141212/4ba1204d/attachment.html>


More information about the yocto mailing list