xref: /llvm-project/llvm/test/tools/llvm-objdump/X86/output-ordering.test (revision 60a8a504f16dbbc5f2a6887ecb668ef4cb834949)
155c81d42SFangrui Song# RUN: yaml2obj %s -o %t.o
2d84e9427SJordan Rupprecht# RUN: llvm-objdump --file-headers --private-headers --section-headers --syms \
3d84e9427SJordan Rupprecht# RUN:   --full-contents --dwarf=frames \
4d84e9427SJordan Rupprecht# RUN:   --reloc %t.o | FileCheck %s --check-prefixes=CHECK,RELOC
5d84e9427SJordan Rupprecht# RUN: llvm-objdump --file-headers --private-headers --section-headers --syms \
6d84e9427SJordan Rupprecht# RUN:   --full-contents --dwarf=frames \
7d84e9427SJordan Rupprecht# RUN:   --disassemble %t.o | FileCheck %s --check-prefixes=CHECK,DISASM
8d84e9427SJordan Rupprecht
9d84e9427SJordan Rupprecht## Test the ordering of most of the output. Note that --disassemble suppresses
10d84e9427SJordan Rupprecht## --reloc, so we test them independently.
11d84e9427SJordan Rupprecht
12d84e9427SJordan Rupprecht## File headers (-f)
13*60a8a504SJordan Rupprecht# CHECK: file format elf64-x86-64
14d84e9427SJordan Rupprecht# CHECK: architecture: x86_64
15d84e9427SJordan Rupprecht# CHECK: start address: 0x0000000000000000
16d84e9427SJordan Rupprecht## Private headers (-p)
17d84e9427SJordan Rupprecht# CHECK: Program Header:
18d84e9427SJordan Rupprecht# CHECK: Dynamic Section:
19d84e9427SJordan Rupprecht## Section headers (-h)
20d84e9427SJordan Rupprecht# CHECK: Sections:
21d84e9427SJordan Rupprecht## Symbol table (-t)
22d84e9427SJordan Rupprecht# CHECK: SYMBOL TABLE:
23d84e9427SJordan Rupprecht## DWARF contents:
24d84e9427SJordan Rupprecht# CHECK: .eh_frame contents:
25d84e9427SJordan Rupprecht## Relocations (-r)
26d84e9427SJordan Rupprecht# RELOC: RELOCATION RECORDS FOR [.text]:
27d84e9427SJordan Rupprecht## Section contents (-s)
28d84e9427SJordan Rupprecht# CHECK: Contents of section .rel.text:
29d84e9427SJordan Rupprecht# CHECK: Contents of section .dynamic:
30d84e9427SJordan Rupprecht# CHECK: Contents of section .symtab:
31d84e9427SJordan Rupprecht# CHECK: Contents of section .strtab:
32d84e9427SJordan Rupprecht# CHECK: Contents of section .shstrtab:
33d84e9427SJordan Rupprecht## Disassembly (-d)
34d84e9427SJordan Rupprecht# DISASM: Disassembly of section .text:
35d84e9427SJordan Rupprecht
36d84e9427SJordan Rupprecht!ELF
37d84e9427SJordan RupprechtFileHeader:
38d84e9427SJordan Rupprecht  Class:    ELFCLASS64
39d84e9427SJordan Rupprecht  Data:     ELFDATA2LSB
40d84e9427SJordan Rupprecht  Type:     ET_REL
41d84e9427SJordan Rupprecht  Machine:  EM_X86_64
42d84e9427SJordan RupprechtSections:
43d84e9427SJordan Rupprecht  - Name:    .text
44d84e9427SJordan Rupprecht    Type:    SHT_PROGBITS
45d84e9427SJordan Rupprecht    Flags:   [ SHF_ALLOC, SHF_EXECINSTR ]
46d84e9427SJordan Rupprecht    Content: e800000000e800000000
47d84e9427SJordan Rupprecht  - Name: .rel.text
48d84e9427SJordan Rupprecht    Type: SHT_REL
49d84e9427SJordan Rupprecht    Info: .text
50d84e9427SJordan Rupprecht    Relocations:
51d84e9427SJordan Rupprecht      - Offset: 0x1
52d84e9427SJordan Rupprecht        Symbol: foo
53d84e9427SJordan Rupprecht        Type: R_X86_64_32
54d84e9427SJordan Rupprecht  - Name:    .dynamic
55d84e9427SJordan Rupprecht    Type:    SHT_DYNAMIC
56d84e9427SJordan Rupprecht    Flags:   [ SHF_WRITE, SHF_ALLOC ]
57d84e9427SJordan Rupprecht    EntSize: 0x0000000000000010
58d84e9427SJordan Rupprecht    Entries:
59d84e9427SJordan Rupprecht      - Tag:   DT_INIT
60d84e9427SJordan Rupprecht        Value: 0x00000000000006A0
61d84e9427SJordan Rupprecht      - Tag:   DT_NULL
62d84e9427SJordan Rupprecht        Value: 0x0000000000000000
63d84e9427SJordan Rupprecht  - Name:         .eh_frame
64d84e9427SJordan Rupprecht    Type:         SHT_X86_64_UNWIND
65d84e9427SJordan Rupprecht    Flags:        [ SHF_ALLOC ]
66d84e9427SJordan Rupprecht    AddressAlign: 0x0000000000000001
67d84e9427SJordan Rupprecht    Content:      00000000
68d84e9427SJordan RupprechtSymbols:
69d84e9427SJordan Rupprecht  - Name:    foo
70d84e9427SJordan Rupprecht    Section: .text
71