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