Module Name: src
Committed By: uebayasi
Date: Thu Aug 20 08:36:42 UTC 2015
Modified Files:
src/sys/arch/amd64/conf: kern.ldscript
Log Message:
Simplify this by splitting absolute relocation directives from other
relative, position-independent directives. Since all sections are
relocated in parallel, specifying the address of .text is sufficient.
To generate a diff of this commit:
cvs rdiff -u -r1.10 -r1.11 src/sys/arch/amd64/conf/kern.ldscript
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/amd64/conf/kern.ldscript
diff -u src/sys/arch/amd64/conf/kern.ldscript:1.10 src/sys/arch/amd64/conf/kern.ldscript:1.11
--- src/sys/arch/amd64/conf/kern.ldscript:1.10 Thu Aug 20 08:25:33 2015
+++ src/sys/arch/amd64/conf/kern.ldscript Thu Aug 20 08:36:42 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: kern.ldscript,v 1.10 2015/08/20 08:25:33 uebayasi Exp $ */
+/* $NetBSD: kern.ldscript,v 1.11 2015/08/20 08:36:42 uebayasi Exp $ */
OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
"elf64-x86-64")
@@ -8,7 +8,6 @@ SECTIONS
{
/* Read-only sections, merged into text segment: */
.text :
- AT (ADDR(.text) & 0x0fffffff)
{
*(.text)
*(.text.*)
@@ -18,7 +17,6 @@ SECTIONS
PROVIDE (etext = .) ;
.rodata :
- AT (LOADADDR(.text) + (ADDR(.rodata) - ADDR(.text)))
{
*(.rodata)
*(.rodata.*)
@@ -29,20 +27,17 @@ SECTIONS
. = ALIGN(0x100000) + (. & (0x100000 - 1));
__data_start = . ;
.data :
- AT (LOADADDR(.text) + (ADDR(.data) - ADDR(.text)))
{
*(.data)
}
. = ALIGN(64); /* COHERENCY_UNIT */
.data.cacheline_aligned :
- AT (LOADADDR(.text) + (ADDR(.data.cacheline_aligned) - ADDR(.text)))
{
*(.data.cacheline_aligned)
}
. = ALIGN(64); /* COHERENCY_UNIT */
.data.read_mostly :
- AT (LOADADDR(.text) + (ADDR(.data.read_mostly) - ADDR(.text)))
{
*(.data.read_mostly)
}
@@ -52,7 +47,6 @@ SECTIONS
PROVIDE (edata = .) ;
__bss_start = . ;
.bss :
- AT (LOADADDR(.text) + (ADDR(.bss) - ADDR(.text)))
{
*(.bss)
*(.bss.*)
@@ -67,3 +61,11 @@ SECTIONS
KEEP(*(.note.netbsd.ident));
}
}
+SECTIONS
+{
+ .text :
+ AT (ADDR(.text) & 0x0fffffff)
+ {
+ *(.text)
+ } =0
+}