On Sun, Oct 18, 2009 at 04:09:44AM +0100, Jamie Lokier wrote:
> Edgar E. Iglesias wrote:
> > Did you consider having the linux-user loader pass a qemu version of the
> > x86_64 vdso to the guest through the auxvector? That version could probably
> > implement the vsyscalls by translating them into syscalls with x86_64 code.
> 
> That seems like a good idea.
> 
> Note that on x86_64, there is _both_ a vsyscall page at a fixed
> address, and a vdso page at a randomised address with different
> contents.  Binary programs can call either or both.
> 
> On x86_32, there is only a vdso page.  It can be a variable or fixed
> address.  To run old binaries (but not so old they don't know about
> vsyscall), it needs to be mapped at a fixed address.  Modern kernels
> have it mapped at a randomised address, and therefore won't work with
> those binaries.

Thanks for clarifiying.

If I understand correctly, my suggestion won't work for vsyscalls because
the specific fixed address might be unavailable or already used by the
host...

Cheers


Reply via email to