# The binary blobs in this file were created like this:
# llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu Inputs/elf-packed-relocs1.s -o - | obj2yaml | grep Content:

# RUN: yaml2obj --docnum=1 %s | llvm-readobj --relocations - | FileCheck --check-prefix=LLVM1 %s
# LLVM1:      Section (1) .rela.dyn {
# LLVM1-NEXT:   0x1100 R_X86_64_RELATIVE - 0x0
# LLVM1-NEXT:   0x1180 R_X86_64_RELATIVE - 0x0
# LLVM1-NEXT:   0x1188 R_X86_64_64 sym1 0x0
# LLVM1-NEXT:   0x1190 R_X86_64_64 sym2 0x0
# LLVM1-NEXT:   0x1191 R_X86_64_64 sym1 0x8
# LLVM1-NEXT:   0x1193 R_X86_64_64 sym2 0xC
# LLVM1-NEXT:   0x1197 R_X86_64_64 sym1 0xA
# LLVM1-NEXT:   0x119F R_X86_64_64 sym2 0xA
# LLVM1-NEXT: }

# RUN: yaml2obj --docnum=1 %s | llvm-readelf -relocations - | FileCheck --check-prefix=GNU1 %s
# GNU1:      Relocation section '.rela.dyn' at offset 0x40 contains 8 entries:
# GNU1:      0000000000001100  0000000000000008 R_X86_64_RELATIVE                 0
# GNU1-NEXT: 0000000000001180  0000000000000008 R_X86_64_RELATIVE                 0
# GNU1-NEXT: 0000000000001188  0000000100000001 R_X86_64_64            0000000000000000 sym1 + 0
# GNU1-NEXT: 0000000000001190  0000000200000001 R_X86_64_64            0000000000000000 sym2 + 0
# GNU1-NEXT: 0000000000001191  0000000100000001 R_X86_64_64            0000000000000000 sym1 + 8
# GNU1-NEXT: 0000000000001193  0000000200000001 R_X86_64_64            0000000000000000 sym2 + c
# GNU1-NEXT: 0000000000001197  0000000100000001 R_X86_64_64            0000000000000000 sym1 + a
# GNU1-NEXT: 000000000000119f  0000000200000001 R_X86_64_64            0000000000000000 sym2 + a

# elf-packed-relocs1.s
--- !ELF
FileHeader:
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            ET_DYN
  Machine:         EM_X86_64
  Entry:           0x0000000000001000
Sections:
  - Name:            .rela.dyn
    Type:            SHT_ANDROID_RELA
    Flags:           [ SHF_ALLOC ]
    Address:         0x00000000000001C8
    Link:            .symtab
    AddressAlign:    0x0000000000000001
    Content:         41505332088020020108800280010202088180808010818080802002080181808080100802818080802004020C7E048180808010088180808020
Symbols:
  - Name:            sym1
    Binding:         STB_GLOBAL
  - Name:            sym2
    Binding:         STB_GLOBAL
...

# RUN: yaml2obj --docnum=2 %s | llvm-readobj --relocations - | FileCheck --check-prefix=LLVM2 %s
# LLVM2:      Section (1) .rel.dyn {
# LLVM2-NEXT:   0x1008 R_386_32 sym1 0x0
# LLVM2-NEXT:   0x1010 R_386_GOT32 sym2 0x0
# LLVM2-NEXT:   0x100C R_386_RELATIVE - 0x0
# LLVM2-NEXT:   0x1008 R_386_RELATIVE - 0x0
# LLVM2-NEXT:   0x1004 R_386_RELATIVE - 0x0
# LLVM2-NEXT:   0x1000 R_386_RELATIVE - 0x0
# LLVM2-NEXT:   0xFFC R_386_RELATIVE - 0x0
# LLVM2-NEXT:   0xFF8 R_386_RELATIVE - 0x0
# LLVM2-NEXT:   0xFF4 R_386_RELATIVE - 0x0
# LLVM2-NEXT:   0xFF0 R_386_RELATIVE - 0x0
# LLVM2-NEXT: }

