Home | History | Annotate | Line # | Download | only in conf
kern.ldscript revision 1.8
      1 /*	$NetBSD: kern.ldscript,v 1.8 2010/06/01 22:13:30 mjf Exp $	*/
      2 
      3 OUTPUT_FORMAT("elf32-i386", "elf32-i386",
      4 	      "elf32-i386")
      5 OUTPUT_ARCH(i386)
      6 ENTRY(_start)
      7 SECTIONS
      8 {
      9    /* Read-only sections, merged into text segment: */
     10    .text :
     11    AT (ADDR(.text) & 0x0fffffff)
     12    {
     13      *(.text)
     14      *(.text.*)
     15      *(.stub)
     16    } =0
     17    _etext = . ;
     18    PROVIDE (etext = .) ;
     19 
     20    .rodata :
     21    AT (LOADADDR(.text) + (ADDR(.rodata) - ADDR(.text)))
     22    {
     23      *(.rodata)
     24      *(.rodata.*)
     25    }
     26 
     27    /* Adjust the address for the data segment.  We want to adjust up to
     28       the same address within the page on the next page up.  */
     29    . = ALIGN(0x1000) + (. & (0x1000 - 1));
     30    __data_start = . ;
     31    .data :
     32    AT (LOADADDR(.text) + (ADDR(.data) - ADDR(.text)))
     33    {
     34      *(.data)
     35    }
     36    . = ALIGN(64);	/* COHERENCY_UNIT */
     37    .data.cacheline_aligned :
     38    AT (LOADADDR(.text) + (ADDR(.data.cacheline_aligned) - ADDR(.text)))
     39    {
     40      *(.data.cacheline_aligned)
     41    }
     42 
     43    . = ALIGN(64);	/* COHERENCY_UNIT */
     44    .data.read_mostly :
     45    AT (LOADADDR(.text) + (ADDR(.data.read_mostly) - ADDR(.text)))
     46    {
     47      *(.data.read_mostly)
     48    }
     49    . = ALIGN(64);	/* COHERENCY_UNIT */
     50    _edata = . ;
     51    PROVIDE (edata = .) ;
     52    __bss_start = . ;
     53    .bss :
     54    AT (LOADADDR(.text) + (ADDR(.bss) - ADDR(.text)))
     55    {
     56      *(.bss)
     57      *(.bss.*)
     58      *(COMMON)
     59      . = ALIGN(32 / 8);
     60    }
     61    . = ALIGN(32 / 8);
     62   _end = . ;
     63   PROVIDE (end = .) ;
     64   .note.netbsd.ident :
     65   {
     66     KEEP(*(.note.netbsd.ident));
     67   }
     68 }
     69