[PATCH] relocatable kernel: Kallsyms generate relocatable symbols
[linux-2.6.git] / 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     *(.text)
18     SCHED_TEXT
19     LOCK_TEXT
20     KPROBES_TEXT
21     *(.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) }
36   . = ALIGN(64);
37   .data.read_mostly : { *(.data.read_mostly) }
38   _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 : {
61         INITCALLS
62   }
63   __initcall_end = .;
64   __con_initcall_start = .;
65   .con_initcall.init : { *(.con_initcall.init) }
66   __con_initcall_end = .;
67   SECURITY_INIT
68   . = ALIGN(4);
69   __tsb_ldquad_phys_patch = .;
70   .tsb_ldquad_phys_patch : { *(.tsb_ldquad_phys_patch) }
71   __tsb_ldquad_phys_patch_end = .;
72   __tsb_phys_patch = .;
73   .tsb_phys_patch : { *(.tsb_phys_patch) }
74   __tsb_phys_patch_end = .;
75   __cpuid_patch = .;
76   .cpuid_patch : { *(.cpuid_patch) }
77   __cpuid_patch_end = .;
78   __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 = .;
84   . = 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 = .);
104   /DISCARD/ : { *(.exit.text) *(.exit.data) *(.exitcall.exit) }
105
106   STABS_DEBUG
107
108   DWARF_DEBUG
109 }