-
Notifications
You must be signed in to change notification settings - Fork 15
/
bitvisor_aarch64.lds
70 lines (70 loc) · 1.24 KB
/
bitvisor_aarch64.lds
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
ENTRY(entry)
virt = 0; /* To make relocation simple */
phys = 0x00100000;
entry_max = 512 * 1024; /* Relocation table can be large */
PHDRS {
all PT_LOAD;
}
SECTIONS {
. = virt;
head = .;
. = virt + SIZEOF_HEADERS;
.got : AT (phys + (_got - head)) {
_got = .;
*(.got)
*(.got.*)
}
.rela.dyn : AT (phys + (_rela_start - head)) {
_rela_start = .;
*(.rela)
*(.rela.*)
_rela_end = .;
}
.entry.data : AT (phys + (entry_data - head)) {
entry_data = .;
*(.entry.data)
*(.entry.data.*)
}
. = ALIGN (4096);
.entry : AT (phys + (code - head)) {
code = .;
*(.entry)
*(.entry.text)
*(.entry.text.*)
} :all
_entry_size = . - head;
ASSERT (_entry_size <= entry_max, "Error: .entry is larger than 512KB")
.text : AT (phys + (text - head)) {
text = .;
*(.text)
*(.text.*)
codeend = .;
}
. = ALIGN (4096);
.data : AT (phys + (data - head)) {
data = .;
*(.data)
*(.data.*)
. = ALIGN (8);
__initfunc_start = .;
KEEP (*(.initfunc))
__initfunc_end = .;
. = ALIGN (8);
__process_builtin = .;
KEEP (*(.processes))
__process_builtin_end = .;
dataend = .;
}
. = ALIGN (8);
.bss : AT (phys + (bss - head)) {
bss = .;
*(.bss)
*(.bss.*)
*(COMMON)
. = ALIGN (4096);
}
end = .;
/DISCARD/ : {
*(.gomi)
}
}