diff options
author | Benjamin Herrenschmidt | 2005-05-01 17:58:43 +0200 |
---|---|---|
committer | Linus Torvalds | 2005-05-01 17:58:43 +0200 |
commit | 1b29f9d13e3cf0fe86bf7f82a3399c9e3caf58e5 (patch) | |
tree | 49fa54910161c2d0741e2a34a01e5d35d6b6e82c /arch/ppc64/kernel/vdso32/vdso32.lds.S | |
parent | [PATCH] pmac: save master volume on sleep (diff) | |
download | kernel-qcow2-linux-1b29f9d13e3cf0fe86bf7f82a3399c9e3caf58e5.tar.gz kernel-qcow2-linux-1b29f9d13e3cf0fe86bf7f82a3399c9e3caf58e5.tar.xz kernel-qcow2-linux-1b29f9d13e3cf0fe86bf7f82a3399c9e3caf58e5.zip |
[PATCH] ppc64: add PT_NOTE section to vDSO
This patch from Roland adds a PT_NOTE section to both 32 and 64 bits vDSOs
to expose the kernel version to glibc, thus avoiding a uname syscall on
every launch. This is equivalent to the patches Roland posted already for
x86 and x86-64.
Note: the 64 bits .note is actually using the 32 bits format. This is
normal. The ELF spec specifies a different format for 64 bits .note, but
for some reason, this was never properly implemented, the core dumps for
example are all using 32 bits format .note, and binutils cannot even read a
64 bits format .note. Talking to our toolchain folks, they think we'd
rather stick to 32 bits format .note everywhere and get the spec fixed some
day ...
Signed-off-by: Roland McGrath <roland@redhat.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/ppc64/kernel/vdso32/vdso32.lds.S')
-rw-r--r-- | arch/ppc64/kernel/vdso32/vdso32.lds.S | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/ppc64/kernel/vdso32/vdso32.lds.S b/arch/ppc64/kernel/vdso32/vdso32.lds.S index cca27bd03a57..11290c902ba3 100644 --- a/arch/ppc64/kernel/vdso32/vdso32.lds.S +++ b/arch/ppc64/kernel/vdso32/vdso32.lds.S @@ -20,6 +20,8 @@ SECTIONS .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } + .note : { *(.note.*) } :text :note + . = ALIGN (16); .text : { @@ -87,6 +89,7 @@ SECTIONS PHDRS { text PT_LOAD FILEHDR PHDRS FLAGS(5); /* PF_R|PF_X */ + note PT_NOTE FLAGS(4); /* PF_R */ dynamic PT_DYNAMIC FLAGS(4); /* PF_R */ eh_frame_hdr 0x6474e550; /* PT_GNU_EH_FRAME, but ld doesn't match the name */ } |