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  NOTES
37
38  /* will be freed after init */
39  . = ALIGN(PAGE_SIZE);	/* Init code and data */
40__init_begin = .;
41	.init.text : {
42		_sinittext = .;
43		INIT_TEXT
44		_einittext = .;
45	}
46	.init.data : { INIT_DATA }
47	. = ALIGN(16);
48	__setup_start = .;
49	.init.setup : { *(.init.setup) }
50	__setup_end = .;
51	__initcall_start = .;
52	.initcall.init : {
53		INITCALLS
54	}
55	__initcall_end = .;
56	__con_initcall_start = .;
57	.con_initcall.init : { *(.con_initcall.init) }
58	__con_initcall_end = .;
59	.m68k_fixup : {
60		__start_fixup = .;
61		*(.m68k_fixup)
62		__stop_fixup = .;
63	}
64	SECURITY_INIT
65#ifdef CONFIG_BLK_DEV_INITRD
66	. = ALIGN(PAGE_SIZE);
67	__initramfs_start = .;
68	.init.ramfs : { *(.init.ramfs) }
69	__initramfs_end = .;
70#endif
71	. = ALIGN(PAGE_SIZE);
72	__init_end = .;
73	.data.init.task : { *(.data.init_task) }
74
75
76  .bss : { *(.bss) }		/* BSS */
77
78  _end = . ;
79
80  /* Sections to be discarded */
81  /DISCARD/ : {
82	EXIT_TEXT
83	EXIT_DATA
84	*(.exitcall.exit)
85	}
86
87  .crap : {
88	/* Stabs debugging sections.  */
89	*(.stab)
90	*(.stabstr)
91	*(.stab.excl)
92	*(.stab.exclstr)
93	*(.stab.index)
94	*(.stab.indexstr)
95	*(.comment)
96	*(.note)
97  }
98
99}
100