Compiler projects using llvm
# RUN: yaml2obj %s -o %t
# RUN: llvm-objdump --all-headers -D -z %t | FileCheck %s --check-prefixes=COMMON,NOADJUST
# RUN: llvm-objdump --all-headers -D -z --adjust-vma=0x0 %t | FileCheck %s --check-prefixes=COMMON,NOADJUST
# RUN: llvm-objdump --all-headers -D -z --adjust-vma=0x123000 %t | FileCheck %s --check-prefixes=COMMON,ADJUST

# NOADJUST:      Sections:
# NOADJUST-NEXT: Idx Name           Size     VMA              Type
# NOADJUST-NEXT:  0                 00000000 0000000000000000
# NOADJUST-NEXT:  1 .text           00000002 0000000000000000 TEXT
# NOADJUST-NEXT:  2 .debug_str      00000004 0000000000000000
# NOADJUST-NEXT:  3 .rela.debug_str 00000018 0000000000000000
# NOADJUST-NEXT:  4 .data           00000004 0000000000000000 DATA
# NOADJUST-NEXT:  5 .rela.data      00000018 0000000000000000
# NOADJUST-NEXT:  6 .symtab         00000060 0000000000000000
# NOADJUST-NEXT:  7 .strtab         00000010 0000000000000000
# NOADJUST-NEXT:  8 .shstrtab       0000003c 0000000000000000

# ADJUST:        Sections:
# ADJUST-NEXT:   Idx Name           Size     VMA              Type
# ADJUST-NEXT:    0                 00000000 0000000000000000
# ADJUST-NEXT:    1 .text           00000002 0000000000123000 TEXT
# ADJUST-NEXT:    2 .debug_str      00000004 0000000000000000
# ADJUST-NEXT:    3 .rela.debug_str 00000018 0000000000000000
# ADJUST-NEXT:    4 .data           00000004 0000000000123000 DATA
# ADJUST-NEXT:    5 .rela.data      00000018 0000000000000000
# ADJUST-NEXT:    6 .symtab         00000060 0000000000000000
# ADJUST-NEXT:    7 .strtab         00000010 0000000000000000
# ADJUST-NEXT:    8 .shstrtab       0000003c 0000000000000000

# COMMON:      SYMBOL TABLE:
# COMMON-NEXT:  0000000000000001  l F .text 0000000000000000 func
# COMMON-NEXT:  0000000000000000  l   .text 0000000000000000 sym
# COMMON-NEXT:  0000000000000000  l d .text 0000000000000000 .text

# NOADJUST:      0000000000000000 <sym>:
# NOADJUST-NEXT:   0: {{.*}}  nop
# NOADJUST:      0000000000000001 <func>:
# NOADJUST-NEXT:   1: {{.*}}  retq

# ADJUST:        0000000000123000 <sym>:
# ADJUST-NEXT:     123000: {{.*}} nop
# ADJUST:        0000000000123001 <func>:
# ADJUST-NEXT:     123001: {{.*}} retq

# NOADJUST:      0000000000000000 <.debug_str>:
# NOADJUST-NEXT:   0: {{.*}}  %al, (%rax)
# NOADJUST-NEXT:      0000000000000001:  R_X86_64_32  .text
# NOADJUST-NEXT:   2: {{.*}}  addb    %al, (%rax)

# ADJUST:        0000000000000000 <.debug_str>:
# ADJUST-NEXT:     0: {{.*}}  %al, (%rax)
# ADJUST-NEXT:        0000000000123001:  R_X86_64_32  .text
# ADJUST-NEXT:     2: {{.*}}  addb    %al, (%rax)

# COMMON:        0000000000000000    <.rela.debug_str>:
# COMMON-NEXT:     0: {{.*}}  addl %eax, (%rax)
## ... There are more lines here. We do not care.

# NOADJUST:      0000000000000000  <.data>:
# NOADJUST-NEXT:  0: {{.*}} addb    %al, (%rax)
# NOADJUST-NEXT: 0000000000000000: R_X86_64_32  .text
# NOADJUST-NEXT:  2: {{.*}} addb    %al, (%rax)

# ADJUST:        0000000000123000  <.data>:
# ADJUST-NEXT:    123000: {{.*}}  addb    %al, (%rax)
# ADJUST-NEXT:   0000000000123000: R_X86_64_32  .text
# ADJUST-NEXT:    123002: {{.*}}  addb    %al, (%rax)

# COMMON:        0000000000000000   <.rela.data>:
# COMMON-NEXT:    0: {{.*}} addb %al, (%rax)
## ... There are more lines here. We do not care.

--- !ELF
FileHeader:      
  Class:           ELFCLASS64
  Data:            ELFDATA2LSB
  Type:            ET_REL
  Machine:         EM_X86_64
Sections:        
  - Name:            .text
    Type:            SHT_PROGBITS
    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
    AddressAlign:    0x0000000000000004
    Content:         90C3
  - Name:            .debug_str
    Type:            SHT_PROGBITS
    Flags:           [ SHF_MERGE, SHF_STRINGS ]
    AddressAlign:    0x0000000000000001
    Content:         '00000000'
  - Name:            .rela.debug_str
    Type:            SHT_RELA
    Link:            .symtab
    AddressAlign:    0x0000000000000008
    Info:            .debug_str
    Relocations:     
      - Offset:          0x0000000000000001
        Symbol:          .text
        Type:            R_X86_64_32
  - Name:            .data
    Type:            SHT_PROGBITS
    Flags:           [ SHF_WRITE, SHF_ALLOC ]
    AddressAlign:    0x0000000000000001
    Content:         '00000000'
  - Name:            .rela.data
    Type:            SHT_RELA
    Link:            .symtab
    AddressAlign:    0x0000000000000008
    Info:            .data
    Relocations:     
      - Offset:      0x0000000000000000
        Symbol:      .text
        Type:        R_X86_64_32
Symbols:
  - Name:            func
    Type:            STT_FUNC
    Section:         .text
    Value:           0x0000000000000001
  - Name:            sym
    Section:         .text
  - Name:            .text
    Type:            STT_SECTION
    Section:         .text