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.S57
1 files changed, 57 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 000000000000..ffcb19134bf7
--- /dev/null
+++ b/arch/x86/boot/compressed/vmlinux.lds.S
@@ -0,0 +1,57 @@
1OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT)
2
3#ifdef CONFIG_X86_64
4OUTPUT_ARCH(i386:x86-64)
5ENTRY(startup_64)
6#else
7OUTPUT_ARCH(i386)
8ENTRY(startup_32)
9#endif
10
11SECTIONS
12{
13 /* Be careful parts of head_64.S assume startup_32 is at
14 * address 0.
15 */
16 . = 0;
17 .text.head : {
18 _head = . ;
19 *(.text.head)
20 _ehead = . ;
21 }
22 .rodata.compressed : {
23 *(.rodata.compressed)
24 }
25 .text : {
26 _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)
48#ifdef CONFIG_X86_64
49 . = ALIGN(8);
50 _end_before_pgt = . ;
51 . = ALIGN(4096);
52 pgtable = . ;
53 . = . + 4096 * 6;
54#endif
55 _ebss = .;
56 }
57}