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