openzfs-kmod build error
Ryan Moeller
freqlabs at FreeBSD.org
Tue Jun 23 16:04:40 UTC 2020
On 6/23/20 11:12 AM, Rick Macklem wrote:
> Kostya Berger wrote:
>> CURRENT r362292
>> sysutils/openzfs-kmod build aborts with error:...............
>> /usr/ports/sysutils/openzfs-kmod/work/zfs->c0eb5c35e/module/os/freebsd/zfs/zfs_vfsops.c:128:19: error:
>> incompatible pointer types initializing 'vfs_checkexp_t *' (aka 'int (*)(struct
>> mount *, struct sockaddr *, unsigned long *, struct ucred **, int *, int *)') with
>> an expression of type 'int (vfs_t *, struct sockaddr *, int *, struct ucred **, int
>> *, int **)' (aka 'int (struct mount *, struct sockaddr *, int *, struct ucred **,
>> int *, int **)') [-Werror,-Wincompatible-pointer-types]
>> .vfs_checkexp = zfs_checkexp,
>> ^~~~~~~~~~~~
>> /usr/ports/sysutils/openzfs-kmod/work/zfs->c0eb5c35e/module/os/freebsd/zfs/zfs_vfsops.c:1911:56: error:
>> incompatible pointer types passing 'int *' to parameter of type 'uint64_t *'
>> (aka 'unsigned long *') [-Werror,-Wincompatible-pointer-types]
>> return (vfs_stdcheckexp(zfsvfs->z_parent->z_vfs, nam, extflagsp,
>> ^~~~~~~~~
>> /usr/src/sys/sys/mount.h:980:17: note: passing argument to parameter here
>> vfs_checkexp_t vfs_stdcheckexp;
>> ^
>> /usr/ports/sysutils/openzfs-kmod/work/zfs->c0eb5c35e/module/os/freebsd/zfs/zfs_vfsops.c:1912:32: error:
>> incompatible pointer types passing 'int **' to parameter of type 'int *';
>> dereference with * [-Werror,-Wincompatible-pointer-types]
>> credanonp, numsecflavors, secflavors));
>> ^~~~~~~~~~
>> *
>> /usr/src/sys/sys/mount.h:980:17: note: passing argument to parameter here
>> vfs_checkexp_t vfs_stdcheckexp;
>> ^
>> 3 errors generated.
>> *** Error code 1
>>
>> Stop.
> Post r362158, the argument types change. Since they are just passed to
> vfs_stdcheckexp(), all that needs to be done is changing the types of
> the arguments.
>
> freqlabs@ volunteered to do this upstream, but I don't know if/when
> that gets applied to the port?
The port has already been updated, so update the ports tree checkout and
you should be good.
-Ryan
> If you can fix this, simply replace:
> zfs_checkexp(vfs_t *vfsp, struct sockaddr *nam, int *extflagsp,
> struct ucred **credanonp, int *numsecflavors, int **secflavors)
>
> with
>
> zfs_checkexp(vfs_t *vfsp, struct sockaddr *nam, uint64_t *extflagsp,
> struct ucred **credanonp, int *numsecflavors, int *secflavors)
>
> in the two places it exists in zfs_vfsops.c.
>
> rick
>
>
>
> With kindest regards,
> Kostya Berger
>
> _______________________________________________
> freebsd-current at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
> _______________________________________________
> freebsd-current at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
More information about the freebsd-current
mailing list