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