kern.ldscript revision 1.7
11.5Suebayasi/* $NetBSD: kern.ldscript,v 1.7 2015/08/21 04:13:23 uebayasi 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 start: */ 101.7Suebayasi .start : 111.1Sthorpej { 121.1Sthorpej *(.start) 131.7Suebayasi } 141.1Sthorpej 151.1Sthorpej /* Read-only sections, merged into text segment: */ 161.7Suebayasi .text : 171.1Sthorpej { 181.1Sthorpej *(.text) 191.1Sthorpej *(.text.*) 201.1Sthorpej *(.stub) 211.1Sthorpej *(.glue_7t) *(.glue_7) 221.1Sthorpej *(.rodata) *(.rodata.*) 231.7Suebayasi } 241.4Smatt .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } 251.4Smatt PROVIDE (__exidx_start = .); 261.4Smatt .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } 271.4Smatt PROVIDE (__exidx_end = .); 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.1Sthorpej { 361.1Sthorpej __data_start = . ; 371.1Sthorpej *(.data) 381.1Sthorpej *(.data.*) 391.1Sthorpej } 401.3Suwe .sdata : 411.1Sthorpej { 421.5Suebayasi *(.sdata) 431.1Sthorpej *(.sdata.*) 441.1Sthorpej } 451.1Sthorpej _edata = .; 461.1Sthorpej PROVIDE (edata = .); 471.1Sthorpej __bss_start = .; 481.1Sthorpej __bss_start__ = .; 491.1Sthorpej .sbss : 501.1Sthorpej { 511.1Sthorpej PROVIDE (__sbss_start = .); 521.1Sthorpej PROVIDE (___sbss_start = .); 531.1Sthorpej *(.dynsbss) 541.1Sthorpej *(.sbss) 551.1Sthorpej *(.sbss.*) 561.1Sthorpej *(.scommon) 571.1Sthorpej PROVIDE (__sbss_end = .); 581.1Sthorpej PROVIDE (___sbss_end = .); 591.1Sthorpej } 601.1Sthorpej .bss : 611.1Sthorpej { 621.6Suebayasi *(.dynbss) 631.6Suebayasi *(.bss) 641.6Suebayasi *(.bss.*) 651.6Suebayasi *(COMMON) 661.6Suebayasi /* Align here to ensure that the .bss section occupies space up to 671.6Suebayasi _end. Align after .bss to ensure correct alignment even if the 681.6Suebayasi .bss section disappears because there are no input sections. */ 691.6Suebayasi . = ALIGN(32 / 8); 701.1Sthorpej } 711.1Sthorpej . = ALIGN(32 / 8); 721.1Sthorpej _end = .; 731.1Sthorpej _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; 741.1Sthorpej PROVIDE (end = .); 751.1Sthorpej} 761.7SuebayasiSECTIONS 771.7Suebayasi{ 781.7Suebayasi KERNEL_BASE_phys = 0x0000c000; 791.7Suebayasi KERNEL_BASE_virt = 0xf000c000; 801.7Suebayasi 811.7Suebayasi .start (KERNEL_BASE_phys) : 821.7Suebayasi { 831.7Suebayasi *(.start) 841.7Suebayasi } =0 851.7Suebayasi 861.7Suebayasi .text (KERNEL_BASE_virt + SIZEOF(.start)) : 871.7Suebayasi AT (LOADADDR(.start) + SIZEOF(.start)) 881.7Suebayasi { 891.7Suebayasi *(.text) 901.7Suebayasi } =0 911.7Suebayasi} 92