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