kern.ldscript revision 1.3
11.3Suwe/* $NetBSD: kern.ldscript,v 1.3 2003/06/11 21:49:40 uwe Exp $ */ 21.1Sthorpej 31.2SthorpejOUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", 41.2Sthorpej "elf32-littlearm") 51.1SthorpejOUTPUT_ARCH(arm) 61.1SthorpejENTRY(KERNEL_BASE_phys) 71.1SthorpejSECTIONS 81.1Sthorpej{ 91.1Sthorpej KERNEL_BASE_phys = 0x0000c000; 101.1Sthorpej KERNEL_BASE_virt = 0xf000c000; 111.1Sthorpej 121.1Sthorpej /* Kernel start: */ 131.1Sthorpej .start (KERNEL_BASE_phys) : 141.1Sthorpej { 151.1Sthorpej *(.start) 161.1Sthorpej } =0 171.1Sthorpej 181.1Sthorpej /* Read-only sections, merged into text segment: */ 191.1Sthorpej .text (KERNEL_BASE_virt + SIZEOF(.start)) : 201.1Sthorpej AT (LOADADDR(.start) + SIZEOF(.start)) 211.1Sthorpej { 221.1Sthorpej *(.text) 231.1Sthorpej *(.text.*) 241.1Sthorpej *(.stub) 251.1Sthorpej *(.glue_7t) *(.glue_7) 261.1Sthorpej *(.rodata) *(.rodata.*) 271.1Sthorpej } =0 281.1Sthorpej PROVIDE (__etext = .); 291.1Sthorpej PROVIDE (_etext = .); 301.1Sthorpej PROVIDE (etext = .); 311.1Sthorpej /* Adjust the address for the data segment to start on the next page 321.1Sthorpej boundary. */ 331.1Sthorpej . = ALIGN(0x8000); 341.1Sthorpej .data : 351.3Suwe AT (LOADADDR(.text) + (ADDR(.data) - ADDR(.text))) 361.1Sthorpej { 371.1Sthorpej __data_start = . ; 381.1Sthorpej *(.data) 391.1Sthorpej *(.data.*) 401.1Sthorpej } 411.3Suwe .sdata : 421.3Suwe AT (LOADADDR(.data) + (ADDR(.sdata) - ADDR(.data))) 431.1Sthorpej { 441.1Sthorpej *(.sdata) 451.1Sthorpej *(.sdata.*) 461.1Sthorpej } 471.1Sthorpej _edata = .; 481.1Sthorpej PROVIDE (edata = .); 491.1Sthorpej __bss_start = .; 501.1Sthorpej __bss_start__ = .; 511.1Sthorpej .sbss : 521.1Sthorpej { 531.1Sthorpej PROVIDE (__sbss_start = .); 541.1Sthorpej PROVIDE (___sbss_start = .); 551.1Sthorpej *(.dynsbss) 561.1Sthorpej *(.sbss) 571.1Sthorpej *(.sbss.*) 581.1Sthorpej *(.scommon) 591.1Sthorpej PROVIDE (__sbss_end = .); 601.1Sthorpej PROVIDE (___sbss_end = .); 611.1Sthorpej } 621.1Sthorpej .bss : 631.1Sthorpej { 641.1Sthorpej *(.dynbss) 651.1Sthorpej *(.bss) 661.1Sthorpej *(.bss.*) 671.1Sthorpej *(COMMON) 681.1Sthorpej /* Align here to ensure that the .bss section occupies space up to 691.1Sthorpej _end. Align after .bss to ensure correct alignment even if the 701.1Sthorpej .bss section disappears because there are no input sections. */ 711.1Sthorpej . = ALIGN(32 / 8); 721.1Sthorpej } 731.1Sthorpej . = ALIGN(32 / 8); 741.1Sthorpej _end = .; 751.1Sthorpej _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; 761.1Sthorpej PROVIDE (end = .); 771.1Sthorpej} 78