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