tls-two-relocs.s
756 Bytes
// REQUIRES: x86
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
// RUN: ld.lld --hash-style=sysv %t -o %tout -shared
// RUN: llvm-readobj -r %tout | FileCheck %s
data16
leaq g_tls_s@TLSGD(%rip), %rdi
data16
data16
rex64
callq __tls_get_addr@PLT
data16
leaq g_tls_s@TLSGD(%rip), %rdi
data16
data16
rex64
callq __tls_get_addr@PLT
// Check that we handle two gd relocations to the same symbol.
// CHECK: Relocations [
// CHECK-NEXT: Section (4) .rela.dyn {
// CHECK-NEXT: R_X86_64_DTPMOD64 g_tls_s 0x0
// CHECK-NEXT: R_X86_64_DTPOFF64 g_tls_s 0x0
// CHECK-NEXT: }
// CHECK-NEXT: Section (5) .rela.plt {
// CHECK-NEXT: R_X86_64_JUMP_SLOT __tls_get_addr 0x0
// CHECK-NEXT: }
// CHECK-NEXT: ]