llvm-project/lld/test/ELF/partition-move-to-main.s
Peter Collingbourne ba2816be82 ELF: Add basic partition data structures and behaviours.
This change causes us to read partition specifications from partition
specification sections and split output sections into partitions according
to their reachability from partition entry points.

This is only the first step towards a full implementation of partitions. Later
changes will add additional synthetic sections to each partition so that
they can be loaded independently.

Differential Revision: https://reviews.llvm.org/D60353

llvm-svn: 361925
2019-05-29 03:55:20 +00:00

45 lines
903 B
ArmAsm

// 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: