aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/boot/compressed/vmlinux.lds.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/boot/compressed/vmlinux.lds.S')
-rw-r--r--arch/x86/boot/compressed/vmlinux.lds.S65
1 files changed, 65 insertions, 0 deletions
diff --git a/arch/x86/boot/compressed/vmlinux.lds.S b/arch/x86/boot/compressed/vmlinux.lds.S
new file mode 100644
index 00000000000..cc353e1b3ff
--- /dev/null
+++ b/arch/x86/boot/compressed/vmlinux.lds.S
@@ -0,0 +1,65 @@
1OUTPUT_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
8OUTPUT_ARCH(i386:x86-64)
9ENTRY(startup_64)
10#else
11OUTPUT_ARCH(i386)
12ENTRY(startup_32)
13#endif
14
15SECTIONS
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}