kern.ldscript revision 1.3
11.3Smatt/* $NetBSD: kern.ldscript,v 1.3 2011/01/23 17:38:37 matt Exp $ */
21.2Smatt
31.2Smatt/*  ldscript for NetBSD/powerpc kernels and LKMs */
41.2SmattOUTPUT_ARCH(powerpc)
51.2SmattENTRY(_start)
61.2SmattSEARCH_DIR(/lib);
71.2Smatt/* Do we need any of these?
81.2Smatt   __DYNAMIC = 0;    */
91.2Smatt_DYNAMIC_LINK = 0;
101.2SmattSECTIONS
111.2Smatt{
121.2Smatt  /*  Read-only sections, merged into text segment.  Assumes the
131.2Smatt      kernel Makefile sets the start address via -Ttext.  */
141.2Smatt  .text      :
151.2Smatt  {
161.2Smatt    _ftext = . ;
171.2Smatt    *(.text)
181.2Smatt    __stub_start = .;
191.2Smatt    *(.stub)
201.2Smatt    __stub_end = .;
211.2Smatt    *(.gnu.warning)
221.2Smatt  } =0
231.2Smatt  _etext = .;
241.2Smatt  PROVIDE (etext = .);
251.2Smatt  .rodata    : { *(.rodata) *(.rodata.*) }
261.2Smatt  .reginfo : { *(.reginfo) }
271.2Smatt/*  . = . + 0x1000; */
281.2Smatt  .data    :
291.2Smatt  {
301.2Smatt    _fdata = . ;
311.2Smatt    *(.data)
321.2Smatt    CONSTRUCTORS
331.2Smatt  }
341.3Smatt  .data1			: { *(.data1) }
351.3Smatt  . = ALIGN(32);	/* COHERENCY UNIT */
361.3Smatt  .data.cacheline_aligned	: { *(.data.cacheline_aligned) }
371.3Smatt  . = ALIGN(32);	/* COHERENCY UNIT */
381.3Smatt  .data.read_mostly		: { *(.data.read_mostly) }
391.3Smatt  . = ALIGN(32);	/* COHERENCY UNIT */
401.2Smatt  _gp = ALIGN(16) + 0x7ff0;
411.2Smatt  .lit8 : { *(.lit8) }
421.2Smatt  .lit4 : { *(.lit4) }
431.2Smatt  .sdata     : { *(.sdata) }
441.2Smatt  _edata  =  .;
451.2Smatt  PROVIDE (edata = .);
461.2Smatt  __bss_start = .;
471.2Smatt  _fbss = .;
481.2Smatt  .sbss      : { *(.sbss) *(.scommon) }
491.2Smatt  .bss       :
501.2Smatt  {
511.2Smatt   *(.bss)
521.2Smatt   *(COMMON)
531.2Smatt  }
541.2Smatt  _end = . ;
551.2Smatt  PROVIDE (end = .);
561.2Smatt  /* These are needed for ELF backends which have not yet been
571.2Smatt     converted to the new style linker.  */
581.2Smatt  .stab 0 : { *(.stab) }
591.2Smatt  .stabstr 0 : { *(.stabstr) }
601.2Smatt  /* DWARF debug sections.
611.2Smatt     Symbols in the .debug DWARF section are relative to the beginning of the
621.2Smatt     section so we begin .debug at 0.  It's not clear yet what needs to happen
631.2Smatt     for the others.   */
641.2Smatt  .debug          0 : { *(.debug) }
651.2Smatt  .debug_srcinfo  0 : { *(.debug_srcinfo) }
661.2Smatt  .debug_aranges  0 : { *(.debug_aranges) }
671.2Smatt  .debug_pubnames 0 : { *(.debug_pubnames) }
681.2Smatt  .debug_sfnames  0 : { *(.debug_sfnames) }
691.2Smatt  .line           0 : { *(.line) }
701.2Smatt  /* These must appear regardless of  .  */
711.2Smatt  .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
721.2Smatt  .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
731.2Smatt}
74