blob: 0d26c92d3c7d076563dd8bc8a57d4475111b8e50 [file] [log] [blame]
Linus Torvalds51b26ad2009-04-26 10:12:47 -07001OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT)
2
Sam Ravnborg83c48322009-04-30 12:03:16 +02003#undef i386
4
Linus Torvalds51b26ad2009-04-26 10:12:47 -07005#ifdef CONFIG_X86_64
Vivek Goyal1ab60e02007-05-02 19:27:07 +02006OUTPUT_ARCH(i386:x86-64)
7ENTRY(startup_64)
Linus Torvalds51b26ad2009-04-26 10:12:47 -07008#else
9OUTPUT_ARCH(i386)
10ENTRY(startup_32)
11#endif
12
Vivek Goyal1ab60e02007-05-02 19:27:07 +020013SECTIONS
14{
Yinghai Lu32ed9372008-02-01 17:49:41 +010015 /* Be careful parts of head_64.S assume startup_32 is at
Ian Campbellafe0bc62008-01-30 13:33:37 +010016 * address 0.
Vivek Goyal1ab60e02007-05-02 19:27:07 +020017 */
18 . = 0;
Ian Campbell20514e92008-01-30 13:33:38 +010019 .text.head : {
Vivek Goyal1ab60e02007-05-02 19:27:07 +020020 _head = . ;
21 *(.text.head)
22 _ehead = . ;
Ian Campbell20514e92008-01-30 13:33:38 +010023 }
24 .rodata.compressed : {
25 *(.rodata.compressed)
26 }
27 .text : {
Vivek Goyal1ab60e02007-05-02 19:27:07 +020028 _text = .; /* Text */
29 *(.text)
30 *(.text.*)
31 _etext = . ;
32 }
33 .rodata : {
34 _rodata = . ;
35 *(.rodata) /* read-only data */
36 *(.rodata.*)
37 _erodata = . ;
38 }
39 .data : {
40 _data = . ;
41 *(.data)
42 *(.data.*)
43 _edata = . ;
44 }
45 .bss : {
46 _bss = . ;
47 *(.bss)
48 *(.bss.*)
49 *(COMMON)
Linus Torvalds51b26ad2009-04-26 10:12:47 -070050#ifdef CONFIG_X86_64
Vivek Goyal1ab60e02007-05-02 19:27:07 +020051 . = ALIGN(8);
Yinghai Lu4a9f54c2008-04-10 15:06:38 -070052 _end_before_pgt = . ;
Vivek Goyal1ab60e02007-05-02 19:27:07 +020053 . = ALIGN(4096);
54 pgtable = . ;
55 . = . + 4096 * 6;
Linus Torvalds51b26ad2009-04-26 10:12:47 -070056#endif
Yinghai Lu4a9f54c2008-04-10 15:06:38 -070057 _ebss = .;
Vivek Goyal1ab60e02007-05-02 19:27:07 +020058 }
59}