1## Show that llvm-objdump can dump dynamic relocations. 2## Specifically, we are checking that the tags DT_RELA, DT_REL and DT_JMPREL 3## properly identify relocation tables. 4 5# RUN: yaml2obj %s -o %t 6# RUN: llvm-objdump --dynamic-reloc %t | FileCheck --implicit-check-not=R_X86 %s 7# RUN: llvm-objdump -R %t | FileCheck --implicit-check-not=R_X86 %s 8 9# CHECK: file format elf64-x86-64 10# CHECK: DYNAMIC RELOCATION RECORDS 11# CHECK-NEXT: 0000000000000000 R_X86_64_RELATIVE *ABS* 12# CHECK-NEXT: 0000000000000000 R_X86_64_JUMP_SLOT bar 13# CHECK-NEXT: 0000000000000008 R_X86_64_NONE foo 14 15--- !ELF 16FileHeader: 17 Class: ELFCLASS64 18 Data: ELFDATA2LSB 19 Type: ET_DYN 20 Machine: EM_X86_64 21Sections: 22 - Name: .foo 23 Type: SHT_PROGBITS 24 Size: 16 25 Flags: [SHF_ALLOC] 26 Address: 0x100000 27 AddressAlign: 0x100 28 - Name: .got.plt 29 Type: SHT_PROGBITS 30 Flags: [SHF_WRITE, SHF_ALLOC] 31 Address: 0x100100 32 AddressAlign: 0x1000 33 - Name: .rela.dyn 34 Type: SHT_RELA 35 Address: 0x100200 36 AddressAlign: 0x100 37 Info: .foo 38 Link: .dynsym 39 Flags: [SHF_ALLOC] 40 Relocations: 41 - Offset: 0 42 Type: R_X86_64_RELATIVE 43 Addend: 0 44 - Name: .rela.plt 45 Type: SHT_RELA 46 Address: 0x100300 47 AddressAlign: 0x100 48 Info: .got.plt 49 Link: .dynsym 50 Flags: [SHF_ALLOC] 51 Relocations: 52 - Offset: 0 53 Symbol: 2 # bar 54 Type: R_X86_64_JUMP_SLOT 55 - Name: .rel.dyn 56 Type: SHT_REL 57 Address: 0x100400 58 AddressAlign: 0x100 59 Info: .foo 60 Link: .dynsym 61 Flags: [SHF_ALLOC] 62 Relocations: 63 - Offset: 8 64 Symbol: 1 # foo 65 Type: R_X86_64_NONE 66 - Name: .dynamic 67 Type: SHT_DYNAMIC 68 Address: 0x100500 69 AddressAlign: 0x100 70 Link: .dynstr 71 Flags: [SHF_ALLOC] 72 Entries: 73 - Tag: DT_RELA 74 Value: 0x100200 75 - Tag: DT_RELASZ 76 Value: 24 77 - Tag: DT_RELAENT 78 Value: 24 79 - Tag: DT_JMPREL 80 Value: 0x100300 81 - Tag: DT_PLTREL 82 Value: 7 83 - Tag: DT_PLTRELSZ 84 Value: 24 85 - Tag: DT_REL 86 Value: 0x100400 87 - Tag: DT_RELSZ 88 Value: 16 89 - Tag: DT_RELENT 90 Value: 16 91 - Tag: DT_NULL 92 Value: 0 93ProgramHeaders: 94 - Type: PT_LOAD 95 VAddr: 0x100000 96 Align: 0x100 97 FirstSec: .foo 98 LastSec: .dynamic 99 - Type: PT_DYNAMIC 100 VAddr: 0x100500 101 Align: 0x100 102 FirstSec: .dynamic 103 LastSec: .dynamic 104DynamicSymbols: 105 - Name: foo 106 Section: .foo 107 Binding: STB_GLOBAL 108 - Name: bar 109 Type: STT_FUNC 110 Binding: STB_GLOBAL 111