aboutsummaryrefslogtreecommitdiff
path: root/test/elf/X86_64/nmagic.test
blob: b313c1f051ba60caf41f32dc0493d7480cfac20e (plain) (blame)
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
# 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: ]