Follow up to d0858bffa11, add missing REQUIRES x86
[llvm-project.git] / llvm / test / tools / llvm-objcopy / ELF / triple-overlap.test
blobd6d44f1e287a4b9a996ad2df4eab91fa812b0ed1
1 # This test tests that each segment is assigned a canonical parent segment.
2 # Importantly if two segments could be the parent segment of a segment this test
3 # should cover the case where a new parent replaces the old parent and the case
4 # where an old parent is not replaced by a new parent.
6 # RUN: yaml2obj %s -o %t
7 # RUN: llvm-objcopy %t %t2
8 # RUN: llvm-readobj --program-headers %t2 | FileCheck %s
10 !ELF
11 FileHeader:
12   Class:           ELFCLASS64
13   Data:            ELFDATA2LSB
14   Type:            ET_EXEC
15   Machine:         EM_X86_64
16 Sections:
17   - Name:            .text
18     Type:            SHT_PROGBITS
19     Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
20     AddressAlign:    0x1000
21     Size:            4096
22   - Name:            .text2
23     Type:            SHT_PROGBITS
24     Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
25     AddressAlign:    0x1000
26     Size:            4096
27   - Name:            .text3
28     Type:            SHT_PROGBITS
29     Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
30     AddressAlign:    0x1000
31     Size:            4096
32   - Name:            .text4
33     Type:            SHT_PROGBITS
34     Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
35     AddressAlign:    0x1000
36     Size:            4096
37   - Name:            .text5
38     Type:            SHT_PROGBITS
39     Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
40     AddressAlign:    0x1000
41     Size:            4096
42 ProgramHeaders:
43   - Type:     PT_LOAD
44     Flags:    [ PF_X, PF_R ]
45     FirstSec: .text4
46     LastSec:  .text5
47   - Type:     PT_LOAD
48     Flags:    [ PF_X, PF_R ]
49     FirstSec: .text3
50     LastSec:  .text5
51   - Type:     PT_LOAD
52     Flags:    [ PF_X, PF_R ]
53     FirstSec: .text
54     LastSec:  .text5
55   - Type:     PT_LOAD
56     Flags:    [ PF_X, PF_R ]
57     FirstSec: .text2
58     LastSec:  .text5
60 #CHECK:     ProgramHeaders [
61 #CHECK-NEXT:  ProgramHeader {
62 #CHECK-NEXT:    Type: PT_LOAD (0x1)
63 #CHECK-NEXT:    Offset: 0x4000
64 #CHECK-NEXT:    VirtualAddress: 0x0
65 #CHECK-NEXT:    PhysicalAddress: 0x0
66 #CHECK-NEXT:    FileSize: 8192
67 #CHECK-NEXT:    MemSize: 8192
68 #CHECK-NEXT:    Flags [ (0x5)
69 #CHECK-NEXT:      PF_R (0x4)
70 #CHECK-NEXT:      PF_X (0x1)
71 #CHECK-NEXT:    ]
72 #CHECK-NEXT:    Alignment: 4096
73 #CHECK-NEXT:  }
74 #CHECK-NEXT:  ProgramHeader {
75 #CHECK-NEXT:    Type: PT_LOAD (0x1)
76 #CHECK-NEXT:    Offset: 0x3000
77 #CHECK-NEXT:    VirtualAddress: 0x0
78 #CHECK-NEXT:    PhysicalAddress: 0x0
79 #CHECK-NEXT:    FileSize: 12288
80 #CHECK-NEXT:    MemSize: 12288
81 #CHECK-NEXT:    Flags [ (0x5)
82 #CHECK-NEXT:      PF_R (0x4)
83 #CHECK-NEXT:      PF_X (0x1)
84 #CHECK-NEXT:    ]
85 #CHECK-NEXT:    Alignment: 4096
86 #CHECK-NEXT:  }
87 #CHECK-NEXT:  ProgramHeader {
88 #CHECK-NEXT:    Type: PT_LOAD (0x1)
89 #CHECK-NEXT:    Offset: 0x1000
90 #CHECK-NEXT:    VirtualAddress: 0x0
91 #CHECK-NEXT:    PhysicalAddress: 0x0
92 #CHECK-NEXT:    FileSize: 20480
93 #CHECK-NEXT:    MemSize: 20480
94 #CHECK-NEXT:    Flags [ (0x5)
95 #CHECK-NEXT:      PF_R (0x4)
96 #CHECK-NEXT:      PF_X (0x1)
97 #CHECK-NEXT:    ]
98 #CHECK-NEXT:    Alignment: 4096
99 #CHECK-NEXT:  }
100 #CHECK-NEXT:  ProgramHeader {
101 #CHECK-NEXT:    Type: PT_LOAD (0x1)
102 #CHECK-NEXT:    Offset: 0x2000
103 #CHECK-NEXT:    VirtualAddress: 0x0
104 #CHECK-NEXT:    PhysicalAddress: 0x0
105 #CHECK-NEXT:    FileSize: 16384
106 #CHECK-NEXT:    MemSize: 16384
107 #CHECK-NEXT:    Flags [ (0x5)
108 #CHECK-NEXT:      PF_R (0x4)
109 #CHECK-NEXT:      PF_X (0x1)
110 #CHECK-NEXT:    ]
111 #CHECK-NEXT:    Alignment: 4096
112 #CHECK-NEXT:  }
113 #CHECK-NEXT:]