]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/ELF/dynamic-got-rela.s
Vendor import of lld trunk r338150:
[FreeBSD/FreeBSD.git] / test / ELF / dynamic-got-rela.s
1 // REQUIRES: x86
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
9
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: )
26
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: )
43
44 // CHECK:      Relocations [
45 // CHECK-NEXT:   Section ({{.*}}) .rela.dyn {
46 // CHECK-NEXT:     0x[[GOT]] R_X86_64_RELATIVE - 0x[[ADDEND:.*]]
47 // CHECK-NEXT:   }
48 // CHECK-NEXT: ]
49
50 // CHECK:      Type: PT_DYNAMIC
51 // CHECK-NEXT: Offset: 0x[[ADDEND]]
52 // CHECK-NEXT: VirtualAddress: 0x[[ADDEND]]
53 // CHECK-NEXT: PhysicalAddress: 0x[[ADDEND]]
54
55 cmpq    $0, _DYNAMIC@GOTPCREL(%rip)