[PATCH 1/2] x86_64 vDSO linker script cleanup

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Andi Kleen <ak@...>
Cc: Andrew Morton <akpm@...>, Linus Torvalds <torvalds@...>, <linux-kernel@...>
Date: Monday, September 24, 2007 - 7:04 am

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>
---
 arch/x86_64/vdso/vdso.lds.S |   16 +++++++++-------
 1 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/arch/x86_64/vdso/vdso.lds.S b/arch/x86_64/vdso/vdso.lds.S
index b9a60e6..667d324 100644
--- a/arch/x86_64/vdso/vdso.lds.S
+++ b/arch/x86_64/vdso/vdso.lds.S
@@ -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
 }
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 1/2] x86_64 vDSO linker script cleanup, Roland McGrath, (Mon Sep 24, 7:04 am)
[PATCH] x86_64 vDSO linker script cleanup, Roland McGrath, (Thu Oct 11, 3:40 am)
Re: [PATCH] x86_64 vDSO linker script cleanup, Sam Ravnborg, (Thu Oct 11, 7:25 am)