Home | History | Annotate | Line # | Download | only in conf
kern.ldscript revision 1.8.8.1
      1  1.8.8.1      yamt /*	$NetBSD: kern.ldscript,v 1.8.8.1 2012/10/30 17:19:48 yamt 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.8.8.1      yamt 
     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.5     pavel    }
     36      1.8       mjf    . = ALIGN(64);	/* COHERENCY_UNIT */
     37      1.8       mjf    .data.cacheline_aligned :
     38      1.8       mjf    AT (LOADADDR(.text) + (ADDR(.data.cacheline_aligned) - ADDR(.text)))
     39      1.8       mjf    {
     40      1.8       mjf      *(.data.cacheline_aligned)
     41      1.8       mjf    }
     42      1.8       mjf    . = ALIGN(64);	/* COHERENCY_UNIT */
     43      1.8       mjf    .data.read_mostly :
     44      1.8       mjf    AT (LOADADDR(.text) + (ADDR(.data.read_mostly) - ADDR(.text)))
     45      1.8       mjf    {
     46      1.8       mjf      *(.data.read_mostly)
     47      1.8       mjf    }
     48      1.8       mjf    . = ALIGN(64);	/* COHERENCY_UNIT */
     49      1.5     pavel    _edata = . ;
     50      1.5     pavel    PROVIDE (edata = .) ;
     51      1.5     pavel    __bss_start = . ;
     52      1.5     pavel    .bss :
     53      1.5     pavel    AT (LOADADDR(.text) + (ADDR(.bss) - ADDR(.text)))
     54      1.5     pavel    {
     55      1.5     pavel      *(.bss)
     56      1.5     pavel      *(.bss.*)
     57      1.5     pavel      *(COMMON)
     58      1.5     pavel      . = ALIGN(32 / 8);
     59      1.5     pavel    }
     60      1.5     pavel    . = ALIGN(32 / 8);
     61      1.1   thorpej   _end = . ;
     62      1.5     pavel   PROVIDE (end = .) ;
     63      1.6  christos   .note.netbsd.ident :
     64      1.6  christos   {
     65      1.6  christos     KEEP(*(.note.netbsd.ident));
     66      1.6  christos   }
     67      1.1   thorpej }
     68