On Tuesday 01 November 2011 18:51:02 William Pitcock wrote: > Casting a pointer to Elf32_Addr type will discard 32 bits from the > pointer address. Using unsigned long ensures that a pointer is 64-bit > safe. > > --- a/ldso/libdl/libdl.c > +++ b/ldso/libdl/libdl.c > > ret = _dl_tls_symaddr ((struct link_map *)sym_ref.tpnt, > ret = _dl_tls_symaddr ((struct link_map *)sym_ref.tpnt, > - (Elf32_Addr) ret); > + (unsigned long) ret);
i don't think this works. the _dl_tls_symaddr() func still takes an Elf32_Addr argument, so it still gets implicitly cast from unsigned long to Elf32_Addr. so if this is going to be fixed, you'd want to use ElfW(Addr) in both places as suggested by Carmelo. -mike
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
