• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# RUN: yaml2obj -D PADDR=1 %s -o %t1
2# RUN: llvm-objcopy -O binary %t1 %t1.out
3# RUN: od -t x2 -v %t1.out | FileCheck %s --ignore-case
4# RUN: wc -c < %t1.out | FileCheck %s --check-prefix=SIZE
5
6## When all p_paddr fields are 0, GNU objcopy resets LMA to VMA
7## and gives a different output.
8## https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=6ffd79000b45e77b3625143932ffbf781b6aecab
9## We don't implement this special rule. The p_paddr=0 output is the same as
10## the p_paddr=1 case.
11# RUN: yaml2obj -D PADDR=0 %s -o %t0
12# RUN: llvm-objcopy -O binary %t0 %t0.out
13# RUN: cmp %t1.out %t0.out
14
15!ELF
16FileHeader:
17  Class:           ELFCLASS64
18  Data:            ELFDATA2LSB
19  Type:            ET_EXEC
20  Machine:         EM_X86_64
21Sections:
22  - Name:            .text
23    Type:            SHT_PROGBITS
24    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
25    Address:         0x1000
26    AddressAlign:    0x0000000000001000
27    Content:         "c3c3c3c3"
28  - Name:            .data
29    Type:            SHT_PROGBITS
30    Flags:           [ SHF_ALLOC ]
31    Address:         0x1004
32    AddressAlign:    0x0000000000000004
33    Content:         "3232"
34ProgramHeaders:
35  - Type:     PT_LOAD
36    Flags:    [ PF_X, PF_R ]
37    VAddr:    0x1000
38    PAddr:    [[PADDR]]
39    FirstSec: .text
40    LastSec:  .text
41  - Type:     PT_LOAD
42    Flags:    [ PF_R, PF_W ]
43    VAddr:    0x1004
44    PAddr:    [[PADDR]]
45    FirstSec: .data
46    LastSec:  .data
47
48# CHECK: 0000000 3232 c3c3
49# SIZE:  4
50