In aarch64 when the general dynamic access model is used for tls data
the linker emits two dynamic relocs (R_AARCH64_TLS_DTPMOD(64) and
R_AARCH64_TLS_DTPREL(64)) that must be applied by ld.so during object
loading.
Signed-off-by: Dmitry Chestnykh <dm.chestn...@gmail.com>
---
 ldso/ldso/aarch64/elfinterp.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/ldso/ldso/aarch64/elfinterp.c b/ldso/ldso/aarch64/elfinterp.c
index 717a76980..9365569cc 100644
--- a/ldso/ldso/aarch64/elfinterp.c
+++ b/ldso/ldso/aarch64/elfinterp.c
@@ -238,6 +238,12 @@ _dl_do_reloc (struct elf_resolve *tpnt, struct 
r_scope_elem *scope,
                                        }
                                }
                        break;
+               case R_AARCH64_TLS_DTPMOD:
+                       *reloc_addr = tls_tpnt->l_tls_modid;
+                       break;
+               case R_AARCH64_TLS_DTPREL:
+                       *reloc_addr = symbol_addr + rpnt->r_addend;
+                       break;
 #endif
                default:
                        return -1; /*call _dl_exit(1) */
-- 
2.44.0

_______________________________________________
devel mailing list -- devel@uclibc-ng.org
To unsubscribe send an email to devel-le...@uclibc-ng.org

Reply via email to