# REQUIRES: hexagon # RUN: rm -rf %t && split-file %s %t && cd %t # RUN: llvm-mc -filetype=obj -triple=hexagon-unknown-elf a.s -o a.o # RUN: llvm-mc -filetype=obj -triple=hexagon-unknown-elf b.s -o b.o # RUN: ld.lld -shared a.o b.o -o out.so # RUN: llvm-readobj -r out.so | FileCheck --check-prefix=RELOC %s #--- a.s .globl _start .type _start, @function _start: r2 = add(pc,##_GLOBAL_OFFSET_TABLE_@PCREL) r0 = add(r2,##tls_var@GDGOT) call tls_var@GDPLT jumpr r31 .section .tdata,"awT",@progbits .globl tls_var .type tls_var, @object tls_var: .word 0x1234 #--- b.s .globl other_func .type other_func, @function other_func: ## Direct call to __tls_get_addr - this creates another path that may ## try to allocate auxiliary data for the same symbol call __tls_get_addr jumpr r31 # RELOC: Section ({{.*}}) .rela.plt { # RELOC: R_HEX_JMP_SLOT __tls_get_addr 0x0 # RELOC: }