]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/ELF/program-header-layout.s
Vendor import of lld trunk r290819:
[FreeBSD/FreeBSD.git] / test / ELF / program-header-layout.s
1 # RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
2 # RUN: ld.lld %t -o %t2
3 # RUN: llvm-readobj -sections -program-headers %t2 | FileCheck %s
4 # REQUIRES: x86
5
6 # Check that different output sections with the same flags are merged into a
7 # single Read/Write PT_LOAD.
8
9 .section .r,"a"
10 .globl _start
11 _start:
12 .quad 0
13
14 .section .a,"aw"
15 .quad 1
16
17 .section .b,"aw"
18 .quad 2
19
20 # CHECK:        Name: .r
21 # CHECK-NEXT:   Type: SHT_PROGBITS
22 # CHECK-NEXT:   Flags [
23 # CHECK-NEXT:     SHF_ALLOC
24 # CHECK-NEXT:   ]
25 # CHECK-NEXT:   Address:
26 # CHECK-NEXT:   Offset: 0x158
27 # CHECK-NEXT:   Size:
28 # CHECK-NEXT:   Link:
29 # CHECK-NEXT:   Info:
30 # CHECK-NEXT:   AddressAlignment:
31 # CHECK-NEXT:   EntrySize:
32 # CHECK-NEXT: }
33
34 # CHECK:      ProgramHeaders [
35 # CHECK-NEXT:   ProgramHeader {
36 # CHECK-NEXT:     Type: PT_PHDR (0x6)
37 # CHECK-NEXT:     Offset: 0x40
38 # CHECK-NEXT:     VirtualAddress: 0x200040
39 # CHECK-NEXT:     PhysicalAddress: 0x200040
40 # CHECK-NEXT:     FileSize: 280
41 # CHECK-NEXT:     MemSize: 280
42 # CHECK-NEXT:     Flags [ (0x4)
43 # CHECK-NEXT:       PF_R (0x4)
44 # CHECK-NEXT:     ]
45 # CHECK-NEXT:     Alignment: 8
46 # CHECK-NEXT:   }
47 # CHECK-NEXT:   ProgramHeader {
48 # CHECK-NEXT:     Type: PT_LOAD
49 # CHECK-NEXT:     Offset: 0x0
50 # CHECK-NEXT:     VirtualAddress:
51 # CHECK-NEXT:     PhysicalAddress:
52 # CHECK-NEXT:     FileSize: 352
53 # CHECK-NEXT:     MemSize: 352
54 # CHECK-NEXT:     Flags [
55 # CHECK-NEXT:       PF_R
56 # CHECK-NEXT:     ]
57 # CHECK-NEXT:     Alignment:
58 # CHECK-NEXT:   }
59 # CHECK-NEXT:   ProgramHeader {
60 # CHECK-NEXT:     Type: PT_LOAD
61 # CHECK-NEXT:     Offset:
62 # CHECK-NEXT:     VirtualAddress:
63 # CHECK-NEXT:     PhysicalAddress:
64 # CHECK-NEXT:     FileSize: 16
65 # CHECK-NEXT:     MemSize: 16
66 # CHECK-NEXT:     Flags [
67 # CHECK-NEXT:       PF_R
68 # CHECK-NEXT:       PF_W
69 # CHECK-NEXT:     ]
70 # CHECK-NEXT:     Alignment:
71 # CHECK-NEXT:   }
72 # CHECK-NEXT:   ProgramHeader {
73 # CHECK-NEXT:     Type: PT_GNU_STACK
74 # CHECK-NEXT:     Offset: 0x0
75 # CHECK-NEXT:     VirtualAddress: 0x0
76 # CHECK-NEXT:     PhysicalAddress: 0x0
77 # CHECK-NEXT:     FileSize: 0
78 # CHECK-NEXT:     MemSize: 0
79 # CHECK-NEXT:     Flags [
80 # CHECK-NEXT:       PF_R
81 # CHECK-NEXT:       PF_W
82 # CHECK-NEXT:     ]
83 # CHECK-NEXT:     Alignment: 0
84 # CHECK-NEXT:   }
85 # CHECK-NEXT: ]