1// REQUIRES: x86 2// RUN: llvm-mc -filetype=obj -triple=i386-pc-linux %s -o %t.o 3// RUN: ld.lld --hash-style=sysv %t.o -o %t.so -shared 4// RUN: llvm-readobj -S -l --section-data -r %t.so | FileCheck %s 5 6// CHECK: Name: .got 7// CHECK-NEXT: Type: SHT_PROGBITS 8// CHECK-NEXT: Flags [ 9// CHECK-NEXT: SHF_ALLOC 10// CHECK-NEXT: SHF_WRITE 11// CHECK-NEXT: ] 12// CHECK-NEXT: Address: 13// CHECK-NEXT: Offset: 14// CHECK-NEXT: Size: 15// CHECK-NEXT: Link: 16// CHECK-NEXT: Info: 17// CHECK-NEXT: AddressAlignment: 18// CHECK-NEXT: EntrySize: 19// CHECK-NEXT: SectionData ( 20// CHECK-NEXT: 0000: 74210000 21// CHECK-NEXT: ) 22 23// CHECK: Name: .got.plt 24// CHECK-NEXT: Type: SHT_PROGBITS 25// CHECK-NEXT: Flags [ 26// CHECK-NEXT: SHF_ALLOC 27// CHECK-NEXT: SHF_WRITE 28// CHECK-NEXT: ] 29// CHECK-NEXT: Address: 30// CHECK-NEXT: Offset: 31// CHECK-NEXT: Size: 32// CHECK-NEXT: Link: 33// CHECK-NEXT: Info: 34// CHECK-NEXT: AddressAlignment: 35// CHECK-NEXT: EntrySize: 36// CHECK-NEXT: SectionData ( 37// CHECK-NEXT: 0000: 74210000 00000000 00000000 38// CHECK-NEXT: ) 39 40// CHECK: Type: PT_DYNAMIC 41// CHECK-NEXT: Offset: 0x174 42// CHECK-NEXT: VirtualAddress: 0x2174 43// CHECK-NEXT: PhysicalAddress: 0x2174 44 45// CHECK: Relocations [ 46// CHECK-NEXT: Section ({{.*}}) .rel.dyn { 47// CHECK-NEXT: 0x21C4 R_386_RELATIVE - 48// CHECK-NEXT: } 49// CHECK-NEXT: ] 50 51 calll .L0$pb 52.L0$pb: 53 popl %eax 54.Ltmp0: 55 addl $_GLOBAL_OFFSET_TABLE_+(.Ltmp0-.L0$pb), %eax 56 movl _DYNAMIC@GOT(%eax), %eax 57