1 /* $Id: vmlinux.lds.S,v 1.4 1999/12/23 11:37:45 gniibe Exp $
2 * ld script to make SuperH Linux kernel
3 * Written by Niibe Yutaka
4 */
5 #include <linux/config.h>
6 #ifdef CONFIG_CPU_LITTLE_ENDIAN
7 OUTPUT_FORMAT("elf32-sh-linux", "elf32-sh-linux", "elf32-sh-linux")
8 #else
9 OUTPUT_FORMAT("elf32-shbig-linux", "elf32-shbig-linux", "elf32-shbig-linux")
10 #endif
11 OUTPUT_ARCH(sh)
12 ENTRY(_start)
13 SECTIONS
14 {
15 . = 0x80000000 + CONFIG_MEMORY_START + 0x1000;
16 _text = .; /* Text and read-only data */
17 text = .; /* Text and read-only data */
18 .empty_zero_page : {
19 *(.empty_zero_page)
20 } = 0
21 .text : {
22 *(.text)
23 *(.fixup)
24 *(.gnu.warning)
25 } = 0x0009
26 .text.lock : { *(.text.lock) } /* out-of-line lock text */
27 .rodata : { *(.rodata) }
28 .kstrtab : { *(.kstrtab) }
29
30 . = ALIGN(16); /* Exception table */
31 __start___ex_table = .;
32 __ex_table : { *(__ex_table) }
33 __stop___ex_table = .;
34
35 __start___ksymtab = .; /* Kernel symbol table */
36 __ksymtab : { *(__ksymtab) }
37 __stop___ksymtab = .;
38
39 __start___kallsyms = .; /* All kernel symbols */
40 __kallsyms : { *(__kallsyms) }
41 __stop___kallsyms = .;
42
43 _etext = .; /* End of text section */
44
45 .data : { /* Data */
46 *(.data)
47 CONSTRUCTORS
48 }
49
50 _edata = .; /* End of data section */
51
52 . = ALIGN(8192); /* init_task */
53 .data.init_task : { *(.data.init_task) }
54 /* stack */
55 .stack : { stack = .; _stack = .; }
56
57 . = ALIGN(4096); /* Init code and data */
58 __init_begin = .;
59 .text.init : { *(.text.init) }
60 .data.init : { *(.data.init) }
61 . = ALIGN(16);
62 __setup_start = .;
63 .setup.init : { *(.setup.init) }
64 __setup_end = .;
65 __initcall_start = .;
66 .initcall.init : { *(.initcall.init) }
67 __initcall_end = .;
68 __machvec_start = .;
69 .machvec.init : { *(.machvec.init) }
70 __machvec_end = .;
71 . = ALIGN(4096);
72 __init_end = .;
73
74 . = ALIGN(4096);
75 .data.page_aligned : { *(.data.idt) }
76
77 . = ALIGN(32);
78 .data.cacheline_aligned : { *(.data.cacheline_aligned) }
79
80 . = ALIGN(4);
81 __bss_start = .; /* BSS */
82 .bss : {
83 *(.bss)
84 }
85 . = ALIGN(4);
86 _end = . ;
87
88 /* When something in the kernel is NOT compiled as a module, the
89 * module cleanup code and data are put into these segments. Both
90 * can then be thrown away, as cleanup code is never called unless
91 * it's a module.
92 */
93 /DISCARD/ : {
94 *(.text.exit)
95 *(.data.exit)
96 *(.exitcall.exit)
97 }
98
99 /* Stabs debugging sections. */
100 .stab 0 : { *(.stab) }
101 .stabstr 0 : { *(.stabstr) }
102 .stab.excl 0 : { *(.stab.excl) }
103 .stab.exclstr 0 : { *(.stab.exclstr) }
104 .stab.index 0 : { *(.stab.index) }
105 .stab.indexstr 0 : { *(.stab.indexstr) }
106 .comment 0 : { *(.comment) }
107 /* DWARF debug sections.
108 Symbols in the DWARF debugging section are relative to the beginning
109 of the section so we begin .debug at 0. */
110 /* DWARF 1 */
111 .debug 0 : { *(.debug) }
112 .line 0 : { *(.line) }
113 /* GNU DWARF 1 extensions */
114 .debug_srcinfo 0 : { *(.debug_srcinfo) }
115 .debug_sfnames 0 : { *(.debug_sfnames) }
116 /* DWARF 1.1 and DWARF 2 */
117 .debug_aranges 0 : { *(.debug_aranges) }
118 .debug_pubnames 0 : { *(.debug_pubnames) }
119 /* DWARF 2 */
120 .debug_info 0 : { *(.debug_info) }
121 .debug_abbrev 0 : { *(.debug_abbrev) }
122 .debug_line 0 : { *(.debug_line) }
123 .debug_frame 0 : { *(.debug_frame) }
124 .debug_str 0 : { *(.debug_str) }
125 .debug_loc 0 : { *(.debug_loc) }
126 .debug_macinfo 0 : { *(.debug_macinfo) }
127 /* SGI/MIPS DWARF 2 extensions */
128 .debug_weaknames 0 : { *(.debug_weaknames) }
129 .debug_funcnames 0 : { *(.debug_funcnames) }
130 .debug_typenames 0 : { *(.debug_typenames) }
131 .debug_varnames 0 : { *(.debug_varnames) }
132 /* These must appear regardless of . */
133 }
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.