018e4a711d7927cef577e347dac93fb3a22afd75
[linux-2.6.git] / arch / m32r / kernel / vmlinux.lds.S
1 /* ld script to make M32R Linux kernel
2  */
3
4 #include <asm-generic/vmlinux.lds.h>
5 #include <asm/addrspace.h>
6 #include <asm/page.h>
7 #include <asm/thread_info.h>
8
9 OUTPUT_ARCH(m32r)
10 #if defined(__LITTLE_ENDIAN__)
11        jiffies = jiffies_64;
12 #else
13        jiffies = jiffies_64 + 4;
14 #endif
15
16 kernel_entry = boot - 0x80000000;
17 ENTRY(kernel_entry)
18
19 SECTIONS
20 {
21   . = CONFIG_MEMORY_START + __PAGE_OFFSET;
22   eit_vector = .;
23
24   . = . + 0x1000;
25   .empty_zero_page : { *(.empty_zero_page) } = 0
26
27   /* read-only */
28   _text = .;                    /* Text and read-only data */
29   .boot : { *(.boot) } = 0
30   .text : {
31         HEAD_TEXT
32         TEXT_TEXT
33         SCHED_TEXT
34         LOCK_TEXT
35         *(.fixup)
36         *(.gnu.warning)
37         } = 0x9090
38 #ifdef CONFIG_SMP
39   . = ALIGN(65536);
40   .eit_vector4 : { *(.eit_vector4) }
41 #endif
42   _etext = .;                   /* End of text section */
43
44   EXCEPTION_TABLE(16)
45   NOTES
46
47   _sdata = .;                   /* Start of data section */
48   RODATA
49   RW_DATA_SECTION(32, PAGE_SIZE, THREAD_SIZE)
50   _edata = .;                   /* End of data section */
51
52   /* will be freed after init */
53   . = ALIGN(PAGE_SIZE);         /* Init code and data */
54   __init_begin = .;
55   INIT_TEXT_SECTION(PAGE_SIZE)
56   INIT_DATA_SECTION(16)
57   PERCPU_SECTION(32)
58   . = ALIGN(PAGE_SIZE);
59   __init_end = .;
60   /* freed after init ends here */
61
62   BSS_SECTION(0, 0, 4)
63
64   _end = . ;
65
66   /* Stabs debugging sections.  */
67   .stab 0 : { *(.stab) }
68   .stabstr 0 : { *(.stabstr) }
69   .stab.excl 0 : { *(.stab.excl) }
70   .stab.exclstr 0 : { *(.stab.exclstr) }
71   .stab.index 0 : { *(.stab.index) }
72   .stab.indexstr 0 : { *(.stab.indexstr) }
73   .comment 0 : { *(.comment) }
74
75   /* Sections to be discarded */
76   DISCARDS
77 }