kern.ldscript revision 1.6
11.6Schristos/*	$NetBSD: kern.ldscript,v 1.6 2006/12/02 04:49:37 christos Exp $	*/
21.1Sthorpej
31.1SthorpejOUTPUT_FORMAT("elf32-i386", "elf32-i386",
41.1Sthorpej	      "elf32-i386")
51.1SthorpejOUTPUT_ARCH(i386)
61.1SthorpejENTRY(_start)
71.1SthorpejSECTIONS
81.1Sthorpej{
91.5Spavel   /* Read-only sections, merged into text segment: */
101.5Spavel   .text :
111.5Spavel   AT (ADDR(.text) & 0x0fffffff)
121.5Spavel   {
131.5Spavel     *(.text)
141.5Spavel     *(.text.*)
151.5Spavel     *(.stub)
161.5Spavel     *(.rodata)
171.5Spavel   } =0
181.5Spavel   _etext = . ;
191.5Spavel   PROVIDE (etext = .) ;
201.5Spavel
211.5Spavel   /* Adjust the address for the data segment.  We want to adjust up to
221.5Spavel      the same address within the page on the next page up.  */
231.5Spavel   . = ALIGN(0x1000) + (. & (0x1000 - 1));
241.5Spavel   .data :
251.5Spavel   AT (LOADADDR(.text) + (ADDR(.data) - ADDR(.text)))
261.5Spavel   {
271.5Spavel     *(.data)
281.5Spavel     *(.data.*)
291.5Spavel   }
301.5Spavel   _edata = . ;
311.5Spavel   PROVIDE (edata = .) ;
321.5Spavel   __bss_start = . ;
331.5Spavel   .bss :
341.5Spavel   AT (LOADADDR(.text) + (ADDR(.bss) - ADDR(.text)))
351.5Spavel   {
361.5Spavel     *(.bss)
371.5Spavel     *(.bss.*)
381.5Spavel     *(COMMON)
391.5Spavel     . = ALIGN(32 / 8);
401.5Spavel   }
411.5Spavel   . = ALIGN(32 / 8);
421.1Sthorpej  _end = . ;
431.5Spavel  PROVIDE (end = .) ;
441.6Schristos  .note.netbsd.ident :
451.6Schristos  {
461.6Schristos    KEEP(*(.note.netbsd.ident));
471.6Schristos  }
481.1Sthorpej}
49