# RUN: yaml2obj --docnum=2 %s | llvm-readelf -relocations - | FileCheck --check-prefix=GNU2 %s
# GNU2:      Relocation section '.rel.dyn' at offset 0x34 contains 10 entries:
# GNU2:      00001008  00000101 R_386_32               00000000   sym1
# GNU2-NEXT: 00001010  00000203 R_386_GOT32            00000000   sym2
# GNU2-NEXT: 0000100c  00000008 R_386_RELATIVE
# GNU2-NEXT: 00001008  00000008 R_386_RELATIVE
# GNU2-NEXT: 00001004  00000008 R_386_RELATIVE
# GNU2-NEXT: 00001000  00000008 R_386_RELATIVE
# GNU2-NEXT: 00000ffc  00000008 R_386_RELATIVE
# GNU2-NEXT: 00000ff8  00000008 R_386_RELATIVE
# GNU2-NEXT: 00000ff4  00000008 R_386_RELATIVE
# GNU2-NEXT: 00000ff0  00000008 R_386_RELATIVE

# elf-packed-relocs2.s
--- !ELF
FileHeader:
  Class:           ELFCLASS32
  Data:            ELFDATA2LSB
  Type:            ET_DYN
  Machine:         EM_386
  Entry:           0x0000000000001000
Sections:
  - Name:            .rel.dyn
    Type:            SHT_ANDROID_REL
    Flags:           [ SHF_ALLOC ]
    Address:         0x00000000000001C8
    Link:            .symtab
    AddressAlign:    0x0000000000000001
    Content:         415053320A80200202088102830408037C08
Symbols:
  - Name:            sym1
    Binding:         STB_GLOBAL
  - Name:            sym2
    Binding:         STB_GLOBAL
...

# RUN: yaml2obj --docnum=3 %s | llvm-readobj --relocations - | FileCheck --check-prefix=LLVM3 %s
#
# LLVM3:      Section (1) .rela.dyn {
# LLVM3-NEXT:   0x1100 R_X86_64_RELATIVE - 0x0
# LLVM3-NEXT:   0x1180 R_X86_64_RELATIVE - 0x8
# LLVM3-NEXT:   0x1200 R_X86_64_64 sym1 0x0
# LLVM3-NEXT:   0x1208 R_X86_64_64 sym2 0x0
# LLVM3-NEXT:   0x1210 R_X86_64_64 sym1 0x0
# LLVM3-NEXT:   0x1218 R_X86_64_64 sym2 0x8
# LLVM3-NEXT: }

# RUN: yaml2obj --docnum=3 %s | llvm-readelf -relocations - | FileCheck --check-prefix=GNU3 %s
# GNU3:      Relocation section '.rela.dyn' at offset 0x40 contains 6 entries:
# GNU3: 0000000000001100  0000000000000008 R_X86_64_RELATIVE                 0
# GNU3-NEXT: 0000000000001180  0000000000000008 R_X86_64_RELATIVE                 8
# GNU3-NEXT: 0000000000001200  0000000100000001 R_X86_64_64            0000000000000000 sym1 + 0
# GNU3-NEXT: 0000000000001208  0000000200000001 R_X86_64_64            0000000000000000 sym2 + 0
# GNU3-NEXT: 0000000000001210  0000000100000001 R_X86_64_64            0000000000000000 sym1 + 0
# GNU3-NEXT: 0000000000001218  0000000200000001 R_X86_64_64            0000000000000000 sym2 + 8

# elf-packed-relocs3.s
--- !ELF
FileHeader:
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            ET_DYN
  Machine:         EM_X86_64
  Entry:           0x0000000000001000
Sections:
  - Name:            .rela.dyn
    Type:            SHT_ANDROID_RELA
    Flags:           [ SHF_ALLOC ]
    Address:         0x00000000000001C8
    Link:            .symtab
    AddressAlign:    0x0000000000000001
    Content:         415053320680200208800208008001080802008001818080801008818080802002080881808080100008818080802008
Symbols:
  - Name:            sym1
    Binding:         STB_GLOBAL
  - Name:            sym2
    Binding:         STB_GLOBAL
...
