Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/um/kernel/uml.lds.S
10817 views
1
#include <asm-generic/vmlinux.lds.h>
2
#include <asm/page.h>
3
4
OUTPUT_FORMAT(ELF_FORMAT)
5
OUTPUT_ARCH(ELF_ARCH)
6
ENTRY(_start)
7
jiffies = jiffies_64;
8
9
SECTIONS
10
{
11
/* This must contain the right address - not quite the default ELF one.*/
12
PROVIDE (__executable_start = START);
13
/* Static binaries stick stuff here, like the sigreturn trampoline,
14
* invisibly to objdump. So, just make __binary_start equal to the very
15
* beginning of the executable, and if there are unmapped pages after this,
16
* they are forever unusable.
17
*/
18
__binary_start = START;
19
20
. = START + SIZEOF_HEADERS;
21
22
_text = .;
23
_stext = .;
24
__init_begin = .;
25
INIT_TEXT_SECTION(0)
26
. = ALIGN(PAGE_SIZE);
27
28
.text :
29
{
30
TEXT_TEXT
31
SCHED_TEXT
32
LOCK_TEXT
33
*(.fixup)
34
/* .gnu.warning sections are handled specially by elf32.em. */
35
*(.gnu.warning)
36
*(.gnu.linkonce.t*)
37
}
38
39
. = ALIGN(PAGE_SIZE);
40
.syscall_stub : {
41
__syscall_stub_start = .;
42
*(.__syscall_stub*)
43
__syscall_stub_end = .;
44
}
45
46
/*
47
* These are needed even in a static link, even if they wind up being empty.
48
* Newer glibc needs these __rel{,a}_iplt_{start,end} symbols.
49
*/
50
.rel.plt : {
51
*(.rel.plt)
52
PROVIDE_HIDDEN(__rel_iplt_start = .);
53
*(.rel.iplt)
54
PROVIDE_HIDDEN(__rel_iplt_end = .);
55
}
56
.rela.plt : {
57
*(.rela.plt)
58
PROVIDE_HIDDEN(__rela_iplt_start = .);
59
*(.rela.iplt)
60
PROVIDE_HIDDEN(__rela_iplt_end = .);
61
}
62
63
#include "asm/common.lds.S"
64
65
init.data : { INIT_DATA }
66
.data :
67
{
68
INIT_TASK_DATA(KERNEL_STACK_SIZE)
69
. = ALIGN(KERNEL_STACK_SIZE);
70
*(.data..init_irqstack)
71
DATA_DATA
72
*(.gnu.linkonce.d*)
73
CONSTRUCTORS
74
}
75
.data1 : { *(.data1) }
76
.ctors :
77
{
78
*(.ctors)
79
}
80
.dtors :
81
{
82
*(.dtors)
83
}
84
85
.got : { *(.got.plt) *(.got) }
86
.dynamic : { *(.dynamic) }
87
.tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
88
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
89
/* We want the small data sections together, so single-instruction offsets
90
can access them all, and initialized data all before uninitialized, so
91
we can shorten the on-disk segment size. */
92
.sdata : { *(.sdata) }
93
_edata = .;
94
PROVIDE (edata = .);
95
. = ALIGN(PAGE_SIZE);
96
__bss_start = .;
97
PROVIDE(_bss_start = .);
98
SBSS(0)
99
BSS(0)
100
_end = .;
101
PROVIDE (end = .);
102
103
STABS_DEBUG
104
105
DWARF_DEBUG
106
107
DISCARDS
108
}
109
110