# This test checks emission for program header for ELF binaries RUN: lld -flavor gnu -target i386-linux -o %t1 -e main %p/Inputs/phdr.i386 \ RUN: && llvm-readobj -program-headers %t1 | FileCheck -check-prefix=I386 %s RUN: lld -flavor gnu -target x86_64-linux -o %t1 -e _start %p/Inputs/relocs.x86-64 -static \ RUN: && llvm-objdump -p %t1 | FileCheck %s -check-prefix=X86_64 I386: ProgramHeaders [ I386-NEXT: ProgramHeader { I386-NEXT: Type: PT_PHDR (0x6) I386-NEXT: Offset: 0x34 I386-NEXT: VirtualAddress: 0x34 I386-NEXT: PhysicalAddress: 0x34 I386-NEXT: FileSize: 192 I386-NEXT: MemSize: 192 I386-NEXT: Flags [ (0x5) I386-NEXT: PF_R (0x4) I386-NEXT: PF_X (0x1) I386-NEXT: ] I386-NEXT: Alignment: 8 I386-NEXT: } I386-NEXT: ProgramHeader { I386-NEXT: Type: PT_INTERP (0x3) I386-NEXT: Offset: 0xF4 I386-NEXT: VirtualAddress: 0xF4 I386-NEXT: PhysicalAddress: 0xF4 I386-NEXT: FileSize: 28 I386-NEXT: MemSize: 28 I386-NEXT: Flags [ (0x4) I386-NEXT: PF_R (0x4) I386-NEXT: ] I386-NEXT: Alignment: 1 I386-NEXT: } I386-NEXT: ProgramHeader { I386-NEXT: Type: PT_LOAD (0x1) I386-NEXT: Offset: 0x0 I386-NEXT: VirtualAddress: 0x0 I386-NEXT: PhysicalAddress: 0x0 I386-NEXT: FileSize: 532 I386-NEXT: MemSize: 532 I386-NEXT: Flags [ (0x5) I386-NEXT: PF_R (0x4) I386-NEXT: PF_X (0x1) I386-NEXT: ] I386-NEXT: Alignment: 4096 I386-NEXT: } I386-NEXT: ProgramHeader { I386-NEXT: Type: PT_LOAD (0x1) I386-NEXT: Offset: 0x1000 I386-NEXT: VirtualAddress: 0x1000 I386-NEXT: PhysicalAddress: 0x1000 I386-NEXT: FileSize: 260 I386-NEXT: MemSize: 4 I386-NEXT: Flags [ (0x6) I386-NEXT: PF_R (0x4) I386-NEXT: PF_W (0x2) I386-NEXT: ] I386-NEXT: Alignment: 4096 I386-NEXT: } I386-NEXT: ProgramHeader { I386-NEXT: Type: PT_LOAD (0x1) I386-NEXT: Offset: 0x4000 I386-NEXT: VirtualAddress: 0x4000 I386-NEXT: PhysicalAddress: 0x4000 I386-NEXT: FileSize: 4 I386-NEXT: MemSize: 16392 I386-NEXT: Flags [ (0x6) I386-NEXT: PF_R (0x4) I386-NEXT: PF_W (0x2) I386-NEXT: ] I386-NEXT: Alignment: 4096 I386-NEXT: } I386-NEXT: ProgramHeader { I386-NEXT: Type: PT_DYNAMIC (0x2) I386-NEXT: Offset: 0x1E4 I386-NEXT: VirtualAddress: 0x1E4 I386-NEXT: PhysicalAddress: 0x1E4 I386-NEXT: FileSize: 48 I386-NEXT: MemSize: 48 I386-NEXT: Flags [ (0x4) I386-NEXT: PF_R (0x4) I386-NEXT: ] I386-NEXT: Alignment: 4 I386-NEXT: } X86_64: LOAD off 0x0000000000000000 X86_64: LOAD off 0x0000000000001000