xref: /openbmc/linux/arch/sparc/kernel/vmlinux.lds.S (revision 0c0d345e2516dd6285834e6b0d54825e40823d5a)
11da177e4SLinus Torvalds/* ld script to make SparcLinux kernel */
21da177e4SLinus Torvalds
31da177e4SLinus Torvalds#include <asm-generic/vmlinux.lds.h>
41da177e4SLinus Torvalds
51da177e4SLinus TorvaldsOUTPUT_FORMAT("elf32-sparc", "elf32-sparc", "elf32-sparc")
61da177e4SLinus TorvaldsOUTPUT_ARCH(sparc)
71da177e4SLinus TorvaldsENTRY(_start)
81da177e4SLinus Torvaldsjiffies = jiffies_64 + 4;
91da177e4SLinus TorvaldsSECTIONS
101da177e4SLinus Torvalds{
111da177e4SLinus Torvalds  . = 0x10000 + SIZEOF_HEADERS;
121da177e4SLinus Torvalds  .text 0xf0004000 :
131da177e4SLinus Torvalds  {
14fd593d12SEric W. Biederman    _text = .;
157664709bSSam Ravnborg    TEXT_TEXT
161da177e4SLinus Torvalds    SCHED_TEXT
171da177e4SLinus Torvalds    LOCK_TEXT
181da177e4SLinus Torvalds    *(.gnu.warning)
191da177e4SLinus Torvalds  } =0
201da177e4SLinus Torvalds  _etext = .;
211da177e4SLinus Torvalds  PROVIDE (etext = .);
221da177e4SLinus Torvalds  RODATA
231da177e4SLinus Torvalds  .data    :
241da177e4SLinus Torvalds  {
25ca967258SSam Ravnborg    DATA_DATA
261da177e4SLinus Torvalds    CONSTRUCTORS
271da177e4SLinus Torvalds  }
281da177e4SLinus Torvalds  .data1   : { *(.data1) }
291da177e4SLinus Torvalds  _edata  =  .;
301da177e4SLinus Torvalds  PROVIDE (edata = .);
311da177e4SLinus Torvalds  __start___fixup = .;
321da177e4SLinus Torvalds  .fixup   : { *(.fixup) }
331da177e4SLinus Torvalds  __stop___fixup = .;
341da177e4SLinus Torvalds  __start___ex_table = .;
351da177e4SLinus Torvalds  __ex_table : { *(__ex_table) }
361da177e4SLinus Torvalds  __stop___ex_table = .;
371da177e4SLinus Torvalds
38*0c0d345eSDavid S. Miller  NOTES
39*0c0d345eSDavid S. Miller
401da177e4SLinus Torvalds  . = ALIGN(4096);
411da177e4SLinus Torvalds  __init_begin = .;
421da177e4SLinus Torvalds  _sinittext = .;
43ab5da288SMartin Habets  .init.text : {
441da177e4SLinus Torvalds	*(.init.text)
451da177e4SLinus Torvalds  }
46ab5da288SMartin Habets  _einittext = .;
471da177e4SLinus Torvalds  __init_text_end = .;
481da177e4SLinus Torvalds  .init.data : { *(.init.data) }
491da177e4SLinus Torvalds  . = ALIGN(16);
501da177e4SLinus Torvalds  __setup_start = .;
511da177e4SLinus Torvalds  .init.setup : { *(.init.setup) }
521da177e4SLinus Torvalds  __setup_end = .;
531da177e4SLinus Torvalds  __initcall_start = .;
541da177e4SLinus Torvalds  .initcall.init : {
5561ce1efeSAndrew Morton	INITCALLS
561da177e4SLinus Torvalds  }
571da177e4SLinus Torvalds  __initcall_end = .;
581da177e4SLinus Torvalds  __con_initcall_start = .;
591da177e4SLinus Torvalds  .con_initcall.init : { *(.con_initcall.init) }
601da177e4SLinus Torvalds  __con_initcall_end = .;
611da177e4SLinus Torvalds  SECURITY_INIT
6267d38229SJean-Paul Saman
6367d38229SJean-Paul Saman#ifdef CONFIG_BLK_DEV_INITRD
641da177e4SLinus Torvalds  . = ALIGN(4096);
651da177e4SLinus Torvalds  __initramfs_start = .;
661da177e4SLinus Torvalds  .init.ramfs : { *(.init.ramfs) }
671da177e4SLinus Torvalds  __initramfs_end = .;
6867d38229SJean-Paul Saman#endif
6967d38229SJean-Paul Saman
705fb7dc37SFenghua Yu  PERCPU(4096)
711da177e4SLinus Torvalds  . = ALIGN(4096);
721da177e4SLinus Torvalds  __init_end = .;
731da177e4SLinus Torvalds  . = ALIGN(32);
741da177e4SLinus Torvalds  .data.cacheline_aligned : { *(.data.cacheline_aligned) }
751da177e4SLinus Torvalds
761da177e4SLinus Torvalds  __bss_start = .;
771da177e4SLinus Torvalds  .sbss      : { *(.sbss) *(.scommon) }
781da177e4SLinus Torvalds  .bss       :
791da177e4SLinus Torvalds  {
801da177e4SLinus Torvalds   *(.dynbss)
811da177e4SLinus Torvalds   *(.bss)
821da177e4SLinus Torvalds   *(COMMON)
831da177e4SLinus Torvalds  }
841da177e4SLinus Torvalds  _end = . ;
851da177e4SLinus Torvalds  PROVIDE (end = .);
861da177e4SLinus Torvalds  /DISCARD/ : { *(.exit.text) *(.exit.data) *(.exitcall.exit) }
87d5784b57SDavid S. Miller
88d5784b57SDavid S. Miller  STABS_DEBUG
89d5784b57SDavid S. Miller
90d5784b57SDavid S. Miller  DWARF_DEBUG
911da177e4SLinus Torvalds}
92