Home | History | Annotate | Line # | Download | only in conf
      1 /*	$NetBSD: kern.ldscript,v 1.1 2021/05/05 01:35:35 thorpej Exp $	*/
      2 
      3 /*
      4  * Linker script for the NetBSD/alpha kernel.
      5  *
      6  * This largely behaves the same as the standard elf64-alpha linker
      7  * script for "ld -N"; the kernel is loaded into K0SEG, so there is
      8  * no reason to page-align the .data segment.
      9  */
     10 
     11 #include "assym.h"	/* for COHERENCY_UNIT */
     12 
     13 OUTPUT_FORMAT("elf64-alpha", "elf64-alpha",
     14 	      "elf64-alpha")
     15 OUTPUT_ARCH(alpha)
     16 SECTIONS
     17 {
     18 	.text	:
     19 	{
     20 		*(.text)
     21 		*(.text.*)
     22 		*(.stub)
     23 	} =0x47ff041f
     24 	_etext = . ;
     25 	PROVIDE (etext = .);
     26 
     27 	.rodata	:
     28 	{
     29 		*(.rodata .rodata.*)
     30 	}
     31 
     32 	.data	:
     33 	{
     34 		*(.data)
     35 
     36 		. = ALIGN(COHERENCY_UNIT);
     37 		*(.data.cacheline_aligned)
     38 
     39 		. = ALIGN(COHERENCY_UNIT);
     40 		*(.data.read_mostly)
     41 
     42 		. = ALIGN(COHERENCY_UNIT);
     43 		*(.data.*)
     44 	}
     45 
     46 	/*
     47 	 * Small-data located along side GOT and small-bss for
     48 	 * GP-relative addressing.
     49 	 */
     50 
     51 	.got	:
     52 	{
     53 		*(.got)
     54 	}
     55 
     56 	.sdata	:
     57 	{
     58 		*(.sdata .sdata.*)
     59 	}
     60 	_edata = . ;
     61 	PROVIDE (edata = .) ;
     62 
     63 	. = .;
     64 	__bss_start = .;
     65 	.sbss	:
     66 	{
     67 		*(.sbss .sbss.*)
     68 		*(.scommon)
     69 	}
     70 
     71 	.bss	:
     72 	{
     73 		*(.bss .bss.*)
     74 		*(COMMON)
     75 	}
     76 
     77 	/* End of the kernel image */
     78 	__kernel_end = . ;
     79 	_end = . ;
     80 	PROVIDE (end = .) ;
     81 
     82 	.note.netbsd.ident :
     83 	{
     84 		KEEP(*(.note.netbsd.ident));
     85 	}
     86 }
     87