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