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