Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Jun 2020 15:12:46 +0000
From:      Rick Macklem <rmacklem@uoguelph.ca>
To:        Kostya Berger <bergerkos@yahoo.co.uk>, Freebsd-current <freebsd-current@freebsd.org>
Cc:        Ryan Moeller <freqlabs@FreeBSD.org>
Subject:   Re: openzfs-kmod build error
Message-ID:  <QB1PR01MB33648347A48861545DEDFF17DD940@QB1PR01MB3364.CANPRD01.PROD.OUTLOOK.COM>
In-Reply-To: <1250230056.4543844.1592922228227@mail.yahoo.com>
References:  <1250230056.4543844.1592922228227.ref@mail.yahoo.com>, <1250230056.4543844.1592922228227@mail.yahoo.com>

index | next in thread | previous in thread | raw e-mail

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?

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@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"


help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?QB1PR01MB33648347A48861545DEDFF17DD940>