[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