ldscript.elf revision 1.3
11.3Suebayasi/* $NetBSD: ldscript.elf,v 1.3 2015/08/20 06:48:25 uebayasi Exp $ */ 21.1Schris 31.1SchrisOUTPUT_ARCH(arm) 41.1SchrisENTRY(KERNEL_BASE_phys) 51.1SchrisSECTIONS 61.1Schris{ 71.1Schris KERNEL_BASE_phys = 0xF0000000; 81.1Schris KERNEL_BASE_virt = 0xF0000000; 91.1Schris 101.1Schris /* Kernel start: */ 111.1Schris .start (KERNEL_BASE_phys) : 121.1Schris { 131.1Schris *(.start) 141.1Schris } =0 151.1Schris 161.1Schris /* Read-only sections, merged into text segment: */ 171.1Schris .text (KERNEL_BASE_virt + SIZEOF(.start)) : 181.1Schris AT (LOADADDR(.start) + SIZEOF(.start)) 191.1Schris { 201.1Schris *(.text) 211.1Schris *(.text.*) 221.1Schris *(.stub) 231.1Schris *(.glue_7t) *(.glue_7) 241.1Schris *(.rodata) *(.rodata.*) 251.1Schris } =0 261.1Schris PROVIDE (__etext = .); 271.1Schris PROVIDE (_etext = .); 281.1Schris PROVIDE (etext = .); 291.1Schris /* Adjust the address for the data segment to start on the next page 301.1Schris boundary. */ 311.1Schris . = ALIGN(0x8000); 321.1Schris .data : 331.1Schris AT (LOADADDR(.text) + (ADDR(.data) - ADDR(.text))) 341.1Schris { 351.1Schris __data_start = . ; 361.1Schris *(.data) 371.1Schris *(.data.*) 381.1Schris } 391.3Suebayasi .sdata : 401.1Schris AT (LOADADDR(.data) + (ADDR(.sdata) - ADDR(.data))) 411.1Schris { 421.3Suebayasi *(.sdata) 431.1Schris *(.sdata.*) 441.1Schris } 451.1Schris _edata = .; 461.1Schris PROVIDE (edata = .); 471.1Schris __bss_start = .; 481.1Schris __bss_start__ = .; 491.1Schris .sbss : 501.1Schris { 511.1Schris PROVIDE (__sbss_start = .); 521.1Schris PROVIDE (___sbss_start = .); 531.1Schris *(.dynsbss) 541.1Schris *(.sbss) 551.1Schris *(.sbss.*) 561.1Schris *(.scommon) 571.1Schris PROVIDE (__sbss_end = .); 581.1Schris PROVIDE (___sbss_end = .); 591.1Schris } 601.1Schris .bss : 611.1Schris { 621.1Schris *(.dynbss) 631.1Schris *(.bss) 641.1Schris *(.bss.*) 651.1Schris *(COMMON) 661.1Schris /* Align here to ensure that the .bss section occupies space up to 671.1Schris _end. Align after .bss to ensure correct alignment even if the 681.1Schris .bss section disappears because there are no input sections. */ 691.1Schris . = ALIGN(32 / 8); 701.1Schris } 711.1Schris . = ALIGN(32 / 8); 721.1Schris _end = .; 731.1Schris _bss_end__ = . ; __bss_end__ = . ; __end__ = . ; 741.1Schris PROVIDE (end = .); 751.1Schris} 76