about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2024-04-04 17:02:32 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2024-04-04 17:02:32 -0300
commit50c2be2390be849176297d231ecce71c6642f407 (patch)
tree4a5f11a0bea869e130d11f0f92b1453f3d44349a
parent44ccc2465c6af5bd811d8258bf744aaafd5392fc (diff)
downloadglibc-50c2be2390be849176297d231ecce71c6642f407.tar.gz
glibc-50c2be2390be849176297d231ecce71c6642f407.tar.xz
glibc-50c2be2390be849176297d231ecce71c6642f407.zip
aarch64: Remove ld.so __tls_get_addr plt usage
Use the hidden alias instead.

Checked on aarch64-linux-gnu.
-rw-r--r--sysdeps/aarch64/dl-tlsdesc.S3
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/localplt.data2
2 files changed, 2 insertions, 3 deletions
diff --git a/sysdeps/aarch64/dl-tlsdesc.S b/sysdeps/aarch64/dl-tlsdesc.S
index 9b253b39dd..4febf2ad21 100644
--- a/sysdeps/aarch64/dl-tlsdesc.S
+++ b/sysdeps/aarch64/dl-tlsdesc.S
@@ -220,7 +220,7 @@ _dl_tlsdesc_dynamic:
 	SAVE_Q_REGISTERS
 
 	mov	x0, x1
-	bl	__tls_get_addr
+	bl	HIDDEN_JUMPTARGET(__tls_get_addr)
 
 	mrs	x1, tpidr_el0
 	sub	PTR_REG (0), PTR_REG (0), PTR_REG (1)
@@ -246,5 +246,6 @@ _dl_tlsdesc_dynamic:
 	b	1b
 	cfi_endproc
 	.size	_dl_tlsdesc_dynamic, .-_dl_tlsdesc_dynamic
+	.hidden HIDDEN_JUMPTARGET(__tls_get_addr)
 # undef NSAVEXREGPAIRS
 #endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/localplt.data b/sysdeps/unix/sysv/linux/aarch64/localplt.data
index 5d217cc50d..5dd07472df 100644
--- a/sysdeps/unix/sysv/linux/aarch64/localplt.data
+++ b/sysdeps/unix/sysv/linux/aarch64/localplt.data
@@ -9,5 +9,3 @@ libm.so: matherr
 # If outline atomics are used, libgcc (built outside of glibc) may
 # call __getauxval using the PLT.
 libc.so: __getauxval ?
-# The dynamic loader needs __tls_get_addr for TLS.
-ld.so: __tls_get_addr