Re: libzfs.h and libnvpair.h

From: Ionuț_Mihalache <ionut.mihalache1506_at_gmail.com>
Date: Wed, 23 Jun 2021 15:52:21 UTC
When including <libnvpair.h> there is another include for the header
<nvpair.h> which redefines functions from <nv.h>. <libzfs.h> and
<libnvpair.h> don't seem to have problems, <libzfs.h> includes
<libnvpair.h>, I don't have to include it myself.

În mie., 23 iun. 2021 la 18:19, Chris <bsd-lists@bsdforge.com> a scris:

> 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.
>