# RUN: yaml2obj --docnum=1 %s > %t # RUN: llvm-objdump --reloc %t > %t1 # RUN: llvm-objdump -r %t > %t2 # RUN: cmp %t1 %t2 # RUN: FileCheck %s --input-file=%t1 # CHECK: RELOCATION RECORDS FOR [.text]: # CHECK-NEXT: 0000000000000001 R_X86_64_32 glob1 # CHECK-NEXT: 0000000000000001 R_X86_64_32S glob2 # CHECK-NEXT: 0000000000000002 R_X86_64_64 loc1 # CHECK-NEXT: 0000000000000001 R_X86_64_32 glob1+0x1 # CHECK-NEXT: 0000000000000001 R_X86_64_32S glob2+0x2 # CHECK-NEXT: 0000000000000002 R_X86_64_64 loc1+0x3 --- !ELF FileHeader: !FileHeader Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_REL Machine: EM_X86_64 Sections: - Name: .text Type: SHT_PROGBITS Content: "0000000000000000" AddressAlign: 16 Flags: [SHF_ALLOC] - Name: .rel.text Type: SHT_REL Info: .text AddressAlign: 4 Relocations: - Offset: 0x1 Symbol: glob1 Type: R_X86_64_32 - Offset: 0x1 Symbol: glob2 Type: R_X86_64_32S - Offset: 0x2 Symbol: loc1 Type: R_X86_64_64 - Name: .rela.text Type: SHT_RELA Link: .symtab Info: .text AddressAlign: 4 Relocations: - Offset: 0x1 Addend: 1 Symbol: glob1 Type: R_X86_64_32 - Offset: 0x1 Addend: 2 Symbol: glob2 Type: R_X86_64_32S - Offset: 0x2 Addend: 3 Symbol: loc1 Type: R_X86_64_64 Symbols: - Name: loc1 - Name: loc2 - Name: glob1 Section: .text Value: 0x0 Size: 4 Binding: STB_GLOBAL - Name: glob2 Binding: STB_GLOBAL ## Check we report an error if the relocated section identified by the ## sh_info field of a relocation section is invalid. # RUN: yaml2obj --docnum=2 %s > %t2 # RUN: not llvm-objdump --reloc %t2 2>&1 | FileCheck %s -DFILE=%t2 --check-prefix=ERR # ERR: error: '[[FILE]]': section (1): unable to get a relocation target: invalid section index: 255 --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_REL Machine: EM_X86_64 Sections: - Name: .rela.foo Type: SHT_RELA Info: 0xFF Relocations: - Offset: 0x1 Type: R_X86_64_NONE ## Check ranges of addends being displayed in a dump of relocations. # RUN: yaml2obj --docnum=3 %s > %t3 # RUN: llvm-objdump -r %t3 | FileCheck %s --check-prefix=ADDENDS # ADDENDS: RELOCATION RECORDS FOR [.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