kern.ldscript revision 1.12
11.12Suebayasi/*	$NetBSD: kern.ldscript,v 1.12 2015/08/20 07:00:48 uebayasi 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.12Suebayasi  /* Read-only sections, merged into text segment: */
101.12Suebayasi  .text :
111.12Suebayasi  AT (ADDR(.text) & 0x0fffffff)
121.12Suebayasi  {
131.12Suebayasi    *(.text)
141.12Suebayasi    *(.text.*)
151.12Suebayasi    *(.stub)
161.12Suebayasi  } =0
171.12Suebayasi  _etext = . ;
181.12Suebayasi  PROVIDE (etext = .) ;
191.5Spavel
201.12Suebayasi  .rodata :
211.12Suebayasi  AT (LOADADDR(.text) + (ADDR(.rodata) - ADDR(.text)))
221.12Suebayasi  {
231.12Suebayasi    *(.rodata)
241.12Suebayasi    *(.rodata.*)
251.12Suebayasi  }
261.9Schs
271.12Suebayasi  /* Adjust the address for the data segment.  We want to adjust up to
281.12Suebayasi     the same address within the page on the next page up.  */
291.12Suebayasi  . = ALIGN(0x1000) + (. & (0x1000 - 1));
301.12Suebayasi  __data_start = . ;
311.12Suebayasi  .data :
321.12Suebayasi  AT (LOADADDR(.text) + (ADDR(.data) - ADDR(.text)))
331.12Suebayasi  {
341.12Suebayasi    *(.data)
351.12Suebayasi  }
361.12Suebayasi  . = ALIGN(64);	/* COHERENCY_UNIT */
371.12Suebayasi  .data.cacheline_aligned :
381.12Suebayasi  AT (LOADADDR(.text) + (ADDR(.data.cacheline_aligned) - ADDR(.text)))
391.12Suebayasi  {
401.12Suebayasi    *(.data.cacheline_aligned)
411.12Suebayasi  }
421.12Suebayasi  . = ALIGN(64);	/* COHERENCY_UNIT */
431.12Suebayasi  .data.read_mostly :
441.12Suebayasi  AT (LOADADDR(.text) + (ADDR(.data.read_mostly) - ADDR(.text)))
451.12Suebayasi  {
461.12Suebayasi    *(.data.read_mostly)
471.12Suebayasi  }
481.12Suebayasi  . = ALIGN(64);	/* COHERENCY_UNIT */
491.12Suebayasi  _edata = . ;
501.12Suebayasi  PROVIDE (edata = .) ;
511.12Suebayasi  __bss_start = . ;
521.12Suebayasi  .bss :
531.12Suebayasi  AT (LOADADDR(.text) + (ADDR(.bss) - ADDR(.text)))
541.12Suebayasi  {
551.12Suebayasi    *(.bss)
561.12Suebayasi    *(.bss.*)
571.12Suebayasi    *(COMMON)
581.12Suebayasi    . = ALIGN(32 / 8);
591.12Suebayasi  }
601.12Suebayasi  . = ALIGN(32 / 8);
611.1Sthorpej  _end = . ;
621.5Spavel  PROVIDE (end = .) ;
631.6Schristos  .note.netbsd.ident :
641.6Schristos  {
651.6Schristos    KEEP(*(.note.netbsd.ident));
661.6Schristos  }
671.1Sthorpej}
68