git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.5.x5
[linux-2.6.git]
/
arch
/
um
/
kernel
/
uml.lds.S
diff --git
a/arch/um/kernel/uml.lds.S
b/arch/um/kernel/uml.lds.S
index
89ed329
..
76eadb3
100644
(file)
--- a/
arch/um/kernel/uml.lds.S
+++ b/
arch/um/kernel/uml.lds.S
@@
-7,8
+7,12
@@
jiffies = jiffies_64;
SECTIONS
{
SECTIONS
{
+ /*This must contain the right address - not quite the default ELF one.*/
+ PROVIDE (__executable_start = START);
. = START + SIZEOF_HEADERS;
. = START + SIZEOF_HEADERS;
+ /* Used in arch/um/kernel/mem.c. Any memory between START and __binary_start
+ * is remapped.*/
__binary_start = .;
#ifdef MODE_TT
.thread_private : {
__binary_start = .;
#ifdef MODE_TT
.thread_private : {
@@
-20,9
+24,13
@@
SECTIONS
}
. = ALIGN(4096);
.remap : { arch/um/kernel/tt/unmap_fin.o (.text) }
}
. = ALIGN(4096);
.remap : { arch/um/kernel/tt/unmap_fin.o (.text) }
-#endif
+
+ /* We want it only if we are in MODE_TT. In both cases, however, when MODE_TT
+ * is off the resulting binary segfaults.*/
. = ALIGN(4096); /* Init code and data */
. = ALIGN(4096); /* Init code and data */
+#endif
+
_stext = .;
__init_begin = .;
.init.text : {
_stext = .;
__init_begin = .;
.init.text : {
@@
-35,6
+43,8
@@
SECTIONS
{
*(.text)
SCHED_TEXT
{
*(.text)
SCHED_TEXT
+ LOCK_TEXT
+ *(.fixup)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
*(.gnu.linkonce.t*)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
*(.gnu.linkonce.t*)