x86: vdso linker script cleanup
authorRoland McGrath <roland@redhat.com>
Wed, 17 Oct 2007 16:04:41 +0000 (18:04 +0200)
committerThomas Gleixner <tglx@inhelltoy.tec.linutronix.de>
Wed, 17 Oct 2007 18:17:06 +0000 (20:17 +0200)
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>
arch/x86/vdso/vdso.lds.S

index b9a60e665d0890c6bf681dfd43acd9059f5b0921..667d3245d972753f6b8e64480e6935706511eee7 100644 (file)
@@ -26,13 +26,16 @@ SECTIONS
      is insufficient, ld -shared will barf.  Just increase it here.  */
   . = VDSO_PRELINK + VDSO_TEXT_OFFSET;
 
-  .text           : { *(.text) }               :text
-  .text.ptr       : { *(.text.ptr) }           :text
-  . = VDSO_PRELINK + 0x900;
-  .data           : { *(.data) }               :text
-  .bss            : { *(.bss) }                        :text
+  .text           : { *(.text*) }              :text
+  .rodata         : { *(.rodata*) }            :text
+  .data                  : {
+       *(.data*)
+       *(.sdata*)
+       *(.bss*)
+       *(.dynbss*)
+  }                                            :text
 
-  .altinstructions : { *(.altinstructions) }                   :text
+  .altinstructions : { *(.altinstructions) }           :text
   .altinstr_replacement  : { *(.altinstr_replacement) }        :text
 
   .note                  : { *(.note.*) }              :text :note
@@ -42,7 +45,6 @@ SECTIONS
   .useless        : {
        *(.got.plt) *(.got)
        *(.gnu.linkonce.d.*)
-       *(.dynbss)
        *(.gnu.linkonce.b.*)
   }                                            :text
 }