summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ldso/ldso/aarch64/elfinterp.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/ldso/ldso/aarch64/elfinterp.c b/ldso/ldso/aarch64/elfinterp.c
index 879484e16..2b5e185d8 100644
--- a/ldso/ldso/aarch64/elfinterp.c
+++ b/ldso/ldso/aarch64/elfinterp.c
@@ -279,6 +279,17 @@ _dl_do_lazy_reloc (struct elf_resolve *tpnt, struct r_scope_elem *scope,
case R_AARCH64_JUMP_SLOT:
*reloc_addr += tpnt->loadaddr;
break;
+#if defined USE_TLS && USE_TLS
+ case R_AARCH64_TLSDESC:
+ {
+ struct tlsdesc volatile *td =
+ (struct tlsdesc volatile *)reloc_addr;
+
+ td->arg = (void*)rpnt;
+ td->entry = _dl_tlsdesc_return;
+ }
+ break;
+#endif
default:
return -1; /*call _dl_exit(1) */
}