The patch looks nice and clean. However, it does not relocate the symbol
table(s) values. I thought that was done in an earlier version of this I
saw, but I might be misremembering. Though not fatal, this is a regression
from the previous CONFIG_COMPAT_VDSO behavior. It will show up in things
Roland McGrath wrote:
The patch looks nice and clean. However, it does not relocate the symbol
table(s) values. I thought that was done in an earlier version of this I
saw, but I might be misremembering. Though not fatal, this is a regression
from the previous CONFIG_COMPAT_VDSO behavior.
+static __cpuinit void reloc_dyn(Elf32_Ehdr *ehdr, unsigned offset)
+{
+ Elf32_Dyn *dyn = (void *)ehdr + offset;
+
+ for(; dyn-d_tag != DT_NULL; dyn++)
+ switch(dyn-d_tag) {
+ case DT_PLTGOT:
+ case DT_HASH:
+ case DT_STRTAB:
+
Jeremy Fitzhardinge [EMAIL PROTECTED] 05.04.07 09:31
Jan Beulich wrote:
While there's a certain level of control on what DT_* may appear in the
vDSO, not even considering other than the above types seems fragile to
me. Since future additions to the set are supposedly following a fixed
scheme
: Thursday, April 05, 2007 2:32 PM
To: Jan Beulich
Cc: Ingo Molnar; Andrew Morton; virtualization@lists.osdl.org; Roland
McGrath; Andi Kleen; lkml; Zachary Amsden; Eric W. Biederman
Subject: Re: [patch 1/2] Relocate VDSO ELF headers to match mapped
location with COMPAT_VDSO
Jan Beulich wrote:
While
In addition to Roland's remarks about missing symbol table relocation, I
would also assume section headers, if present, should be relocated.
Yes, and also the .symtab as well as .dynsym just in case one ever has one
(though I think they are built stripped now, it's not hard to check sh_type
for
I did the second patch because I could, and to see if it would provoke
some comment. But effectively removing a kernel config option seems
like a good idea to me.
Well, it provoked me to care whether the first patch the relocation
really right.
Thanks,
Roland
Roland McGrath wrote:
In addition to Roland's remarks about missing symbol table relocation, I
would also assume section headers, if present, should be relocated.
Yes, and also the .symtab as well as .dynsym just in case one ever has one
(though I think they are built stripped now, it's
+ for(; dyn-d_tag != DT_NULL; dyn++)
+ switch(dyn-d_tag) {
+ case DT_PLTGOT:
+ case DT_HASH:
+ case DT_STRTAB:
+ case DT_SYMTAB:
+ case DT_RELA:
+ case DT_INIT:
+ case DT_FINI:
+
Some versions of libc can't deal with a VDSO which doesn't have its
ELF headers matching its mapped address. COMPAT_VDSO maps the VDSO at
a specific system-wide fixed address. Previously this was all done at
build time, on the grounds that the fixed VDSO address is always at
the top of the
Some versions of libc can't deal with a VDSO which doesn't have its
ELF headers matching its mapped address. COMPAT_VDSO maps the VDSO at
a specific system-wide fixed address. Previously this was all done at
build time, on the grounds that the fixed VDSO address is always at
the top of the
11 matches
Mail list logo