65 lines · plain
1// REQUIRES: x862 3// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o4// RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %p/Inputs/relocation-copy.s -o %t2.o5// RUN: ld.lld %t2.o -o %t2.so -shared -soname=so6// RUN: ld.lld --hash-style=sysv %t.o %t2.so -o %t.exe7// RUN: llvm-readobj -S --section-data -r %t.exe | FileCheck %s8 9// Copy relocate x in a non-writable position.10 .global _start11_start:12 .quad x13 14// Resolved to 0 in a non-alloc section.15 .section foo16 .quad y17 18// Produce a dynamic relocation in a writable position.19 .section bar, "aw"20 .quad z21 22// CHECK: Name: .text23// CHECK: SectionData (24// CHECK-NEXT: 0000: 9033200025// CHECK-NEXT: )26 27// CHECK: Name: bar28// CHECK-NEXT: Type: SHT_PROGBITS29// CHECK-NEXT: Flags [30// CHECK-NEXT: SHF_ALLOC31// CHECK-NEXT: SHF_WRITE32// CHECK-NEXT: ]33// CHECK-NEXT: Address: 0x20338034// CHECK-NEXT: Offset: 0x38035// CHECK-NEXT: Size: 836// CHECK-NEXT: Link: 037// CHECK-NEXT: Info: 038// CHECK-NEXT: AddressAlignment: 139// CHECK-NEXT: EntrySize: 040// CHECK-NEXT: SectionData (41// CHECK-NEXT: 0000: 0000000042// CHECK-NEXT: )43 44// CHECK: Name: foo45// CHECK-NEXT: Type: SHT_PROGBITS46// CHECK-NEXT: Flags [47// CHECK-NEXT: ]48// CHECK-NEXT: Address: 0x049// CHECK-NEXT: Offset: 0x38850// CHECK-NEXT: Size: 851// CHECK-NEXT: Link: 052// CHECK-NEXT: Info: 053// CHECK-NEXT: AddressAlignment: 154// CHECK-NEXT: EntrySize: 055// CHECK-NEXT: SectionData (56// CHECK-NEXT: 0000: 0000000057// CHECK-NEXT: )58 59// CHECK: Relocations [60// CHECK-NEXT: Section (4) .rela.dyn {61// CHECK-NEXT: 0x203390 R_X86_64_COPY x 0x062// CHECK-NEXT: 0x203380 R_X86_64_64 z 0x063// CHECK-NEXT: }64// CHECK-NEXT: ]65