Module Name: src Committed By: maxv Date: Tue Aug 2 14:03:34 UTC 2016
Modified Files: src/sys/arch/amd64/conf: kern.ldscript.Xen src/sys/arch/i386/conf: kern.ldscript.Xen Log Message: Align the segments properly, and split text+rodata in two separate segments on Xen. To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/sys/arch/amd64/conf/kern.ldscript.Xen cvs rdiff -u -r1.12 -r1.13 src/sys/arch/i386/conf/kern.ldscript.Xen 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.Xen diff -u src/sys/arch/amd64/conf/kern.ldscript.Xen:1.12 src/sys/arch/amd64/conf/kern.ldscript.Xen:1.13 --- src/sys/arch/amd64/conf/kern.ldscript.Xen:1.12 Fri May 13 05:45:13 2016 +++ src/sys/arch/amd64/conf/kern.ldscript.Xen Tue Aug 2 14:03:34 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: kern.ldscript.Xen,v 1.12 2016/05/13 05:45:13 maxv Exp $ */ +/* $NetBSD: kern.ldscript.Xen,v 1.13 2016/08/02 14:03:34 maxv Exp $ */ #include "assym.h" @@ -7,24 +7,26 @@ __PAGE_SIZE = 0x1000 ; ENTRY(_start) SECTIONS { - /* Read-only sections, merged into text segment: */ .text : { *(.text) *(.text.*) *(.stub) - *(.rodata) } _etext = . ; PROVIDE (etext = .) ; - /* - * Adjust the address for the data segment. We want to adjust up to - * the same address within the page on the next page up. - */ - . = ALIGN(0x100000) + (. & (0x100000 - 1)); + . = ALIGN(__PAGE_SIZE); __rodata_start = . ; + .rodata : + { + *(.rodata) + *(.rodata.*) + } + + . = ALIGN(__PAGE_SIZE); + __data_start = . ; .data : { @@ -53,7 +55,12 @@ SECTIONS *(COMMON) . = ALIGN(64 / 8); } - . = ALIGN(64 / 8); + + . = ALIGN(__PAGE_SIZE); + + /* End of the kernel image */ + __kernel_end = . ; + _end = . ; PROVIDE (end = .) ; .note.netbsd.ident : Index: src/sys/arch/i386/conf/kern.ldscript.Xen diff -u src/sys/arch/i386/conf/kern.ldscript.Xen:1.12 src/sys/arch/i386/conf/kern.ldscript.Xen:1.13 --- src/sys/arch/i386/conf/kern.ldscript.Xen:1.12 Fri May 13 05:45:13 2016 +++ src/sys/arch/i386/conf/kern.ldscript.Xen Tue Aug 2 14:03:34 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: kern.ldscript.Xen,v 1.12 2016/05/13 05:45:13 maxv Exp $ */ +/* $NetBSD: kern.ldscript.Xen,v 1.13 2016/08/02 14:03:34 maxv Exp $ */ #include "assym.h" @@ -6,7 +6,6 @@ __PAGE_SIZE = 0x1000 ; SECTIONS { - /* Read-only sections, merged into text segment: */ .text : { *(.text) @@ -16,19 +15,17 @@ SECTIONS _etext = . ; PROVIDE (etext = .) ; + . = ALIGN(__PAGE_SIZE); + + __rodata_start = . ; .rodata : { *(.rodata) *(.rodata.*) } - /* - * Adjust the address for the data segment. We want to adjust up to - * the same address within the page on the next page up. - */ - . = ALIGN(0x1000) + (. & (0x1000 - 1)); + . = ALIGN(__PAGE_SIZE); - __rodata_start = . ; __data_start = . ; .data : { @@ -46,8 +43,8 @@ SECTIONS *(.data.read_mostly) } . = ALIGN(COHERENCY_UNIT); - _edata = . ; + _edata = . ; PROVIDE (edata = .) ; __bss_start = . ; .bss : @@ -57,7 +54,12 @@ SECTIONS *(COMMON) . = ALIGN(32 / 8); } - . = ALIGN(32 / 8); + + . = ALIGN(__PAGE_SIZE); + + /* End of the kernel image */ + __kernel_end = . ; + _end = . ; PROVIDE (end = .) ; .note.netbsd.ident :