// REQUIRES: x86 // RUN: llvm-mc %s -o %t.o -filetype=obj --triple=x86_64-unknown-linux // RUN: ld.lld %t.o -o %t --export-dynamic --gc-sections // RUN: llvm-readelf -S -s %t | FileCheck %s // Ordinarily, the TLS and IFUNC sections would be split into partitions. // Make sure that that didn't happen by checking that there is only one // of each section. // CHECK: .ifunc // CHECK: .tdata // CHECK-NOT: .ifunc // CHECK-NOT: .tdata .section .llvm_sympart.f1,"",@llvm_sympart .asciz "part1" .quad f1 .section .text._start,"ax",@progbits .globl _start _start: call tls1 call ifunc1 .section .text.f1,"ax",@progbits .globl f1 f1: call tls2 call ifunc2 .section .ifunc,"ax",@progbits,unique,1 .type ifunc1 STT_GNU_IFUNC ifunc1: .section .ifunc,"ax",@progbits,unique,2 .type ifunc2 STT_GNU_IFUNC ifunc2: .section .tdata,"awT",@progbits,unique,1 tls1: .section .tdata,"awT",@progbits,unique,2 tls2: