Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[cascardo/linux.git] / arch / x86 / boot / compressed / vmlinux.lds.S
1 OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT)
2
3 #undef i386
4
5 #include <asm/page_types.h>
6
7 #ifdef CONFIG_X86_64
8 OUTPUT_ARCH(i386:x86-64)
9 ENTRY(startup_64)
10 #else
11 OUTPUT_ARCH(i386)
12 ENTRY(startup_32)
13 #endif
14
15 SECTIONS
16 {
17         /* Be careful parts of head_64.S assume startup_32 is at
18          * address 0.
19          */
20         . = 0;
21         .text.head : {
22                 _head = . ;
23                 *(.text.head)
24                 _ehead = . ;
25         }
26         .rodata.compressed : {
27                 *(.rodata.compressed)
28         }
29         .text : {
30                 _text = .;      /* Text */
31                 *(.text)
32                 *(.text.*)
33                 _etext = . ;
34         }
35         .rodata : {
36                 _rodata = . ;
37                 *(.rodata)       /* read-only data */
38                 *(.rodata.*)
39                 _erodata = . ;
40         }
41         .data : {
42                 _data = . ;
43                 *(.data)
44                 *(.data.*)
45                 _edata = . ;
46         }
47         . = ALIGN(CONFIG_X86_L1_CACHE_BYTES);
48         .bss : {
49                 _bss = . ;
50                 *(.bss)
51                 *(.bss.*)
52                 *(COMMON)
53                 . = ALIGN(8);   /* For convenience during zeroing */
54                 _ebss = .;
55         }
56 #ifdef CONFIG_X86_64
57        . = ALIGN(PAGE_SIZE);
58        .pgtable : {
59                 _pgtable = . ;
60                 *(.pgtable)
61                 _epgtable = . ;
62         }
63 #endif
64         _end = .;
65 }