1// REQUIRES: x86
2// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
3// RUN: ld.lld %t -o %tout
4// RUN: llvm-readobj -l %tout | FileCheck %s
5
6.global _start
7_start:
8        retq
9
10.section .tbss,"awT",@nobits
11        .zero 4
12// FIXME: Test that we don't create unecessary empty PT_LOAD and PT_GNU_RELRO
13// for the .tbss section.
14
15// CHECK:      ProgramHeaders [
16// CHECK-NEXT:   ProgramHeader {
17// CHECK-NEXT:     Type: PT_PHDR (0x6)
18// CHECK-NEXT:     Offset: 0x40
19// CHECK-NEXT:     VirtualAddress: 0x200040
20// CHECK-NEXT:     PhysicalAddress: 0x200040
21// CHECK-NEXT:     FileSize: 280
22// CHECK-NEXT:     MemSize: 280
23// CHECK-NEXT:     Flags [ (0x4)
24// CHECK-NEXT:       PF_R (0x4)
25// CHECK-NEXT:     ]
26// CHECK-NEXT:     Alignment: 8
27// CHECK-NEXT:   }
28// CHECK-NEXT:   ProgramHeader {
29// CHECK-NEXT:     Type: PT_LOAD (0x1)
30// CHECK-NEXT:     Offset: 0x0
31// CHECK-NEXT:     VirtualAddress: 0x200000
32// CHECK-NEXT:     PhysicalAddress: 0x200000
33// CHECK-NEXT:     FileSize: 344
34// CHECK-NEXT:     MemSize: 344
35// CHECK-NEXT:     Flags [ (0x4)
36// CHECK-NEXT:       PF_R (0x4)
37// CHECK-NEXT:     ]
38// CHECK-NEXT:     Alignment: 4096
39// CHECK-NEXT:   }
40// CHECK-NEXT:   ProgramHeader {
41// CHECK-NEXT:     Type: PT_LOAD (0x1)
42// CHECK-NEXT:     Offset: 0x158
43// CHECK-NEXT:     VirtualAddress: 0x201158
44// CHECK-NEXT:     PhysicalAddress: 0x201158
45// CHECK-NEXT:     FileSize: 1
46// CHECK-NEXT:     MemSize: 1
47// CHECK-NEXT:     Flags [ (0x5)
48// CHECK-NEXT:       PF_R (0x4)
49// CHECK-NEXT:       PF_X (0x1)
50// CHECK-NEXT:     ]
51// CHECK-NEXT:     Alignment: 4096
52// CHECK-NEXT:   }
53// CHECK-NEXT:   ProgramHeader {
54// CHECK-NEXT:     Type: PT_TLS (0x7)
55// CHECK-NEXT:     Offset: 0x159
56// CHECK-NEXT:     VirtualAddress: 0x201159
57// CHECK-NEXT:     PhysicalAddress: 0x201159
58// CHECK-NEXT:     FileSize: 0
59// CHECK-NEXT:     MemSize: 4
60// CHECK-NEXT:     Flags [ (0x4)
61// CHECK-NEXT:       PF_R (0x4)
62// CHECK-NEXT:     ]
63// CHECK-NEXT:     Alignment: 1
64// CHECK-NEXT:   }
65// CHECK-NEXT:   ProgramHeader {
66// CHECK-NEXT:     Type: PT_GNU_STACK (0x6474E551)
67// CHECK-NEXT:     Offset: 0x0
68// CHECK-NEXT:     VirtualAddress: 0x0
69// CHECK-NEXT:     PhysicalAddress: 0x0
70// CHECK-NEXT:     FileSize: 0
71// CHECK-NEXT:     MemSize: 0
72// CHECK-NEXT:     Flags [ (0x6)
73// CHECK-NEXT:       PF_R (0x4)
74// CHECK-NEXT:       PF_W (0x2)
75// CHECK-NEXT:     ]
76// CHECK-NEXT:     Alignment: 0
77// CHECK-NEXT:   }
78// CHECK-NEXT: ]
79