about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2024-04-04 17:03:32 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2024-04-04 17:03:32 -0300
commit95700e799809fff4307da05fa277820d21dec925 (patch)
tree1a2fe2aee955f36209aa3569ad63e5b5c9ac4157
parent50c2be2390be849176297d231ecce71c6642f407 (diff)
downloadglibc-95700e799809fff4307da05fa277820d21dec925.tar.gz
glibc-95700e799809fff4307da05fa277820d21dec925.tar.xz
glibc-95700e799809fff4307da05fa277820d21dec925.zip
arm: Remove ld.so __tls_get_addr plt usage
Use the hidden alias instead.

Checked on arm-linux-gnueabihf.
-rw-r--r--sysdeps/arm/dl-tlsdesc.S3
-rw-r--r--sysdeps/unix/sysv/linux/arm/localplt.data2
2 files changed, 2 insertions, 3 deletions
diff --git a/sysdeps/arm/dl-tlsdesc.S b/sysdeps/arm/dl-tlsdesc.S
index ada106521d..e36a32859f 100644
--- a/sysdeps/arm/dl-tlsdesc.S
+++ b/sysdeps/arm/dl-tlsdesc.S
@@ -147,7 +147,7 @@ _dl_tlsdesc_dynamic:
 4:	.inst	0xeef12a10	/* vmrs	r2, fpscr */
 	str	r2, [r3]
 .Lno_vfp:
-	bl	__tls_get_addr
+	bl	HIDDEN_JUMPTARGET(__tls_get_addr)
 	rsb	r0, r4, r0
 #ifdef __SOFTFP__
 	tst     r5, #HWCAP_ARM_VFP
@@ -181,6 +181,7 @@ _dl_tlsdesc_dynamic:
 	eabi_fnend
 	cfi_endproc
 	.size	_dl_tlsdesc_dynamic, .-_dl_tlsdesc_dynamic
+	.hidden HIDDEN_JUMPTARGET(__tls_get_addr)
 
 3:      .long   _GLOBAL_OFFSET_TABLE_ - 0b - PC_OFS
 .Lrtld_global_ro:
diff --git a/sysdeps/unix/sysv/linux/arm/localplt.data b/sysdeps/unix/sysv/linux/arm/localplt.data
index 162c664a01..5d131a7921 100644
--- a/sysdeps/unix/sysv/linux/arm/localplt.data
+++ b/sysdeps/unix/sysv/linux/arm/localplt.data
@@ -4,5 +4,3 @@ libc.so: malloc
 libc.so: raise
 libc.so: realloc
 libm.so: matherr
-# The dynamic loader needs __tls_get_addr for TLS.
-ld.so: __tls_get_addr