Re: libzfs.h and libnvpair.h

From: Chris <bsd-lists_at_bsdforge.com>
Date: Wed, 23 Jun 2021 15:19:03 UTC
On 2021-06-23 06:24, Ionuț Mihalache wrote:
> Hello,
> 
> I am working into bringing the checkpoint functionality for bhyve and I
> think I could use the zfs functionalities for the implementation. I tried
> to build the world with -DWITH_ZFS and -DWITH_CDDL(I don't exactly know
> what macro or macros should be defined or if there are any, these two I
> tried based on the analysis of the Makefiles) but this doesn't seem to
> work. When I include libzfs.h in order to use the functions from there, I
> get a compilation error saying that libnvpair.h is not found. After
> investigating the problem I saw that in /usr/include libnvpair.h is not
> present. I copied the files from /usr/local/include but after this there
> was a problem with the redefinition of some functions. Is it a way to
> use(or 'activate') the zfs functionalities directly in the code without
> using syscalls like system or exec(I would like to avoid them as much as
> possible).
I regret I haven't got the time to investigate this for you. But on a 
13/amd64
system, a cd /usr/src followed by a grep -r -F libnvpair.h .
returned some results that may be of interest to you in sorting this out.
./lib/libbe/be.h:#include <libnvpair.h> for example. The same could be 
performed
against libzfs.h.
If including libzfs.h didn't work, and including first libzfs.h along with
libnvpair.h errored with duplicates. It may be the case that you need to
only include libnvpair.h, which may pull in libzfs.h. IDK but thought I'd
mention it. Sorry, that's all I've got.

HTH

--Chris


> 
> Thank you.