[OE-core] [PATCH] prelink: Allow it to work on 64 bit binaries in /lib

Khem Raj raj.khem at gmail.com
Tue Sep 29 17:12:19 UTC 2015


> On Sep 29, 2015, at 6:26 AM, Richard Purdie <richard.purdie at linuxfoundation.org> wrote:
> 
> Checks within prelink force 64 bit binaries into lib64 and n32 binaries
> into lib32. We load prelink.conf with all combinations but this code
> then defeats it for us and means /lib is ignored.
> 
> Comment out this code to disable it and allow our settings to work. This
> allows 64 bit binaries in /lib to work. We pass in the correct dyanamic
> loader path anyhow and our binaries don't contain ld.so so this should
> be safe for us.
> 
> Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
> 
> diff --git a/meta/recipes-devtools/prelink/prelink/64bitfix.patch b/meta/recipes-devtools/prelink/prelink/64bitfix.patch
> new file mode 100644
> index 0000000..74b1a7d
> --- /dev/null
> +++ b/meta/recipes-devtools/prelink/prelink/64bitfix.patch
> @@ -0,0 +1,35 @@
> +These checks force 64 bit binaries into lib64 and n32 binaries into lib32. We
> +load prelink.conf with all combinations but this code then defeats it for us
> +and means /lib is ignored.
> +
> +Comment out this code to disable it and allow our settings to work. This
> +allows 64 bit binaries in /lib to work. We pass in the correct dyanamic
> +loader path anyhow and our binaries don't contain ld.so so this should be
> +safe for us.
> +
> +Upstream-Status: Inappropriate
> +RP 2015/9/23
> +
> +
> +Index: trunk/src/rtld/rtld.c
> +===================================================================
> +--- trunk.orig/src/rtld/rtld.c
> ++++ trunk/src/rtld/rtld.c
> +@@ -334,7 +334,7 @@ load_ld_so_conf (int use_64bit, int use_
> +
> +   /* Only use the correct machine, to prevent mismatches if we
> +      have both /lib/ld.so and /lib64/ld.so on x86-64.  */
> +-  if (use_64bit)
> ++  /*if (use_64bit)

may be it would be good to use it as fallback if nothing comes out of prelink.conf
such a patch would be acceptable upstream too.

> +     {
> +       dst_LIB = "lib64";
> +       add_dir (&ld_dirs, "/lib64/tls", strlen ("/lib64/tls"));
> +@@ -350,7 +350,7 @@ load_ld_so_conf (int use_64bit, int use_
> +       add_dir (&ld_dirs, "/usr/lib32/tls", strlen ("/usr/lib32/tls"));
> +       add_dir (&ld_dirs, "/usr/lib32", strlen ("/usr/lib32"));
> +     }
> +-  else
> ++  else*/
> +     {
> +       dst_LIB = "lib";
> +       add_dir (&ld_dirs, "/lib/tls", strlen ("/lib/tls"));
> diff --git a/meta/recipes-devtools/prelink/prelink_git.bb b/meta/recipes-devtools/prelink/prelink_git.bb
> index 79a5f501..0cbce36 100644
> --- a/meta/recipes-devtools/prelink/prelink_git.bb
> +++ b/meta/recipes-devtools/prelink/prelink_git.bb
> @@ -27,6 +27,7 @@ FILES_${PN}-cron = "${sysconfdir}/cron.daily ${sysconfdir}/default"
> PACKAGES =+ "${PN}-cron"
> 
> SRC_URI = "git://git.yoctoproject.org/prelink-cross.git;branch=cross_prelink \
> +           file://64bitfix.patch \
>            file://prelink.conf \
>            file://prelink.cron.daily \
>            file://prelink.default \
> 
> 
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 204 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20150929/3a2ad2ca/attachment-0002.sig>


More information about the Openembedded-core mailing list