Patchwork [1/1] Uprev to latest version of prelink_git, fixing TLS issues

login
register
mail settings
Submitter Mark Hatle
Date Sept. 14, 2011, 12:53 a.m.
Message ID <4E6FFB1F.7040408@windriver.com>
Download mbox | patch
Permalink /patch/11343/
State New, archived
Headers show

Comments

Mark Hatle - Sept. 14, 2011, 12:53 a.m.
Just an FYI if anyone is curious, the actual fix is:


l->l_tls_modid is a uint64_t....

--Mark

On 9/13/11 7:52 PM, Mark Hatle wrote:
> [YOCTO #1473]
> 
> From the upstream cross prelink respository:
> 
>     Fix printf typecast problem
> 
>     Without this fix the printed TLS(...) information is incorrect, which
>     causes the core prelinker code to incorrectly prelink.  This bug triggers
>     primarily on x86 (32-bit) hosts, targeting x86 (32-bit) targets and arm
>     targets.
> 
> Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
> ---
>  meta/recipes-devtools/prelink/prelink_git.bb |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/meta/recipes-devtools/prelink/prelink_git.bb b/meta/recipes-devtools/prelink/prelink_git.bb
> index 1565ca6..af6de8e 100644
> --- a/meta/recipes-devtools/prelink/prelink_git.bb
> +++ b/meta/recipes-devtools/prelink/prelink_git.bb
> @@ -8,9 +8,9 @@ and executables, so that far fewer relocations need to be resolved at \
>  runtime and thus programs come up faster."
>  LICENSE = "GPLv2"
>  LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
> -SRCREV = "964f6eba613bf1c791a2a0b858cd044f05e2f151"
> +SRCREV = "3e3f9b0876aa5ac83a783a95b8bab52cb38ed785"
>  PV = "1.0+git${SRCPV}"
> -PR = "r6"
> +PR = "r7"
>  
>  #
>  # The cron script attempts to re-prelink the system daily -- on

Patch

--- a/trunk/src/rtld/rtld.c
+++ b/trunk/src/rtld/rtld.c
@@ -1120,7 +1120,7 @@  process_one_dso (DSO *dso, int host_paths)
                   (size_t) (l->l_map_start - cur_dso_ent->dso->base));

           if (l->l_tls_modid)
-            printf (" TLS(0x%Zx, 0x%0*Zx)\n", l->l_tls_modid,
+            printf (" TLS(0x%Zx, 0x%0*Zx)\n", (size_t) l->l_tls_modid,
                     (int) size_pointer,
                     (size_t) l->l_tls_offset);
           else