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.
Signed-off-by: William Pitcock <[email protected]> --- ldso/libdl/libdl.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/ldso/libdl/libdl.c b/ldso/libdl/libdl.c index c164ffb..12eb311 100644 --- a/ldso/libdl/libdl.c +++ b/ldso/libdl/libdl.c @@ -715,7 +715,7 @@ void *dlsym(void *vhandle, const char *name) if (sym_ref.sym && (ELF_ST_TYPE(sym_ref.sym->st_info) == STT_TLS) && (sym_ref.tpnt)) { /* The found symbol is a thread-local storage variable. Return its address for the current thread. */ - ret = _dl_tls_symaddr ((struct link_map *)sym_ref.tpnt, (Elf32_Addr)ret); + ret = _dl_tls_symaddr ((struct link_map *)sym_ref.tpnt, (unsigned long) ret); } #endif -- 1.7.7.1 _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
