1// REQUIRES: x86 2// RUN: llvm-mc %s -o %t.o -filetype=obj --triple=x86_64-unknown-linux 3// RUN: ld.lld %t.o -o %t --export-dynamic --gc-sections 4// RUN: llvm-readelf -S -s %t | FileCheck %s 5 6// Ordinarily, the TLS and IFUNC sections would be split into partitions. 7// Make sure that that didn't happen by checking that there is only one 8// of each section. 9 10// CHECK: .ifunc 11// CHECK: .tdata 12 13// CHECK-NOT: .ifunc 14// CHECK-NOT: .tdata 15 16.section .llvm_sympart.f1,"",@llvm_sympart 17.asciz "part1" 18.quad f1 19 20.section .text._start,"ax",@progbits 21.globl _start 22_start: 23call tls1 24call ifunc1 25 26.section .text.f1,"ax",@progbits 27.globl f1 28f1: 29call tls2 30call ifunc2 31 32.section .ifunc,"ax",@progbits,unique,1 33.type ifunc1 STT_GNU_IFUNC 34ifunc1: 35 36.section .ifunc,"ax",@progbits,unique,2 37.type ifunc2 STT_GNU_IFUNC 38ifunc2: 39 40.section .tdata,"awT",@progbits,unique,1 41tls1: 42 43.section .tdata,"awT",@progbits,unique,2 44tls2: 45