blob: f4193bb487825706146c0baee980e6c962955231 [file] [log] [blame]
Tim Abbott1dc818c2009-09-16 16:44:27 -04001#include <asm-generic/vmlinux.lds.h>
2
Linus Torvalds51b26ad2009-04-26 10:12:47 -07003OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT)
4
Sam Ravnborg83c48322009-04-30 12:03:16 +02005#undef i386
6
H. Peter Anvin5b11f1c2009-05-08 16:20:34 -07007#include <asm/page_types.h>
8
Linus Torvalds51b26ad2009-04-26 10:12:47 -07009#ifdef CONFIG_X86_64
Vivek Goyal1ab60e02007-05-02 19:27:07 +020010OUTPUT_ARCH(i386:x86-64)
11ENTRY(startup_64)
Linus Torvalds51b26ad2009-04-26 10:12:47 -070012#else
13OUTPUT_ARCH(i386)
14ENTRY(startup_32)
15#endif
16
Vivek Goyal1ab60e02007-05-02 19:27:07 +020017SECTIONS
18{
Yinghai Lu32ed9372008-02-01 17:49:41 +010019 /* Be careful parts of head_64.S assume startup_32 is at
Ian Campbellafe0bc62008-01-30 13:33:37 +010020 * address 0.
Vivek Goyal1ab60e02007-05-02 19:27:07 +020021 */
22 . = 0;
Tim Abbott1dc818c2009-09-16 16:44:27 -040023 .head.text : {
Vivek Goyal1ab60e02007-05-02 19:27:07 +020024 _head = . ;
Tim Abbott1dc818c2009-09-16 16:44:27 -040025 HEAD_TEXT
Vivek Goyal1ab60e02007-05-02 19:27:07 +020026 _ehead = . ;
Ian Campbell20514e92008-01-30 13:33:38 +010027 }
28 .rodata.compressed : {
29 *(.rodata.compressed)
30 }
31 .text : {
Vivek Goyal1ab60e02007-05-02 19:27:07 +020032 _text = .; /* Text */
33 *(.text)
34 *(.text.*)
35 _etext = . ;
36 }
37 .rodata : {
38 _rodata = . ;
39 *(.rodata) /* read-only data */
40 *(.rodata.*)
41 _erodata = . ;
42 }
43 .data : {
44 _data = . ;
45 *(.data)
46 *(.data.*)
47 _edata = . ;
48 }
H. Peter Anvin0b4eb462009-04-30 17:59:36 -070049 . = ALIGN(CONFIG_X86_L1_CACHE_BYTES);
Vivek Goyal1ab60e02007-05-02 19:27:07 +020050 .bss : {
51 _bss = . ;
52 *(.bss)
53 *(.bss.*)
54 *(COMMON)
H. Peter Anvin5b11f1c2009-05-08 16:20:34 -070055 . = ALIGN(8); /* For convenience during zeroing */
Yinghai Lu4a9f54c2008-04-10 15:06:38 -070056 _ebss = .;
Vivek Goyal1ab60e02007-05-02 19:27:07 +020057 }
H. Peter Anvin5b11f1c2009-05-08 16:20:34 -070058#ifdef CONFIG_X86_64
59 . = ALIGN(PAGE_SIZE);
60 .pgtable : {
61 _pgtable = . ;
62 *(.pgtable)
63 _epgtable = . ;
64 }
65#endif
66 _end = .;
Vivek Goyal1ab60e02007-05-02 19:27:07 +020067}