kern.ldscript revision 1.11
11.9Suebayasi/*	$NetBSD: kern.ldscript,v 1.11 2015/08/20 08:36:42 uebayasi Exp $	*/
21.1Sfvdl
31.1SfvdlOUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
41.1Sfvdl	      "elf64-x86-64")
51.1SfvdlOUTPUT_ARCH(i386:x86-64)
61.1SfvdlENTRY(_start)
71.1SfvdlSECTIONS
81.1Sfvdl{
91.10Suebayasi  /* Read-only sections, merged into text segment: */
101.10Suebayasi  .text :
111.10Suebayasi  {
121.10Suebayasi    *(.text)
131.10Suebayasi    *(.text.*)
141.10Suebayasi    *(.stub)
151.10Suebayasi  } =0
161.10Suebayasi  _etext = . ;
171.10Suebayasi  PROVIDE (etext = .) ;
181.2Schristos
191.10Suebayasi  .rodata :
201.10Suebayasi  {
211.10Suebayasi    *(.rodata)
221.10Suebayasi    *(.rodata.*)
231.10Suebayasi  }
241.9Suebayasi
251.10Suebayasi  /* Adjust the address for the data segment.  We want to adjust up to
261.10Suebayasi     the same address within the page on the next page up.  */
271.10Suebayasi  . = ALIGN(0x100000) + (. & (0x100000 - 1));
281.10Suebayasi  __data_start = . ;
291.10Suebayasi  .data :
301.10Suebayasi  {
311.10Suebayasi    *(.data)
321.10Suebayasi  }
331.8Suebayasi
341.10Suebayasi  . = ALIGN(64);	/* COHERENCY_UNIT */
351.10Suebayasi  .data.cacheline_aligned :
361.10Suebayasi  {
371.10Suebayasi    *(.data.cacheline_aligned)
381.10Suebayasi  }
391.10Suebayasi  . = ALIGN(64);	/* COHERENCY_UNIT */
401.10Suebayasi  .data.read_mostly :
411.10Suebayasi  {
421.10Suebayasi    *(.data.read_mostly)
431.10Suebayasi  }
441.10Suebayasi  . = ALIGN(64);	/* COHERENCY_UNIT */
451.8Suebayasi
461.10Suebayasi  _edata = . ;
471.10Suebayasi  PROVIDE (edata = .) ;
481.10Suebayasi  __bss_start = . ;
491.10Suebayasi  .bss :
501.10Suebayasi  {
511.10Suebayasi    *(.bss)
521.10Suebayasi    *(.bss.*)
531.10Suebayasi    *(COMMON)
541.10Suebayasi    . = ALIGN(64 / 8);
551.10Suebayasi  }
561.10Suebayasi  . = ALIGN(64 / 8);
571.2Schristos  _end = . ;
581.2Schristos  PROVIDE (end = .) ;
591.2Schristos  .note.netbsd.ident :
601.1Sfvdl  {
611.2Schristos    KEEP(*(.note.netbsd.ident));
621.1Sfvdl  }
631.1Sfvdl}
641.11SuebayasiSECTIONS
651.11Suebayasi{
661.11Suebayasi  .text :
671.11Suebayasi  AT (ADDR(.text) & 0x0fffffff)
681.11Suebayasi  {
691.11Suebayasi    *(.text)
701.11Suebayasi  } =0
711.11Suebayasi}
72