Oxenstored: Remove dependency on libxenguest
Following on from the de-systemd-ifying, oxenstored still links against a range of libraries that we'd prefer not to.
# lddtree /usr/sbin/oxenstored
oxenstored => /usr/sbin/oxenstored (interpreter => /lib64/ld-linux-x86-64.so.2)
libxenctrl.so.4.19 => /lib64/libxenctrl.so.4.19
libxentoollog.so.1 => /lib64/libxentoollog.so.1
libxencall.so.1 => /lib64/libxencall.so.1
libxentoolcore.so.1 => /lib64/libxentoolcore.so.1
libxengnttab.so.1 => /lib64/libxengnttab.so.1
libxenforeignmemory.so.1 => /lib64/libxenforeignmemory.so.1
libxendevicemodel.so.1 => /lib64/libxendevicemodel.so.1
libpthread.so.0 => /lib64/libpthread.so.0
ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2
libxenguest.so.4.19 => /lib64/libxenguest.so.4.19
libbz2.so.1 => /lib64/libbz2.so.1
liblzma.so.5 => /lib64/liblzma.so.5
liblzo2.so.2 => /lib64/liblzo2.so.2
libzstd.so.1 => /lib64/libzstd.so.1
libz.so.1 => /lib64/libz.so.1
libxenevtchn.so.1 => /lib64/libxenevtchn.so.1
libm.so.6 => /lib64/libm.so.6
libdl.so.2 => /lib64/libdl.so.2
libgcc_s.so.1 => /lib64/libgcc_s.so.1
libc.so.6 => /lib64/libc.so.6
The dependency on libxenguest.so.$VER occurs because various of the Ocaml libs links against both libxenctrl and libxenguest.
Completing #112 should remove Oxenstored's use of the mmap library (may also require some disentangling of the XenBus library), using the stable libxengrant library instead.
After that, there's only a single hypercall (Xenctrl.domain_getinfo) which ought to be implemented locally to oxenstored, which avoids the XenCtrl library. Depending on the underlying infrastructure, it might be possible to avoid linking libxenctrl too, and only linking libxencall.
Speak to @andyhhp for more details.
Edited by Andrew Cooper