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