reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
   51
   52
   53
   54
   55
   56
   57
   58
   59
   60
   61
   62
   63
   64
   65
   66
   67
   68
   69
   70
   71
   72
   73
   74
   75
   76
   77
   78
   79
   80
   81
   82
   83
   84
   85
   86
   87
   88
   89
   90
   91
   92
   93
   94
   95
   96
   97
   98
   99
  100
  101
  102
  103
  104
  105
  106
  107
  108
  109
  110
  111
  112
  113
  114
  115
  116
  117
  118
  119
  120
  121
  122
# RUN: yaml2obj %s > %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 00000000 func
# COMMON-NEXT:  0000000000000000      .text 00000000 sym
# COMMON-NEXT:  0000000000000000  l d .text 00000000 .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