From 2fa9bafa3d14acd46f44fd431a79517a58115202 Mon Sep 17 00:00:00 2001 From: marcel Date: Fri, 18 Mar 2011 22:45:43 +0000 Subject: 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. --- sys/conf/ldscript.ia64 | 50 ++++++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 24 deletions(-) (limited to 'sys/conf') 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) } -- cgit v1.1