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