diff options
-rw-r--r-- | ldso/ldso/aarch64/elfinterp.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/ldso/ldso/aarch64/elfinterp.c b/ldso/ldso/aarch64/elfinterp.c index 9365569cc..d8530ecd1 100644 --- a/ldso/ldso/aarch64/elfinterp.c +++ b/ldso/ldso/aarch64/elfinterp.c @@ -227,13 +227,13 @@ _dl_do_reloc (struct elf_resolve *tpnt, struct r_scope_elem *scope, #else if (!TRY_STATIC_TLS ((struct link_map *) tls_tpnt)) { - td->arg = _dl_make_tlsdesc_dynamic((struct link_map *) tls_tpnt, symbol_addr); + td->arg = _dl_make_tlsdesc_dynamic((struct link_map *) tls_tpnt, symbol_addr + rpnt->r_addend); td->entry = _dl_tlsdesc_dynamic; } else #endif { - td->arg = (void*)(symbol_addr + tls_tpnt->l_tls_offset); + td->arg = (void*)(symbol_addr + tls_tpnt->l_tls_offset + rpnt->r_addend); td->entry = _dl_tlsdesc_return; } } |