logo

oasis

Own branch of Oasis Linux (upstream: <https://git.sr.ht/~mcf/oasis/>) git clone https://anongit.hacktivis.me/git/oasis.git
commit: 6b7db809b530eee3052f73377c5b0aad13a0b963
parent f70b4bb807afbdaccc1daab13b8ff24459c8dfa5
Author: Michael Forney <mforney@mforney.org>
Date:   Tue, 17 Jan 2023 13:10:48 -0800

Add zfs 2.1.7

Diffstat:

Mpkg/gen.lua1+
Apkg/zfs/.gitignore2++
Apkg/zfs/config.h325+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apkg/zfs/gen.lua313+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apkg/zfs/patch/0001-Port-to-BearSSL.patch89+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apkg/zfs/patch/0002-Use-find-exec-rm-instead-of-non-portable-delete.patch90+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apkg/zfs/patch/0003-Use-AC_PROG_FGREP-to-detect-fgrep.patch41+++++++++++++++++++++++++++++++++++++++++
Apkg/zfs/patch/0004-Use-__asm__-instead-of-asm-to-compile-with-std-c99.patch221+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apkg/zfs/patch/0005-Use-__func__-instead-of-obsolete-and-non-standard-__.patch401+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apkg/zfs/patch/0006-Use-forward-declaration-instead-of-empty-struct.patch25+++++++++++++++++++++++++
Apkg/zfs/patch/0007-Avoid-conflict-with-C23-bool-keyword.patch25+++++++++++++++++++++++++
Apkg/zfs/patch/0008-Remove-stray-at-top-level.patch421+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apkg/zfs/patch/0009-Avoid-use-of-long-double-function.patch34++++++++++++++++++++++++++++++++++
Apkg/zfs/patch/0010-Avoid-unnecessary-VLA.patch54++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apkg/zfs/patch/0011-Avoid-arithmetic-on-void-pointer.patch25+++++++++++++++++++++++++
Apkg/zfs/sha2561+
Apkg/zfs/url1+
Apkg/zfs/ver1+
18 files changed, 2070 insertions(+), 0 deletions(-)

diff --git a/pkg/gen.lua b/pkg/gen.lua @@ -138,5 +138,6 @@ subgen 'x509cert' subgen 'xkeyboard-config' subgen 'xz' subgen 'yt-dlp' +subgen 'zfs' subgen 'zlib' subgen 'zstd' diff --git a/pkg/zfs/.gitignore b/pkg/zfs/.gitignore @@ -0,0 +1,2 @@ +/src +/zfs-2.1.7.tar.gz diff --git a/pkg/zfs/config.h b/pkg/zfs/config.h @@ -0,0 +1,325 @@ +/* #undef ENABLE_NLS */ +/* #undef HAVE_1ARG_BIO_END_IO_T */ +/* #undef HAVE_1ARG_LOOKUP_BDEV */ +/* #undef HAVE_1ARG_SUBMIT_BIO */ +/* #undef HAVE_2ARGS_BDI_SETUP_AND_REGISTER */ +/* #undef HAVE_2ARGS_VFS_GETATTR */ +/* #undef HAVE_2ARGS_ZLIB_DEFLATE_WORKSPACESIZE */ +/* #undef HAVE_3ARGS_BDI_SETUP_AND_REGISTER */ +/* #undef HAVE_3ARGS_VFS_GETATTR */ +/* #undef HAVE_4ARGS_VFS_GETATTR */ +/* #undef HAVE_ACCESS_OK_TYPE */ +/* #undef HAVE_ACL_REFCOUNT */ +/* #undef HAVE_ADD_DISK_RET */ +/* #undef HAVE_AES */ +/* #undef HAVE_AVX */ +/* #undef HAVE_AVX2 */ +/* #undef HAVE_AVX512BW */ +/* #undef HAVE_AVX512CD */ +/* #undef HAVE_AVX512DQ */ +/* #undef HAVE_AVX512ER */ +/* #undef HAVE_AVX512F */ +/* #undef HAVE_AVX512IFMA */ +/* #undef HAVE_AVX512PF */ +/* #undef HAVE_AVX512VBMI */ +/* #undef HAVE_AVX512VL */ +/* #undef HAVE_BDEVNAME */ +/* #undef HAVE_BDEV_CHECK_MEDIA_CHANGE */ +/* #undef HAVE_BDEV_IO_ACCT */ +/* #undef HAVE_BDEV_MAX_DISCARD_SECTORS */ +/* #undef HAVE_BDEV_MAX_SECURE_ERASE_SECTORS */ +/* #undef HAVE_BDEV_SUBMIT_BIO_RETURNS_VOID */ +/* #undef HAVE_BDEV_WHOLE */ +/* #undef HAVE_BIO_ALLOC_4ARG */ +/* #undef HAVE_BIO_BDEV_DISK */ +/* #undef HAVE_BIO_BI_OPF */ +/* #undef HAVE_BIO_BI_STATUS */ +/* #undef HAVE_BIO_BVEC_ITER */ +/* #undef HAVE_BIO_IO_ACCT */ +/* #undef HAVE_BIO_MAX_SEGS */ +/* #undef HAVE_BIO_SET_DEV */ +/* #undef HAVE_BIO_SET_DEV_GPL_ONLY */ +/* #undef HAVE_BIO_SET_DEV_MACRO */ +/* #undef HAVE_BIO_SET_OP_ATTRS */ +/* #undef HAVE_BLKDEV_GET_ERESTARTSYS */ +/* #undef HAVE_BLKDEV_ISSUE_DISCARD */ +/* #undef HAVE_BLKDEV_ISSUE_SECURE_ERASE */ +/* #undef HAVE_BLKDEV_REREAD_PART */ +/* #undef HAVE_BLKG_TRYGET */ +/* #undef HAVE_BLKG_TRYGET_GPL_ONLY */ +/* #undef HAVE_BLK_ALLOC_DISK */ +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN */ +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN_RH */ +/* #undef HAVE_BLK_CLEANUP_DISK */ +/* #undef HAVE_BLK_QUEUE_BDI_DYNAMIC */ +/* #undef HAVE_BLK_QUEUE_DISCARD */ +/* #undef HAVE_BLK_QUEUE_FLAG_CLEAR */ +/* #undef HAVE_BLK_QUEUE_FLAG_SET */ +/* #undef HAVE_BLK_QUEUE_FLUSH */ +/* #undef HAVE_BLK_QUEUE_FLUSH_GPL_ONLY */ +/* #undef HAVE_BLK_QUEUE_SECDISCARD */ +/* #undef HAVE_BLK_QUEUE_SECURE_ERASE */ +/* #undef HAVE_BLK_QUEUE_UPDATE_READAHEAD */ +/* #undef HAVE_BLK_QUEUE_WRITE_CACHE */ +/* #undef HAVE_BLK_QUEUE_WRITE_CACHE_GPL_ONLY */ +/* #undef HAVE_BLOCK_DEVICE_OPERATIONS_REVALIDATE_DISK */ +/* #undef HAVE_CFLOCALECOPYCURRENT */ +/* #undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES */ +/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */ +/* #undef HAVE_CHECK_DISK_CHANGE */ +/* #undef HAVE_CLEAR_INODE */ +/* #undef HAVE_CONST_DENTRY_OPERATIONS */ +/* #undef HAVE_COPY_FROM_ITER */ +/* #undef HAVE_COPY_TO_ITER */ +/* #undef HAVE_CPU_HOTPLUG */ +/* #undef HAVE_CURRENT_TIME */ +/* #undef HAVE_DCGETTEXT */ +/* #undef HAVE_DECLARE_EVENT_CLASS */ +/* #undef HAVE_DENTRY_D_U_ALIASES */ +/* #undef HAVE_DEQUEUE_SIGNAL_4ARG */ +/* #undef HAVE_DEVT_LOOKUP_BDEV */ +/* #undef HAVE_DIRTY_INODE_WITH_FLAGS */ +/* #undef HAVE_DISK_IO_ACCT */ +/* #undef HAVE_DISK_UPDATE_READAHEAD */ +#define HAVE_DLFCN_H 1 +/* #undef HAVE_D_MAKE_ROOT */ +/* #undef HAVE_D_PRUNE_ALIASES */ +/* #undef HAVE_D_REVALIDATE_NAMEIDATA */ +/* #undef HAVE_ENCODE_FH_WITH_INODE */ +/* #undef HAVE_EVICT_INODE */ +/* #undef HAVE_FALLOC_FL_ZERO_RANGE */ +/* #undef HAVE_FAULT_IN_IOV_ITER_READABLE */ +/* #undef HAVE_FILE_AIO_FSYNC */ +/* #undef HAVE_FILE_DENTRY */ +/* #undef HAVE_FILE_INODE */ +/* #undef HAVE_FOLLOW_LINK_COOKIE */ +/* #undef HAVE_FOLLOW_LINK_NAMEIDATA */ +/* #undef HAVE_FSYNC_RANGE */ +/* #undef HAVE_FSYNC_WITHOUT_DENTRY */ +/* #undef HAVE_GENERIC_FILLATTR_USERNS */ +/* #undef HAVE_GENERIC_IO_ACCT_3ARG */ +/* #undef HAVE_GENERIC_IO_ACCT_4ARG */ +/* #undef HAVE_GENERIC_READLINK */ +/* #undef HAVE_GENERIC_SETXATTR */ +/* #undef HAVE_GENERIC_WRITE_CHECKS_KIOCB */ +/* #undef HAVE_GETTEXT */ +/* #undef HAVE_GET_ACL */ +/* #undef HAVE_GET_ACL_RCU */ +/* #undef HAVE_GET_LINK_COOKIE */ +/* #undef HAVE_GET_LINK_DELAYED */ +/* #undef HAVE_GROUP_INFO_GID */ +/* #undef HAVE_HAS_CAPABILITY */ +/* #undef HAVE_ICONV */ +#define HAVE_IMPLICIT_FALLTHROUGH 1 +#define HAVE_INFINITE_RECURSION 1 +/* #undef HAVE_INODE_LOCK_SHARED */ +/* #undef HAVE_INODE_OWNER_OR_CAPABLE */ +/* #undef HAVE_INODE_OWNER_OR_CAPABLE_IDMAPPED */ +/* #undef HAVE_INODE_SET_FLAGS */ +/* #undef HAVE_INODE_SET_IVERSION */ +/* #undef HAVE_INODE_TIMESPEC64_TIMES */ +/* #undef HAVE_INODE_TIMESTAMP_TRUNCATE */ +#define HAVE_INTTYPES_H 1 +/* #undef HAVE_IN_COMPAT_SYSCALL */ +/* #undef HAVE_IOPS_CREATE_USERNS */ +/* #undef HAVE_IOPS_MKDIR_USERNS */ +/* #undef HAVE_IOPS_MKNOD_USERNS */ +/* #undef HAVE_IOPS_RENAME_USERNS */ +/* #undef HAVE_IOPS_SYMLINK_USERNS */ +/* #undef HAVE_IOV_ITER_ADVANCE */ +/* #undef HAVE_IOV_ITER_COUNT */ +/* #undef HAVE_IOV_ITER_FAULT_IN_READABLE */ +/* #undef HAVE_IOV_ITER_REVERT */ +/* #undef HAVE_IOV_ITER_TYPE */ +/* #undef HAVE_IOV_ITER_TYPES */ +/* #undef HAVE_IO_SCHEDULE_TIMEOUT */ +#define HAVE_ISSETUGID 1 +/* #undef HAVE_KERNEL_FPU */ +/* #undef HAVE_KERNEL_FPU_API_HEADER */ +/* #undef HAVE_KERNEL_FPU_INTERNAL */ +/* #undef HAVE_KERNEL_FPU_INTERNAL_HEADER */ +/* #undef HAVE_KERNEL_FPU_XCR_HEADER */ +/* #undef HAVE_KERNEL_FPU_XSAVE_INTERNAL */ +/* #undef HAVE_KERNEL_GET_ACL_HANDLE_CACHE */ +/* #undef HAVE_KERNEL_OBJTOOL */ +/* #undef HAVE_KERNEL_OBJTOOL_HEADER */ +/* #undef HAVE_KERNEL_READ_PPOS */ +/* #undef HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST */ +/* #undef HAVE_KERNEL_TIMER_LIST_FLAGS */ +/* #undef HAVE_KERNEL_TIMER_SETUP */ +/* #undef HAVE_KERNEL_WRITE_PPOS */ +/* #undef HAVE_KMEM_CACHE_CREATE_USERCOPY */ +/* #undef HAVE_KSTRTOUL */ +/* #undef HAVE_KTIME_GET_COARSE_REAL_TS64 */ +/* #undef HAVE_KTIME_GET_RAW_TS64 */ +/* #undef HAVE_KVMALLOC */ +/* #undef HAVE_LIBAIO */ +#define HAVE_LIBBLKID 1 +#define HAVE_LIBCRYPTO 1 +#define HAVE_LIBTIRPC 1 +/* #undef HAVE_LIBUDEV */ +#define HAVE_LIBUUID 1 +/* #undef HAVE_LINUX_BLK_CGROUP_HEADER */ +/* #undef HAVE_LSEEK_EXECUTE */ +/* #undef HAVE_MAKEDEV_IN_MKDEV */ +#define HAVE_MAKEDEV_IN_SYSMACROS 1 +/* #undef HAVE_MAKE_REQUEST_FN_RET_QC */ +/* #undef HAVE_MAKE_REQUEST_FN_RET_VOID */ +/* #undef HAVE_MKDIR_UMODE_T */ +#define HAVE_MLOCKALL 1 +/* #undef HAVE_MODE_LOOKUP_BDEV */ +#define HAVE_MOVBE 1 +/* #undef HAVE_NEW_SYNC_READ */ +/* #undef HAVE_PAGEMAP_FOLIO_WAIT_BIT */ +/* #undef HAVE_PATH_IOPS_GETATTR */ +#define HAVE_PCLMULQDQ 1 +/* #undef HAVE_PERCPU_COUNTER_ADD_BATCH */ +/* #undef HAVE_PERCPU_COUNTER_INIT_WITH_GFP */ +/* #undef HAVE_POSIX_ACL_CHMOD */ +/* #undef HAVE_POSIX_ACL_FROM_XATTR_USERNS */ +/* #undef HAVE_POSIX_ACL_RELEASE */ +/* #undef HAVE_POSIX_ACL_RELEASE_GPL_ONLY */ +/* #undef HAVE_POSIX_ACL_VALID_WITH_NS */ +/* #undef HAVE_PROC_OPS_STRUCT */ +/* #undef HAVE_PUT_LINK_COOKIE */ +/* #undef HAVE_PUT_LINK_DELAYED */ +/* #undef HAVE_PUT_LINK_NAMEIDATA */ +/* #undef HAVE_PYTHON */ +/* #undef HAVE_QAT */ +/* #undef HAVE_REGISTER_SHRINKER_VARARG */ +/* #undef HAVE_RENAME_WANTS_FLAGS */ +/* #undef HAVE_REQ_DISCARD */ +/* #undef HAVE_REQ_FLUSH */ +/* #undef HAVE_REQ_OP_DISCARD */ +/* #undef HAVE_REQ_OP_FLUSH */ +/* #undef HAVE_REQ_OP_SECURE_ERASE */ +/* #undef HAVE_REQ_PREFLUSH */ +/* #undef HAVE_REVALIDATE_DISK */ +/* #undef HAVE_REVALIDATE_DISK_SIZE */ +/* #undef HAVE_RWSEM_ACTIVITY */ +/* #undef HAVE_RWSEM_ATOMIC_LONG_COUNT */ +/* #undef HAVE_SCHED_SIGNAL_HEADER */ +/* #undef HAVE_SECURITY_PAM_MODULES_H */ +/* #undef HAVE_SETATTR_PREPARE_NO_USERNS */ +/* #undef HAVE_SETATTR_PREPARE_USERNS */ +/* #undef HAVE_SET_ACL */ +/* #undef HAVE_SET_ACL_USERNS */ +/* #undef HAVE_SET_CACHED_ACL_USABLE */ +/* #undef HAVE_SET_SPECIAL_STATE */ +/* #undef HAVE_SHRINK_CONTROL_STRUCT */ +/* #undef HAVE_SIGINFO */ +/* #undef HAVE_SIGNAL_STOP */ +/* #undef HAVE_SINGLE_SHRINKER_CALLBACK */ +/* #undef HAVE_SPLIT_SHRINKER_CALLBACK */ +/* #undef HAVE_SSE */ +/* #undef HAVE_SSE2 */ +/* #undef HAVE_SSE3 */ +/* #undef HAVE_SSE4_1 */ +/* #undef HAVE_SSE4_2 */ +/* #undef HAVE_SSSE3 */ +/* #undef HAVE_STACK_FRAME_NON_STANDARD */ +/* #undef HAVE_STANDALONE_LINUX_STDARG */ +#define HAVE_STDINT_H 1 +#define HAVE_STDIO_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_STRING_H 1 +#define HAVE_STRLCAT 1 +#define HAVE_STRLCPY 1 +/* #undef HAVE_SUBMIT_BIO_IN_BLOCK_DEVICE_OPERATIONS */ +/* #undef HAVE_SUPER_SETUP_BDI_NAME */ +/* #undef HAVE_SUPER_USER_NS */ +/* #undef HAVE_SYSFS_DEFAULT_GROUPS */ +#define HAVE_SYS_STAT_H 1 +#define HAVE_SYS_TYPES_H 1 +/* #undef HAVE_TMPFILE */ +/* #undef HAVE_TMPFILE_USERNS */ +/* #undef HAVE_TOTALHIGH_PAGES */ +/* #undef HAVE_TOTALRAM_PAGES_FUNC */ +/* #undef HAVE_UDEV_DEVICE_GET_IS_INITIALIZED */ +/* #undef HAVE_UNDERSCORE_KERNEL_FPU */ +#define HAVE_UNISTD_H 1 +/* #undef HAVE_USERNS_IOPS_GETATTR */ +/* #undef HAVE_VFSMOUNT_IOPS_GETATTR */ +/* #undef HAVE_VFS_DIRECT_IO_IOVEC */ +/* #undef HAVE_VFS_DIRECT_IO_ITER */ +/* #undef HAVE_VFS_DIRECT_IO_ITER_OFFSET */ +/* #undef HAVE_VFS_DIRECT_IO_ITER_RW_OFFSET */ +/* #undef HAVE_VFS_FILEMAP_DIRTY_FOLIO */ +/* #undef HAVE_VFS_IOV_ITER */ +/* #undef HAVE_VFS_ITERATE */ +/* #undef HAVE_VFS_ITERATE_SHARED */ +/* #undef HAVE_VFS_READDIR */ +/* #undef HAVE_VFS_READPAGES */ +/* #undef HAVE_VFS_READ_FOLIO */ +/* #undef HAVE_VFS_RW_ITERATE */ +/* #undef HAVE_VFS_SET_PAGE_DIRTY_NOBUFFERS */ +/* #undef HAVE_VMALLOC_PAGE_KERNEL */ +/* #undef HAVE_WAIT_ON_BIT_ACTION */ +/* #undef HAVE_WAIT_QUEUE_ENTRY_T */ +/* #undef HAVE_WAIT_QUEUE_HEAD_ENTRY */ +/* #undef HAVE_XATTR_GET_DENTRY */ +/* #undef HAVE_XATTR_GET_DENTRY_INODE */ +/* #undef HAVE_XATTR_GET_DENTRY_INODE_FLAGS */ +/* #undef HAVE_XATTR_GET_HANDLER */ +/* #undef HAVE_XATTR_HANDLER_NAME */ +/* #undef HAVE_XATTR_LIST_DENTRY */ +/* #undef HAVE_XATTR_LIST_HANDLER */ +/* #undef HAVE_XATTR_LIST_SIMPLE */ +/* #undef HAVE_XATTR_SET_DENTRY */ +/* #undef HAVE_XATTR_SET_DENTRY_INODE */ +/* #undef HAVE_XATTR_SET_HANDLER */ +/* #undef HAVE_XATTR_SET_USERNS */ +#define HAVE_XSAVE 1 +#define HAVE_XSAVEOPT 1 +#define HAVE_XSAVES 1 +/* #undef HAVE_ZERO_PAGE_GPL_ONLY */ +#define HAVE_ZLIB 1 +/* #undef HAVE___POSIX_ACL_CHMOD */ +/* #undef KERNEL_EXPORTS_X86_FPU */ +/* #undef LIBFETCH_DYNAMIC */ +/* #undef LIBFETCH_IS_FETCH */ +/* #undef LIBFETCH_IS_LIBCURL */ +/* #undef LIBFETCH_SONAME */ +#define LT_OBJDIR ".libs/" +/* #undef MAKE_REQUEST_FN_RET */ +/* #undef SHRINK_CONTROL_HAS_NID */ +/* #undef SPL_KTHREAD_COMPLETE_AND_EXIT */ +#define SPL_META_ALIAS ZFS_META_ALIAS +#define SPL_META_RELEASE ZFS_META_RELEASE +#define SPL_META_VERSION ZFS_META_VERSION +/* #undef SPL_PDE_DATA */ +/* #undef SYSTEM_FREEBSD */ +#define SYSTEM_LINUX 1 +/* #undef ZFS_DEBUG */ +/* #undef ZFS_DEVICE_MINOR */ +/* #undef ZFS_ENUM_NODE_STAT_ITEM_NR_FILE_PAGES */ +/* #undef ZFS_ENUM_NODE_STAT_ITEM_NR_INACTIVE_ANON */ +/* #undef ZFS_ENUM_NODE_STAT_ITEM_NR_INACTIVE_FILE */ +/* #undef ZFS_ENUM_ZONE_STAT_ITEM_NR_FILE_PAGES */ +/* #undef ZFS_ENUM_ZONE_STAT_ITEM_NR_INACTIVE_ANON */ +/* #undef ZFS_ENUM_ZONE_STAT_ITEM_NR_INACTIVE_FILE */ +/* #undef ZFS_GENHD_FL_EXT_DEVT */ +/* #undef ZFS_GENHD_FL_NO_PART */ +/* #undef ZFS_GLOBAL_NODE_PAGE_STATE */ +/* #undef ZFS_GLOBAL_ZONE_PAGE_STATE */ +/* #undef ZFS_IS_GPL_COMPATIBLE */ +#define ZFS_META_ALIAS "zfs-2.1.7-1" +#define ZFS_META_AUTHOR "OpenZFS" +/* #undef ZFS_META_DATA */ +#define ZFS_META_KVER_MAX "6.0" +#define ZFS_META_KVER_MIN "3.10" +#define ZFS_META_LICENSE "CDDL" +/* #undef ZFS_META_LT_AGE */ +/* #undef ZFS_META_LT_CURRENT */ +/* #undef ZFS_META_LT_REVISION */ +#define ZFS_META_NAME "zfs" +#define ZFS_META_RELEASE "1" +#define ZFS_META_VERSION "2.1.7" +/* #undef ZFS_PERCPU_REF_COUNT_IN_DATA */ + +#define RUNSTATEDIR "/run" +#define SBINDIR "/bin" +#define SYSCONFDIR "/etc" +#define PKGDATADIR "/share/zfs" +#define TEXT_DOMAIN "zfs-linux-user" diff --git a/pkg/zfs/gen.lua b/pkg/zfs/gen.lua @@ -0,0 +1,313 @@ +cflags{ + '-std=c99 -Wall', + '-include $dir/config.h', + '-D _GNU_SOURCE', + '-D _LARGEFILE64_SOURCE', + '-I $srcdir/include', + '-I $srcdir/module/icp/include', + '-I $srcdir/lib/libspl/include', + '-I $srcdir/lib/libspl/include/os/linux', + '-I $srcdir/lib/libzutil', + '-I $srcdir/lib/libshare', + '-I $srcdir/cmd/zpool', + '-isystem $builddir/pkg/bearssl/include', + '-isystem $builddir/pkg/libtirpc/include', + '-isystem $builddir/pkg/linux-headers/include', + '-isystem $builddir/pkg/util-linux/include', + '-isystem $builddir/pkg/zlib/include', +} + +pkg.deps = { + 'pkg/bearssl/headers', + 'pkg/libtirpc/headers', + 'pkg/linux-headers/headers', + 'pkg/util-linux/headers', + 'pkg/zlib/headers', +} + +lib('libavl.a', {'module/avl/avl.c'}) + +lib('libshare.a', [[ + lib/libshare/( + libshare.c + os/linux/(nfs.c smb.c) + ) +]]) + +lib('libspl.a', [[ + lib/libspl/( + assert.c + atomic.c + list.c + mkdirp.c + page.c + strlcat.c + strlcpy.c + timestamp.c + os/linux/( + getexecname.c + gethostid.c + getmntany.c + zone.c + ) + ) +]]) + +lib('libtpool.a', {'lib/libtpool/thread_pool.c'}) + +lib('libefi.a', [[ + lib/libefi/rdwr_efi.c + $builddir/pkg/util-linux/libuuid.a.d +]]) + +lib('libnvpair.a', [[ + lib/libnvpair/( + libnvpair.c + libnvpair_json.c + nvpair_alloc_system.c + ) + module/nvpair/( + nvpair_alloc_fixed.c + nvpair.c + fnvpair.c + ) + $builddir/pkg/libtirpc/libtirpc.a +]]) + +lib('libzutil.a', [[ + lib/libzutil/( + zutil_device_path.c + zutil_import.c + zutil_nicenum.c + zutil_pool.c + os/linux/( + zutil_device_path_os.c + zutil_import_os.c + zutil_compat.c + ) + ) + libefi.a.d + libspl.a + libtpool.a + $builddir/pkg/util-linux/libblkid.a.d +]]) + +lib('libuutil.a', [[ + lib/libuutil/( + uu_alloc.c + uu_avl.c + uu_dprintf.c + uu_ident.c + uu_list.c + uu_misc.c + uu_open.c + uu_pname.c + uu_string.c + ) + libavl.a + libspl.a +]]) + +lib('libzfs_core.a', [[ + lib/libzfs_core/( + libzfs_core.c + ) + libzutil.a.d +]]) + +lib('libzfs.a', [[ + lib/libzfs/( + libzfs_changelist.c + libzfs_config.c + libzfs_crypto.c + libzfs_dataset.c + libzfs_diff.c + libzfs_import.c + libzfs_iter.c + libzfs_mount.c + libzfs_pool.c + libzfs_sendrecv.c + libzfs_status.c + libzfs_util.c + os/linux/( + libzfs_mount_os.c + libzfs_pool_os.c + libzfs_sendrecv_os.c + libzfs_util_os.c + ) + ) + module/( + zcommon/( + cityhash.c + zfeature_common.c + zfs_comutil.c + zfs_fletcher.c + zfs_fletcher_superscalar.c + zfs_fletcher_superscalar4.c + zfs_namecheck.c + zfs_prop.c + zpool_prop.c + zprop_common.c + ) + ) + libnvpair.a.d + libuutil.a.d + libshare.a.d + libzfs_core.a.d + $builddir/pkg/bearssl/libbearssl.a + $builddir/pkg/zlib/libz.a +]]) + +exe('zed', [[ + cmd/zed/( + zed.c + zed_conf.c + zed_disk_event.c + zed_event.c + zed_exec.c + zed_file.c + zed_log.c + zed_strings.c + agents/( + zfs_agents.c + zfs_diagnosis.c + zfs_mod.c + zfs_retire.c + fmd_api.c + fmd_serd.c + ) + ) + libzfs.a.d +]]) +file('bin/zed', '755', '$outdir/zed') +build('sed', '$outdir/zed.8', '$srcdir/man/man8/zed.8.in', { + expr={ + '-e s,@sysconfdir@,/etc,', + '-e s,@zfsexecdir@,/libexec/zfs,', + '-e s,@runstatedir@,/run,', + }, +}) + +exe('zfs', [[ + cmd/zfs/( + zfs_iter.c + zfs_main.c + zfs_project.c + ) + libzfs.a.d + libuutil.a.d +]]) +file('bin/zfs', '755', '$outdir/zfs') + +exe('zpool', [[ + cmd/zpool/( + zpool_iter.c + zpool_main.c + zpool_util.c + zpool_vdev.c + os/linux/zpool_vdev_os.c + ) + libzfs.a.d +]]) +file('bin/zpool', '755', '$outdir/zpool') + +exe('zstream', [[ + cmd/zstream/( + zstream.c + zstream_dump.c + zstream_redup.c + zstream_token.c + ) + libzfs.a.d +]]) +file('bin/zstream', '755', '$outdir/zstream') +sym('bin/zstreamdump', 'zstream') + +man(paths[[ + man/( + man4/zfs.4 + man8/( + zfs.8 + zfs-allow.8 + zfs-bookmark.8 + zfs-change-key.8 + zfs-clone.8 + zfs-create.8 + zfs-destroy.8 + zfs-diff.8 + zfs-get.8 + zfs-groupspace.8 + zfs-hold.8 + zfs-inherit.8 + zfs-jail.8 + zfs-list.8 + zfs-load-key.8 + zfs-mount.8 + zfs-program.8 + zfs-project.8 + zfs-projectspace.8 + zfs-promote.8 + zfs-receive.8 + zfs-recv.8 + zfs-redact.8 + zfs-release.8 + zfs-rename.8 + zfs-rollback.8 + zfs-send.8 + zfs-set.8 + zfs-share.8 + zfs-snapshot.8 + zfs-unallow.8 + zfs-unjail.8 + zfs-unload-key.8 + zfs-unmount.8 + zfs-upgrade.8 + zfs-userspace.8 + zfs-wait.8 + zpool.8 + zpool-add.8 + zpool-attach.8 + zpool-checkpoint.8 + zpool-clear.8 + zpool-create.8 + zpool-destroy.8 + zpool-detach.8 + zpool-events.8 + zpool-export.8 + zpool-get.8 + zpool-history.8 + zpool-import.8 + zpool-initialize.8 + zpool-iostat.8 + zpool-labelclear.8 + zpool-list.8 + zpool-offline.8 + zpool-online.8 + zpool-reguid.8 + zpool-remove.8 + zpool-reopen.8 + zpool-replace.8 + zpool-resilver.8 + zpool-scrub.8 + zpool-set.8 + zpool-split.8 + zpool-status.8 + zpool-sync.8 + zpool-trim.8 + zpool-upgrade.8 + zpool-wait.8 + zstream.8 + zstreamdump.8 + ) + man7/( + zfsconcepts.7 + zfsprops.7 + zpool-features.7 + zpoolconcepts.7 + zpoolprops.7 + ) + ) + $outdir/zed.8 +]]) + +fetch 'curl' diff --git a/pkg/zfs/patch/0001-Port-to-BearSSL.patch b/pkg/zfs/patch/0001-Port-to-BearSSL.patch @@ -0,0 +1,89 @@ +From ec03405d2ba8eee8e95ec94e09888eaff82ad6ac Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Tue, 17 Jan 2023 12:01:13 -0800 +Subject: [PATCH] Port to BearSSL + +--- + lib/libzfs/libzfs_crypto.c | 52 ++++++++++++++++++++++++++++++-------- + 1 file changed, 42 insertions(+), 10 deletions(-) + +diff --git a/lib/libzfs/libzfs_crypto.c b/lib/libzfs/libzfs_crypto.c +index f77becd6a..5eed592a4 100644 +--- a/lib/libzfs/libzfs_crypto.c ++++ b/lib/libzfs/libzfs_crypto.c +@@ -25,7 +25,7 @@ + #include <termios.h> + #include <signal.h> + #include <errno.h> +-#include <openssl/evp.h> ++#include <bearssl.h> + #if LIBFETCH_DYNAMIC + #include <dlfcn.h> + #endif +@@ -763,6 +763,44 @@ error: + return (ret); + } + ++static void ++pbkdf2_hmac_sha1(unsigned char *DK, size_t DKlen, const char *P, size_t Plen, const char *S, size_t Slen, int c) ++{ ++ br_hmac_key_context kc; ++ br_hmac_context hmac; ++ unsigned char F[br_sha1_SIZE], U[64]; ++ int j, k; ++ unsigned long i; ++ ++ assert(Slen <= sizeof U - 4); ++ br_hmac_key_init(&kc, &br_sha1_vtable, P, Plen); ++ for (i = 1;; ++i) { ++ memcpy(U, S, Slen); ++ U[Slen] = i >> 24; ++ U[Slen + 1] = i >> 16; ++ U[Slen + 2] = i >> 8; ++ U[Slen + 3] = i; ++ br_hmac_init(&hmac, &kc, 0); ++ br_hmac_update(&hmac, U, Slen + 4); ++ br_hmac_out(&hmac, U); ++ memcpy(F, U, br_sha1_SIZE); ++ for (j = 1; j < c; ++j) { ++ br_hmac_init(&hmac, &kc, 0); ++ br_hmac_update(&hmac, U, br_sha1_SIZE); ++ br_hmac_out(&hmac, U); ++ for (k = 0; k < br_sha1_SIZE; k++) ++ F[k] ^= U[k]; ++ } ++ if (DKlen < sizeof F) { ++ memcpy(DK, F, DKlen); ++ break; ++ } ++ memcpy(DK, F, sizeof F); ++ DK += sizeof F; ++ DKlen -= sizeof F; ++ } ++} ++ + static int + derive_key(libzfs_handle_t *hdl, zfs_keyformat_t format, uint64_t iters, + uint8_t *key_material, size_t key_material_len, uint64_t salt, +@@ -793,15 +831,9 @@ derive_key(libzfs_handle_t *hdl, zfs_keyformat_t format, uint64_t iters, + case ZFS_KEYFORMAT_PASSPHRASE: + salt = LE_64(salt); + +- ret = PKCS5_PBKDF2_HMAC_SHA1((char *)key_material, +- strlen((char *)key_material), ((uint8_t *)&salt), +- sizeof (uint64_t), iters, WRAPPING_KEY_LEN, key); +- if (ret != 1) { +- ret = EIO; +- zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, +- "Failed to generate key from passphrase.")); +- goto error; +- } ++ pbkdf2_hmac_sha1((unsigned char *)key, WRAPPING_KEY_LEN, ++ (char *)key_material, strlen((char *)key_material), ++ (char *)&salt, sizeof salt, iters); + break; + default: + ret = EINVAL; +-- +2.37.3 + diff --git a/pkg/zfs/patch/0002-Use-find-exec-rm-instead-of-non-portable-delete.patch b/pkg/zfs/patch/0002-Use-find-exec-rm-instead-of-non-portable-delete.patch @@ -0,0 +1,90 @@ +From 8da3e065051442982e255786a45fd5eea01321a9 Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Tue, 17 Jan 2023 12:56:34 -0800 +Subject: [PATCH] Use find -exec rm instead of non-portable -delete + +--- + config/ax_code_coverage.m4 | 2 +- + module/Makefile.in | 4 ++-- + .../tests/functional/cli_root/zfs_diff/zfs_diff_timestamp.ksh | 2 +- + .../tests/functional/cli_root/zfs_send/zfs_send_007_pos.ksh | 2 +- + .../tests/functional/zvol/zvol_misc/zvol_misc_common.kshlib | 2 +- + 5 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/config/ax_code_coverage.m4 b/config/ax_code_coverage.m4 +index 3e3c666f3..fbe46db1f 100644 +--- a/config/ax_code_coverage.m4 ++++ b/config/ax_code_coverage.m4 +@@ -153,7 +153,7 @@ distclean: code-coverage-clean + code-coverage-clean: + -$(LCOV) --directory $(top_builddir) -z + -rm -rf $(CODE_COVERAGE_OUTPUT_FILE) $(CODE_COVERAGE_OUTPUT_FILE).tmp $(CODE_COVERAGE_OUTPUT_DIRECTORY) +- -find . \( -name "*.gcda" -o -name "*.gcno" -o -name "*.gcov" \) -delete ++ -find . \( -name "*.gcda" -o -name "*.gcno" -o -name "*.gcov" \) -exec rm -- {} + + '] + ], [ + [CODE_COVERAGE_RULES_CHECK=' +diff --git a/module/Makefile.in b/module/Makefile.in +index b6338430e..d87fb729d 100644 +--- a/module/Makefile.in ++++ b/module/Makefile.in +@@ -70,7 +70,7 @@ clean-Linux: + @CONFIG_KERNEL_TRUE@ $(MAKE) -C @LINUX_OBJ@ M="$$PWD" @KERNEL_MAKE@ clean + + $(RM) @LINUX_SYMBOLS@ Module.markers +- find . -name '*.ur-safe' -type f -delete ++ find . -name '*.ur-safe' -type f -exec $(RM) -- {} + + + clean-FreeBSD: + +$(FMAKE) clean +@@ -86,7 +86,7 @@ modules_install-Linux: + @# Remove extraneous build products when packaging + kmoddir=$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@; \ + if [ -n "$(DESTDIR)" ]; then \ +- find $$kmoddir -name 'modules.*' -delete; \ ++ find $$kmoddir -name 'modules.*' -exec $(RM) -- {} +; \ + fi + @# Debian ships tiny fake System.map files that are + @# syntactically valid but just say +diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_diff/zfs_diff_timestamp.ksh b/tests/zfs-tests/tests/functional/cli_root/zfs_diff/zfs_diff_timestamp.ksh +index 0d08cf629..7714d02cd 100755 +--- a/tests/zfs-tests/tests/functional/cli_root/zfs_diff/zfs_diff_timestamp.ksh ++++ b/tests/zfs-tests/tests/functional/cli_root/zfs_diff/zfs_diff_timestamp.ksh +@@ -33,7 +33,7 @@ function cleanup + for snap in $TESTSNAP1 $TESTSNAP2; do + snapexists "$snap" && destroy_dataset "$snap" + done +- find "$MNTPOINT" -type f -delete ++ find "$MNTPOINT" -type f -exec rm -- {} + + rm -f "$FILEDIFF" + } + +diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_send/zfs_send_007_pos.ksh b/tests/zfs-tests/tests/functional/cli_root/zfs_send/zfs_send_007_pos.ksh +index da0aebe6b..7d5242ee0 100755 +--- a/tests/zfs-tests/tests/functional/cli_root/zfs_send/zfs_send_007_pos.ksh ++++ b/tests/zfs-tests/tests/functional/cli_root/zfs_send/zfs_send_007_pos.ksh +@@ -61,7 +61,7 @@ test_pool () + object=$(ls -i $mntpnt | awk '{print $1}') + log_must zfs snapshot $POOL/fs@a + while true; do +- log_must find $mntpnt/ -type f -delete ++ log_must find $mntpnt/ -type f -exec rm -- {} + + sync + log_must mkfiles "$mntpnt/" 4000 + sync +diff --git a/tests/zfs-tests/tests/functional/zvol/zvol_misc/zvol_misc_common.kshlib b/tests/zfs-tests/tests/functional/zvol/zvol_misc/zvol_misc_common.kshlib +index b69d2ce02..54f3e459e 100644 +--- a/tests/zfs-tests/tests/functional/zvol/zvol_misc/zvol_misc_common.kshlib ++++ b/tests/zfs-tests/tests/functional/zvol/zvol_misc/zvol_misc_common.kshlib +@@ -60,7 +60,7 @@ function udev_cleanup + + udevadm settle + # find all dangling links and delete them +- find -L "${ZVOL_DEVDIR}" -type l -print -delete ++ find -L "${ZVOL_DEVDIR}" -type l -print -exec rm -- {} + + # purge those links from udev database + udevadm info --cleanup-db + } +-- +2.37.3 + diff --git a/pkg/zfs/patch/0003-Use-AC_PROG_FGREP-to-detect-fgrep.patch b/pkg/zfs/patch/0003-Use-AC_PROG_FGREP-to-detect-fgrep.patch @@ -0,0 +1,41 @@ +From 4f4a44f8c83179ee98397faa773f2e4c1faa066b Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Tue, 17 Jan 2023 12:57:13 -0800 +Subject: [PATCH] Use AC_PROG_FGREP to detect fgrep + +fgrep is not standard, so use AC_PROG_FGREP to detect the appropriate +command. +--- + config/kernel.m4 | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/config/kernel.m4 b/config/kernel.m4 +index 3a059b73a..3f535fdb3 100644 +--- a/config/kernel.m4 ++++ b/config/kernel.m4 +@@ -324,6 +324,7 @@ dnl # and `/usr/src/linux-*` with the highest version number according + dnl # to `sort -V` is assumed to be both source and build directory. + dnl # + AC_DEFUN([ZFS_AC_KERNEL], [ ++ AC_REQUIRE([AC_PROG_FGREP]) + AC_ARG_WITH([linux], + AS_HELP_STRING([--with-linux=PATH], + [Path to kernel source]), +@@ -404,11 +405,11 @@ AC_DEFUN([ZFS_AC_KERNEL], [ + utsrelease1=$kernelbuild/include/linux/version.h + utsrelease2=$kernelbuild/include/linux/utsrelease.h + utsrelease3=$kernelbuild/include/generated/utsrelease.h +- AS_IF([test -r $utsrelease1 && fgrep -q UTS_RELEASE $utsrelease1], [ ++ AS_IF([test -r $utsrelease1 && $FGREP -q UTS_RELEASE $utsrelease1], [ + utsrelease=$utsrelease1 +- ], [test -r $utsrelease2 && fgrep -q UTS_RELEASE $utsrelease2], [ ++ ], [test -r $utsrelease2 && $FGREP -q UTS_RELEASE $utsrelease2], [ + utsrelease=$utsrelease2 +- ], [test -r $utsrelease3 && fgrep -q UTS_RELEASE $utsrelease3], [ ++ ], [test -r $utsrelease3 && $FGREP -q UTS_RELEASE $utsrelease3], [ + utsrelease=$utsrelease3 + ]) + +-- +2.37.3 + diff --git a/pkg/zfs/patch/0004-Use-__asm__-instead-of-asm-to-compile-with-std-c99.patch b/pkg/zfs/patch/0004-Use-__asm__-instead-of-asm-to-compile-with-std-c99.patch @@ -0,0 +1,221 @@ +From 6f50ce7e45a1d35ed170a22c7b465445cc5437fa Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Tue, 17 Jan 2023 13:07:11 -0800 +Subject: [PATCH] Use __asm__ instead of asm to compile with -std=c99 + +--- + module/zcommon/zfs_fletcher_intel.c | 44 +++++++-------- + module/zcommon/zfs_fletcher_sse.c | 86 ++++++++++++++--------------- + 2 files changed, 65 insertions(+), 65 deletions(-) + +diff --git a/module/zcommon/zfs_fletcher_intel.c b/module/zcommon/zfs_fletcher_intel.c +index 5136a01ec..14eecb192 100644 +--- a/module/zcommon/zfs_fletcher_intel.c ++++ b/module/zcommon/zfs_fletcher_intel.c +@@ -83,18 +83,18 @@ fletcher_4_avx2_fini(fletcher_4_ctx_t *ctx, zio_cksum_t *zcp) + + #define FLETCHER_4_AVX2_RESTORE_CTX(ctx) \ + { \ +- asm volatile("vmovdqu %0, %%ymm0" :: "m" ((ctx)->avx[0])); \ +- asm volatile("vmovdqu %0, %%ymm1" :: "m" ((ctx)->avx[1])); \ +- asm volatile("vmovdqu %0, %%ymm2" :: "m" ((ctx)->avx[2])); \ +- asm volatile("vmovdqu %0, %%ymm3" :: "m" ((ctx)->avx[3])); \ ++ __asm__ volatile("vmovdqu %0, %%ymm0" :: "m" ((ctx)->avx[0])); \ ++ __asm__ volatile("vmovdqu %0, %%ymm1" :: "m" ((ctx)->avx[1])); \ ++ __asm__ volatile("vmovdqu %0, %%ymm2" :: "m" ((ctx)->avx[2])); \ ++ __asm__ volatile("vmovdqu %0, %%ymm3" :: "m" ((ctx)->avx[3])); \ + } + + #define FLETCHER_4_AVX2_SAVE_CTX(ctx) \ + { \ +- asm volatile("vmovdqu %%ymm0, %0" : "=m" ((ctx)->avx[0])); \ +- asm volatile("vmovdqu %%ymm1, %0" : "=m" ((ctx)->avx[1])); \ +- asm volatile("vmovdqu %%ymm2, %0" : "=m" ((ctx)->avx[2])); \ +- asm volatile("vmovdqu %%ymm3, %0" : "=m" ((ctx)->avx[3])); \ ++ __asm__ volatile("vmovdqu %%ymm0, %0" : "=m" ((ctx)->avx[0])); \ ++ __asm__ volatile("vmovdqu %%ymm1, %0" : "=m" ((ctx)->avx[1])); \ ++ __asm__ volatile("vmovdqu %%ymm2, %0" : "=m" ((ctx)->avx[2])); \ ++ __asm__ volatile("vmovdqu %%ymm3, %0" : "=m" ((ctx)->avx[3])); \ + } + + +@@ -109,15 +109,15 @@ fletcher_4_avx2_native(fletcher_4_ctx_t *ctx, const void *buf, uint64_t size) + FLETCHER_4_AVX2_RESTORE_CTX(ctx); + + for (; ip < ipend; ip += 2) { +- asm volatile("vpmovzxdq %0, %%ymm4"::"m" (*ip)); +- asm volatile("vpaddq %ymm4, %ymm0, %ymm0"); +- asm volatile("vpaddq %ymm0, %ymm1, %ymm1"); +- asm volatile("vpaddq %ymm1, %ymm2, %ymm2"); +- asm volatile("vpaddq %ymm2, %ymm3, %ymm3"); ++ __asm__ volatile("vpmovzxdq %0, %%ymm4"::"m" (*ip)); ++ __asm__ volatile("vpaddq %ymm4, %ymm0, %ymm0"); ++ __asm__ volatile("vpaddq %ymm0, %ymm1, %ymm1"); ++ __asm__ volatile("vpaddq %ymm1, %ymm2, %ymm2"); ++ __asm__ volatile("vpaddq %ymm2, %ymm3, %ymm3"); + } + + FLETCHER_4_AVX2_SAVE_CTX(ctx); +- asm volatile("vzeroupper"); ++ __asm__ volatile("vzeroupper"); + + kfpu_end(); + } +@@ -136,20 +136,20 @@ fletcher_4_avx2_byteswap(fletcher_4_ctx_t *ctx, const void *buf, uint64_t size) + + FLETCHER_4_AVX2_RESTORE_CTX(ctx); + +- asm volatile("vmovdqu %0, %%ymm5" :: "m" (mask)); ++ __asm__ volatile("vmovdqu %0, %%ymm5" :: "m" (mask)); + + for (; ip < ipend; ip += 2) { +- asm volatile("vpmovzxdq %0, %%ymm4"::"m" (*ip)); +- asm volatile("vpshufb %ymm5, %ymm4, %ymm4"); ++ __asm__ volatile("vpmovzxdq %0, %%ymm4"::"m" (*ip)); ++ __asm__ volatile("vpshufb %ymm5, %ymm4, %ymm4"); + +- asm volatile("vpaddq %ymm4, %ymm0, %ymm0"); +- asm volatile("vpaddq %ymm0, %ymm1, %ymm1"); +- asm volatile("vpaddq %ymm1, %ymm2, %ymm2"); +- asm volatile("vpaddq %ymm2, %ymm3, %ymm3"); ++ __asm__ volatile("vpaddq %ymm4, %ymm0, %ymm0"); ++ __asm__ volatile("vpaddq %ymm0, %ymm1, %ymm1"); ++ __asm__ volatile("vpaddq %ymm1, %ymm2, %ymm2"); ++ __asm__ volatile("vpaddq %ymm2, %ymm3, %ymm3"); + } + + FLETCHER_4_AVX2_SAVE_CTX(ctx); +- asm volatile("vzeroupper"); ++ __asm__ volatile("vzeroupper"); + + kfpu_end(); + } +diff --git a/module/zcommon/zfs_fletcher_sse.c b/module/zcommon/zfs_fletcher_sse.c +index 15ce9b07f..3aca5485d 100644 +--- a/module/zcommon/zfs_fletcher_sse.c ++++ b/module/zcommon/zfs_fletcher_sse.c +@@ -82,18 +82,18 @@ fletcher_4_sse2_fini(fletcher_4_ctx_t *ctx, zio_cksum_t *zcp) + + #define FLETCHER_4_SSE_RESTORE_CTX(ctx) \ + { \ +- asm volatile("movdqu %0, %%xmm0" :: "m" ((ctx)->sse[0])); \ +- asm volatile("movdqu %0, %%xmm1" :: "m" ((ctx)->sse[1])); \ +- asm volatile("movdqu %0, %%xmm2" :: "m" ((ctx)->sse[2])); \ +- asm volatile("movdqu %0, %%xmm3" :: "m" ((ctx)->sse[3])); \ ++ __asm__ volatile("movdqu %0, %%xmm0" :: "m" ((ctx)->sse[0])); \ ++ __asm__ volatile("movdqu %0, %%xmm1" :: "m" ((ctx)->sse[1])); \ ++ __asm__ volatile("movdqu %0, %%xmm2" :: "m" ((ctx)->sse[2])); \ ++ __asm__ volatile("movdqu %0, %%xmm3" :: "m" ((ctx)->sse[3])); \ + } + + #define FLETCHER_4_SSE_SAVE_CTX(ctx) \ + { \ +- asm volatile("movdqu %%xmm0, %0" : "=m" ((ctx)->sse[0])); \ +- asm volatile("movdqu %%xmm1, %0" : "=m" ((ctx)->sse[1])); \ +- asm volatile("movdqu %%xmm2, %0" : "=m" ((ctx)->sse[2])); \ +- asm volatile("movdqu %%xmm3, %0" : "=m" ((ctx)->sse[3])); \ ++ __asm__ volatile("movdqu %%xmm0, %0" : "=m" ((ctx)->sse[0])); \ ++ __asm__ volatile("movdqu %%xmm1, %0" : "=m" ((ctx)->sse[1])); \ ++ __asm__ volatile("movdqu %%xmm2, %0" : "=m" ((ctx)->sse[2])); \ ++ __asm__ volatile("movdqu %%xmm3, %0" : "=m" ((ctx)->sse[3])); \ + } + + static void +@@ -106,21 +106,21 @@ fletcher_4_sse2_native(fletcher_4_ctx_t *ctx, const void *buf, uint64_t size) + + FLETCHER_4_SSE_RESTORE_CTX(ctx); + +- asm volatile("pxor %xmm4, %xmm4"); ++ __asm__ volatile("pxor %xmm4, %xmm4"); + + for (; ip < ipend; ip += 2) { +- asm volatile("movdqu %0, %%xmm5" :: "m"(*ip)); +- asm volatile("movdqa %xmm5, %xmm6"); +- asm volatile("punpckldq %xmm4, %xmm5"); +- asm volatile("punpckhdq %xmm4, %xmm6"); +- asm volatile("paddq %xmm5, %xmm0"); +- asm volatile("paddq %xmm0, %xmm1"); +- asm volatile("paddq %xmm1, %xmm2"); +- asm volatile("paddq %xmm2, %xmm3"); +- asm volatile("paddq %xmm6, %xmm0"); +- asm volatile("paddq %xmm0, %xmm1"); +- asm volatile("paddq %xmm1, %xmm2"); +- asm volatile("paddq %xmm2, %xmm3"); ++ __asm__ volatile("movdqu %0, %%xmm5" :: "m"(*ip)); ++ __asm__ volatile("movdqa %xmm5, %xmm6"); ++ __asm__ volatile("punpckldq %xmm4, %xmm5"); ++ __asm__ volatile("punpckhdq %xmm4, %xmm6"); ++ __asm__ volatile("paddq %xmm5, %xmm0"); ++ __asm__ volatile("paddq %xmm0, %xmm1"); ++ __asm__ volatile("paddq %xmm1, %xmm2"); ++ __asm__ volatile("paddq %xmm2, %xmm3"); ++ __asm__ volatile("paddq %xmm6, %xmm0"); ++ __asm__ volatile("paddq %xmm0, %xmm1"); ++ __asm__ volatile("paddq %xmm1, %xmm2"); ++ __asm__ volatile("paddq %xmm2, %xmm3"); + } + + FLETCHER_4_SSE_SAVE_CTX(ctx); +@@ -141,13 +141,13 @@ fletcher_4_sse2_byteswap(fletcher_4_ctx_t *ctx, const void *buf, uint64_t size) + for (; ip < ipend; ip += 2) { + uint32_t scratch1 = BSWAP_32(ip[0]); + uint32_t scratch2 = BSWAP_32(ip[1]); +- asm volatile("movd %0, %%xmm5" :: "r"(scratch1)); +- asm volatile("movd %0, %%xmm6" :: "r"(scratch2)); +- asm volatile("punpcklqdq %xmm6, %xmm5"); +- asm volatile("paddq %xmm5, %xmm0"); +- asm volatile("paddq %xmm0, %xmm1"); +- asm volatile("paddq %xmm1, %xmm2"); +- asm volatile("paddq %xmm2, %xmm3"); ++ __asm__ volatile("movd %0, %%xmm5" :: "r"(scratch1)); ++ __asm__ volatile("movd %0, %%xmm6" :: "r"(scratch2)); ++ __asm__ volatile("punpcklqdq %xmm6, %xmm5"); ++ __asm__ volatile("paddq %xmm5, %xmm0"); ++ __asm__ volatile("paddq %xmm0, %xmm1"); ++ __asm__ volatile("paddq %xmm1, %xmm2"); ++ __asm__ volatile("paddq %xmm2, %xmm3"); + } + + FLETCHER_4_SSE_SAVE_CTX(ctx); +@@ -188,23 +188,23 @@ fletcher_4_ssse3_byteswap(fletcher_4_ctx_t *ctx, const void *buf, uint64_t size) + + FLETCHER_4_SSE_RESTORE_CTX(ctx); + +- asm volatile("movdqu %0, %%xmm7"::"m" (mask)); +- asm volatile("pxor %xmm4, %xmm4"); ++ __asm__ volatile("movdqu %0, %%xmm7"::"m" (mask)); ++ __asm__ volatile("pxor %xmm4, %xmm4"); + + for (; ip < ipend; ip += 2) { +- asm volatile("movdqu %0, %%xmm5"::"m" (*ip)); +- asm volatile("pshufb %xmm7, %xmm5"); +- asm volatile("movdqa %xmm5, %xmm6"); +- asm volatile("punpckldq %xmm4, %xmm5"); +- asm volatile("punpckhdq %xmm4, %xmm6"); +- asm volatile("paddq %xmm5, %xmm0"); +- asm volatile("paddq %xmm0, %xmm1"); +- asm volatile("paddq %xmm1, %xmm2"); +- asm volatile("paddq %xmm2, %xmm3"); +- asm volatile("paddq %xmm6, %xmm0"); +- asm volatile("paddq %xmm0, %xmm1"); +- asm volatile("paddq %xmm1, %xmm2"); +- asm volatile("paddq %xmm2, %xmm3"); ++ __asm__ volatile("movdqu %0, %%xmm5"::"m" (*ip)); ++ __asm__ volatile("pshufb %xmm7, %xmm5"); ++ __asm__ volatile("movdqa %xmm5, %xmm6"); ++ __asm__ volatile("punpckldq %xmm4, %xmm5"); ++ __asm__ volatile("punpckhdq %xmm4, %xmm6"); ++ __asm__ volatile("paddq %xmm5, %xmm0"); ++ __asm__ volatile("paddq %xmm0, %xmm1"); ++ __asm__ volatile("paddq %xmm1, %xmm2"); ++ __asm__ volatile("paddq %xmm2, %xmm3"); ++ __asm__ volatile("paddq %xmm6, %xmm0"); ++ __asm__ volatile("paddq %xmm0, %xmm1"); ++ __asm__ volatile("paddq %xmm1, %xmm2"); ++ __asm__ volatile("paddq %xmm2, %xmm3"); + } + + FLETCHER_4_SSE_SAVE_CTX(ctx); +-- +2.37.3 + diff --git a/pkg/zfs/patch/0005-Use-__func__-instead-of-obsolete-and-non-standard-__.patch b/pkg/zfs/patch/0005-Use-__func__-instead-of-obsolete-and-non-standard-__.patch @@ -0,0 +1,401 @@ +From 35e48da3329aff4eee7bb3ff2ddd81d982cfa307 Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Sat, 21 Jan 2023 17:12:32 -0800 +Subject: [PATCH] Use __func__ instead of obsolete and non-standard + __FUNCTION__ + +--- + include/os/freebsd/spl/sys/debug.h | 18 +++++++++--------- + include/os/linux/spl/sys/debug.h | 18 +++++++++--------- + lib/libspl/include/assert.h | 18 +++++++++--------- + module/os/freebsd/zfs/crypto_os.c | 22 +++++++++++----------- + module/os/freebsd/zfs/zfs_vfsops.c | 4 ++-- + module/os/freebsd/zfs/zio_crypt.c | 6 +++--- + 6 files changed, 43 insertions(+), 43 deletions(-) + +diff --git a/include/os/freebsd/spl/sys/debug.h b/include/os/freebsd/spl/sys/debug.h +index 1f820bc33..a5c12daa5 100644 +--- a/include/os/freebsd/spl/sys/debug.h ++++ b/include/os/freebsd/spl/sys/debug.h +@@ -66,18 +66,18 @@ void spl_dumpstack(void); + + /* BEGIN CSTYLED */ + #define PANIC(fmt, a...) \ +- spl_panic(__FILE__, __FUNCTION__, __LINE__, fmt, ## a) ++ spl_panic(__FILE__, __func__, __LINE__, fmt, ## a) + + #define VERIFY(cond) \ + (void) (unlikely(!(cond)) && \ +- spl_panic(__FILE__, __FUNCTION__, __LINE__, \ ++ spl_panic(__FILE__, __func__, __LINE__, \ + "%s", "VERIFY(" #cond ") failed\n")) + + #define VERIFY3B(LEFT, OP, RIGHT) do { \ + const boolean_t _verify3_left = (boolean_t)(LEFT); \ + const boolean_t _verify3_right = (boolean_t)(RIGHT);\ + if (unlikely(!(_verify3_left OP _verify3_right))) \ +- spl_panic(__FILE__, __FUNCTION__, __LINE__, \ ++ spl_panic(__FILE__, __func__, __LINE__, \ + "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \ + "failed (%d " #OP " %d)\n", \ + (boolean_t) (_verify3_left), \ +@@ -88,7 +88,7 @@ void spl_dumpstack(void); + const int64_t _verify3_left = (int64_t)(LEFT); \ + const int64_t _verify3_right = (int64_t)(RIGHT); \ + if (unlikely(!(_verify3_left OP _verify3_right))) \ +- spl_panic(__FILE__, __FUNCTION__, __LINE__, \ ++ spl_panic(__FILE__, __func__, __LINE__, \ + "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \ + "failed (%lld " #OP " %lld)\n", \ + (long long) (_verify3_left), \ +@@ -99,7 +99,7 @@ void spl_dumpstack(void); + const uint64_t _verify3_left = (uint64_t)(LEFT); \ + const uint64_t _verify3_right = (uint64_t)(RIGHT); \ + if (unlikely(!(_verify3_left OP _verify3_right))) \ +- spl_panic(__FILE__, __FUNCTION__, __LINE__, \ ++ spl_panic(__FILE__, __func__, __LINE__, \ + "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \ + "failed (%llu " #OP " %llu)\n", \ + (unsigned long long) (_verify3_left), \ +@@ -110,7 +110,7 @@ void spl_dumpstack(void); + const uintptr_t _verify3_left = (uintptr_t)(LEFT); \ + const uintptr_t _verify3_right = (uintptr_t)(RIGHT);\ + if (unlikely(!(_verify3_left OP _verify3_right))) \ +- spl_panic(__FILE__, __FUNCTION__, __LINE__, \ ++ spl_panic(__FILE__, __func__, __LINE__, \ + "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \ + "failed (%px " #OP " %px)\n", \ + (void *) (_verify3_left), \ +@@ -121,7 +121,7 @@ void spl_dumpstack(void); + const int64_t _verify3_left = (int64_t)(0); \ + const int64_t _verify3_right = (int64_t)(RIGHT); \ + if (unlikely(!(_verify3_left == _verify3_right))) \ +- spl_panic(__FILE__, __FUNCTION__, __LINE__, \ ++ spl_panic(__FILE__, __func__, __LINE__, \ + "VERIFY3(0 == " #RIGHT ") " \ + "failed (0 == %lld)\n", \ + (long long) (_verify3_right)); \ +@@ -155,11 +155,11 @@ void spl_dumpstack(void); + #define ASSERT VERIFY + #define IMPLY(A, B) \ + ((void)(likely((!(A)) || (B)) || \ +- spl_panic(__FILE__, __FUNCTION__, __LINE__, \ ++ spl_panic(__FILE__, __func__, __LINE__, \ + "(" #A ") implies (" #B ")"))) + #define EQUIV(A, B) \ + ((void)(likely(!!(A) == !!(B)) || \ +- spl_panic(__FILE__, __FUNCTION__, __LINE__, \ ++ spl_panic(__FILE__, __func__, __LINE__, \ + "(" #A ") is equivalent to (" #B ")"))) + /* END CSTYLED */ + +diff --git a/include/os/linux/spl/sys/debug.h b/include/os/linux/spl/sys/debug.h +index dc6b85eeb..b46c174cd 100644 +--- a/include/os/linux/spl/sys/debug.h ++++ b/include/os/linux/spl/sys/debug.h +@@ -60,18 +60,18 @@ void spl_dumpstack(void); + + /* BEGIN CSTYLED */ + #define PANIC(fmt, a...) \ +- spl_panic(__FILE__, __FUNCTION__, __LINE__, fmt, ## a) ++ spl_panic(__FILE__, __func__, __LINE__, fmt, ## a) + + #define VERIFY(cond) \ + (void) (unlikely(!(cond)) && \ +- spl_panic(__FILE__, __FUNCTION__, __LINE__, \ ++ spl_panic(__FILE__, __func__, __LINE__, \ + "%s", "VERIFY(" #cond ") failed\n")) + + #define VERIFY3B(LEFT, OP, RIGHT) do { \ + const boolean_t _verify3_left = (boolean_t)(LEFT); \ + const boolean_t _verify3_right = (boolean_t)(RIGHT);\ + if (unlikely(!(_verify3_left OP _verify3_right))) \ +- spl_panic(__FILE__, __FUNCTION__, __LINE__, \ ++ spl_panic(__FILE__, __func__, __LINE__, \ + "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \ + "failed (%d " #OP " %d)\n", \ + (boolean_t) (_verify3_left), \ +@@ -82,7 +82,7 @@ void spl_dumpstack(void); + const int64_t _verify3_left = (int64_t)(LEFT); \ + const int64_t _verify3_right = (int64_t)(RIGHT); \ + if (unlikely(!(_verify3_left OP _verify3_right))) \ +- spl_panic(__FILE__, __FUNCTION__, __LINE__, \ ++ spl_panic(__FILE__, __func__, __LINE__, \ + "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \ + "failed (%lld " #OP " %lld)\n", \ + (long long) (_verify3_left), \ +@@ -93,7 +93,7 @@ void spl_dumpstack(void); + const uint64_t _verify3_left = (uint64_t)(LEFT); \ + const uint64_t _verify3_right = (uint64_t)(RIGHT); \ + if (unlikely(!(_verify3_left OP _verify3_right))) \ +- spl_panic(__FILE__, __FUNCTION__, __LINE__, \ ++ spl_panic(__FILE__, __func__, __LINE__, \ + "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \ + "failed (%llu " #OP " %llu)\n", \ + (unsigned long long) (_verify3_left), \ +@@ -104,7 +104,7 @@ void spl_dumpstack(void); + const uintptr_t _verify3_left = (uintptr_t)(LEFT); \ + const uintptr_t _verify3_right = (uintptr_t)(RIGHT);\ + if (unlikely(!(_verify3_left OP _verify3_right))) \ +- spl_panic(__FILE__, __FUNCTION__, __LINE__, \ ++ spl_panic(__FILE__, __func__, __LINE__, \ + "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \ + "failed (%px " #OP " %px)\n", \ + (void *) (_verify3_left), \ +@@ -115,7 +115,7 @@ void spl_dumpstack(void); + const int64_t _verify3_left = (int64_t)(0); \ + const int64_t _verify3_right = (int64_t)(RIGHT); \ + if (unlikely(!(_verify3_left == _verify3_right))) \ +- spl_panic(__FILE__, __FUNCTION__, __LINE__, \ ++ spl_panic(__FILE__, __func__, __LINE__, \ + "VERIFY3(0 == " #RIGHT ") " \ + "failed (0 == %lld)\n", \ + (long long) (_verify3_right)); \ +@@ -155,11 +155,11 @@ void spl_dumpstack(void); + #define ASSERT VERIFY + #define IMPLY(A, B) \ + ((void)(likely((!(A)) || (B)) || \ +- spl_panic(__FILE__, __FUNCTION__, __LINE__, \ ++ spl_panic(__FILE__, __func__, __LINE__, \ + "(" #A ") implies (" #B ")"))) + #define EQUIV(A, B) \ + ((void)(likely(!!(A) == !!(B)) || \ +- spl_panic(__FILE__, __FUNCTION__, __LINE__, \ ++ spl_panic(__FILE__, __func__, __LINE__, \ + "(" #A ") is equivalent to (" #B ")"))) + /* END CSTYLED */ + +diff --git a/lib/libspl/include/assert.h b/lib/libspl/include/assert.h +index 0503ce492..73f33077c 100644 +--- a/lib/libspl/include/assert.h ++++ b/lib/libspl/include/assert.h +@@ -53,17 +53,17 @@ libspl_assert(const char *buf, const char *file, const char *func, int line) + + #define VERIFY(cond) \ + (void) ((!(cond)) && \ +- libspl_assert(#cond, __FILE__, __FUNCTION__, __LINE__)) ++ libspl_assert(#cond, __FILE__, __func__, __LINE__)) + #define verify(cond) \ + (void) ((!(cond)) && \ +- libspl_assert(#cond, __FILE__, __FUNCTION__, __LINE__)) ++ libspl_assert(#cond, __FILE__, __func__, __LINE__)) + + #define VERIFY3B(LEFT, OP, RIGHT) \ + do { \ + const boolean_t __left = (boolean_t)(LEFT); \ + const boolean_t __right = (boolean_t)(RIGHT); \ + if (!(__left OP __right)) \ +- libspl_assertf(__FILE__, __FUNCTION__, __LINE__, \ ++ libspl_assertf(__FILE__, __func__, __LINE__, \ + "%s %s %s (0x%llx %s 0x%llx)", #LEFT, #OP, #RIGHT, \ + (u_longlong_t)__left, #OP, (u_longlong_t)__right); \ + } while (0) +@@ -73,7 +73,7 @@ do { \ + const int64_t __left = (int64_t)(LEFT); \ + const int64_t __right = (int64_t)(RIGHT); \ + if (!(__left OP __right)) \ +- libspl_assertf(__FILE__, __FUNCTION__, __LINE__, \ ++ libspl_assertf(__FILE__, __func__, __LINE__, \ + "%s %s %s (0x%llx %s 0x%llx)", #LEFT, #OP, #RIGHT, \ + (u_longlong_t)__left, #OP, (u_longlong_t)__right); \ + } while (0) +@@ -83,7 +83,7 @@ do { \ + const uint64_t __left = (uint64_t)(LEFT); \ + const uint64_t __right = (uint64_t)(RIGHT); \ + if (!(__left OP __right)) \ +- libspl_assertf(__FILE__, __FUNCTION__, __LINE__, \ ++ libspl_assertf(__FILE__, __func__, __LINE__, \ + "%s %s %s (0x%llx %s 0x%llx)", #LEFT, #OP, #RIGHT, \ + (u_longlong_t)__left, #OP, (u_longlong_t)__right); \ + } while (0) +@@ -93,7 +93,7 @@ do { \ + const uintptr_t __left = (uintptr_t)(LEFT); \ + const uintptr_t __right = (uintptr_t)(RIGHT); \ + if (!(__left OP __right)) \ +- libspl_assertf(__FILE__, __FUNCTION__, __LINE__, \ ++ libspl_assertf(__FILE__, __func__, __LINE__, \ + "%s %s %s (0x%llx %s 0x%llx)", #LEFT, #OP, #RIGHT, \ + (u_longlong_t)__left, #OP, (u_longlong_t)__right); \ + } while (0) +@@ -102,7 +102,7 @@ do { \ + do { \ + const uint64_t __left = (uint64_t)(LEFT); \ + if (!(__left == 0)) \ +- libspl_assertf(__FILE__, __FUNCTION__, __LINE__, \ ++ libspl_assertf(__FILE__, __func__, __LINE__, \ + "%s == 0 (0x%llx == 0)", #LEFT, \ + (u_longlong_t)__left); \ + } while (0) +@@ -140,11 +140,11 @@ do { \ + #define IMPLY(A, B) \ + ((void)(((!(A)) || (B)) || \ + libspl_assert("(" #A ") implies (" #B ")", \ +- __FILE__, __FUNCTION__, __LINE__))) ++ __FILE__, __func__, __LINE__))) + #define EQUIV(A, B) \ + ((void)((!!(A) == !!(B)) || \ + libspl_assert("(" #A ") is equivalent to (" #B ")", \ +- __FILE__, __FUNCTION__, __LINE__))) ++ __FILE__, __func__, __LINE__))) + + #endif /* NDEBUG */ + +diff --git a/module/os/freebsd/zfs/crypto_os.c b/module/os/freebsd/zfs/crypto_os.c +index f342c5e85..0ebc56e95 100644 +--- a/module/os/freebsd/zfs/crypto_os.c ++++ b/module/os/freebsd/zfs/crypto_os.c +@@ -229,7 +229,7 @@ freebsd_crypt_uio_debug_log(boolean_t encrypt, + + printf("%s(%s, %p, { %s, %d, %d, %s }, %p, { %d, %p, %u }, " + "%p, %u, %u)\n", +- __FUNCTION__, encrypt ? "encrypt" : "decrypt", input_sessionp, ++ __func__, encrypt ? "encrypt" : "decrypt", input_sessionp, + c_info->ci_algname, c_info->ci_crypt_type, + (unsigned int)c_info->ci_keylen, c_info->ci_name, + data_uio, key->ck_format, key->ck_data, +@@ -265,7 +265,7 @@ freebsd_crypt_newsession(freebsd_crypt_session_t *sessp, + + #ifdef FCRYPTO_DEBUG + printf("%s(%p, { %s, %d, %d, %s }, { %d, %p, %u })\n", +- __FUNCTION__, sessp, ++ __func__, sessp, + c_info->ci_algname, c_info->ci_crypt_type, + (unsigned int)c_info->ci_keylen, c_info->ci_name, + key->ck_format, key->ck_data, (unsigned int)key->ck_length); +@@ -331,7 +331,7 @@ freebsd_crypt_newsession(freebsd_crypt_session_t *sessp, + bad: + #ifdef FCRYPTO_DEBUG + if (error) +- printf("%s: returning error %d\n", __FUNCTION__, error); ++ printf("%s: returning error %d\n", __func__, error); + #endif + return (error); + } +@@ -387,7 +387,7 @@ freebsd_crypt_uio(boolean_t encrypt, + out: + #ifdef FCRYPTO_DEBUG + if (error) +- printf("%s: returning error %d\n", __FUNCTION__, error); ++ printf("%s: returning error %d\n", __func__, error); + #endif + if (input_sessionp == NULL) { + freebsd_crypt_freesession(session); +@@ -409,7 +409,7 @@ freebsd_crypt_newsession(freebsd_crypt_session_t *sessp, + + #ifdef FCRYPTO_DEBUG + printf("%s(%p, { %s, %d, %d, %s }, { %d, %p, %u })\n", +- __FUNCTION__, sessp, ++ __func__, sessp, + c_info->ci_algname, c_info->ci_crypt_type, + (unsigned int)c_info->ci_keylen, c_info->ci_name, + key->ck_format, key->ck_data, (unsigned int)key->ck_length); +@@ -463,7 +463,7 @@ freebsd_crypt_newsession(freebsd_crypt_session_t *sessp, + #ifdef FCRYPTO_DEBUG + printf("%s(%d): Using crypt %s (key length %u [%u bytes]), " + "auth %s (key length %d)\n", +- __FUNCTION__, __LINE__, ++ __func__, __LINE__, + xform->name, (unsigned int)key->ck_length, + (unsigned int)key->ck_length/8, + xauth->name, xauth->keysize); +@@ -489,7 +489,7 @@ freebsd_crypt_newsession(freebsd_crypt_session_t *sessp, + CRYPTOCAP_F_HARDWARE | CRYPTOCAP_F_SOFTWARE); + if (error != 0) { + printf("%s(%d): crypto_newsession failed with %d\n", +- __FUNCTION__, __LINE__, error); ++ __func__, __LINE__, error); + goto bad; + } + sessp->fs_sid = sid; +@@ -569,7 +569,7 @@ freebsd_crypt_uio(boolean_t encrypt, + #ifdef FCRYPTO_DEBUG + printf("%s(%d): Using crypt %s (key length %u [%u bytes]), " + "auth %s (key length %d)\n", +- __FUNCTION__, __LINE__, ++ __func__, __LINE__, + xform->name, (unsigned int)key->ck_length, + (unsigned int)key->ck_length/8, + xauth->name, xauth->keysize); +@@ -603,7 +603,7 @@ freebsd_crypt_uio(boolean_t encrypt, + auth_desc->crd_alg = xauth->type; + #ifdef FCRYPTO_DEBUG + printf("%s: auth: skip = %u, len = %u, inject = %u\n", +- __FUNCTION__, auth_desc->crd_skip, auth_desc->crd_len, ++ __func__, auth_desc->crd_skip, auth_desc->crd_len, + auth_desc->crd_inject); + #endif + +@@ -617,7 +617,7 @@ freebsd_crypt_uio(boolean_t encrypt, + + #ifdef FCRYPTO_DEBUG + printf("%s: enc: skip = %u, len = %u, inject = %u\n", +- __FUNCTION__, enc_desc->crd_skip, enc_desc->crd_len, ++ __func__, enc_desc->crd_skip, enc_desc->crd_len, + enc_desc->crd_inject); + #endif + +@@ -634,7 +634,7 @@ out: + bad: + #ifdef FCRYPTO_DEBUG + if (error) +- printf("%s: returning error %d\n", __FUNCTION__, error); ++ printf("%s: returning error %d\n", __func__, error); + #endif + return (error); + } +diff --git a/module/os/freebsd/zfs/zfs_vfsops.c b/module/os/freebsd/zfs/zfs_vfsops.c +index 05d41d4e3..01b12b12c 100644 +--- a/module/os/freebsd/zfs/zfs_vfsops.c ++++ b/module/os/freebsd/zfs/zfs_vfsops.c +@@ -244,7 +244,7 @@ zfs_getquota(zfsvfs_t *zfsvfs, uid_t id, int isgroup, struct dqblk64 *dqp) + if ((error = zap_lookup(zfsvfs->z_os, quotaobj, + buf, sizeof (quota), 1, &quota)) != 0) { + dprintf("%s(%d): quotaobj lookup failed\n", +- __FUNCTION__, __LINE__); ++ __func__, __LINE__); + goto done; + } + /* +@@ -255,7 +255,7 @@ zfs_getquota(zfsvfs_t *zfsvfs, uid_t id, int isgroup, struct dqblk64 *dqp) + error = zap_lookup(zfsvfs->z_os, usedobj, buf, sizeof (used), 1, &used); + if (error && error != ENOENT) { + dprintf("%s(%d): usedobj failed; %d\n", +- __FUNCTION__, __LINE__, error); ++ __func__, __LINE__, error); + goto done; + } + dqp->dqb_curblocks = btodb(used); +diff --git a/module/os/freebsd/zfs/zio_crypt.c b/module/os/freebsd/zfs/zio_crypt.c +index 9e0ab52a2..997f2492f 100644 +--- a/module/os/freebsd/zfs/zio_crypt.c ++++ b/module/os/freebsd/zfs/zio_crypt.c +@@ -420,7 +420,7 @@ zio_do_crypt_uio_opencrypto(boolean_t encrypt, freebsd_crypt_session_t *sess, + if (ret != 0) { + #ifdef FCRYPTO_DEBUG + printf("%s(%d): Returning error %s\n", +- __FUNCTION__, __LINE__, encrypt ? "EIO" : "ECKSUM"); ++ __func__, __LINE__, encrypt ? "EIO" : "ECKSUM"); + #endif + ret = SET_ERROR(encrypt ? EIO : ECKSUM); + } +@@ -1195,7 +1195,7 @@ zio_crypt_do_indirect_mac_checksum_impl(boolean_t generate, void *buf, + + if (bcmp(digestbuf, cksum, ZIO_DATA_MAC_LEN) != 0) { + #ifdef FCRYPTO_DEBUG +- printf("%s(%d): Setting ECKSUM\n", __FUNCTION__, __LINE__); ++ printf("%s(%d): Setting ECKSUM\n", __func__, __LINE__); + #endif + return (SET_ERROR(ECKSUM)); + } +@@ -1700,7 +1700,7 @@ zio_do_crypt_data(boolean_t encrypt, zio_crypt_key_t *key, + + #ifdef FCRYPTO_DEBUG + printf("%s(%s, %p, %p, %d, %p, %p, %u, %s, %p, %p, %p)\n", +- __FUNCTION__, ++ __func__, + encrypt ? "encrypt" : "decrypt", + key, salt, ot, iv, mac, datalen, + byteswap ? "byteswap" : "native_endian", plainbuf, +-- +2.37.3 + diff --git a/pkg/zfs/patch/0006-Use-forward-declaration-instead-of-empty-struct.patch b/pkg/zfs/patch/0006-Use-forward-declaration-instead-of-empty-struct.patch @@ -0,0 +1,25 @@ +From 50878832d41ef03d61f5db2dc7a89039b2ba5889 Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Sat, 21 Jan 2023 17:15:47 -0800 +Subject: [PATCH] Use forward declaration instead of empty struct + +--- + include/sys/zfs_context.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/sys/zfs_context.h b/include/sys/zfs_context.h +index a6ff94317..42384d83a 100644 +--- a/include/sys/zfs_context.h ++++ b/include/sys/zfs_context.h +@@ -380,7 +380,7 @@ typedef struct procfs_list { + } procfs_list_t; + + #ifndef __cplusplus +-struct seq_file { }; ++struct seq_file; + void seq_printf(struct seq_file *m, const char *fmt, ...); + + typedef struct procfs_list_node { +-- +2.37.3 + diff --git a/pkg/zfs/patch/0007-Avoid-conflict-with-C23-bool-keyword.patch b/pkg/zfs/patch/0007-Avoid-conflict-with-C23-bool-keyword.patch @@ -0,0 +1,25 @@ +From bf9e24e3fe87474e71555b3421bfaa7d0c5e1882 Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Sat, 21 Jan 2023 17:18:50 -0800 +Subject: [PATCH] Avoid conflict with C23 bool keyword + +--- + cmd/zed/agents/fmd_api.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cmd/zed/agents/fmd_api.h b/cmd/zed/agents/fmd_api.h +index 4f06fb244..45c1f2ce2 100644 +--- a/cmd/zed/agents/fmd_api.h ++++ b/cmd/zed/agents/fmd_api.h +@@ -109,7 +109,7 @@ typedef struct fmd_stat { + uint_t fmds_type; /* statistic type (see above) */ + char fmds_desc[64]; /* statistic description */ + union { +- int bool; /* FMD_TYPE_BOOL */ ++ int b; /* FMD_TYPE_BOOL */ + int32_t i32; /* FMD_TYPE_INT32 */ + uint32_t ui32; /* FMD_TYPE_UINT32 */ + int64_t i64; /* FMD_TYPE_INT64 */ +-- +2.37.3 + diff --git a/pkg/zfs/patch/0008-Remove-stray-at-top-level.patch b/pkg/zfs/patch/0008-Remove-stray-at-top-level.patch @@ -0,0 +1,421 @@ +From 54212b1aebdb3c5ffa7904eed7b9a09490aca1e1 Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Sat, 21 Jan 2023 17:17:48 -0800 +Subject: [PATCH] Remove stray ';' at top-level + +--- + module/avl/avl.c | 46 +++---- + module/nvpair/nvpair.c | 240 ++++++++++++++++----------------- + module/zcommon/zfs_namecheck.c | 20 +-- + module/zcommon/zfs_prop.c | 50 +++---- + 4 files changed, 178 insertions(+), 178 deletions(-) + +diff --git a/module/avl/avl.c b/module/avl/avl.c +index f761a8ae7..18dbe1b99 100644 +--- a/module/avl/avl.c ++++ b/module/avl/avl.c +@@ -1052,26 +1052,26 @@ module_init(avl_init); + module_exit(avl_fini); + #endif + +-ZFS_MODULE_DESCRIPTION("Generic AVL tree implementation"); +-ZFS_MODULE_AUTHOR(ZFS_META_AUTHOR); +-ZFS_MODULE_LICENSE(ZFS_META_LICENSE); +-ZFS_MODULE_VERSION(ZFS_META_VERSION "-" ZFS_META_RELEASE); +- +-EXPORT_SYMBOL(avl_create); +-EXPORT_SYMBOL(avl_find); +-EXPORT_SYMBOL(avl_insert); +-EXPORT_SYMBOL(avl_insert_here); +-EXPORT_SYMBOL(avl_walk); +-EXPORT_SYMBOL(avl_first); +-EXPORT_SYMBOL(avl_last); +-EXPORT_SYMBOL(avl_nearest); +-EXPORT_SYMBOL(avl_add); +-EXPORT_SYMBOL(avl_swap); +-EXPORT_SYMBOL(avl_is_empty); +-EXPORT_SYMBOL(avl_remove); +-EXPORT_SYMBOL(avl_numnodes); +-EXPORT_SYMBOL(avl_destroy_nodes); +-EXPORT_SYMBOL(avl_destroy); +-EXPORT_SYMBOL(avl_update_lt); +-EXPORT_SYMBOL(avl_update_gt); +-EXPORT_SYMBOL(avl_update); ++ZFS_MODULE_DESCRIPTION("Generic AVL tree implementation") ++ZFS_MODULE_AUTHOR(ZFS_META_AUTHOR) ++ZFS_MODULE_LICENSE(ZFS_META_LICENSE) ++ZFS_MODULE_VERSION(ZFS_META_VERSION "-" ZFS_META_RELEASE) ++ ++EXPORT_SYMBOL(avl_create) ++EXPORT_SYMBOL(avl_find) ++EXPORT_SYMBOL(avl_insert) ++EXPORT_SYMBOL(avl_insert_here) ++EXPORT_SYMBOL(avl_walk) ++EXPORT_SYMBOL(avl_first) ++EXPORT_SYMBOL(avl_last) ++EXPORT_SYMBOL(avl_nearest) ++EXPORT_SYMBOL(avl_add) ++EXPORT_SYMBOL(avl_swap) ++EXPORT_SYMBOL(avl_is_empty) ++EXPORT_SYMBOL(avl_remove) ++EXPORT_SYMBOL(avl_numnodes) ++EXPORT_SYMBOL(avl_destroy_nodes) ++EXPORT_SYMBOL(avl_destroy) ++EXPORT_SYMBOL(avl_update_lt) ++EXPORT_SYMBOL(avl_update_gt) ++EXPORT_SYMBOL(avl_update) +diff --git a/module/nvpair/nvpair.c b/module/nvpair/nvpair.c +index 9834dedd8..6dfebb0ec 100644 +--- a/module/nvpair/nvpair.c ++++ b/module/nvpair/nvpair.c +@@ -3256,13 +3256,13 @@ nvs_xdr_nvp_##type(XDR *xdrs, void *ptr, ...) \ + #endif + + /* BEGIN CSTYLED */ +-NVS_BUILD_XDRPROC_T(char); +-NVS_BUILD_XDRPROC_T(short); +-NVS_BUILD_XDRPROC_T(u_short); +-NVS_BUILD_XDRPROC_T(int); +-NVS_BUILD_XDRPROC_T(u_int); +-NVS_BUILD_XDRPROC_T(longlong_t); +-NVS_BUILD_XDRPROC_T(u_longlong_t); ++NVS_BUILD_XDRPROC_T(char) ++NVS_BUILD_XDRPROC_T(short) ++NVS_BUILD_XDRPROC_T(u_short) ++NVS_BUILD_XDRPROC_T(int) ++NVS_BUILD_XDRPROC_T(u_int) ++NVS_BUILD_XDRPROC_T(longlong_t) ++NVS_BUILD_XDRPROC_T(u_longlong_t) + /* END CSTYLED */ + + /* +@@ -3672,121 +3672,121 @@ module_init(nvpair_init); + module_exit(nvpair_fini); + #endif + +-ZFS_MODULE_DESCRIPTION("Generic name/value pair implementation"); +-ZFS_MODULE_AUTHOR(ZFS_META_AUTHOR); +-ZFS_MODULE_LICENSE(ZFS_META_LICENSE); +-ZFS_MODULE_VERSION(ZFS_META_VERSION "-" ZFS_META_RELEASE); ++ZFS_MODULE_DESCRIPTION("Generic name/value pair implementation") ++ZFS_MODULE_AUTHOR(ZFS_META_AUTHOR) ++ZFS_MODULE_LICENSE(ZFS_META_LICENSE) ++ZFS_MODULE_VERSION(ZFS_META_VERSION "-" ZFS_META_RELEASE) + +-EXPORT_SYMBOL(nv_alloc_init); +-EXPORT_SYMBOL(nv_alloc_reset); +-EXPORT_SYMBOL(nv_alloc_fini); ++EXPORT_SYMBOL(nv_alloc_init) ++EXPORT_SYMBOL(nv_alloc_reset) ++EXPORT_SYMBOL(nv_alloc_fini) + + /* list management */ +-EXPORT_SYMBOL(nvlist_alloc); +-EXPORT_SYMBOL(nvlist_free); +-EXPORT_SYMBOL(nvlist_size); +-EXPORT_SYMBOL(nvlist_pack); +-EXPORT_SYMBOL(nvlist_unpack); +-EXPORT_SYMBOL(nvlist_dup); +-EXPORT_SYMBOL(nvlist_merge); +- +-EXPORT_SYMBOL(nvlist_xalloc); +-EXPORT_SYMBOL(nvlist_xpack); +-EXPORT_SYMBOL(nvlist_xunpack); +-EXPORT_SYMBOL(nvlist_xdup); +-EXPORT_SYMBOL(nvlist_lookup_nv_alloc); +- +-EXPORT_SYMBOL(nvlist_add_nvpair); +-EXPORT_SYMBOL(nvlist_add_boolean); +-EXPORT_SYMBOL(nvlist_add_boolean_value); +-EXPORT_SYMBOL(nvlist_add_byte); +-EXPORT_SYMBOL(nvlist_add_int8); +-EXPORT_SYMBOL(nvlist_add_uint8); +-EXPORT_SYMBOL(nvlist_add_int16); +-EXPORT_SYMBOL(nvlist_add_uint16); +-EXPORT_SYMBOL(nvlist_add_int32); +-EXPORT_SYMBOL(nvlist_add_uint32); +-EXPORT_SYMBOL(nvlist_add_int64); +-EXPORT_SYMBOL(nvlist_add_uint64); +-EXPORT_SYMBOL(nvlist_add_string); +-EXPORT_SYMBOL(nvlist_add_nvlist); +-EXPORT_SYMBOL(nvlist_add_boolean_array); +-EXPORT_SYMBOL(nvlist_add_byte_array); +-EXPORT_SYMBOL(nvlist_add_int8_array); +-EXPORT_SYMBOL(nvlist_add_uint8_array); +-EXPORT_SYMBOL(nvlist_add_int16_array); +-EXPORT_SYMBOL(nvlist_add_uint16_array); +-EXPORT_SYMBOL(nvlist_add_int32_array); +-EXPORT_SYMBOL(nvlist_add_uint32_array); +-EXPORT_SYMBOL(nvlist_add_int64_array); +-EXPORT_SYMBOL(nvlist_add_uint64_array); +-EXPORT_SYMBOL(nvlist_add_string_array); +-EXPORT_SYMBOL(nvlist_add_nvlist_array); +-EXPORT_SYMBOL(nvlist_next_nvpair); +-EXPORT_SYMBOL(nvlist_prev_nvpair); +-EXPORT_SYMBOL(nvlist_empty); +-EXPORT_SYMBOL(nvlist_add_hrtime); +- +-EXPORT_SYMBOL(nvlist_remove); +-EXPORT_SYMBOL(nvlist_remove_nvpair); +-EXPORT_SYMBOL(nvlist_remove_all); +- +-EXPORT_SYMBOL(nvlist_lookup_boolean); +-EXPORT_SYMBOL(nvlist_lookup_boolean_value); +-EXPORT_SYMBOL(nvlist_lookup_byte); +-EXPORT_SYMBOL(nvlist_lookup_int8); +-EXPORT_SYMBOL(nvlist_lookup_uint8); +-EXPORT_SYMBOL(nvlist_lookup_int16); +-EXPORT_SYMBOL(nvlist_lookup_uint16); +-EXPORT_SYMBOL(nvlist_lookup_int32); +-EXPORT_SYMBOL(nvlist_lookup_uint32); +-EXPORT_SYMBOL(nvlist_lookup_int64); +-EXPORT_SYMBOL(nvlist_lookup_uint64); +-EXPORT_SYMBOL(nvlist_lookup_string); +-EXPORT_SYMBOL(nvlist_lookup_nvlist); +-EXPORT_SYMBOL(nvlist_lookup_boolean_array); +-EXPORT_SYMBOL(nvlist_lookup_byte_array); +-EXPORT_SYMBOL(nvlist_lookup_int8_array); +-EXPORT_SYMBOL(nvlist_lookup_uint8_array); +-EXPORT_SYMBOL(nvlist_lookup_int16_array); +-EXPORT_SYMBOL(nvlist_lookup_uint16_array); +-EXPORT_SYMBOL(nvlist_lookup_int32_array); +-EXPORT_SYMBOL(nvlist_lookup_uint32_array); +-EXPORT_SYMBOL(nvlist_lookup_int64_array); +-EXPORT_SYMBOL(nvlist_lookup_uint64_array); +-EXPORT_SYMBOL(nvlist_lookup_string_array); +-EXPORT_SYMBOL(nvlist_lookup_nvlist_array); +-EXPORT_SYMBOL(nvlist_lookup_hrtime); +-EXPORT_SYMBOL(nvlist_lookup_pairs); +- +-EXPORT_SYMBOL(nvlist_lookup_nvpair); +-EXPORT_SYMBOL(nvlist_exists); ++EXPORT_SYMBOL(nvlist_alloc) ++EXPORT_SYMBOL(nvlist_free) ++EXPORT_SYMBOL(nvlist_size) ++EXPORT_SYMBOL(nvlist_pack) ++EXPORT_SYMBOL(nvlist_unpack) ++EXPORT_SYMBOL(nvlist_dup) ++EXPORT_SYMBOL(nvlist_merge) ++ ++EXPORT_SYMBOL(nvlist_xalloc) ++EXPORT_SYMBOL(nvlist_xpack) ++EXPORT_SYMBOL(nvlist_xunpack) ++EXPORT_SYMBOL(nvlist_xdup) ++EXPORT_SYMBOL(nvlist_lookup_nv_alloc) ++ ++EXPORT_SYMBOL(nvlist_add_nvpair) ++EXPORT_SYMBOL(nvlist_add_boolean) ++EXPORT_SYMBOL(nvlist_add_boolean_value) ++EXPORT_SYMBOL(nvlist_add_byte) ++EXPORT_SYMBOL(nvlist_add_int8) ++EXPORT_SYMBOL(nvlist_add_uint8) ++EXPORT_SYMBOL(nvlist_add_int16) ++EXPORT_SYMBOL(nvlist_add_uint16) ++EXPORT_SYMBOL(nvlist_add_int32) ++EXPORT_SYMBOL(nvlist_add_uint32) ++EXPORT_SYMBOL(nvlist_add_int64) ++EXPORT_SYMBOL(nvlist_add_uint64) ++EXPORT_SYMBOL(nvlist_add_string) ++EXPORT_SYMBOL(nvlist_add_nvlist) ++EXPORT_SYMBOL(nvlist_add_boolean_array) ++EXPORT_SYMBOL(nvlist_add_byte_array) ++EXPORT_SYMBOL(nvlist_add_int8_array) ++EXPORT_SYMBOL(nvlist_add_uint8_array) ++EXPORT_SYMBOL(nvlist_add_int16_array) ++EXPORT_SYMBOL(nvlist_add_uint16_array) ++EXPORT_SYMBOL(nvlist_add_int32_array) ++EXPORT_SYMBOL(nvlist_add_uint32_array) ++EXPORT_SYMBOL(nvlist_add_int64_array) ++EXPORT_SYMBOL(nvlist_add_uint64_array) ++EXPORT_SYMBOL(nvlist_add_string_array) ++EXPORT_SYMBOL(nvlist_add_nvlist_array) ++EXPORT_SYMBOL(nvlist_next_nvpair) ++EXPORT_SYMBOL(nvlist_prev_nvpair) ++EXPORT_SYMBOL(nvlist_empty) ++EXPORT_SYMBOL(nvlist_add_hrtime) ++ ++EXPORT_SYMBOL(nvlist_remove) ++EXPORT_SYMBOL(nvlist_remove_nvpair) ++EXPORT_SYMBOL(nvlist_remove_all) ++ ++EXPORT_SYMBOL(nvlist_lookup_boolean) ++EXPORT_SYMBOL(nvlist_lookup_boolean_value) ++EXPORT_SYMBOL(nvlist_lookup_byte) ++EXPORT_SYMBOL(nvlist_lookup_int8) ++EXPORT_SYMBOL(nvlist_lookup_uint8) ++EXPORT_SYMBOL(nvlist_lookup_int16) ++EXPORT_SYMBOL(nvlist_lookup_uint16) ++EXPORT_SYMBOL(nvlist_lookup_int32) ++EXPORT_SYMBOL(nvlist_lookup_uint32) ++EXPORT_SYMBOL(nvlist_lookup_int64) ++EXPORT_SYMBOL(nvlist_lookup_uint64) ++EXPORT_SYMBOL(nvlist_lookup_string) ++EXPORT_SYMBOL(nvlist_lookup_nvlist) ++EXPORT_SYMBOL(nvlist_lookup_boolean_array) ++EXPORT_SYMBOL(nvlist_lookup_byte_array) ++EXPORT_SYMBOL(nvlist_lookup_int8_array) ++EXPORT_SYMBOL(nvlist_lookup_uint8_array) ++EXPORT_SYMBOL(nvlist_lookup_int16_array) ++EXPORT_SYMBOL(nvlist_lookup_uint16_array) ++EXPORT_SYMBOL(nvlist_lookup_int32_array) ++EXPORT_SYMBOL(nvlist_lookup_uint32_array) ++EXPORT_SYMBOL(nvlist_lookup_int64_array) ++EXPORT_SYMBOL(nvlist_lookup_uint64_array) ++EXPORT_SYMBOL(nvlist_lookup_string_array) ++EXPORT_SYMBOL(nvlist_lookup_nvlist_array) ++EXPORT_SYMBOL(nvlist_lookup_hrtime) ++EXPORT_SYMBOL(nvlist_lookup_pairs) ++ ++EXPORT_SYMBOL(nvlist_lookup_nvpair) ++EXPORT_SYMBOL(nvlist_exists) + + /* processing nvpair */ +-EXPORT_SYMBOL(nvpair_name); +-EXPORT_SYMBOL(nvpair_type); +-EXPORT_SYMBOL(nvpair_value_boolean_value); +-EXPORT_SYMBOL(nvpair_value_byte); +-EXPORT_SYMBOL(nvpair_value_int8); +-EXPORT_SYMBOL(nvpair_value_uint8); +-EXPORT_SYMBOL(nvpair_value_int16); +-EXPORT_SYMBOL(nvpair_value_uint16); +-EXPORT_SYMBOL(nvpair_value_int32); +-EXPORT_SYMBOL(nvpair_value_uint32); +-EXPORT_SYMBOL(nvpair_value_int64); +-EXPORT_SYMBOL(nvpair_value_uint64); +-EXPORT_SYMBOL(nvpair_value_string); +-EXPORT_SYMBOL(nvpair_value_nvlist); +-EXPORT_SYMBOL(nvpair_value_boolean_array); +-EXPORT_SYMBOL(nvpair_value_byte_array); +-EXPORT_SYMBOL(nvpair_value_int8_array); +-EXPORT_SYMBOL(nvpair_value_uint8_array); +-EXPORT_SYMBOL(nvpair_value_int16_array); +-EXPORT_SYMBOL(nvpair_value_uint16_array); +-EXPORT_SYMBOL(nvpair_value_int32_array); +-EXPORT_SYMBOL(nvpair_value_uint32_array); +-EXPORT_SYMBOL(nvpair_value_int64_array); +-EXPORT_SYMBOL(nvpair_value_uint64_array); +-EXPORT_SYMBOL(nvpair_value_string_array); +-EXPORT_SYMBOL(nvpair_value_nvlist_array); +-EXPORT_SYMBOL(nvpair_value_hrtime); ++EXPORT_SYMBOL(nvpair_name) ++EXPORT_SYMBOL(nvpair_type) ++EXPORT_SYMBOL(nvpair_value_boolean_value) ++EXPORT_SYMBOL(nvpair_value_byte) ++EXPORT_SYMBOL(nvpair_value_int8) ++EXPORT_SYMBOL(nvpair_value_uint8) ++EXPORT_SYMBOL(nvpair_value_int16) ++EXPORT_SYMBOL(nvpair_value_uint16) ++EXPORT_SYMBOL(nvpair_value_int32) ++EXPORT_SYMBOL(nvpair_value_uint32) ++EXPORT_SYMBOL(nvpair_value_int64) ++EXPORT_SYMBOL(nvpair_value_uint64) ++EXPORT_SYMBOL(nvpair_value_string) ++EXPORT_SYMBOL(nvpair_value_nvlist) ++EXPORT_SYMBOL(nvpair_value_boolean_array) ++EXPORT_SYMBOL(nvpair_value_byte_array) ++EXPORT_SYMBOL(nvpair_value_int8_array) ++EXPORT_SYMBOL(nvpair_value_uint8_array) ++EXPORT_SYMBOL(nvpair_value_int16_array) ++EXPORT_SYMBOL(nvpair_value_uint16_array) ++EXPORT_SYMBOL(nvpair_value_int32_array) ++EXPORT_SYMBOL(nvpair_value_uint32_array) ++EXPORT_SYMBOL(nvpair_value_int64_array) ++EXPORT_SYMBOL(nvpair_value_uint64_array) ++EXPORT_SYMBOL(nvpair_value_string_array) ++EXPORT_SYMBOL(nvpair_value_nvlist_array) ++EXPORT_SYMBOL(nvpair_value_hrtime) +diff --git a/module/zcommon/zfs_namecheck.c b/module/zcommon/zfs_namecheck.c +index 7ecce451b..5f6b8a3b9 100644 +--- a/module/zcommon/zfs_namecheck.c ++++ b/module/zcommon/zfs_namecheck.c +@@ -453,15 +453,15 @@ pool_namecheck(const char *pool, namecheck_err_t *why, char *what) + return (0); + } + +-EXPORT_SYMBOL(entity_namecheck); +-EXPORT_SYMBOL(pool_namecheck); +-EXPORT_SYMBOL(dataset_namecheck); +-EXPORT_SYMBOL(bookmark_namecheck); +-EXPORT_SYMBOL(snapshot_namecheck); +-EXPORT_SYMBOL(zfs_component_namecheck); +-EXPORT_SYMBOL(dataset_nestcheck); +-EXPORT_SYMBOL(get_dataset_depth); +-EXPORT_SYMBOL(zfs_max_dataset_nesting); ++EXPORT_SYMBOL(entity_namecheck) ++EXPORT_SYMBOL(pool_namecheck) ++EXPORT_SYMBOL(dataset_namecheck) ++EXPORT_SYMBOL(bookmark_namecheck) ++EXPORT_SYMBOL(snapshot_namecheck) ++EXPORT_SYMBOL(zfs_component_namecheck) ++EXPORT_SYMBOL(dataset_nestcheck) ++EXPORT_SYMBOL(get_dataset_depth) ++EXPORT_SYMBOL(zfs_max_dataset_nesting) + + ZFS_MODULE_PARAM(zfs, zfs_, max_dataset_nesting, INT, ZMOD_RW, +- "Limit to the amount of nesting a path can have. Defaults to 50."); ++ "Limit to the amount of nesting a path can have. Defaults to 50.") +diff --git a/module/zcommon/zfs_prop.c b/module/zcommon/zfs_prop.c +index b4e8fcf1f..9de54aa44 100644 +--- a/module/zcommon/zfs_prop.c ++++ b/module/zcommon/zfs_prop.c +@@ -1054,32 +1054,32 @@ module_exit(zcommon_fini); + + #endif + +-ZFS_MODULE_DESCRIPTION("Generic ZFS support"); +-ZFS_MODULE_AUTHOR(ZFS_META_AUTHOR); +-ZFS_MODULE_LICENSE(ZFS_META_LICENSE); +-ZFS_MODULE_VERSION(ZFS_META_VERSION "-" ZFS_META_RELEASE); ++ZFS_MODULE_DESCRIPTION("Generic ZFS support") ++ZFS_MODULE_AUTHOR(ZFS_META_AUTHOR) ++ZFS_MODULE_LICENSE(ZFS_META_LICENSE) ++ZFS_MODULE_VERSION(ZFS_META_VERSION "-" ZFS_META_RELEASE) + + /* zfs dataset property functions */ +-EXPORT_SYMBOL(zfs_userquota_prop_prefixes); +-EXPORT_SYMBOL(zfs_prop_init); +-EXPORT_SYMBOL(zfs_prop_get_type); +-EXPORT_SYMBOL(zfs_prop_get_table); +-EXPORT_SYMBOL(zfs_prop_delegatable); +-EXPORT_SYMBOL(zfs_prop_visible); ++EXPORT_SYMBOL(zfs_userquota_prop_prefixes) ++EXPORT_SYMBOL(zfs_prop_init) ++EXPORT_SYMBOL(zfs_prop_get_type) ++EXPORT_SYMBOL(zfs_prop_get_table) ++EXPORT_SYMBOL(zfs_prop_delegatable) ++EXPORT_SYMBOL(zfs_prop_visible) + + /* Dataset property functions shared between libzfs and kernel. */ +-EXPORT_SYMBOL(zfs_prop_default_string); +-EXPORT_SYMBOL(zfs_prop_default_numeric); +-EXPORT_SYMBOL(zfs_prop_readonly); +-EXPORT_SYMBOL(zfs_prop_inheritable); +-EXPORT_SYMBOL(zfs_prop_encryption_key_param); +-EXPORT_SYMBOL(zfs_prop_valid_keylocation); +-EXPORT_SYMBOL(zfs_prop_setonce); +-EXPORT_SYMBOL(zfs_prop_to_name); +-EXPORT_SYMBOL(zfs_name_to_prop); +-EXPORT_SYMBOL(zfs_prop_user); +-EXPORT_SYMBOL(zfs_prop_userquota); +-EXPORT_SYMBOL(zfs_prop_index_to_string); +-EXPORT_SYMBOL(zfs_prop_string_to_index); +-EXPORT_SYMBOL(zfs_prop_valid_for_type); +-EXPORT_SYMBOL(zfs_prop_written); ++EXPORT_SYMBOL(zfs_prop_default_string) ++EXPORT_SYMBOL(zfs_prop_default_numeric) ++EXPORT_SYMBOL(zfs_prop_readonly) ++EXPORT_SYMBOL(zfs_prop_inheritable) ++EXPORT_SYMBOL(zfs_prop_encryption_key_param) ++EXPORT_SYMBOL(zfs_prop_valid_keylocation) ++EXPORT_SYMBOL(zfs_prop_setonce) ++EXPORT_SYMBOL(zfs_prop_to_name) ++EXPORT_SYMBOL(zfs_name_to_prop) ++EXPORT_SYMBOL(zfs_prop_user) ++EXPORT_SYMBOL(zfs_prop_userquota) ++EXPORT_SYMBOL(zfs_prop_index_to_string) ++EXPORT_SYMBOL(zfs_prop_string_to_index) ++EXPORT_SYMBOL(zfs_prop_valid_for_type) ++EXPORT_SYMBOL(zfs_prop_written) +-- +2.37.3 + diff --git a/pkg/zfs/patch/0009-Avoid-use-of-long-double-function.patch b/pkg/zfs/patch/0009-Avoid-use-of-long-double-function.patch @@ -0,0 +1,34 @@ +From 36c4199b3392557bffc375444696bdc6ec36ebae Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Sat, 21 Jan 2023 17:30:39 -0800 +Subject: [PATCH] Avoid use of long double function + +--- + lib/libzutil/zutil_nicenum.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/lib/libzutil/zutil_nicenum.c b/lib/libzutil/zutil_nicenum.c +index 4dcac1f85..5bde425f4 100644 +--- a/lib/libzutil/zutil_nicenum.c ++++ b/lib/libzutil/zutil_nicenum.c +@@ -102,7 +102,7 @@ zfs_nicenum_format(uint64_t num, char *buf, size_t buflen, + if ((format == ZFS_NICENUM_TIME) && (num == 0)) { + (void) snprintf(buf, buflen, "-"); + } else if ((index == 0) || ((num % +- (uint64_t)powl(k_unit[format], index)) == 0)) { ++ (uint64_t)pow(k_unit[format], index)) == 0)) { + /* + * If this is an even multiple of the base, always display + * without any decimal precision. +@@ -122,7 +122,7 @@ zfs_nicenum_format(uint64_t num, char *buf, size_t buflen, + int i; + for (i = 2; i >= 0; i--) { + val = (double)num / +- (uint64_t)powl(k_unit[format], index); ++ (uint64_t)pow(k_unit[format], index); + + /* + * Don't print floating point values for time. Note, +-- +2.37.3 + diff --git a/pkg/zfs/patch/0010-Avoid-unnecessary-VLA.patch b/pkg/zfs/patch/0010-Avoid-unnecessary-VLA.patch @@ -0,0 +1,54 @@ +From 2218ade9b12bc42f61d96a4613328a6f627805a1 Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Sat, 21 Jan 2023 17:41:15 -0800 +Subject: [PATCH] Avoid unnecessary VLA + +--- + cmd/zpool/zpool_vdev.c | 17 ++++++++--------- + 1 file changed, 8 insertions(+), 9 deletions(-) + +diff --git a/cmd/zpool/zpool_vdev.c b/cmd/zpool/zpool_vdev.c +index 3d83da641..521086366 100644 +--- a/cmd/zpool/zpool_vdev.c ++++ b/cmd/zpool/zpool_vdev.c +@@ -891,8 +891,7 @@ check_replication(nvlist_t *config, nvlist_t *newroot) + static int + zero_label(char *path) + { +- const int size = 4096; +- char buf[size]; ++ char buf[4096]; + int err, fd; + + if ((fd = open(path, O_WRONLY|O_EXCL)) < 0) { +@@ -901,20 +900,20 @@ zero_label(char *path) + return (-1); + } + +- memset(buf, 0, size); +- err = write(fd, buf, size); ++ memset(buf, 0, sizeof (buf)); ++ err = write(fd, buf, sizeof (buf)); + (void) fdatasync(fd); + (void) close(fd); + + if (err == -1) { +- (void) fprintf(stderr, gettext("cannot zero first %d bytes " +- "of '%s': %s\n"), size, path, strerror(errno)); ++ (void) fprintf(stderr, gettext("cannot zero first %zu bytes " ++ "of '%s': %s\n"), sizeof (buf), path, strerror(errno)); + return (-1); + } + +- if (err != size) { +- (void) fprintf(stderr, gettext("could only zero %d/%d bytes " +- "of '%s'\n"), err, size, path); ++ if (err != sizeof (buf)) { ++ (void) fprintf(stderr, gettext("could only zero %d/%zu bytes " ++ "of '%s'\n"), err, sizeof (buf), path); + return (-1); + } + +-- +2.37.3 + diff --git a/pkg/zfs/patch/0011-Avoid-arithmetic-on-void-pointer.patch b/pkg/zfs/patch/0011-Avoid-arithmetic-on-void-pointer.patch @@ -0,0 +1,25 @@ +From 8a2689c718e4fdf96a5b73e4095866ddf4826135 Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Sat, 21 Jan 2023 17:52:40 -0800 +Subject: [PATCH] Avoid arithmetic on void pointer + +--- + module/zcommon/zfs_fletcher.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/module/zcommon/zfs_fletcher.c b/module/zcommon/zfs_fletcher.c +index 7a9de4a43..2faee46fe 100644 +--- a/module/zcommon/zfs_fletcher.c ++++ b/module/zcommon/zfs_fletcher.c +@@ -569,7 +569,7 @@ fletcher_4_incremental_impl(boolean_t native, const void *buf, uint64_t size, + fletcher_4_incremental_combine(zcp, len, &nzc); + + size -= len; +- buf += len; ++ buf = (char *)buf + len; + } + } + +-- +2.37.3 + diff --git a/pkg/zfs/sha256 b/pkg/zfs/sha256 @@ -0,0 +1 @@ +6462e63e185de6ff10c64ffa6ed773201a082f9dd13e603d7e8136fcb4aca71b zfs-2.1.7.tar.gz diff --git a/pkg/zfs/url b/pkg/zfs/url @@ -0,0 +1 @@ +url = "https://github.com/openzfs/zfs/releases/download/zfs-2.1.7/zfs-2.1.7.tar.gz" diff --git a/pkg/zfs/ver b/pkg/zfs/ver @@ -0,0 +1 @@ +2.1.7 r0