diff options
author | Roland McGrath <roland@redhat.com> | 2007-10-17 12:04:41 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@inhelltoy.tec.linutronix.de> | 2007-10-17 14:17:06 -0400 |
commit | c65916fe3586521932fbd1b734f39744657f2f0d (patch) | |
tree | 89f238be3a65a8cf7b0173471a5eafab517bc1b2 | |
parent | de8aacbe6a3f3dd7104da09a5535232cd385fdd6 (diff) |
x86: vdso linker script cleanup
I can't see the reason ". = VDSO_PRELINK + 0x900;" was ever there in
the linker script for the x86_64 vDSO. I can't find anything that
depends on this magic offset, or that should care at all about the
particular location of of the .data section (all from vvar.c) in the
vDSO image. If it is really desireable to place .data at 0x900, then it
should be after all the other sections so they fill in the space up to
0x900.
This removes the 0x900 magic and cleans up the output sections generally
in the vDSO linker script. This saves a few hundred bytes in the size
of the vDSO file, bringing it back well under 4kb total so that its vma
only needs one page.
Signed-off-by: Roland McGrath <roland@redhat.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r-- | arch/x86/vdso/vdso.lds.S | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/arch/x86/vdso/vdso.lds.S b/arch/x86/vdso/vdso.lds.S index b9a60e665d08..667d3245d972 100644 --- a/arch/x86/vdso/vdso.lds.S +++ b/arch/x86/vdso/vdso.lds.S | |||
@@ -26,13 +26,16 @@ SECTIONS | |||
26 | is insufficient, ld -shared will barf. Just increase it here. */ | 26 | is insufficient, ld -shared will barf. Just increase it here. */ |
27 | . = VDSO_PRELINK + VDSO_TEXT_OFFSET; | 27 | . = VDSO_PRELINK + VDSO_TEXT_OFFSET; |
28 | 28 | ||
29 | .text : { *(.text) } :text | 29 | .text : { *(.text*) } :text |
30 | .text.ptr : { *(.text.ptr) } :text | 30 | .rodata : { *(.rodata*) } :text |
31 | . = VDSO_PRELINK + 0x900; | 31 | .data : { |
32 | .data : { *(.data) } :text | 32 | *(.data*) |
33 | .bss : { *(.bss) } :text | 33 | *(.sdata*) |
34 | *(.bss*) | ||
35 | *(.dynbss*) | ||
36 | } :text | ||
34 | 37 | ||
35 | .altinstructions : { *(.altinstructions) } :text | 38 | .altinstructions : { *(.altinstructions) } :text |
36 | .altinstr_replacement : { *(.altinstr_replacement) } :text | 39 | .altinstr_replacement : { *(.altinstr_replacement) } :text |
37 | 40 | ||
38 | .note : { *(.note.*) } :text :note | 41 | .note : { *(.note.*) } :text :note |
@@ -42,7 +45,6 @@ SECTIONS | |||
42 | .useless : { | 45 | .useless : { |
43 | *(.got.plt) *(.got) | 46 | *(.got.plt) *(.got) |
44 | *(.gnu.linkonce.d.*) | 47 | *(.gnu.linkonce.d.*) |
45 | *(.dynbss) | ||
46 | *(.gnu.linkonce.b.*) | 48 | *(.gnu.linkonce.b.*) |
47 | } :text | 49 | } :text |
48 | } | 50 | } |