kern.ldscript revision 1.7
11.7Syamt/*	$NetBSD: kern.ldscript,v 1.7 2007/10/18 15:28:34 yamt 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   } =0
171.5Spavel   _etext = . ;
181.5Spavel   PROVIDE (etext = .) ;
191.5Spavel
201.7Syamt   .rodata :
211.7Syamt   AT (LOADADDR(.text) + (ADDR(.rodata) - ADDR(.text)))
221.7Syamt   {
231.7Syamt     *(.rodata)
241.7Syamt     *(.rodata.*)
251.7Syamt   }
261.7Syamt 
271.5Spavel   /* Adjust the address for the data segment.  We want to adjust up to
281.5Spavel      the same address within the page on the next page up.  */
291.5Spavel   . = ALIGN(0x1000) + (. & (0x1000 - 1));
301.7Syamt   __data_start = . ;
311.5Spavel   .data :
321.5Spavel   AT (LOADADDR(.text) + (ADDR(.data) - ADDR(.text)))
331.5Spavel   {
341.5Spavel     *(.data)
351.5Spavel     *(.data.*)
361.5Spavel   }
371.5Spavel   _edata = . ;
381.5Spavel   PROVIDE (edata = .) ;
391.5Spavel   __bss_start = . ;
401.5Spavel   .bss :
411.5Spavel   AT (LOADADDR(.text) + (ADDR(.bss) - ADDR(.text)))
421.5Spavel   {
431.5Spavel     *(.bss)
441.5Spavel     *(.bss.*)
451.5Spavel     *(COMMON)
461.5Spavel     . = ALIGN(32 / 8);
471.5Spavel   }
481.5Spavel   . = ALIGN(32 / 8);
491.1Sthorpej  _end = . ;
501.5Spavel  PROVIDE (end = .) ;
511.6Schristos  .note.netbsd.ident :
521.6Schristos  {
531.6Schristos    KEEP(*(.note.netbsd.ident));
541.6Schristos  }
551.1Sthorpej}
56