[yocto] prelink & mklibs problem

Mark Hatle mark.hatle at windriver.com
Wed Dec 10 15:09:56 PST 2014


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>
>>
>>
>




More information about the yocto mailing list