Follow up to d0858bffa11, add missing REQUIRES x86
[llvm-project.git] / llvm / test / tools / llvm-objcopy / ELF / cross-arch-sections-symbols.test
blob937a3e6aa2686e73b2b322fef13289d8a898524f
1 # RUN: yaml2obj %s -o %t.o
2 # Preserve input to verify it is not modified.
3 # RUN: cp %t.o %t-copy.o
4 # RUN: llvm-objcopy %t.o -O elf64-x86-64 %t.2.o
5 # RUN: llvm-readobj --sections --symbols %t.2.o | FileCheck %s
6 # RUN: cmp %t.o %t-copy.o
8 !ELF
9 FileHeader:
10   Class:           ELFCLASS32
11   Data:            ELFDATA2LSB
12   Type:            ET_EXEC
13   Machine:         EM_386
14 Sections:
15   - Name:            .text
16     Type:            SHT_PROGBITS
17     Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
18     Size:            32
19   - Name:            .data
20     Type:            SHT_PROGBITS
21     Flags:           [ SHF_ALLOC ]
22     Content:         DEADBEEF
23     Size:            16
24 Symbols:
25   - Name:     foo
26     Type:     STT_FUNC
27     Section:  .text
28     Value:    16
29     Size:     8
30     Binding:  STB_GLOBAL
31   - Name:     bar
32     Type:     STT_OBJECT
33     Section:  .data
34     Size:     16
35     Binding:  STB_GLOBAL
37 # CHECK:      Sections [
38 # CHECK-NEXT:   Section {
39 # CHECK-NEXT:     Index: 0
40 # CHECK-NEXT:     Name:  (0)
41 # CHECK-NEXT:     Type: SHT_NULL (0x0)
42 # CHECK-NEXT:     Flags [ (0x0)
43 # CHECK-NEXT:     ]
44 # CHECK-NEXT:     Address:
45 # CHECK-NEXT:     Offset:
46 # CHECK-NEXT:     Size: 0
47 # CHECK-NEXT:     Link: 0
48 # CHECK-NEXT:     Info: 0
49 # CHECK-NEXT:     AddressAlignment: 0
50 # CHECK-NEXT:     EntrySize: 0
51 # CHECK-NEXT:   }
52 # CHECK-NEXT:   Section {
53 # CHECK-NEXT:     Index: 1
54 # CHECK-NEXT:     Name: .text
55 # CHECK-NEXT:     Type: SHT_PROGBITS (0x1)
56 # CHECK-NEXT:     Flags [ (0x6)
57 # CHECK-NEXT:       SHF_ALLOC (0x2)
58 # CHECK-NEXT:       SHF_EXECINSTR (0x4)
59 # CHECK-NEXT:     ]
60 # CHECK-NEXT:     Address:
61 # CHECK-NEXT:     Offset:
62 # CHECK-NEXT:     Size: 32
63 # CHECK-NEXT:     Link: 0
64 # CHECK-NEXT:     Info: 0
65 # CHECK-NEXT:     AddressAlignment: 0
66 # CHECK-NEXT:     EntrySize: 0
67 # CHECK-NEXT:   }
68 # CHECK-NEXT:   Section {
69 # CHECK-NEXT:     Index: 2
70 # CHECK-NEXT:     Name: .data
71 # CHECK-NEXT:     Type: SHT_PROGBITS (0x1)
72 # CHECK-NEXT:     Flags [ (0x2)
73 # CHECK-NEXT:       SHF_ALLOC (0x2)
74 # CHECK-NEXT:     ]
75 # CHECK-NEXT:     Address:
76 # CHECK-NEXT:     Offset:
77 # CHECK-NEXT:     Size: 16
78 # CHECK-NEXT:     Link: 0
79 # CHECK-NEXT:     Info: 0
80 # CHECK-NEXT:     AddressAlignment: 0
81 # CHECK-NEXT:     EntrySize: 0
82 # CHECK-NEXT:   }
83 # CHECK-NEXT:   Section {
84 # CHECK-NEXT:     Index: 3
85 # CHECK-NEXT:     Name: .symtab
86 # CHECK-NEXT:     Type: SHT_SYMTAB (0x2)
87 # CHECK-NEXT:     Flags [ (0x0)
88 # CHECK-NEXT:     ]
89 # CHECK-NEXT:     Address:
90 # CHECK-NEXT:     Offset:
91 # CHECK-NEXT:     Size: 72
92 # CHECK-NEXT:     Link: 4
93 # CHECK-NEXT:     Info: 1
94 # CHECK-NEXT:     AddressAlignment: 8
95 # CHECK-NEXT:     EntrySize: 24
96 # CHECK-NEXT:   }
97 # CHECK-NEXT:   Section {
98 # CHECK-NEXT:     Index: 4
99 # CHECK-NEXT:     Name: .strtab
100 # CHECK-NEXT:     Type: SHT_STRTAB (0x3)
101 # CHECK-NEXT:     Flags [ (0x0)
102 # CHECK-NEXT:     ]
103 # CHECK-NEXT:     Address:
104 # CHECK-NEXT:     Offset:
105 # CHECK-NEXT:     Size: 9
106 # CHECK-NEXT:     Link: 0
107 # CHECK-NEXT:     Info: 0
108 # CHECK-NEXT:     AddressAlignment: 1
109 # CHECK-NEXT:     EntrySize: 0
110 # CHECK-NEXT:   }
111 # CHECK-NEXT:   Section {
112 # CHECK-NEXT:     Index: 5
113 # CHECK-NEXT:     Name: .shstrtab
114 # CHECK-NEXT:     Type: SHT_STRTAB (0x3)
115 # CHECK-NEXT:     Flags [ (0x0)
116 # CHECK-NEXT:     ]
117 # CHECK-NEXT:     Address:
118 # CHECK-NEXT:     Offset:
119 # CHECK-NEXT:     Size: 39
120 # CHECK-NEXT:     Link: 0
121 # CHECK-NEXT:     Info: 0
122 # CHECK-NEXT:     AddressAlignment: 1
123 # CHECK-NEXT:     EntrySize: 0
124 # CHECK-NEXT:   }
125 # CHECK-NEXT: ]
126 # CHECK-NEXT: Symbols [
127 # CHECK-NEXT:   Symbol {
128 # CHECK-NEXT:     Name:
129 # CHECK-NEXT:     Value: 0x0
130 # CHECK-NEXT:     Size: 0
131 # CHECK-NEXT:     Binding: Local (0x0)
132 # CHECK-NEXT:     Type: None (0x0)
133 # CHECK-NEXT:     Other: 0
134 # CHECK-NEXT:     Section: Undefined
135 # CHECK-NEXT:   }
136 # CHECK-NEXT:   Symbol {
137 # CHECK-NEXT:     Name: foo
138 # CHECK-NEXT:     Value: 0x10
139 # CHECK-NEXT:     Size: 8
140 # CHECK-NEXT:     Binding: Global (0x1)
141 # CHECK-NEXT:     Type: Function (0x2)
142 # CHECK-NEXT:     Other: 0
143 # CHECK-NEXT:     Section: .text
144 # CHECK-NEXT:   }
145 # CHECK-NEXT:   Symbol {
146 # CHECK-NEXT:     Name: bar
147 # CHECK-NEXT:     Value: 0x0
148 # CHECK-NEXT:     Size: 16
149 # CHECK-NEXT:     Binding: Global (0x1)
150 # CHECK-NEXT:     Type: Object (0x1)
151 # CHECK-NEXT:     Other: 0
152 # CHECK-NEXT:     Section: .data
153 # CHECK-NEXT:   }
154 # CHECK-NEXT: ]