2 // RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
3 // RUN: ld.lld %t.o -o %t.so -shared --apply-dynamic-relocs
4 // RUN: llvm-readobj -r -s -l -section-data %t.so | FileCheck -check-prefix CHECK -check-prefix APPLYDYNREL %s
5 // RUN: ld.lld %t.o -o %t2.so -shared
6 // RUN: llvm-readobj -r -s -l -section-data %t2.so | FileCheck -check-prefix CHECK -check-prefix NOAPPLYDYNREL %s
7 // RUN: ld.lld %t.o -o %t2.so -shared --no-apply-dynamic-relocs
8 // RUN: llvm-readobj -r -s -l -section-data %t2.so | FileCheck -check-prefix CHECK -check-prefix NOAPPLYDYNREL %s
10 // APPLYDYNREL: Name: .got
11 // APPLYDYNREL-NEXT: Type: SHT_PROGBITS
12 // APPLYDYNREL-NEXT: Flags [
13 // APPLYDYNREL-NEXT: SHF_ALLOC
14 // APPLYDYNREL-NEXT: SHF_WRITE
15 // APPLYDYNREL-NEXT: ]
16 // APPLYDYNREL-NEXT: Address: 0x[[GOT:.*]]
17 // APPLYDYNREL-NEXT: Offset:
18 // APPLYDYNREL-NEXT: Size:
19 // APPLYDYNREL-NEXT: Link:
20 // APPLYDYNREL-NEXT: Info:
21 // APPLYDYNREL-NEXT: AddressAlignment:
22 // APPLYDYNREL-NEXT: EntrySize:
23 // APPLYDYNREL-NEXT: SectionData (
24 // APPLYDYNREL-NEXT: 0000: 00200000 00000000 |
25 // APPLYDYNREL-NEXT: )
27 // NOAPPLYDYNREL: Name: .got
28 // NOAPPLYDYNREL-NEXT: Type: SHT_PROGBITS
29 // NOAPPLYDYNREL-NEXT: Flags [
30 // NOAPPLYDYNREL-NEXT: SHF_ALLOC
31 // NOAPPLYDYNREL-NEXT: SHF_WRITE
32 // NOAPPLYDYNREL-NEXT: ]
33 // NOAPPLYDYNREL-NEXT: Address: 0x[[GOT:.*]]
34 // NOAPPLYDYNREL-NEXT: Offset:
35 // NOAPPLYDYNREL-NEXT: Size:
36 // NOAPPLYDYNREL-NEXT: Link:
37 // NOAPPLYDYNREL-NEXT: Info:
38 // NOAPPLYDYNREL-NEXT: AddressAlignment:
39 // NOAPPLYDYNREL-NEXT: EntrySize:
40 // NOAPPLYDYNREL-NEXT: SectionData (
41 // NOAPPLYDYNREL-NEXT: 0000: 00000000 00000000 |
42 // NOAPPLYDYNREL-NEXT: )
44 // CHECK: Relocations [
45 // CHECK-NEXT: Section ({{.*}}) .rela.dyn {
46 // CHECK-NEXT: 0x[[GOT]] R_X86_64_RELATIVE - 0x[[ADDEND:.*]]
50 // CHECK: Type: PT_DYNAMIC
51 // CHECK-NEXT: Offset: 0x[[ADDEND]]
52 // CHECK-NEXT: VirtualAddress: 0x[[ADDEND]]
53 // CHECK-NEXT: PhysicalAddress: 0x[[ADDEND]]
55 cmpq $0, _DYNAMIC@GOTPCREL(%rip)