1/* $NetBSD: ldscript.epoc32,v 1.8 2023/02/11 22:42:20 mlelstv Exp $ */ 2 3ENTRY(KERNEL_BASE_phys) 4SECTIONS 5{ 6 KERNEL_BASE_phys = @KERNEL_BASE_PHYS@; 7 KERNEL_BASE_virt = @KERNEL_BASE_VIRT@; 8 9 /* Kernel start: */ 10 .start (KERNEL_BASE_phys) : 11 { 12 *(.start) 13 } 14 15 /* Read-only sections, merged into text segment: */ 16 .text (KERNEL_BASE_virt + SIZEOF(.start)) : 17 AT (LOADADDR(.start) + SIZEOF(.start)) 18 { 19 *(.text) 20 *(.text.*) 21 *(.stub) 22 *(.glue_7t) *(.glue_7) 23 *(.rodata) *(.rodata.*) 24 } 25 PROVIDE (__etext = .); 26 PROVIDE (_etext = .); 27 PROVIDE (etext = .); 28 /* Adjust the address for the data segment to start on the next page 29 boundary. */ 30 . = ALIGN(0x8000); 31 .data : 32 { 33 __data_start = . ; 34 *(.data) 35 *(.data.*) 36 } 37 .sdata : 38 { 39 *(.sdata) 40 *(.sdata.*) 41 } 42 _edata = .; 43 PROVIDE (edata = .); 44 __bss_start = .; 45 __bss_start__ = .; 46 .sbss : 47 { 48 PROVIDE (__sbss_start = .); 49 PROVIDE (___sbss_start = .); 50 *(.dynsbss) 51 *(.sbss) 52 *(.sbss.*) 53 *(.scommon) 54 PROVIDE (__sbss_end = .); 55 PROVIDE (___sbss_end = .); 56 } 57 .bss : 58 { 59 *(.dynbss) 60 *(.bss) 61 *(.bss.*) 62 *(COMMON) 63 /* Align here to ensure that the .bss section occupies space up to 64 _end. Align after .bss to ensure correct alignment even if the 65 .bss section disappears because there are no input sections. */ 66 . = ALIGN(32 / 8); 67 } 68 . = ALIGN(32 / 8); 69 _end = .; 70 _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; 71 PROVIDE (end = .); 72 .note.netbsd.ident : 73 { 74 KEEP(*(.note.netbsd.ident)); 75 } 76} 77