1/* ld script to make m68k Linux kernel */
2
3#include <asm-generic/vmlinux.lds.h>
4#include <asm/page.h>
5
6OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
7OUTPUT_ARCH(m68k)
8ENTRY(_start)
9jiffies = jiffies_64 + 4;
10SECTIONS
11{
12  . = 0xE002000;
13  _text = .;			/* Text and read-only data */
14  .text : {
15	*(.text.head)
16	TEXT_TEXT
17	SCHED_TEXT
18	LOCK_TEXT
19	*(.fixup)
20	*(.gnu.warning)
21	} :text = 0x4e75
22	RODATA
23
24  _etext = .;			/* End of text section */
25
26  .data : {			/* Data */
27	DATA_DATA
28	CONSTRUCTORS
29	. = ALIGN(16);		/* Exception table */
30	__start___ex_table = .;
31	*(__ex_table)
32	__stop___ex_table = .;
33	} :data
34  /* End of data goes *here* so that freeing init code works properly. */
35  _edata = .;
36
37  /* will be freed after init */
38  . = ALIGN(PAGE_SIZE);	/* Init code and data */
39__init_begin = .;
40	.init.text : {
41		_sinittext = .;
42		INIT_TEXT
43		_einittext = .;
44	}
45	.init.data : { INIT_DATA }
46	. = ALIGN(16);
47	__setup_start = .;
48	.init.setup : { *(.init.setup) }
49	__setup_end = .;
50	__initcall_start = .;
51	.initcall.init : {
52		INITCALLS
53	}
54	__initcall_end = .;
55	__con_initcall_start = .;
56	.con_initcall.init : { *(.con_initcall.init) }
57	__con_initcall_end = .;
58	.m68k_fixup : {
59		__start_fixup = .;
60		*(.m68k_fixup)
61		__stop_fixup = .;
62	}
63	SECURITY_INIT
64#ifdef CONFIG_BLK_DEV_INITRD
65	. = ALIGN(PAGE_SIZE);
66	__initramfs_start = .;
67	.init.ramfs : { *(.init.ramfs) }
68	__initramfs_end = .;
69#endif
70	. = ALIGN(PAGE_SIZE);
71	__init_end = .;
72	.data.init.task : { *(.data.init_task) }
73
74
75  .bss : { *(.bss) }		/* BSS */
76
77  _end = . ;
78
79  /* Sections to be discarded */
80  /DISCARD/ : {
81	EXIT_TEXT
82	EXIT_DATA
83	*(.exitcall.exit)
84	}
85
86  .crap : {
87	/* Stabs debugging sections.  */
88	*(.stab)
89	*(.stabstr)
90	*(.stab.excl)
91	*(.stab.exclstr)
92	*(.stab.index)
93	*(.stab.indexstr)
94	*(.comment)
95	*(.note)
96  }
97
98}
99