aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-aarch64/gc-relocs-tlsgd.s
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2013-04-03 14:21:18 +0000
committerNick Clifton <nickc@redhat.com>2013-04-03 14:21:18 +0000
commitcb8af559c12b9a85acb429fed4d59e858574a43c (patch)
treea16f6f77f0ca2c24cb5dbed5492bc9d1be678f3b /ld/testsuite/ld-aarch64/gc-relocs-tlsgd.s
parent203f0950a35c87f17016045f1cd5a0460b445532 (diff)
downloadgdb-cb8af559c12b9a85acb429fed4d59e858574a43c.zip
gdb-cb8af559c12b9a85acb429fed4d59e858574a43c.tar.gz
gdb-cb8af559c12b9a85acb429fed4d59e858574a43c.tar.bz2
* elf64-aarch64.c (elf64_aarch64_gc_sweep_hook): Use
elf64_aarch64_locals to get local GOT reference counts. * ld-aarch64/gc-relocs-tlsle.s: New gc section test. * ld-aarch64/gc-relocs-tlsle.s: Likewise * ld-aarch64/gc-relocs-tlsgd.s: Likewise * ld-aarch64/gc-relocs-tlsdesc.s: Likewise * ld-aarch64/gc-relocs-312.s: Likewise * ld-aarch64/gc-relocs-311.s: Likewise * ld-aarch64/gc-relocs-309.s: Likewise * ld-aarch64/gc-start.s: Likewise * ld-aarch64/gc-got-relocs.d: Update expected objdump * ld-aarch64/gc-tls-relocs.d: Likewise * ld-aarch64/aarch64-elf.exp: add test
Diffstat (limited to 'ld/testsuite/ld-aarch64/gc-relocs-tlsgd.s')
-rw-r--r--ld/testsuite/ld-aarch64/gc-relocs-tlsgd.s30
1 files changed, 30 insertions, 0 deletions
diff --git a/ld/testsuite/ld-aarch64/gc-relocs-tlsgd.s b/ld/testsuite/ld-aarch64/gc-relocs-tlsgd.s
new file mode 100644
index 0000000..ac90475
--- /dev/null
+++ b/ld/testsuite/ld-aarch64/gc-relocs-tlsgd.s
@@ -0,0 +1,30 @@
+ .global tlsgdvar
+ .section .tbss,"awT",%nobits
+ .align 2
+ .type tlsgdvar, %object
+ .size tlsgdvar, 4
+tlsgdvar:
+ .zero 4
+ .align 2
+ .type l_tlsgdvar, %object
+ .size l_tlsgdvar, 4
+l_tlsgdvar:
+ .zero 4
+
+.text
+_test_tls_gd:
+ // R_AARCH64_TLSGD_ADR_PAGE21 tldgdvar
+ adrp x0, :tlsgd:tlsgdvar
+ // R_AARCH64_TLSGD_ADD_LO12_NC tlsgdvar
+ add x0, x0, :tlsgd_lo12:tlsgdvar
+ // R_AARCH64_CALL26
+ bl __tls_get_addr
+
+_test_tls_gd_local:
+ // R_AARCH64_TLSGD_ADR_PAGE21 l_tldgdvar
+ adrp x0, :tlsgd:l_tlsgdvar
+ // R_AARCH64_TLSGD_ADD_LO12_NC l_tlsgdvar
+ add x0, x0, :tlsgd_lo12:l_tlsgdvar
+ // R_AARCH64_CALL26
+ bl __tls_get_addr
+