blob: ffcb19134bf718dde0806f7604b594e630e2bb2d [file] [log] [blame]
Linus Torvalds51b26ad2009-04-26 10:12:47 -07001OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT)
2
3#ifdef CONFIG_X86_64
Vivek Goyal1ab60e02007-05-02 19:27:07 +02004OUTPUT_ARCH(i386:x86-64)
5ENTRY(startup_64)
Linus Torvalds51b26ad2009-04-26 10:12:47 -07006#else
7OUTPUT_ARCH(i386)
8ENTRY(startup_32)
9#endif
10
Vivek Goyal1ab60e02007-05-02 19:27:07 +020011SECTIONS
12{
Yinghai Lu32ed9372008-02-01 17:49:41 +010013 /* Be careful parts of head_64.S assume startup_32 is at
Ian Campbellafe0bc62008-01-30 13:33:37 +010014 * address 0.
Vivek Goyal1ab60e02007-05-02 19:27:07 +020015 */
16 . = 0;
Ian Campbell20514e92008-01-30 13:33:38 +010017 .text.head : {
Vivek Goyal1ab60e02007-05-02 19:27:07 +020018 _head = . ;
19 *(.text.head)
20 _ehead = . ;
Ian Campbell20514e92008-01-30 13:33:38 +010021 }
22 .rodata.compressed : {
23 *(.rodata.compressed)
24 }
25 .text : {
Vivek Goyal1ab60e02007-05-02 19:27:07 +020026 _text = .; /* Text */
27 *(.text)
28 *(.text.*)
29 _etext = . ;
30 }
31 .rodata : {
32 _rodata = . ;
33 *(.rodata) /* read-only data */
34 *(.rodata.*)
35 _erodata = . ;
36 }
37 .data : {
38 _data = . ;
39 *(.data)
40 *(.data.*)
41 _edata = . ;
42 }
43 .bss : {
44 _bss = . ;
45 *(.bss)
46 *(.bss.*)
47 *(COMMON)
Linus Torvalds51b26ad2009-04-26 10:12:47 -070048#ifdef CONFIG_X86_64
Vivek Goyal1ab60e02007-05-02 19:27:07 +020049 . = ALIGN(8);
Yinghai Lu4a9f54c2008-04-10 15:06:38 -070050 _end_before_pgt = . ;
Vivek Goyal1ab60e02007-05-02 19:27:07 +020051 . = ALIGN(4096);
52 pgtable = . ;
53 . = . + 4096 * 6;
Linus Torvalds51b26ad2009-04-26 10:12:47 -070054#endif
Yinghai Lu4a9f54c2008-04-10 15:06:38 -070055 _ebss = .;
Vivek Goyal1ab60e02007-05-02 19:27:07 +020056 }
57}