blob: 4a6063f33e7a4155e084cd50ba58a2617f3fa3c3 [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 {
Eric W. Biedermanfd593d12006-12-07 02:14:04 +010016 _text = .;
Linus Torvalds1da177e2005-04-16 15:20:36 -070017 *(.text)
18 SCHED_TEXT
19 LOCK_TEXT
Prasanna S Panchamukhi05e14cb2005-09-06 15:19:30 -070020 KPROBES_TEXT
Linus Torvalds1da177e2005-04-16 15:20:36 -070021 *(.gnu.warning)
22 } =0
23 _etext = .;
24 PROVIDE (etext = .);
25
26 RODATA
27
28 .data :
29 {
30 *(.data)
31 CONSTRUCTORS
32 }
33 .data1 : { *(.data1) }
34 . = ALIGN(64);
35 .data.cacheline_aligned : { *(.data.cacheline_aligned) }
David S. Millerd369ddd2005-07-10 15:45:11 -070036 . = ALIGN(64);
37 .data.read_mostly : { *(.data.read_mostly) }
Linus Torvalds1da177e2005-04-16 15:20:36 -070038 _edata = .;
39 PROVIDE (edata = .);
40 .fixup : { *(.fixup) }
41
42 . = ALIGN(16);
43 __start___ex_table = .;
44 __ex_table : { *(__ex_table) }
45 __stop___ex_table = .;
46
47 . = ALIGN(8192);
48 __init_begin = .;
49 .init.text : {
50 _sinittext = .;
51 *(.init.text)
52 _einittext = .;
53 }
54 .init.data : { *(.init.data) }
55 . = ALIGN(16);
56 __setup_start = .;
57 .init.setup : { *(.init.setup) }
58 __setup_end = .;
59 __initcall_start = .;
60 .initcall.init : {
Andrew Morton61ce1ef2006-10-27 11:41:44 -070061 INITCALLS
Linus Torvalds1da177e2005-04-16 15:20:36 -070062 }
63 __initcall_end = .;
64 __con_initcall_start = .;
65 .con_initcall.init : { *(.con_initcall.init) }
66 __con_initcall_end = .;
67 SECURITY_INIT
David S. Miller517af332006-02-01 15:55:21 -080068 . = ALIGN(4);
David S. Millerd257d5d2006-02-06 23:44:37 -080069 __tsb_ldquad_phys_patch = .;
70 .tsb_ldquad_phys_patch : { *(.tsb_ldquad_phys_patch) }
71 __tsb_ldquad_phys_patch_end = .;
David S. Miller517af332006-02-01 15:55:21 -080072 __tsb_phys_patch = .;
73 .tsb_phys_patch : { *(.tsb_phys_patch) }
74 __tsb_phys_patch_end = .;
David S. Miller92704a12006-02-26 23:27:19 -080075 __cpuid_patch = .;
76 .cpuid_patch : { *(.cpuid_patch) }
77 __cpuid_patch_end = .;
David S. Millerdf7d6ae2006-02-07 00:00:16 -080078 __sun4v_1insn_patch = .;
79 .sun4v_1insn_patch : { *(.sun4v_1insn_patch) }
80 __sun4v_1insn_patch_end = .;
81 __sun4v_2insn_patch = .;
82 .sun4v_2insn_patch : { *(.sun4v_2insn_patch) }
83 __sun4v_2insn_patch_end = .;
Linus Torvalds1da177e2005-04-16 15:20:36 -070084 . = ALIGN(8192);
85 __initramfs_start = .;
86 .init.ramfs : { *(.init.ramfs) }
87 __initramfs_end = .;
88 . = ALIGN(8192);
89 __per_cpu_start = .;
90 .data.percpu : { *(.data.percpu) }
91 __per_cpu_end = .;
92 . = ALIGN(8192);
93 __init_end = .;
94 __bss_start = .;
95 .sbss : { *(.sbss) *(.scommon) }
96 .bss :
97 {
98 *(.dynbss)
99 *(.bss)
100 *(COMMON)
101 }
102 _end = . ;
103 PROVIDE (end = .);
Linus Torvalds1da177e2005-04-16 15:20:36 -0700104 /DISCARD/ : { *(.exit.text) *(.exit.data) *(.exitcall.exit) }
David S. Millerd5784b52005-12-28 13:22:54 -0800105
106 STABS_DEBUG
107
108 DWARF_DEBUG
Linus Torvalds1da177e2005-04-16 15:20:36 -0700109}