Created attachment 751738 [details] emerge --info Emerge of sys-fs/zfs-kmod-2.0.6 fails at the configure step, saying: checking whether iov_iter_init() is available... configure: error: *** None of the expected "iov_iter_init()" interfaces were detected. *** This may be because your kernel version is newer than what is *** supported, or you are using a patched custom kernel with *** incompatible modifications. *** *** ZFS Version: zfs-2.0.6-r0-gentoo *** Compatible Kernels: 3.10 - 5.14 The work directory remains so I can reproduce as: # make modules -C /usr/src/linux-5.4.28-gentoo M=/var/tmp/portage/sys-fs/zfs-kmod-2.0.6/work/zfs-2.0.6/build/iov_iter_init make: Entering directory '/usr/src/linux-5.4.28-gentoo' CC [M] /var/tmp/portage/sys-fs/zfs-kmod-2.0.6/work/zfs-2.0.6/build/iov_iter_init/iov_iter_init.o /var/tmp/portage/sys-fs/zfs-kmod-2.0.6/work/zfs-2.0.6/build/iov_iter_init/iov_iter_init.c: In function 'main': /var/tmp/portage/sys-fs/zfs-kmod-2.0.6/work/zfs-2.0.6/build/iov_iter_init/iov_iter_init.c:89:17: error: 'iov' may be used uninitialized [-Werror=maybe-uninitialized] 89 | iov_iter_init(&iter, WRITE, &iov, nr_segs, count); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /var/tmp/portage/sys-fs/zfs-kmod-2.0.6/work/zfs-2.0.6/build/iov_iter_init/iov_iter_init.c:77: ./include/linux/uio.h:216:6: note: by argument 3 of type 'const struct iovec *' to 'iov_iter_init' declared here 216 | void iov_iter_init(struct iov_iter *i, unsigned int direction, const struct iovec *iov, | ^~~~~~~~~~~~~ /var/tmp/portage/sys-fs/zfs-kmod-2.0.6/work/zfs-2.0.6/build/iov_iter_init/iov_iter_init.c:85:30: note: 'iov' declared here 85 | struct iovec iov; | ^~~ cc1: all warnings being treated as errors make[1]: *** [scripts/Makefile.build:266: /var/tmp/portage/sys-fs/zfs-kmod-2.0.6/work/zfs-2.0.6/build/iov_iter_init/iov_iter_init.o] Error 1 make: *** [Makefile:1691: /var/tmp/portage/sys-fs/zfs-kmod-2.0.6/work/zfs-2.0.6/build/iov_iter_init] Error 2 make: Leaving directory '/usr/src/linux-5.4.28-gentoo' This seems to be fully inside the zfs-kmod package, which generates this file via the configure script. If I edit it (the failing line to be `struct iovec iov = {};`) it works fine. I think this is upstream but that seems surprising. Do I have some (non-default?) compiler mode (just upgraded to GCC 11) enabled that turns this warning into a fatal error?
Can you please attach the full build.log too please? Thanks. (That said, I'd really upgrade to a newer 5.4.x kernel -- 5.4.28 is rather old at this point. It's still LTS but you need a newer patch version.)
Oh, and you may want to select a newer Binutils (and depclean).
Created attachment 751898 [details] build log
(In reply to Anthony Lieuallen from comment #3) > Created attachment 751898 [details] > build log hm, /var/tmp/portage/sys-fs/zfs-kmod-2.0.6/work/zfs-2.0.6/config.log too?
Created attachment 751902 [details] config log
I've finally found time to upgrade my kernel. To my great surprise, zfs-kmod-2.0.6 compiles now. (The error message claims kernels back to 3.10 are supported! That's clearly not /quite/ right.)