blob: a09a8a2383dd6827137d4942eeec1a31942fcb69 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/* ld script to make UltraLinux kernel */
2
3#include <asm-generic/vmlinux.lds.h>
4
5OUTPUT_FORMAT("elf64-sparc", "elf64-sparc", "elf64-sparc")
6OUTPUT_ARCH(sparc:v9a)
7ENTRY(_start)
8
9jiffies = jiffies_64;
10SECTIONS
11{
David S. Miller56425302005-09-25 16:46:57 -070012 swapper_low_pmd_dir = 0x0000000000402000;
Linus Torvalds1da177e2005-04-16 15:20:36 -070013 . = 0x4000;
14 .text 0x0000000000404000 :
15 {
16 *(.text)
17 SCHED_TEXT
18 LOCK_TEXT
Prasanna S Panchamukhi05e14cb2005-09-06 15:19:30 -070019 KPROBES_TEXT
Linus Torvalds1da177e2005-04-16 15:20:36 -070020 *(.gnu.warning)
21 } =0
22 _etext = .;
23 PROVIDE (etext = .);
24
25 RODATA
26
27 .data :
28 {
29 *(.data)
30 CONSTRUCTORS
31 }
32 .data1 : { *(.data1) }
33 . = ALIGN(64);
34 .data.cacheline_aligned : { *(.data.cacheline_aligned) }
David S. Millerd369ddd2005-07-10 15:45:11 -070035 . = ALIGN(64);
36 .data.read_mostly : { *(.data.read_mostly) }
Linus Torvalds1da177e2005-04-16 15:20:36 -070037 _edata = .;
38 PROVIDE (edata = .);
39 .fixup : { *(.fixup) }
40
41 . = ALIGN(16);
42 __start___ex_table = .;
43 __ex_table : { *(__ex_table) }
44 __stop___ex_table = .;
45
46 . = ALIGN(8192);
47 __init_begin = .;
48 .init.text : {
49 _sinittext = .;
50 *(.init.text)
51 _einittext = .;
52 }
53 .init.data : { *(.init.data) }
54 . = ALIGN(16);
55 __setup_start = .;
56 .init.setup : { *(.init.setup) }
57 __setup_end = .;
58 __initcall_start = .;
59 .initcall.init : {
60 *(.initcall1.init)
61 *(.initcall2.init)
62 *(.initcall3.init)
63 *(.initcall4.init)
64 *(.initcall5.init)
65 *(.initcall6.init)
66 *(.initcall7.init)
67 }
68 __initcall_end = .;
69 __con_initcall_start = .;
70 .con_initcall.init : { *(.con_initcall.init) }
71 __con_initcall_end = .;
72 SECURITY_INIT
David S. Miller517af332006-02-01 15:55:21 -080073 . = ALIGN(4);
David S. Millerd257d5d2006-02-06 23:44:37 -080074 __tsb_ldquad_phys_patch = .;
75 .tsb_ldquad_phys_patch : { *(.tsb_ldquad_phys_patch) }
76 __tsb_ldquad_phys_patch_end = .;
David S. Miller517af332006-02-01 15:55:21 -080077 __tsb_phys_patch = .;
78 .tsb_phys_patch : { *(.tsb_phys_patch) }
79 __tsb_phys_patch_end = .;
David S. Miller92704a12006-02-26 23:27:19 -080080 __cpuid_patch = .;
81 .cpuid_patch : { *(.cpuid_patch) }
82 __cpuid_patch_end = .;
David S. Miller936f4822006-02-05 21:29:28 -080083 __gl_1insn_patch = .;
84 .gl_1insn_patch : { *(.gl_1insn_patch) }
85 __gl_1insn_patch_end = .;
David S. Miller45fec052006-02-05 22:27:28 -080086 __gl_2insn_patch = .;
87 .gl_2insn_patch : { *(.gl_2insn_patch) }
88 __gl_2insn_patch_end = .;
Linus Torvalds1da177e2005-04-16 15:20:36 -070089 . = ALIGN(8192);
90 __initramfs_start = .;
91 .init.ramfs : { *(.init.ramfs) }
92 __initramfs_end = .;
93 . = ALIGN(8192);
94 __per_cpu_start = .;
95 .data.percpu : { *(.data.percpu) }
96 __per_cpu_end = .;
97 . = ALIGN(8192);
98 __init_end = .;
99 __bss_start = .;
100 .sbss : { *(.sbss) *(.scommon) }
101 .bss :
102 {
103 *(.dynbss)
104 *(.bss)
105 *(COMMON)
106 }
107 _end = . ;
108 PROVIDE (end = .);
Linus Torvalds1da177e2005-04-16 15:20:36 -0700109 /DISCARD/ : { *(.exit.text) *(.exit.data) *(.exitcall.exit) }
David S. Millerd5784b52005-12-28 13:22:54 -0800110
111 STABS_DEBUG
112
113 DWARF_DEBUG
Linus Torvalds1da177e2005-04-16 15:20:36 -0700114}