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