summaryrefslogtreecommitdiffstats
path: root/sys/conf/ldscript.ia64
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2011-03-18 22:45:43 +0000
committermarcel <marcel@FreeBSD.org>2011-03-18 22:45:43 +0000
commit2fa9bafa3d14acd46f44fd431a79517a58115202 (patch)
treec3ed519ae4102f3431bd05326bf44abb72da1b59 /sys/conf/ldscript.ia64
parent1e701a660ae9ebb71c723cf9bb71348b656b63bf (diff)
downloadFreeBSD-src-2fa9bafa3d14acd46f44fd431a79517a58115202.zip
FreeBSD-src-2fa9bafa3d14acd46f44fd431a79517a58115202.tar.gz
o Move the IVT and supporting functions to the front of the text
segment so that it's always mapped by the loader. o Change the alternate fault handlers to account for PBVM. Since currently the region is handled by the VHPT, no alternate faults will be generated for it.
Diffstat (limited to 'sys/conf/ldscript.ia64')
-rw-r--r--sys/conf/ldscript.ia6450
1 files changed, 26 insertions, 24 deletions
diff --git a/sys/conf/ldscript.ia64 b/sys/conf/ldscript.ia64
index 57b17d6..5d31ff4 100644
--- a/sys/conf/ldscript.ia64
+++ b/sys/conf/ldscript.ia64
@@ -9,6 +9,22 @@ SECTIONS
/* Read-only sections, merged into text segment: */
. = kernel_text + SIZEOF_HEADERS;
.interp : { *(.interp) }
+
+ PROVIDE (btext = .);
+ .ivt : { *(.ivt) }
+ .text :
+ {
+ *(.text.ivt)
+ *(.text .stub .text.* .gnu.linkonce.t.*)
+ /* .gnu.warning sections are handled specially by elf32.em. */
+ *(.gnu.warning)
+ } = 0x00300000010070000002000001000400
+ .init : { *(.init) } = 0x00300000010070000002000001000400
+ .plt : { *(.plt) }
+ .fini : { *(.fini) } = 0x00300000010070000002000001000400
+ _etext = .;
+ PROVIDE (etext = .);
+
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
@@ -30,37 +46,23 @@ SECTIONS
.rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) }
.rela.plt : { *(.rela.plt) }
.rela.IA_64.pltoff : { *(.rela.IA_64.pltoff) }
- PROVIDE (btext = .);
- .init :
- {
- *(.init)
- } =0x00300000010070000002000001000400
- .plt : { *(.plt) }
- .text :
- {
- *(.text .stub .text.* .gnu.linkonce.t.*)
- /* .gnu.warning sections are handled specially by elf32.em. */
- *(.gnu.warning)
- } =0x00300000010070000002000001000400
- .fini :
- {
- *(.fini)
- } =0x00300000010070000002000001000400
- _etext = .;
- PROVIDE (etext = .);
+
+ .IA_64.unwind_info : { *(.IA_64.unwind_info* .gnu.linkonce.ia64unwi.*) }
+ .IA_64.unwind : { *(.IA_64.unwind* .gnu.linkonce.ia64unw.*) }
+
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
.rodata1 : { *(.rodata1) }
.sdata2 : { *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) }
.sbss2 : { *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) }
.opd : { *(.opd) }
- .IA_64.unwind_info : { *(.IA_64.unwind_info* .gnu.linkonce.ia64unwi.*) }
- .IA_64.unwind : { *(.IA_64.unwind* .gnu.linkonce.ia64unw.*) }
- /* Adjust the address for the data segment. We want to adjust up to
- the same address within the page on the next page up. */
- . = . + 8192;
+
+ /* Adjust the address for the data segment. We want to start in the next
+ page in the loader virtual memory. */
+ . = ALIGN(65536);
+
.data :
{
- *(.data.proc0 .data .data.* .gnu.linkonce.d.*)
+ *(.data.kstack .data .data.* .gnu.linkonce.d.*)
SORT(CONSTRUCTORS)
}
.data1 : { *(.data1) }
OpenPOWER on IntegriCloud