| ## Show that --disassemble + --reloc prints relocations inline and does not dump |
| ## the relocation sections. |
| |
| # RUN: yaml2obj %s --docnum=1 -o %t1.o |
| # RUN: llvm-objdump %t1.o -d -r | FileCheck %s --implicit-check-not="RELOCATION RECORDS" |
| |
| # CHECK: 0: e8 00 00 00 00 callq 0 <.text+0x5> |
| # CHECK-NEXT: 0000000000000001: R_X86_64_PC32 foo-0x4 |
| # CHECK-NEXT: 0000000000000002: R_X86_64_NONE bar+0x8 |
| # CHECK-NEXT: 5: e8 00 00 00 00 callq 0 <.text+0xa> |
| # CHECK-NEXT: 0000000000000006: R_X86_64_PLT32 foo+0x1 |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .text |
| Type: SHT_PROGBITS |
| Flags: [SHF_ALLOC, SHF_EXECINSTR] |
| Content: 'e800000000e800000000' |
| - Name: .rela.text |
| Type: SHT_RELA |
| Info: .text |
| Relocations: |
| - Offset: 1 |
| Symbol: foo |
| Type: R_X86_64_PC32 |
| Addend: -4 |
| - Offset: 2 |
| Symbol: bar |
| Type: R_X86_64_NONE |
| Addend: 8 |
| - Offset: 6 |
| Symbol: foo |
| Type: R_X86_64_PLT32 |
| Addend: 1 |
| Symbols: |
| - Name: foo |
| - Name: bar |
| |
| ## Check we report an error if the relocated section identified by the |
| ## sh_info field of a relocation section is invalid. |
| |
| # RUN: yaml2obj %s --docnum=2 -o %t2.o |
| # RUN: not llvm-objdump %t2.o --disassemble --reloc 2>&1 | FileCheck %s -DFILE=%t2.o --check-prefix=ERR |
| |
| # ERR: error: '[[FILE]]': section (1): failed to get a relocated section: invalid section index: 255 |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .rela.debug_info |
| Type: SHT_RELA |
| Link: 0 |
| Info: 0xFF |
| Relocations: [] |
| |
| ## Check ranges of addends being displayed in a dump of relocations mixed with disassembly. |
| # RUN: yaml2obj --docnum=3 %s -o %t3 |
| # RUN: llvm-objdump -d -r %t3 | FileCheck %s --check-prefix=ADDENDS |
| |
| # ADDENDS: Disassembly of section .text: |
| # ADDENDS: R_X86_64_64 glob-0x8000000000000000 |
| # ADDENDS: R_X86_64_64 glob+0x7fffffffffffffff |
| # ADDENDS: R_X86_64_64 glob-0x1 |
| # ADDENDS: R_X86_64_64 glob+0x12345678 |
| # ADDENDS: R_X86_64_64 glob{{$}} |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .text |
| Type: SHT_PROGBITS |
| Size: 8 |
| Flags: [SHF_EXECINSTR,SHF_ALLOC] |
| - Name: .rela.text |
| Type: SHT_RELA |
| Info: .text |
| Relocations: |
| - Offset: 0x0 |
| Addend: -9223372036854775808 |
| Symbol: glob |
| Type: R_X86_64_64 |
| - Offset: 0x1 |
| Symbol: glob |
| Type: R_X86_64_64 |
| Addend: 9223372036854775807 |
| - Offset: 0x2 |
| Symbol: glob |
| Type: R_X86_64_64 |
| Addend: -1 |
| - Offset: 0x3 |
| Symbol: glob |
| Type: R_X86_64_64 |
| Addend: 0x12345678 |
| - Offset: 0x4 |
| Symbol: glob |
| Type: R_X86_64_64 |
| Addend: 0 |
| Symbols: |
| - Name: glob |
| Section: .text |
| Value: 0x0 |
| Size: 0 |
| Binding: STB_GLOBAL |