Debian kernels have disabled legacy vsyscall page support meaning they
cannot runs binaries that predate c.2013.  To enable it again you must
add vsyscall=emulate to the kernel command line when booting.  It's
unclear why Debian disabled this as according to the documentation:

  Disabling this option saves about 7K of kernel size and
  possibly 4K of additional runtime pagetable memory.

(presumably the "runtime pagetable memory" is per-process?)  It seems
to me like a rather poor trade-off for not being able to run binaries
which are just 5 years old.

While I was writing this patch I imagined a much more complex
automatic workaround where we would try to detect if the host kernel
had this problem and add the extra vsyscall=emulate parameter
automatically.  ‘./configure’ might carry a binary (for x86_64 only?)
built to use the vsyscall page and try to run it under the host
kernel.  If it failed it would suggest using the workaround.

This solution seems a bit complex, and so this patch simply updates
the documentation which hopefully will make the problem discoverable.

I don't know how widespread this problem is.  We've not seen it in
Fedora/RHEL kernels AFAIK.

Rich.

_______________________________________________
Libguestfs mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libguestfs

Reply via email to