diff options
Diffstat (limited to 'test/elf/X86_64/nmagic.test')
-rw-r--r-- | test/elf/X86_64/nmagic.test | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/test/elf/X86_64/nmagic.test b/test/elf/X86_64/nmagic.test new file mode 100644 index 000000000000..b313c1f051ba --- /dev/null +++ b/test/elf/X86_64/nmagic.test @@ -0,0 +1,91 @@ +# This tests verifies functionality of NMAGIC that we create only two segments, +# PT_LOAD, PT_TLS +# The data segment should be aligned to a page boundary +RUN: lld -flavor gnu -target x86_64-linux %p/Inputs/nmagic.o \ +RUN: --noinhibit-exec -o %t --nmagic -static +RUN: llvm-readobj -sections %t | FileCheck -check-prefix=NMAGICSECTIONS %s +RUN: llvm-readobj -program-headers %t | FileCheck -check-prefix=NMAGICPROGRAMHEADERS %s + +NMAGICSECTIONS: Section { +NMAGICSECTIONS: Index: 0 +NMAGICSECTIONS: Name: (0) +NMAGICSECTIONS: Type: SHT_NULL (0x0) +NMAGICSECTIONS: } +NMAGICSECTIONS: Section { +NMAGICSECTIONS: Name: .text +NMAGICSECTIONS: Type: SHT_PROGBITS (0x1) +NMAGICSECTIONS: } +NMAGICSECTIONS: Section { +NMAGICSECTIONS: Name: .eh_frame +NMAGICSECTIONS: Type: SHT_PROGBITS (0x1) +NMAGICSECTIONS: } +NMAGICSECTIONS: Section { +NMAGICSECTIONS: Name: .tdata +NMAGICSECTIONS: Type: SHT_PROGBITS (0x1) +NMAGICSECTIONS: } +NMAGICSECTIONS: Section { +NMAGICSECTIONS: Name: .tbss +NMAGICSECTIONS: Type: SHT_NOBITS (0x8) +NMAGICSECTIONS: } +NMAGICSECTIONS: Section { +NMAGICSECTIONS: Name: .got.plt +NMAGICSECTIONS: Type: SHT_PROGBITS (0x1) +NMAGICSECTIONS: } +NMAGICSECTIONS: Section { +NMAGICSECTIONS: Name: .data +NMAGICSECTIONS: Type: SHT_PROGBITS (0x1) +NMAGICSECTIONS: } +NMAGICSECTIONS: Section { +NMAGICSECTIONS: Name: .bss +NMAGICSECTIONS: Type: SHT_NOBITS (0x8) +NMAGICSECTIONS: } +NMAGICSECTIONS: Section { +NMAGICSECTIONS: Name: .comment +NMAGICSECTIONS: Type: SHT_PROGBITS (0x1) +NMAGICSECTIONS: } +NMAGICSECTIONS: Section { +NMAGICSECTIONS: Name: .note.GNU-stack +NMAGICSECTIONS: Type: SHT_PROGBITS (0x1) +NMAGICSECTIONS: } +NMAGICSECTIONS: Section { +NMAGICSECTIONS: Name: .shstrtab +NMAGICSECTIONS: Type: SHT_STRTAB (0x3) +NMAGICSECTIONS: } +NMAGICSECTIONS: Section { +NMAGICSECTIONS: Name: .symtab +NMAGICSECTIONS: Type: SHT_SYMTAB (0x2) +NMAGICSECTIONS: } +NMAGICSECTIONS: Section { +NMAGICSECTIONS: Name: .strtab +NMAGICSECTIONS: Type: SHT_STRTAB (0x3) +NMAGICSECTIONS: } + +NMAGICPROGRAMHEADERS: ProgramHeaders [ +NMAGICPROGRAMHEADERS: ProgramHeader { +NMAGICPROGRAMHEADERS: Type: PT_LOAD (0x1) +NMAGICPROGRAMHEADERS: Offset: 0x0 +NMAGICPROGRAMHEADERS: VirtualAddress: 0x400000 +NMAGICPROGRAMHEADERS: PhysicalAddress: 0x400000 +NMAGICPROGRAMHEADERS: FileSize: 4108 +NMAGICPROGRAMHEADERS: MemSize: 4108 +NMAGICPROGRAMHEADERS: Flags [ (0x7) +NMAGICPROGRAMHEADERS: PF_R (0x4) +NMAGICPROGRAMHEADERS: PF_W (0x2) +NMAGICPROGRAMHEADERS: PF_X (0x1) +NMAGICPROGRAMHEADERS: ] +NMAGICPROGRAMHEADERS: Alignment: 8 +NMAGICPROGRAMHEADERS: } +NMAGICPROGRAMHEADERS: ProgramHeader { +NMAGICPROGRAMHEADERS: Type: PT_TLS (0x7) +NMAGICPROGRAMHEADERS: Offset: 0x1000 +NMAGICPROGRAMHEADERS: VirtualAddress: 0x401000 +NMAGICPROGRAMHEADERS: PhysicalAddress: 0x401000 +NMAGICPROGRAMHEADERS: FileSize: 4 +NMAGICPROGRAMHEADERS: MemSize: 12 +NMAGICPROGRAMHEADERS: Flags [ (0x6) +NMAGICPROGRAMHEADERS: PF_R (0x4) +NMAGICPROGRAMHEADERS: PF_W (0x2) +NMAGICPROGRAMHEADERS: ] +NMAGICPROGRAMHEADERS: Alignment: 4 +NMAGICPROGRAMHEADERS: } +NMAGICPROGRAMHEADERS: ] |