1*1da177e4SLinus Torvalds/* ld script to make SparcLinux kernel */ 2*1da177e4SLinus Torvalds 3*1da177e4SLinus Torvalds#include <asm-generic/vmlinux.lds.h> 4*1da177e4SLinus Torvalds 5*1da177e4SLinus TorvaldsOUTPUT_FORMAT("elf32-sparc", "elf32-sparc", "elf32-sparc") 6*1da177e4SLinus TorvaldsOUTPUT_ARCH(sparc) 7*1da177e4SLinus TorvaldsENTRY(_start) 8*1da177e4SLinus Torvaldsjiffies = jiffies_64 + 4; 9*1da177e4SLinus TorvaldsSECTIONS 10*1da177e4SLinus Torvalds{ 11*1da177e4SLinus Torvalds . = 0x10000 + SIZEOF_HEADERS; 12*1da177e4SLinus Torvalds .text 0xf0004000 : 13*1da177e4SLinus Torvalds { 14*1da177e4SLinus Torvalds *(.text) 15*1da177e4SLinus Torvalds SCHED_TEXT 16*1da177e4SLinus Torvalds LOCK_TEXT 17*1da177e4SLinus Torvalds *(.gnu.warning) 18*1da177e4SLinus Torvalds } =0 19*1da177e4SLinus Torvalds _etext = .; 20*1da177e4SLinus Torvalds PROVIDE (etext = .); 21*1da177e4SLinus Torvalds RODATA 22*1da177e4SLinus Torvalds .data : 23*1da177e4SLinus Torvalds { 24*1da177e4SLinus Torvalds *(.data) 25*1da177e4SLinus Torvalds CONSTRUCTORS 26*1da177e4SLinus Torvalds } 27*1da177e4SLinus Torvalds .data1 : { *(.data1) } 28*1da177e4SLinus Torvalds _edata = .; 29*1da177e4SLinus Torvalds PROVIDE (edata = .); 30*1da177e4SLinus Torvalds __start___fixup = .; 31*1da177e4SLinus Torvalds .fixup : { *(.fixup) } 32*1da177e4SLinus Torvalds __stop___fixup = .; 33*1da177e4SLinus Torvalds __start___ex_table = .; 34*1da177e4SLinus Torvalds __ex_table : { *(__ex_table) } 35*1da177e4SLinus Torvalds __stop___ex_table = .; 36*1da177e4SLinus Torvalds 37*1da177e4SLinus Torvalds . = ALIGN(4096); 38*1da177e4SLinus Torvalds __init_begin = .; 39*1da177e4SLinus Torvalds .init.text : { 40*1da177e4SLinus Torvalds _sinittext = .; 41*1da177e4SLinus Torvalds *(.init.text) 42*1da177e4SLinus Torvalds _einittext = .; 43*1da177e4SLinus Torvalds } 44*1da177e4SLinus Torvalds __init_text_end = .; 45*1da177e4SLinus Torvalds .init.data : { *(.init.data) } 46*1da177e4SLinus Torvalds . = ALIGN(16); 47*1da177e4SLinus Torvalds __setup_start = .; 48*1da177e4SLinus Torvalds .init.setup : { *(.init.setup) } 49*1da177e4SLinus Torvalds __setup_end = .; 50*1da177e4SLinus Torvalds __initcall_start = .; 51*1da177e4SLinus Torvalds .initcall.init : { 52*1da177e4SLinus Torvalds *(.initcall1.init) 53*1da177e4SLinus Torvalds *(.initcall2.init) 54*1da177e4SLinus Torvalds *(.initcall3.init) 55*1da177e4SLinus Torvalds *(.initcall4.init) 56*1da177e4SLinus Torvalds *(.initcall5.init) 57*1da177e4SLinus Torvalds *(.initcall6.init) 58*1da177e4SLinus Torvalds *(.initcall7.init) 59*1da177e4SLinus Torvalds } 60*1da177e4SLinus Torvalds __initcall_end = .; 61*1da177e4SLinus Torvalds __con_initcall_start = .; 62*1da177e4SLinus Torvalds .con_initcall.init : { *(.con_initcall.init) } 63*1da177e4SLinus Torvalds __con_initcall_end = .; 64*1da177e4SLinus Torvalds SECURITY_INIT 65*1da177e4SLinus Torvalds . = ALIGN(4096); 66*1da177e4SLinus Torvalds __initramfs_start = .; 67*1da177e4SLinus Torvalds .init.ramfs : { *(.init.ramfs) } 68*1da177e4SLinus Torvalds __initramfs_end = .; 69*1da177e4SLinus Torvalds . = ALIGN(32); 70*1da177e4SLinus Torvalds __per_cpu_start = .; 71*1da177e4SLinus Torvalds .data.percpu : { *(.data.percpu) } 72*1da177e4SLinus Torvalds __per_cpu_end = .; 73*1da177e4SLinus Torvalds . = ALIGN(4096); 74*1da177e4SLinus Torvalds __init_end = .; 75*1da177e4SLinus Torvalds . = ALIGN(32); 76*1da177e4SLinus Torvalds .data.cacheline_aligned : { *(.data.cacheline_aligned) } 77*1da177e4SLinus Torvalds 78*1da177e4SLinus Torvalds __bss_start = .; 79*1da177e4SLinus Torvalds .sbss : { *(.sbss) *(.scommon) } 80*1da177e4SLinus Torvalds .bss : 81*1da177e4SLinus Torvalds { 82*1da177e4SLinus Torvalds *(.dynbss) 83*1da177e4SLinus Torvalds *(.bss) 84*1da177e4SLinus Torvalds *(COMMON) 85*1da177e4SLinus Torvalds } 86*1da177e4SLinus Torvalds _end = . ; 87*1da177e4SLinus Torvalds PROVIDE (end = .); 88*1da177e4SLinus Torvalds /* Stabs debugging sections. */ 89*1da177e4SLinus Torvalds .stab 0 : { *(.stab) } 90*1da177e4SLinus Torvalds .stabstr 0 : { *(.stabstr) } 91*1da177e4SLinus Torvalds .stab.excl 0 : { *(.stab.excl) } 92*1da177e4SLinus Torvalds .stab.exclstr 0 : { *(.stab.exclstr) } 93*1da177e4SLinus Torvalds .stab.index 0 : { *(.stab.index) } 94*1da177e4SLinus Torvalds .stab.indexstr 0 : { *(.stab.indexstr) } 95*1da177e4SLinus Torvalds .comment 0 : { *(.comment) } 96*1da177e4SLinus Torvalds .debug 0 : { *(.debug) } 97*1da177e4SLinus Torvalds .debug_srcinfo 0 : { *(.debug_srcinfo) } 98*1da177e4SLinus Torvalds .debug_aranges 0 : { *(.debug_aranges) } 99*1da177e4SLinus Torvalds .debug_pubnames 0 : { *(.debug_pubnames) } 100*1da177e4SLinus Torvalds .debug_sfnames 0 : { *(.debug_sfnames) } 101*1da177e4SLinus Torvalds .line 0 : { *(.line) } 102*1da177e4SLinus Torvalds /DISCARD/ : { *(.exit.text) *(.exit.data) *(.exitcall.exit) } 103*1da177e4SLinus Torvalds} 104