Messages in this thread Patch in this message | | | Date | Fri, 28 Aug 2009 23:07:11 +0200 | From | Jan Kratochvil <> | Subject | Re: [patch] Fix vdso32 relocation for paddr |
| |
On Fri, 28 Aug 2009 20:15:34 +0200, Roland McGrath wrote: > Thanks for heads-up. It's definitely right to CC me on patches that change > the build/setup vDSO details.
OK, I thought more about {p,u}trace.
> That change seems fine. Or just explicit p_addr = p_vaddr would be fine > too (and not assume that what the linker produced is consistent, in case > some old linkers produce stranger results from the vdso linker scripts).
Updated. Verified on x86_64 host it works right for an i386 binary.
Thanks, Jan
Signed-off-by: Jan Kratochvil <jan.kratochvil@redhat.com>
--- linux-2.6.30.x86_64/arch/x86/vdso/vdso32-setup.c-orig 2009-08-26 22:23:08.000000000 +0200 +++ linux-2.6.30.x86_64/arch/x86/vdso/vdso32-setup.c 2009-08-26 22:38:10.000000000 +0200 @@ -172,6 +172,7 @@ static __init void relocate_vdso(Elf32_E phdr = (void *)ehdr + ehdr->e_phoff; for (i = 0; i < ehdr->e_phnum; i++) { phdr[i].p_vaddr += VDSO_ADDR_ADJUST; + phdr[i].p_paddr = phdr[i].p_vaddr; /* relocate dynamic stuff */ if (phdr[i].p_type == PT_DYNAMIC)
| |