diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-26 13:12:47 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-04-27 00:35:24 -0400 |
commit | 51b26ada79b605ed709ddcedbb6012e8f8e0ebed (patch) | |
tree | b6b9a353cf32db8debe602b9bf23625bc26388a0 /arch/x86/boot/compressed/vmlinux.lds.S | |
parent | 0a3ec21fcd311b26ab0f249d62960e127bc20ca8 (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.S | 57 |
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 @@ | |||
1 | OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT) | ||
2 | |||
3 | #ifdef CONFIG_X86_64 | ||
4 | OUTPUT_ARCH(i386:x86-64) | ||
5 | ENTRY(startup_64) | ||
6 | #else | ||
7 | OUTPUT_ARCH(i386) | ||
8 | ENTRY(startup_32) | ||
9 | #endif | ||
10 | |||
11 | SECTIONS | ||
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 | } | ||