llvm-project/lld/test/elf/X86_64/nmagic.test

92 lines
3.2 KiB
Plaintext

# 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: ]