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 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193
|
RUN: llvm-readobj --program-headers %p/../../Object/Inputs/program-headers.elf-i386 \
RUN: | FileCheck %s -check-prefix ELF-I386
RUN: llvm-readobj -l %p/../../Object/Inputs/program-headers.elf-i386 \
RUN: | FileCheck %s -check-prefix ELF-I386
RUN: llvm-readobj -l %p/../../Object/Inputs/program-headers.elf-x86-64 \
RUN: | FileCheck %s -check-prefix ELF-X86-64
RUN: llvm-readobj -l %p/../../Object/Inputs/program-headers.mips \
RUN: | FileCheck %s -check-prefix ELF-MIPS
RUN: llvm-readobj -l %p/../../Object/Inputs/program-headers.mips64 \
RUN: | FileCheck %s -check-prefix ELF-MIPS64
## openbsd-phdrs.elf-x86-64 was generated using GNU ld (GNU Binutils for Ubuntu) 2.26.1.
## llvm-mc -filetype=obj -triple=x86_64-pc-linux test.s -o main.o
## ld -script linker.script main.o -o openbsd-phdrs.elf-x86-64
##
## test.s is an empty file.
## linker.script:
## PHDRS { text PT_LOAD FILEHDR PHDRS; foo 0x65a3dbe6; bar 0x65a3dbe7; zed 0x65a41be6; }
## Where 0x65a3dbe6 is the value of PT_OPENBSD_RANDOMIZE,
## 0x65a3dbe7 is the value of PT_OPENBSD_WXNEEDED,
## 0x65a41be6 is the value of PT_OPENBSD_BOOTDATA
## SECTIONS { . = SIZEOF_HEADERS; .all : { *(.*) } : text }
RUN: llvm-readobj -l %p/../../Object/Inputs/openbsd-phdrs.elf-x86-64 \
RUN: | FileCheck %s -check-prefix OPENBSD-X86-64
ELF-I386: ProgramHeaders [
ELF-I386-NEXT: ProgramHeader {
ELF-I386-NEXT: Type: PT_LOAD (0x1)
ELF-I386-NEXT: Offset: 0x0
ELF-I386-NEXT: VirtualAddress: 0x8048000
ELF-I386-NEXT: PhysicalAddress: 0x8048000
ELF-I386-NEXT: FileSize: 308
ELF-I386-NEXT: MemSize: 308
ELF-I386-NEXT: Flags [ (0x5)
ELF-I386-NEXT: PF_R (0x4)
ELF-I386-NEXT: PF_X (0x1)
ELF-I386-NEXT: ]
ELF-I386-NEXT: Alignment: 4096
ELF-I386-NEXT: }
ELF-I386-NEXT: ProgramHeader {
ELF-I386-NEXT: Type: PT_GNU_STACK (0x6474E551)
ELF-I386-NEXT: Offset: 0x0
ELF-I386-NEXT: VirtualAddress: 0x0
ELF-I386-NEXT: PhysicalAddress: 0x0
ELF-I386-NEXT: FileSize: 0
ELF-I386-NEXT: MemSize: 0
ELF-I386-NEXT: Flags [ (0x6)
ELF-I386-NEXT: PF_R (0x4)
ELF-I386-NEXT: PF_W (0x2)
ELF-I386-NEXT: ]
ELF-I386-NEXT: Alignment: 4
ELF-I386-NEXT: }
ELF-I386-NEXT: ]
ELF-X86-64: ProgramHeaders [
ELF-X86-64-NEXT: ProgramHeader {
ELF-X86-64-NEXT: Type: PT_LOAD (0x1)
ELF-X86-64-NEXT: Offset: 0x0
ELF-X86-64-NEXT: VirtualAddress: 0x400000
ELF-X86-64-NEXT: PhysicalAddress: 0x400000
ELF-X86-64-NEXT: FileSize: 312
ELF-X86-64-NEXT: MemSize: 312
ELF-X86-64-NEXT: Flags [ (0x5)
ELF-X86-64-NEXT: PF_R (0x4)
ELF-X86-64-NEXT: PF_X (0x1)
ELF-X86-64-NEXT: ]
ELF-X86-64-NEXT: Alignment: 2097152
ELF-X86-64-NEXT: }
ELF-X86-64-NEXT: ProgramHeader {
ELF-X86-64-NEXT: Type: PT_GNU_EH_FRAME (0x6474E550)
ELF-X86-64-NEXT: Offset: 0xF4
ELF-X86-64-NEXT: VirtualAddress: 0x4000F4
ELF-X86-64-NEXT: PhysicalAddress: 0x4000F4
ELF-X86-64-NEXT: FileSize: 20
ELF-X86-64-NEXT: MemSize: 20
ELF-X86-64-NEXT: Flags [ (0x4)
ELF-X86-64-NEXT: PF_R (0x4)
ELF-X86-64-NEXT: ]
ELF-X86-64-NEXT: Alignment: 4
ELF-X86-64-NEXT: }
ELF-X86-64-NEXT: ProgramHeader {
ELF-X86-64-NEXT: Type: PT_GNU_STACK (0x6474E551)
ELF-X86-64-NEXT: Offset: 0x0
ELF-X86-64-NEXT: VirtualAddress: 0x0
ELF-X86-64-NEXT: PhysicalAddress: 0x0
ELF-X86-64-NEXT: FileSize: 0
ELF-X86-64-NEXT: MemSize: 0
ELF-X86-64-NEXT: Flags [ (0x6)
ELF-X86-64-NEXT: PF_R (0x4)
ELF-X86-64-NEXT: PF_W (0x2)
ELF-X86-64-NEXT: ]
ELF-X86-64-NEXT: Alignment: 8
ELF-X86-64-NEXT: }
ELF-X86-64-NEXT: ]
ELF-MIPS: Format: ELF32-mips
ELF-MIPS-NEXT: Arch: mips
ELF-MIPS-NEXT: AddressSize: 32bit
ELF-MIPS-NEXT: LoadName:
ELF-MIPS-NEXT: ProgramHeaders [
ELF-MIPS-NEXT: ProgramHeader {
ELF-MIPS-NEXT: Type: PT_MIPS_ABIFLAGS (0x70000003)
ELF-MIPS-NEXT: Offset: 0x98
ELF-MIPS-NEXT: VirtualAddress: 0x400098
ELF-MIPS-NEXT: PhysicalAddress: 0x400098
ELF-MIPS-NEXT: FileSize: 24
ELF-MIPS-NEXT: MemSize: 24
ELF-MIPS-NEXT: Flags [ (0x4)
ELF-MIPS-NEXT: PF_R (0x4)
ELF-MIPS-NEXT: ]
ELF-MIPS-NEXT: Alignment: 8
ELF-MIPS-NEXT: }
ELF-MIPS-NEXT: ProgramHeader {
ELF-MIPS-NEXT: Type: PT_MIPS_REGINFO (0x70000000)
ELF-MIPS-NEXT: Offset: 0xB0
ELF-MIPS-NEXT: VirtualAddress: 0x4000B0
ELF-MIPS-NEXT: PhysicalAddress: 0x4000B0
ELF-MIPS-NEXT: FileSize: 24
ELF-MIPS-NEXT: MemSize: 24
ELF-MIPS-NEXT: Flags [ (0x4)
ELF-MIPS-NEXT: PF_R (0x4)
ELF-MIPS-NEXT: ]
ELF-MIPS-NEXT: Alignment: 4
ELF-MIPS-NEXT: }
ELF-MIPS-NEXT: ProgramHeader {
ELF-MIPS-NEXT: Type: PT_LOAD (0x1)
ELF-MIPS-NEXT: Offset: 0x0
ELF-MIPS-NEXT: VirtualAddress: 0x400000
ELF-MIPS-NEXT: PhysicalAddress: 0x400000
ELF-MIPS-NEXT: FileSize: 224
ELF-MIPS-NEXT: MemSize: 224
ELF-MIPS-NEXT: Flags [ (0x5)
ELF-MIPS-NEXT: PF_R (0x4)
ELF-MIPS-NEXT: PF_X (0x1)
ELF-MIPS-NEXT: ]
ELF-MIPS-NEXT: Alignment: 65536
ELF-MIPS-NEXT: }
ELF-MIPS-NEXT: ]
ELF-MIPS64: Format: ELF64-mips
ELF-MIPS64-NEXT: Arch: mips64
ELF-MIPS64-NEXT: AddressSize: 64bit
ELF-MIPS64-NEXT: LoadName:
ELF-MIPS64-NEXT: ProgramHeaders [
ELF-MIPS64-NEXT: ProgramHeader {
ELF-MIPS64-NEXT: Type: PT_LOAD (0x1)
ELF-MIPS64-NEXT: Offset: 0x0
ELF-MIPS64-NEXT: VirtualAddress: 0x120000000
ELF-MIPS64-NEXT: PhysicalAddress: 0x120000000
ELF-MIPS64-NEXT: FileSize: 136
ELF-MIPS64-NEXT: MemSize: 136
ELF-MIPS64-NEXT: Flags [ (0x5)
ELF-MIPS64-NEXT: PF_R (0x4)
ELF-MIPS64-NEXT: PF_X (0x1)
ELF-MIPS64-NEXT: ]
ELF-MIPS64-NEXT: Alignment: 65536
ELF-MIPS64-NEXT: }
ELF-MIPS64-NEXT: ]
OPENBSD-X86-64: ProgramHeaders [
OPENBSD-X86-64: ProgramHeader {
OPENBSD-X86-64: Type: PT_OPENBSD_RANDOMIZE
OPENBSD-X86-64-NEXT: Offset:
OPENBSD-X86-64-NEXT: VirtualAddress:
OPENBSD-X86-64-NEXT: PhysicalAddress:
OPENBSD-X86-64-NEXT: FileSize:
OPENBSD-X86-64-NEXT: MemSize:
OPENBSD-X86-64-NEXT: Flags [
OPENBSD-X86-64-NEXT: ]
OPENBSD-X86-64-NEXT: Alignment:
OPENBSD-X86-64-NEXT: }
OPENBSD-X86-64-NEXT: ProgramHeader {
OPENBSD-X86-64-NEXT: Type: PT_OPENBSD_WXNEEDED
OPENBSD-X86-64-NEXT: Offset:
OPENBSD-X86-64-NEXT: VirtualAddress:
OPENBSD-X86-64-NEXT: PhysicalAddress:
OPENBSD-X86-64-NEXT: FileSize:
OPENBSD-X86-64-NEXT: MemSize:
OPENBSD-X86-64-NEXT: Flags [
OPENBSD-X86-64-NEXT: ]
OPENBSD-X86-64-NEXT: Alignment:
OPENBSD-X86-64-NEXT: }
OPENBSD-X86-64-NEXT: ProgramHeader {
OPENBSD-X86-64-NEXT: Type: PT_OPENBSD_BOOTDATA
OPENBSD-X86-64-NEXT: Offset:
OPENBSD-X86-64-NEXT: VirtualAddress:
OPENBSD-X86-64-NEXT: PhysicalAddress:
OPENBSD-X86-64-NEXT: FileSize:
OPENBSD-X86-64-NEXT: MemSize:
OPENBSD-X86-64-NEXT: Flags [
OPENBSD-X86-64-NEXT: ]
OPENBSD-X86-64-NEXT: Alignment:
OPENBSD-X86-64-NEXT: }
|