Home | History | Annotate | Download | only in llvm-readobj
      1 RUN: llvm-readobj -program-headers %p/../../Object/Inputs/program-headers.elf-i386 \
      2 RUN:     | FileCheck %s -check-prefix ELF-I386
      3 RUN: llvm-readobj -program-headers %p/../../Object/Inputs/program-headers.elf-x86-64 \
      4 RUN:     | FileCheck %s -check-prefix ELF-X86-64
      5 RUN: llvm-readobj -program-headers %p/../../Object/Inputs/program-headers.mips \
      6 RUN:     | FileCheck %s -check-prefix ELF-MIPS
      7 RUN: llvm-readobj -program-headers %p/../../Object/Inputs/program-headers.mips64 \
      8 RUN:     | FileCheck %s -check-prefix ELF-MIPS64
      9 
     10 ## openbsd-phdrs.elf-x86-64 was generated using GNU ld (GNU Binutils for Ubuntu) 2.26.1.
     11 ## llvm-mc -filetype=obj -triple=x86_64-pc-linux test.s -o main.o
     12 ## ld -script linker.script main.o -o openbsd-phdrs.elf-x86-64
     13 ##
     14 ## test.s is an empty file.
     15 ## linker.script:
     16 ## PHDRS { text PT_LOAD FILEHDR PHDRS; foo 0x65a3dbe6; bar 0x65a3dbe7; zed 0x65a41be6; }
     17 ##   Where 0x65a3dbe6 is the value of PT_OPENBSD_RANDOMIZE,
     18 ##         0x65a3dbe7 is the value of PT_OPENBSD_WXNEEDED,
     19 ##         0x65a41be6 is the value of PT_OPENBSD_BOOTDATA
     20 ## SECTIONS { . = SIZEOF_HEADERS; .all : { *(.*) } : text }
     21 RUN: llvm-readobj -program-headers %p/../../Object/Inputs/openbsd-phdrs.elf-x86-64 \
     22 RUN:     | FileCheck %s -check-prefix OPENBSD-X86-64
     23 
     24 ELF-I386:      ProgramHeaders [
     25 ELF-I386-NEXT:   ProgramHeader {
     26 ELF-I386-NEXT:     Type: PT_LOAD (0x1)
     27 ELF-I386-NEXT:     Offset: 0x0
     28 ELF-I386-NEXT:     VirtualAddress: 0x8048000
     29 ELF-I386-NEXT:     PhysicalAddress: 0x8048000
     30 ELF-I386-NEXT:     FileSize: 308
     31 ELF-I386-NEXT:     MemSize: 308
     32 ELF-I386-NEXT:     Flags [ (0x5)
     33 ELF-I386-NEXT:       PF_R (0x4)
     34 ELF-I386-NEXT:       PF_X (0x1)
     35 ELF-I386-NEXT:     ]
     36 ELF-I386-NEXT:     Alignment: 4096
     37 ELF-I386-NEXT:   }
     38 ELF-I386-NEXT:   ProgramHeader {
     39 ELF-I386-NEXT:     Type: PT_GNU_STACK (0x6474E551)
     40 ELF-I386-NEXT:     Offset: 0x0
     41 ELF-I386-NEXT:     VirtualAddress: 0x0
     42 ELF-I386-NEXT:     PhysicalAddress: 0x0
     43 ELF-I386-NEXT:     FileSize: 0
     44 ELF-I386-NEXT:     MemSize: 0
     45 ELF-I386-NEXT:     Flags [ (0x6)
     46 ELF-I386-NEXT:       PF_R (0x4)
     47 ELF-I386-NEXT:       PF_W (0x2)
     48 ELF-I386-NEXT:     ]
     49 ELF-I386-NEXT:     Alignment: 4
     50 ELF-I386-NEXT:   }
     51 ELF-I386-NEXT: ]
     52 
     53 ELF-X86-64:      ProgramHeaders [
     54 ELF-X86-64-NEXT:   ProgramHeader {
     55 ELF-X86-64-NEXT:     Type: PT_LOAD (0x1)
     56 ELF-X86-64-NEXT:     Offset: 0x0
     57 ELF-X86-64-NEXT:     VirtualAddress: 0x400000
     58 ELF-X86-64-NEXT:     PhysicalAddress: 0x400000
     59 ELF-X86-64-NEXT:     FileSize: 312
     60 ELF-X86-64-NEXT:     MemSize: 312
     61 ELF-X86-64-NEXT:     Flags [ (0x5)
     62 ELF-X86-64-NEXT:       PF_R (0x4)
     63 ELF-X86-64-NEXT:       PF_X (0x1)
     64 ELF-X86-64-NEXT:     ]
     65 ELF-X86-64-NEXT:     Alignment: 2097152
     66 ELF-X86-64-NEXT:   }
     67 ELF-X86-64-NEXT:   ProgramHeader {
     68 ELF-X86-64-NEXT:     Type: PT_GNU_EH_FRAME (0x6474E550)
     69 ELF-X86-64-NEXT:     Offset: 0xF4
     70 ELF-X86-64-NEXT:     VirtualAddress: 0x4000F4
     71 ELF-X86-64-NEXT:     PhysicalAddress: 0x4000F4
     72 ELF-X86-64-NEXT:     FileSize: 20
     73 ELF-X86-64-NEXT:     MemSize: 20
     74 ELF-X86-64-NEXT:     Flags [ (0x4)
     75 ELF-X86-64-NEXT:       PF_R (0x4)
     76 ELF-X86-64-NEXT:     ]
     77 ELF-X86-64-NEXT:     Alignment: 4
     78 ELF-X86-64-NEXT:   }
     79 ELF-X86-64-NEXT:   ProgramHeader {
     80 ELF-X86-64-NEXT:     Type: PT_GNU_STACK (0x6474E551)
     81 ELF-X86-64-NEXT:     Offset: 0x0
     82 ELF-X86-64-NEXT:     VirtualAddress: 0x0
     83 ELF-X86-64-NEXT:     PhysicalAddress: 0x0
     84 ELF-X86-64-NEXT:     FileSize: 0
     85 ELF-X86-64-NEXT:     MemSize: 0
     86 ELF-X86-64-NEXT:     Flags [ (0x6)
     87 ELF-X86-64-NEXT:       PF_R (0x4)
     88 ELF-X86-64-NEXT:       PF_W (0x2)
     89 ELF-X86-64-NEXT:     ]
     90 ELF-X86-64-NEXT:     Alignment: 8
     91 ELF-X86-64-NEXT:   }
     92 ELF-X86-64-NEXT: ]
     93 
     94 ELF-MIPS:      Format: ELF32-mips
     95 ELF-MIPS-NEXT: Arch: mips
     96 ELF-MIPS-NEXT: AddressSize: 32bit
     97 ELF-MIPS-NEXT: LoadName:
     98 ELF-MIPS-NEXT: ProgramHeaders [
     99 ELF-MIPS-NEXT:   ProgramHeader {
    100 ELF-MIPS-NEXT:     Type: PT_MIPS_ABIFLAGS (0x70000003)
    101 ELF-MIPS-NEXT:     Offset: 0x98
    102 ELF-MIPS-NEXT:     VirtualAddress: 0x400098
    103 ELF-MIPS-NEXT:     PhysicalAddress: 0x400098
    104 ELF-MIPS-NEXT:     FileSize: 24
    105 ELF-MIPS-NEXT:     MemSize: 24
    106 ELF-MIPS-NEXT:     Flags [ (0x4)
    107 ELF-MIPS-NEXT:       PF_R (0x4)
    108 ELF-MIPS-NEXT:     ]
    109 ELF-MIPS-NEXT:     Alignment: 8
    110 ELF-MIPS-NEXT:   }
    111 ELF-MIPS-NEXT:   ProgramHeader {
    112 ELF-MIPS-NEXT:     Type: PT_MIPS_REGINFO (0x70000000)
    113 ELF-MIPS-NEXT:     Offset: 0xB0
    114 ELF-MIPS-NEXT:     VirtualAddress: 0x4000B0
    115 ELF-MIPS-NEXT:     PhysicalAddress: 0x4000B0
    116 ELF-MIPS-NEXT:     FileSize: 24
    117 ELF-MIPS-NEXT:     MemSize: 24
    118 ELF-MIPS-NEXT:     Flags [ (0x4)
    119 ELF-MIPS-NEXT:       PF_R (0x4)
    120 ELF-MIPS-NEXT:     ]
    121 ELF-MIPS-NEXT:     Alignment: 4
    122 ELF-MIPS-NEXT:   }
    123 ELF-MIPS-NEXT:   ProgramHeader {
    124 ELF-MIPS-NEXT:     Type: PT_LOAD (0x1)
    125 ELF-MIPS-NEXT:     Offset: 0x0
    126 ELF-MIPS-NEXT:     VirtualAddress: 0x400000
    127 ELF-MIPS-NEXT:     PhysicalAddress: 0x400000
    128 ELF-MIPS-NEXT:     FileSize: 224
    129 ELF-MIPS-NEXT:     MemSize: 224
    130 ELF-MIPS-NEXT:     Flags [ (0x5)
    131 ELF-MIPS-NEXT:       PF_R (0x4)
    132 ELF-MIPS-NEXT:       PF_X (0x1)
    133 ELF-MIPS-NEXT:     ]
    134 ELF-MIPS-NEXT:     Alignment: 65536
    135 ELF-MIPS-NEXT:   }
    136 ELF-MIPS-NEXT: ]
    137 
    138 ELF-MIPS64:      Format: ELF64-mips
    139 ELF-MIPS64-NEXT: Arch: mips64
    140 ELF-MIPS64-NEXT: AddressSize: 64bit
    141 ELF-MIPS64-NEXT: LoadName:
    142 ELF-MIPS64-NEXT: ProgramHeaders [
    143 ELF-MIPS64-NEXT:   ProgramHeader {
    144 ELF-MIPS64-NEXT:     Type: PT_LOAD (0x1)
    145 ELF-MIPS64-NEXT:     Offset: 0x0
    146 ELF-MIPS64-NEXT:     VirtualAddress: 0x120000000
    147 ELF-MIPS64-NEXT:     PhysicalAddress: 0x120000000
    148 ELF-MIPS64-NEXT:     FileSize: 136
    149 ELF-MIPS64-NEXT:     MemSize: 136
    150 ELF-MIPS64-NEXT:     Flags [ (0x5)
    151 ELF-MIPS64-NEXT:       PF_R (0x4)
    152 ELF-MIPS64-NEXT:       PF_X (0x1)
    153 ELF-MIPS64-NEXT:     ]
    154 ELF-MIPS64-NEXT:     Alignment: 65536
    155 ELF-MIPS64-NEXT:   }
    156 ELF-MIPS64-NEXT: ]
    157 
    158 OPENBSD-X86-64:      ProgramHeaders [
    159 OPENBSD-X86-64:        ProgramHeader {
    160 OPENBSD-X86-64:          Type:  PT_OPENBSD_RANDOMIZE
    161 OPENBSD-X86-64-NEXT:     Offset:
    162 OPENBSD-X86-64-NEXT:     VirtualAddress:
    163 OPENBSD-X86-64-NEXT:     PhysicalAddress:
    164 OPENBSD-X86-64-NEXT:     FileSize:
    165 OPENBSD-X86-64-NEXT:     MemSize:
    166 OPENBSD-X86-64-NEXT:     Flags [
    167 OPENBSD-X86-64-NEXT:     ]
    168 OPENBSD-X86-64-NEXT:     Alignment:
    169 OPENBSD-X86-64-NEXT:   }
    170 OPENBSD-X86-64-NEXT:   ProgramHeader {
    171 OPENBSD-X86-64-NEXT:     Type:  PT_OPENBSD_WXNEEDED
    172 OPENBSD-X86-64-NEXT:     Offset:
    173 OPENBSD-X86-64-NEXT:     VirtualAddress:
    174 OPENBSD-X86-64-NEXT:     PhysicalAddress:
    175 OPENBSD-X86-64-NEXT:     FileSize:
    176 OPENBSD-X86-64-NEXT:     MemSize:
    177 OPENBSD-X86-64-NEXT:     Flags [
    178 OPENBSD-X86-64-NEXT:     ]
    179 OPENBSD-X86-64-NEXT:     Alignment:
    180 OPENBSD-X86-64-NEXT:   }
    181 OPENBSD-X86-64-NEXT:   ProgramHeader {
    182 OPENBSD-X86-64-NEXT:     Type:  PT_OPENBSD_BOOTDATA
    183 OPENBSD-X86-64-NEXT:     Offset:
    184 OPENBSD-X86-64-NEXT:     VirtualAddress:
    185 OPENBSD-X86-64-NEXT:     PhysicalAddress:
    186 OPENBSD-X86-64-NEXT:     FileSize:
    187 OPENBSD-X86-64-NEXT:     MemSize:
    188 OPENBSD-X86-64-NEXT:     Flags [
    189 OPENBSD-X86-64-NEXT:     ]
    190 OPENBSD-X86-64-NEXT:     Alignment:
    191 OPENBSD-X86-64-NEXT:   }
    192