Merge branch 'mv-merge'
[linux-2.6] / arch / sparc64 / kernel / vmlinux.lds.S
1 /* ld script to make UltraLinux kernel */
2
3 #include <asm-generic/vmlinux.lds.h>
4
5 OUTPUT_FORMAT("elf64-sparc", "elf64-sparc", "elf64-sparc")
6 OUTPUT_ARCH(sparc:v9a)
7 ENTRY(_start)
8
9 jiffies = jiffies_64;
10 SECTIONS
11 {
12   swapper_low_pmd_dir = 0x0000000000402000;
13   . = 0x4000;
14   .text 0x0000000000404000 :
15   {
16     *(.text)
17     SCHED_TEXT
18     LOCK_TEXT
19     KPROBES_TEXT
20     *(.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) }
35   . = ALIGN(64);
36   .data.read_mostly : { *(.data.read_mostly) }
37   _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
73   . = ALIGN(4);
74   __tsb_ldquad_phys_patch = .;
75   .tsb_ldquad_phys_patch : { *(.tsb_ldquad_phys_patch) }
76   __tsb_ldquad_phys_patch_end = .;
77   __tsb_phys_patch = .;
78   .tsb_phys_patch : { *(.tsb_phys_patch) }
79   __tsb_phys_patch_end = .;
80   __cpuid_patch = .;
81   .cpuid_patch : { *(.cpuid_patch) }
82   __cpuid_patch_end = .;
83   __sun4v_1insn_patch = .;
84   .sun4v_1insn_patch : { *(.sun4v_1insn_patch) }
85   __sun4v_1insn_patch_end = .;
86   __sun4v_2insn_patch = .;
87   .sun4v_2insn_patch : { *(.sun4v_2insn_patch) }
88   __sun4v_2insn_patch_end = .;
89   . = 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 = .);
109   /DISCARD/ : { *(.exit.text) *(.exit.data) *(.exitcall.exit) }
110
111   STABS_DEBUG
112
113   DWARF_DEBUG
114 }