blob: c42245775a4db9d520df660424c6c7e690480beb [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/* ld script to make m68k Linux kernel */
2
3#include <asm-generic/vmlinux.lds.h>
4
5OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
6OUTPUT_ARCH(m68k)
7ENTRY(_start)
8jiffies = jiffies_64 + 4;
9SECTIONS
10{
11 . = 0x1000;
12 _text = .; /* Text and read-only data */
13 .text : {
Al Viro7e5de052007-07-20 04:33:08 +010014 *(.text.head)
Sam Ravnborg76647092007-05-13 00:31:33 +020015 TEXT_TEXT
Linus Torvalds1da177e2005-04-16 15:20:36 -070016 SCHED_TEXT
Al Viro198a4102006-01-12 01:06:11 -080017 LOCK_TEXT
Linus Torvalds1da177e2005-04-16 15:20:36 -070018 *(.fixup)
19 *(.gnu.warning)
20 } :text = 0x4e75
21
22 . = ALIGN(16); /* Exception table */
23 __start___ex_table = .;
24 __ex_table : { *(__ex_table) }
25 __stop___ex_table = .;
26
27 RODATA
28
29 _etext = .; /* End of text section */
30
31 .data : { /* Data */
Sam Ravnborgca967252007-05-17 13:38:44 +020032 DATA_DATA
Linus Torvalds1da177e2005-04-16 15:20:36 -070033 CONSTRUCTORS
34 }
35
36 .bss : { *(.bss) } /* BSS */
37
38 . = ALIGN(16);
39 .data.cacheline_aligned : { *(.data.cacheline_aligned) } :data
40
41 _edata = .; /* End of data section */
42
43 /* will be freed after init */
44 . = ALIGN(4096); /* Init code and data */
45 __init_begin = .;
46 .init.text : {
47 _sinittext = .;
48 *(.init.text)
49 _einittext = .;
50 }
51 .init.data : { *(.init.data) }
52 . = ALIGN(16);
53 __setup_start = .;
54 .init.setup : { *(.init.setup) }
55 __setup_end = .;
56 __initcall_start = .;
57 .initcall.init : {
Geert Uytterhoeven5fdb51a2006-10-29 11:21:51 +010058 INITCALLS
Linus Torvalds1da177e2005-04-16 15:20:36 -070059 }
60 __initcall_end = .;
61 __con_initcall_start = .;
62 .con_initcall.init : { *(.con_initcall.init) }
63 __con_initcall_end = .;
Roman Zippelfbe9c962007-05-31 00:40:50 -070064 .m68k_fixup : {
65 __start_fixup = .;
66 *(.m68k_fixup)
67 __stop_fixup = .;
68 }
Linus Torvalds1da177e2005-04-16 15:20:36 -070069 SECURITY_INIT
Jean-Paul Saman67d38222007-02-10 01:44:44 -080070#ifdef CONFIG_BLK_DEV_INITRD
Linus Torvalds1da177e2005-04-16 15:20:36 -070071 . = ALIGN(8192);
72 __initramfs_start = .;
73 .init.ramfs : { *(.init.ramfs) }
74 __initramfs_end = .;
Jean-Paul Saman67d38222007-02-10 01:44:44 -080075#endif
Linus Torvalds1da177e2005-04-16 15:20:36 -070076 . = ALIGN(8192);
77 __init_end = .;
78
79 .data.init_task : { *(.data.init_task) } /* The initial task and kernel stack */
80
81 _end = . ;
82
83 /* Sections to be discarded */
84 /DISCARD/ : {
85 *(.exit.text)
86 *(.exit.data)
87 *(.exitcall.exit)
88 }
89
90 /* Stabs debugging sections. */
91 .stab 0 : { *(.stab) }
92 .stabstr 0 : { *(.stabstr) }
93 .stab.excl 0 : { *(.stab.excl) }
94 .stab.exclstr 0 : { *(.stab.exclstr) }
95 .stab.index 0 : { *(.stab.index) }
96 .stab.indexstr 0 : { *(.stab.indexstr) }
97 .comment 0 : { *(.comment) }
98}