ldscript.elf revision 1.5
11.3Suebayasi/* $NetBSD: ldscript.elf,v 1.5 2015/08/21 03:42:29 uebayasi Exp $ */ 21.1Schris 31.1SchrisOUTPUT_ARCH(arm) 41.1SchrisENTRY(KERNEL_BASE_phys) 51.1SchrisSECTIONS 61.1Schris{ 71.1Schris /* Kernel start: */ 81.5Suebayasi .start : 91.1Schris { 101.1Schris *(.start) 111.5Suebayasi } 121.1Schris 131.1Schris /* Read-only sections, merged into text segment: */ 141.5Suebayasi .text : 151.1Schris { 161.1Schris *(.text) 171.1Schris *(.text.*) 181.1Schris *(.stub) 191.1Schris *(.glue_7t) *(.glue_7) 201.1Schris *(.rodata) *(.rodata.*) 211.5Suebayasi } 221.1Schris PROVIDE (__etext = .); 231.1Schris PROVIDE (_etext = .); 241.1Schris PROVIDE (etext = .); 251.1Schris /* Adjust the address for the data segment to start on the next page 261.1Schris boundary. */ 271.1Schris . = ALIGN(0x8000); 281.1Schris .data : 291.1Schris { 301.1Schris __data_start = . ; 311.1Schris *(.data) 321.1Schris *(.data.*) 331.1Schris } 341.3Suebayasi .sdata : 351.1Schris { 361.3Suebayasi *(.sdata) 371.1Schris *(.sdata.*) 381.1Schris } 391.1Schris _edata = .; 401.1Schris PROVIDE (edata = .); 411.1Schris __bss_start = .; 421.1Schris __bss_start__ = .; 431.1Schris .sbss : 441.1Schris { 451.1Schris PROVIDE (__sbss_start = .); 461.1Schris PROVIDE (___sbss_start = .); 471.1Schris *(.dynsbss) 481.1Schris *(.sbss) 491.1Schris *(.sbss.*) 501.1Schris *(.scommon) 511.1Schris PROVIDE (__sbss_end = .); 521.1Schris PROVIDE (___sbss_end = .); 531.1Schris } 541.1Schris .bss : 551.1Schris { 561.4Suebayasi *(.dynbss) 571.4Suebayasi *(.bss) 581.4Suebayasi *(.bss.*) 591.4Suebayasi *(COMMON) 601.4Suebayasi /* Align here to ensure that the .bss section occupies space up to 611.4Suebayasi _end. Align after .bss to ensure correct alignment even if the 621.4Suebayasi .bss section disappears because there are no input sections. */ 631.4Suebayasi . = ALIGN(32 / 8); 641.1Schris } 651.1Schris . = ALIGN(32 / 8); 661.1Schris _end = .; 671.1Schris _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; 681.1Schris PROVIDE (end = .); 691.1Schris} 701.5SuebayasiSECTIONS 711.5Suebayasi{ 721.5Suebayasi KERNEL_BASE_phys = 0xF0000000; 731.5Suebayasi KERNEL_BASE_virt = 0xF0000000; 741.5Suebayasi 751.5Suebayasi .start (KERNEL_BASE_phys) : 761.5Suebayasi { 771.5Suebayasi *(.start) 781.5Suebayasi } =0 791.5Suebayasi 801.5Suebayasi .text (KERNEL_BASE_virt + SIZEOF(.start)) : 811.5Suebayasi AT (LOADADDR(.start) + SIZEOF(.start)) 821.5Suebayasi { 831.5Suebayasi *(.text) 841.5Suebayasi } =0 851.5Suebayasi} 86