[Libguestfs] nbdkit / mingw support

Richard W.M. Jones rjones at redhat.com
Tue Mar 24 19:44:26 UTC 2020


On Tue, Mar 24, 2020 at 02:16:32PM -0500, Eric Blake wrote:
> On 3/24/20 1:54 PM, Richard W.M. Jones wrote:
> >On Tue, Mar 24, 2020 at 01:43:52PM -0500, Eric Blake wrote:
> >>On 3/21/20 7:06 AM, Richard W.M. Jones wrote:
> >>>Eric:
> >>>
> >>>Yifan Gu has posted a few patches for mingw support.  My comments
> >>>below.
> >>>
> >>>https://github.com/gyf304/nbdkit/commit/a37c4ca6546dfc4e96e305af97b62e5a9d6174ca
> >>>
> >>>* I think the SHARED_LDFLAGS idea is good.  I pushed a slightly
> >>>   different take on the idea here:
> >>>   https://github.com/libguestfs/nbdkit/commit/1d634009ab8e43592065ec469df6312400525cc8
> >>>   It's slightly different from what Yifan posted above, because I
> >>>   replaced -module -avoid-version -shared with $(SHARED_LDFLAGS),
> >>>   adding -no-undefined additionally on mingw.
> >>
> >>Why are we trying to avoid -no-undefined on other platforms?
> >
> >Isn't it because we rely on it, since our plugins need symbols that
> >are undefined at link time such as nbdkit_*?
> 
> Yes, at the moment they do, but do they need to? We could ship
> libnbdkit which provides just the symbols that plugins can link
> against, and then link our binary nbdkit against that same library,
> rather than expecting our plugins to compile undefined until loaded
> by our binary.  In other words, if the fix is by separating our
> public functions into a shared library for mingw to compile plugins
> without undefined symbols, why not do the same for all platforms?

(For non-mingw platforms) this breaks the source API promises rather
seriously, so if I understand your proposal correctly I don't think
this is a good idea.  It's possibly something we can consider for
internal plugins, or for the V3 API.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
libguestfs lets you edit virtual machines.  Supports shell scripting,
bindings from many languages.  http://libguestfs.org




More information about the Libguestfs mailing list