aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/boot/compressed/vmlinux.lds.S
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-04-26 13:12:47 -0400
committerIngo Molnar <mingo@elte.hu>2009-04-27 00:35:24 -0400
commit51b26ada79b605ed709ddcedbb6012e8f8e0ebed (patch)
treeb6b9a353cf32db8debe602b9bf23625bc26388a0 /arch/x86/boot/compressed/vmlinux.lds.S
parent0a3ec21fcd311b26ab0f249d62960e127bc20ca8 (diff)
x86: unify arch/x86/boot/compressed/vmlinux_*.lds
Look at the: diff -u arch/x86/boot/compressed/vmlinux_*.lds output and realize that they're basially exactly the same except for trivial naming differences, and the fact that the 64-bit version has a "pgtable" thing. So unify them. There's some trivial cleanup there (make the output format a Kconfig thing rather than doing #ifdef's for it, and unify both 32-bit and 64-bit BSS end to "_ebss", where 32-bit used to use the traditional "_end"), but other than that it's really very mindless and straigt conversion. For example, I think we should aim to remove "startup_32" vs "startup_64", and just call it "startup", and get rid of one more difference. I didn't do that. Also, notice the comment in the unified vmlinux.lds.S talks about "head_64" and "startup_32" which is an odd and incorrect mix, but that was actually what the old 64-bit only lds file had, so the confusion isn't new, and now that mixing is arguably more accurate thanks to the vmlinux.lds.S file being shared between the two cases ;) [ Impact: cleanup, unification ] Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Acked-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
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}