mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
fc23a01ea2
I didn't initialize a pointer to be nullptr that I needed to. This change adds support for nested and even overlapping segments. This means that PT_PHDR, PT_GNU_RELRO, PT_TLS, and PT_DYNAMIC can be supported properly. Differential Revision: https://reviews.llvm.org/D36558 llvm-svn: 313682
72 lines
2.0 KiB
Plaintext
72 lines
2.0 KiB
Plaintext
# This test simply tests a simple but common real world example of overlapping
|
|
# segments.
|
|
|
|
# RUN: llvm-objcopy %p/Inputs/pt-phdr.elf %t
|
|
# RUN: llvm-readobj -program-headers %t | FileCheck %s
|
|
|
|
#CHECK: ProgramHeaders [
|
|
#CHECK-NEXT: ProgramHeader {
|
|
#CHECK-NEXT: Type: PT_PHDR
|
|
#CHECK-NEXT: Offset: 0x40
|
|
#CHECK-NEXT: VirtualAddress: 0x200040
|
|
#CHECK-NEXT: PhysicalAddress: 0x200040
|
|
#CHECK-NEXT: FileSize: 280
|
|
#CHECK-NEXT: MemSize: 280
|
|
#CHECK-NEXT: Flags [
|
|
#CHECK-NEXT: PF_R
|
|
#CHECK-NEXT: ]
|
|
#CHECK-NEXT: Alignment: 8
|
|
#CHECK-NEXT: }
|
|
#CHECK-NEXT: ProgramHeader {
|
|
#CHECK-NEXT: Type: PT_LOAD
|
|
#CHECK-NEXT: Offset: 0x0
|
|
#CHECK-NEXT: VirtualAddress: 0x200000
|
|
#CHECK-NEXT: PhysicalAddress: 0x200000
|
|
#CHECK-NEXT: FileSize: 344
|
|
#CHECK-NEXT: MemSize: 344
|
|
#CHECK-NEXT: Flags [
|
|
#CHECK-NEXT: PF_R
|
|
#CHECK-NEXT: ]
|
|
#CHECK-NEXT: Alignment: 4096
|
|
#CHECK-NEXT: }
|
|
#CHECK-NEXT: ProgramHeader {
|
|
#CHECK-NEXT: Type: PT_LOAD
|
|
#CHECK-NEXT: Offset: 0x1000
|
|
#CHECK-NEXT: VirtualAddress: 0x201000
|
|
#CHECK-NEXT: PhysicalAddress: 0x201000
|
|
#CHECK-NEXT: FileSize: 1
|
|
#CHECK-NEXT: MemSize: 1
|
|
#CHECK-NEXT: Flags [
|
|
#CHECK-NEXT: PF_R
|
|
#CHECK-NEXT: PF_X
|
|
#CHECK-NEXT: ]
|
|
#CHECK-NEXT: Alignment: 4096
|
|
#CHECK-NEXT: }
|
|
#CHECK-NEXT: ProgramHeader {
|
|
#CHECK-NEXT: Type: PT_LOAD
|
|
#CHECK-NEXT: Offset: 0x2000
|
|
#CHECK-NEXT: VirtualAddress: 0x202000
|
|
#CHECK-NEXT: PhysicalAddress: 0x202000
|
|
#CHECK-NEXT: FileSize: 14
|
|
#CHECK-NEXT: MemSize: 14
|
|
#CHECK-NEXT: Flags [
|
|
#CHECK-NEXT: PF_R
|
|
#CHECK-NEXT: PF_W
|
|
#CHECK-NEXT: ]
|
|
#CHECK-NEXT: Alignment: 4096
|
|
#CHECK-NEXT: }
|
|
#CHECK-NEXT: ProgramHeader {
|
|
#CHECK-NEXT: Type: PT_GNU_STACK (0x6474E551)
|
|
#CHECK-NEXT: Offset: 0x0
|
|
#CHECK-NEXT: VirtualAddress: 0x0
|
|
#CHECK-NEXT: PhysicalAddress: 0x0
|
|
#CHECK-NEXT: FileSize: 0
|
|
#CHECK-NEXT: MemSize: 0
|
|
#CHECK-NEXT: Flags [
|
|
#CHECK-NEXT: PF_R
|
|
#CHECK-NEXT: PF_W
|
|
#CHECK-NEXT: ]
|
|
#CHECK-NEXT: Alignment: 0
|
|
#CHECK-NEXT: }
|
|
#CHECK-NEXT:]
|