git: df58e8b1506f - main - zfs: merge openzfs/zfs@8302b6e32
Date: Thu, 07 Aug 2025 08:06:13 UTC
The branch main has been updated by mm:
URL: https://cgit.FreeBSD.org/src/commit/?id=df58e8b1506f241670be86a560fb6e8432043aee
commit df58e8b1506f241670be86a560fb6e8432043aee
Merge: 02f394281fd6 8302b6e32bb1
Author: Martin Matuska <mm@FreeBSD.org>
AuthorDate: 2025-08-07 07:06:31 +0000
Commit: Martin Matuska <mm@FreeBSD.org>
CommitDate: 2025-08-07 07:06:31 +0000
zfs: merge openzfs/zfs@8302b6e32
Notable upstream pull request merges:
#16853 894edd084 Add TXG timestamp database
#17004 -multiple Implement dynamic gang header sizes
#17405 dea0fc969 ZVOL: Return early, if volmode is ZFS_VOLMODE_NONE
on FreeBSD side
#17455 cf146460c Default to zfs_bclone_wait_dirty=1
#17481 523d9d600 Validate mountpoint on path-based unmount using statx
#17482 92da9e0e9 ZVOL: Implement zvol_alloc() function on FreeBSD side
#17489 dee62e074 spa: ZIO_TASKQ_ISSUE: Use symbolic priority
#17496 bf846dcb7 Release topology restrictions on special/dedup
#17497 4e92aee23 Relax special_small_blocks restrictions
#17503 ea38787f2 Revert "Fix incorrect expected error in ztest"
#17505 be1e991a1 Allow and prefer special vdevs as ZIL
#17506 ee0cb4cb8 ztest: Fix false positive of ENOSPC handling
#17507 92d3b4ee2 zio: rename `io_reexecute` as `io_post`;
use it for the direct IO checksum error flag
#17508 6af8db61b metaslab: don't pass whole zio to throttle reserve APIs
#17518 4c2a7f85d FreeBSD: Add support for _PC_HAS_HIDDENSYSTEM
#17521 d7ab07dfb ZIL: Force writing of open LWB on suspend
#17524 b6e8db509 zpool/zfs: Add '-a|--all' option to scrub, trim,
initialize
#17531 c1e51c55f Correct weight recalculation of space-based metaslabs
#17533 d323fbf49 FreeBSD: zfs_putpages: don't undirty pages until
after write completes
#17536 b21e04e8d Fix zdb pool/ with -k
#17537 -multiple Userspace tunables
#17540 2957eabbe Add support for FreeBSD's Solaris style extended
attribute interface
#17547 4bd7a2eaa zdb: fix checksum calculation for decompressed blocks
#17551 -multiple cleanup: remove var init/update
#17561 0f8a1105e Skip dbuf_evict_one() from dbuf_evict_notify()
for reclaim thread
#17563 10a78e264 Faster checksum benchmark on system boot
#17564 00ce064d8 spa: update blkptr diagram to include vdev padding
on encrypted blocks
#17565 -multiple Physical rewrite
#17566 fc885f308 Don't use wrong weight when passivating group
#17572 f70c85086 BRT: Fix ZAP entry endianness
#17575 0b6fd024a ZVOL: Unify zvol minors operations and improve error
handling
#17581 cb5e7e097 range_tree: Provide more debug details upon unexpected
add/remove
#17587 -multiple Fix two issues with dynamic gang headers
Obtained from: OpenZFS
OpenZFS commit: 8302b6e32bb153a6f402b106484d5736f082abcc
cddl/lib/libspl/Makefile | 1 +
cddl/lib/libzpool/Makefile | 2 +
stand/libsa/zfs/spl/sys/zfs_context.h | 2 +-
sys/conf/files | 1 +
sys/contrib/openzfs/.cirrus.yml | 21 --
sys/contrib/openzfs/.github/codeql-cpp.yml | 1 +
.../cpp/dslDatasetHoldReleMismatch.ql | 34 ++
.../.github/workflows/scripts/qemu-2-start.sh | 8 -
.../.github/workflows/scripts/qemu-3-deps-vm.sh | 3 +-
.../.github/workflows/scripts/qemu-6-tests.sh | 6 +-
sys/contrib/openzfs/.github/workflows/zfs-qemu.yml | 22 +-
sys/contrib/openzfs/.github/workflows/zloop.yml | 24 +-
sys/contrib/openzfs/cmd/arc_summary | 3 +
sys/contrib/openzfs/cmd/zdb/zdb.c | 103 ++++--
sys/contrib/openzfs/cmd/zdb/zdb_il.c | 8 +-
sys/contrib/openzfs/cmd/zed/agents/zfs_agents.c | 67 ++--
sys/contrib/openzfs/cmd/zed/zed_event.c | 2 +-
sys/contrib/openzfs/cmd/zfs/zfs_main.c | 36 +-
sys/contrib/openzfs/cmd/zpool/zpool_iter.c | 5 +-
sys/contrib/openzfs/cmd/zpool/zpool_main.c | 264 +++++++++-----
sys/contrib/openzfs/cmd/zpool/zpool_vdev.c | 24 +-
sys/contrib/openzfs/cmd/ztest.c | 51 +--
sys/contrib/openzfs/config/ax_python_devel.m4 | 4 +-
sys/contrib/openzfs/config/kernel-free-inode.m4 | 24 ++
sys/contrib/openzfs/config/kernel.m4 | 2 +
sys/contrib/openzfs/config/user-statx.m4 | 34 ++
sys/contrib/openzfs/config/user.m4 | 1 +
.../contrib/debian/openzfs-zfsutils.install | 1 +
sys/contrib/openzfs/etc/Makefile.am | 1 +
.../etc/systemd/system/zfs-mount@.service.in | 26 ++
sys/contrib/openzfs/include/Makefile.am | 2 +-
sys/contrib/openzfs/include/libzfs.h | 15 +
sys/contrib/openzfs/include/os/freebsd/Makefile.am | 2 +-
.../openzfs/include/os/freebsd/spl/sys/misc.h | 5 +
.../include/os/freebsd/spl/sys/{mod_os.h => mod.h} | 0
.../openzfs/include/os/freebsd/spl/sys/vm.h | 1 +
.../include/os/freebsd/spl/sys/vnode_impl.h | 1 +
sys/contrib/openzfs/include/os/linux/Makefile.am | 2 +-
.../openzfs/include/os/linux/spl/sys/atomic.h | 32 ++
.../openzfs/include/os/linux/spl/sys/kmem.h | 61 +---
.../openzfs/include/os/linux/spl/sys/misc.h | 6 +
.../include/os/linux/spl/sys/{mod_os.h => mod.h} | 0
.../openzfs/include/os/linux/zfs/sys/trace_acl.h | 7 +-
.../include/os/linux/zfs/sys/trace_common.h | 8 +-
.../include/os/linux/zfs/sys/zfs_znode_impl.h | 1 +
sys/contrib/openzfs/include/sys/arc_impl.h | 2 +-
sys/contrib/openzfs/include/sys/dbuf.h | 1 +
sys/contrib/openzfs/include/sys/dmu.h | 4 +
sys/contrib/openzfs/include/sys/dmu_objset.h | 2 +-
sys/contrib/openzfs/include/sys/dmu_traverse.h | 7 +
sys/contrib/openzfs/include/sys/fs/zfs.h | 3 +
sys/contrib/openzfs/include/sys/metaslab.h | 7 +-
sys/contrib/openzfs/include/sys/metaslab_impl.h | 2 +
sys/contrib/openzfs/include/sys/mod.h | 36 --
sys/contrib/openzfs/include/sys/range_tree.h | 9 +
sys/contrib/openzfs/include/sys/spa.h | 75 ++--
sys/contrib/openzfs/include/sys/spa_impl.h | 9 +
sys/contrib/openzfs/include/sys/vdev.h | 16 +-
sys/contrib/openzfs/include/sys/vdev_impl.h | 4 +-
sys/contrib/openzfs/include/sys/xvattr.h | 1 +
sys/contrib/openzfs/include/sys/zfs_context.h | 20 +-
sys/contrib/openzfs/include/sys/zfs_znode.h | 2 -
sys/contrib/openzfs/include/sys/zil.h | 4 +
sys/contrib/openzfs/include/sys/zio.h | 71 ++--
sys/contrib/openzfs/include/sys/zvol.h | 3 +-
sys/contrib/openzfs/include/sys/zvol_impl.h | 3 +-
sys/contrib/openzfs/include/zfeature_common.h | 13 +-
sys/contrib/openzfs/include/zfs_crrd.h | 75 ++++
sys/contrib/openzfs/lib/libspl/Makefile.am | 1 +
sys/contrib/openzfs/lib/libspl/include/Makefile.am | 2 +
.../openzfs/lib/libspl/include/os/linux/sys/stat.h | 5 +
sys/contrib/openzfs/lib/libspl/include/sys/mod.h | 56 +++
.../openzfs/lib/libspl/include/sys/tunables.h | 60 ++++
sys/contrib/openzfs/lib/libspl/include/umem.h | 2 +-
.../openzfs/lib/libspl/os/linux/getmntany.c | 36 +-
sys/contrib/openzfs/lib/libspl/tunables.c | 319 +++++++++++++++++
sys/contrib/openzfs/lib/libuutil/libuutil.abi | 196 ++++++++++-
sys/contrib/openzfs/lib/libzdb/libzdb.c | 4 +-
sys/contrib/openzfs/lib/libzfs/libzfs.abi | 246 ++++++++++++-
sys/contrib/openzfs/lib/libzfs/libzfs_crypto.c | 2 +-
sys/contrib/openzfs/lib/libzfs/libzfs_dataset.c | 37 +-
sys/contrib/openzfs/lib/libzfs/libzfs_pool.c | 128 +++++--
sys/contrib/openzfs/lib/libzfs/libzfs_status.c | 3 +-
.../openzfs/lib/libzfs_core/libzfs_core.abi | 206 ++++++++++-
sys/contrib/openzfs/lib/libzpool/Makefile.am | 3 +-
sys/contrib/openzfs/lib/libzpool/kernel.c | 18 +-
sys/contrib/openzfs/lib/libzpool/util.c | 172 +++++----
sys/contrib/openzfs/man/man1/ztest.1 | 8 +-
sys/contrib/openzfs/man/man4/zfs.4 | 51 ++-
sys/contrib/openzfs/man/man7/zfsprops.7 | 36 +-
sys/contrib/openzfs/man/man7/zpool-features.7 | 41 +++
sys/contrib/openzfs/man/man7/zpoolconcepts.7 | 9 +-
sys/contrib/openzfs/man/man8/zdb.8 | 13 +-
sys/contrib/openzfs/man/man8/zfs-rewrite.8 | 28 +-
sys/contrib/openzfs/man/man8/zpool-events.8 | 4 +-
sys/contrib/openzfs/man/man8/zpool-initialize.8 | 7 +-
sys/contrib/openzfs/man/man8/zpool-scrub.8 | 51 ++-
sys/contrib/openzfs/man/man8/zpool-trim.8 | 7 +-
sys/contrib/openzfs/module/Kbuild.in | 32 ++
sys/contrib/openzfs/module/Makefile.bsd | 1 +
sys/contrib/openzfs/module/Makefile.in | 2 +-
.../openzfs/module/os/freebsd/spl/spl_misc.c | 9 +
sys/contrib/openzfs/module/os/freebsd/spl/spl_vm.c | 1 +
.../openzfs/module/os/freebsd/zfs/zfs_acl.c | 32 ++
.../openzfs/module/os/freebsd/zfs/zfs_vfsops.c | 32 +-
.../openzfs/module/os/freebsd/zfs/zfs_vnops_os.c | 387 +++++++++++++++++++--
.../openzfs/module/os/freebsd/zfs/zfs_znode_os.c | 7 -
.../openzfs/module/os/freebsd/zfs/zvol_os.c | 155 +++++----
sys/contrib/openzfs/module/os/linux/spl/spl-kmem.c | 22 +-
sys/contrib/openzfs/module/os/linux/spl/spl-proc.c | 10 +-
.../openzfs/module/os/linux/spl/spl-thread.c | 12 +
sys/contrib/openzfs/module/os/linux/zfs/abd_os.c | 4 -
.../openzfs/module/os/linux/zfs/zfs_ctldir.c | 2 -
.../openzfs/module/os/linux/zfs/zfs_file_os.c | 23 --
.../openzfs/module/os/linux/zfs/zfs_vfsops.c | 65 ++++
.../openzfs/module/os/linux/zfs/zfs_vnops_os.c | 99 +++---
.../openzfs/module/os/linux/zfs/zfs_znode_os.c | 24 +-
sys/contrib/openzfs/module/os/linux/zfs/zpl_file.c | 41 ---
.../openzfs/module/os/linux/zfs/zpl_super.c | 12 +
sys/contrib/openzfs/module/os/linux/zfs/zvol_os.c | 36 +-
.../openzfs/module/zcommon/zfeature_common.c | 24 ++
sys/contrib/openzfs/module/zcommon/zfs_prop.c | 11 +-
sys/contrib/openzfs/module/zcommon/zfs_valstr.c | 3 +-
sys/contrib/openzfs/module/zfs/arc.c | 32 +-
sys/contrib/openzfs/module/zfs/bpobj.c | 4 +-
sys/contrib/openzfs/module/zfs/brt.c | 70 +++-
sys/contrib/openzfs/module/zfs/dbuf.c | 82 ++++-
sys/contrib/openzfs/module/zfs/ddt.c | 15 +-
sys/contrib/openzfs/module/zfs/dmu.c | 11 +-
sys/contrib/openzfs/module/zfs/dmu_diff.c | 4 +-
sys/contrib/openzfs/module/zfs/dmu_direct.c | 2 +-
sys/contrib/openzfs/module/zfs/dmu_objset.c | 8 +-
sys/contrib/openzfs/module/zfs/dmu_recv.c | 8 +-
sys/contrib/openzfs/module/zfs/dmu_redact.c | 4 +-
sys/contrib/openzfs/module/zfs/dmu_send.c | 4 +-
sys/contrib/openzfs/module/zfs/dmu_traverse.c | 17 +-
sys/contrib/openzfs/module/zfs/dnode.c | 19 +-
sys/contrib/openzfs/module/zfs/dsl_bookmark.c | 2 +-
sys/contrib/openzfs/module/zfs/dsl_crypt.c | 2 +-
sys/contrib/openzfs/module/zfs/dsl_dataset.c | 20 +-
sys/contrib/openzfs/module/zfs/dsl_deadlist.c | 4 +-
sys/contrib/openzfs/module/zfs/dsl_destroy.c | 12 +-
sys/contrib/openzfs/module/zfs/dsl_pool.c | 2 +-
sys/contrib/openzfs/module/zfs/dsl_scan.c | 27 +-
sys/contrib/openzfs/module/zfs/metaslab.c | 182 +++++-----
sys/contrib/openzfs/module/zfs/range_tree.c | 96 +++--
sys/contrib/openzfs/module/zfs/spa.c | 194 ++++++++++-
sys/contrib/openzfs/module/zfs/spa_errlog.c | 4 +-
sys/contrib/openzfs/module/zfs/spa_misc.c | 11 +
sys/contrib/openzfs/module/zfs/vdev.c | 57 ++-
sys/contrib/openzfs/module/zfs/vdev_indirect.c | 2 +-
sys/contrib/openzfs/module/zfs/vdev_initialize.c | 5 +-
sys/contrib/openzfs/module/zfs/vdev_mirror.c | 4 +-
sys/contrib/openzfs/module/zfs/vdev_raidz.c | 28 +-
sys/contrib/openzfs/module/zfs/vdev_rebuild.c | 5 +-
sys/contrib/openzfs/module/zfs/vdev_removal.c | 30 +-
sys/contrib/openzfs/module/zfs/vdev_trim.c | 24 +-
sys/contrib/openzfs/module/zfs/zap.c | 2 +-
sys/contrib/openzfs/module/zfs/zcp.c | 2 +-
sys/contrib/openzfs/module/zfs/zfs_chksum.c | 69 ++--
sys/contrib/openzfs/module/zfs/zfs_crrd.c | 227 ++++++++++++
sys/contrib/openzfs/module/zfs/zfs_ioctl.c | 36 +-
sys/contrib/openzfs/module/zfs/zfs_log.c | 16 +-
sys/contrib/openzfs/module/zfs/zfs_vnops.c | 31 +-
sys/contrib/openzfs/module/zfs/zil.c | 95 ++++-
sys/contrib/openzfs/module/zfs/zio.c | 326 +++++++++++------
sys/contrib/openzfs/module/zfs/zio_checksum.c | 31 +-
sys/contrib/openzfs/module/zfs/zvol.c | 342 ++++++++++--------
sys/contrib/openzfs/module/zstd/zfs_zstd.c | 3 +-
sys/contrib/openzfs/rpm/generic/zfs.spec.in | 16 +-
sys/contrib/openzfs/scripts/spdxcheck.pl | 1 -
sys/contrib/openzfs/tests/runfiles/common.run | 22 +-
sys/contrib/openzfs/tests/runfiles/sanity.run | 2 +-
.../tests/test-runner/bin/test-runner.py.in | 5 +-
.../openzfs/tests/test-runner/bin/zts-report.py.in | 4 +-
.../openzfs/tests/test-runner/include/logapi.shlib | 7 +-
.../tests/zfs-tests/callbacks/zfs_dmesg.ksh | 7 +-
sys/contrib/openzfs/tests/zfs-tests/cmd/.gitignore | 1 +
.../openzfs/tests/zfs-tests/cmd/Makefile.am | 4 +-
sys/contrib/openzfs/tests/zfs-tests/cmd/draid.c | 2 +-
.../openzfs/tests/zfs-tests/cmd/idmap_util.c | 2 +-
sys/contrib/openzfs/tests/zfs-tests/cmd/mktree.c | 2 +-
.../openzfs/tests/zfs-tests/cmd/mmap_ftruncate.c | 85 +++++
.../openzfs/tests/zfs-tests/cmd/mmapwrite.c | 4 +-
.../openzfs/tests/zfs-tests/include/commands.cfg | 1 +
.../openzfs/tests/zfs-tests/include/libtest.shlib | 4 +-
.../openzfs/tests/zfs-tests/include/tunables.cfg | 1 +
.../openzfs/tests/zfs-tests/tests/Makefile.am | 15 +-
.../functional/alloc_class/alloc_class_002_neg.ksh | 5 -
.../functional/alloc_class/alloc_class_003_pos.ksh | 8 +-
.../functional/alloc_class/alloc_class_004_pos.ksh | 5 +-
.../functional/alloc_class/alloc_class_009_pos.ksh | 5 +-
.../functional/alloc_class/alloc_class_010_pos.ksh | 2 +-
.../functional/alloc_class/alloc_class_011_neg.ksh | 4 +-
.../functional/alloc_class/alloc_class_014_neg.ksh | 39 ---
.../functional/alloc_class/alloc_class_015_pos.ksh | 46 ---
...ock_cloning_copyfilerange_fallback_same_txg.ksh | 21 ++
.../tests/functional/cli_root/zdb/zdb_tunables.ksh | 71 ++++
.../cli_root/zfs_rewrite/zfs_rewrite_physical.ksh | 100 ++++++
.../zpool_create/zpool_create_features_001_pos.ksh | 2 +-
.../zpool_create/zpool_create_features_005_pos.ksh | 3 +
.../functional/cli_root/zpool_get/zpool_get.cfg | 3 +
.../zpool_initialize_multiple_pools.ksh | 131 +++++++
.../cli_root/zpool_scrub/zpool_scrub_001_neg.ksh | 3 +-
.../zpool_scrub/zpool_scrub_date_range_001.ksh | 94 +++++
.../zpool_scrub/zpool_scrub_multiple_pools.ksh | 128 +++++++
.../zpool_trim/zpool_trim_multiple_pools.ksh | 123 +++++++
.../tests/functional/cp_files/cp_files_002_pos.ksh | 4 +-
.../functional/gang_blocks/gang_blocks.kshlib | 17 +
.../gang_blocks/gang_blocks_dyn_header_neg.ksh | 53 +++
.../gang_blocks/gang_blocks_dyn_header_pos.ksh | 81 +++++
.../gang_blocks/gang_blocks_dyn_multi.ksh | 54 +++
.../tests/functional/mmap/mmap_ftruncate.ksh | 80 +++++
.../functional/pool_checkpoint/checkpoint_zdb.ksh | 2 +
sys/modules/zfs/Makefile | 1 +
sys/modules/zfs/zfs_config.h | 16 +-
sys/modules/zfs/zfs_gitrev.h | 2 +-
217 files changed, 5829 insertions(+), 1720 deletions(-)
diff --cc cddl/lib/libspl/Makefile
index d44e5cb19ab4,000000000000..13fd6d96f2af
mode 100644,000000..100644
--- a/cddl/lib/libspl/Makefile
+++ b/cddl/lib/libspl/Makefile
@@@ -1,49 -1,0 +1,50 @@@
+.include <bsd.init.mk>
+.include <bsd.compiler.mk>
+
+.PATH: ${SRCTOP}/sys/contrib/openzfs/lib/libspl
+.PATH: ${SRCTOP}/sys/contrib/openzfs/include
+
+LIB= spl
+LIBADD=
+PACKAGE= libzfs
+
+SRCS = \
+ assert.c \
+ backtrace.c \
+ list.c \
+ mkdirp.c \
+ os/freebsd/zone.c \
+ page.c \
+ timestamp.c \
++ tunables.c \
+ include/sys/list.h \
+ include/sys/list_impl.h
+
+# These functions are not required when bootstrapping and the atomic code
+# will not compile when building on macOS.
+.if !defined(BOOTSTRAPPING)
+SRCS += \
+ atomic.c \
+ getexecname.c \
+ os/freebsd/getexecname.c \
+ os/freebsd/gethostid.c \
+ os/freebsd/getmntany.c \
+ os/freebsd/mnttab.c
+.endif
+
+WARNS?= 2
+CSTD= c99
+CFLAGS+= -DIN_BASE
+CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/include
+CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include/
+CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/lib/libspl/include/os/freebsd
+CFLAGS+= -I${SRCTOP}/cddl/compat/opensolaris/include
+CFLAGS+= -I${SRCTOP}/sys/contrib/openzfs/module/icp/include
+CFLAGS+= -include ${SRCTOP}/sys/contrib/openzfs/include/os/freebsd/spl/sys/ccompile.h
+CFLAGS+= -DHAVE_ISSETUGID
+CFLAGS+= -include ${SRCTOP}/sys/modules/zfs/zfs_config.h
+.if ${COMPILER_TYPE} == "clang"
+CFLAGS.atomic.c+= -Wno-error=atomic-alignment
+.endif
+
+.include <bsd.lib.mk>
diff --cc cddl/lib/libzpool/Makefile
index 5a69843d6c8e,000000000000..4da3840e59f0
mode 100644,000000..100644
--- a/cddl/lib/libzpool/Makefile
+++ b/cddl/lib/libzpool/Makefile
@@@ -1,342 -1,0 +1,344 @@@
+ZFSTOP= ${SRCTOP}/sys/contrib/openzfs
+
+.PATH: ${ZFSTOP}/lib/libzpool
+
+# ZFS_COMMON_SRCS
+.PATH: ${ZFSTOP}/module/zfs
+.PATH: ${ZFSTOP}/module/zcommon
+.PATH: ${ZFSTOP}/module/unicode
+# LUA_SRCS
+.PATH: ${ZFSTOP}/module/lua
+# ZSTD_SRCS
+.PATH: ${ZFSTOP}/module/zstd
+.PATH: ${ZFSTOP}/module/zstd/lib/common
+.PATH: ${ZFSTOP}/module/zstd/lib/compress
+.PATH: ${ZFSTOP}/module/zstd/lib/decompress
+
+.if exists(${SRCTOP}/sys/cddl/contrib/opensolaris/common/atomic/${MACHINE_ARCH}/opensolaris_atomic.S)
+.PATH: ${SRCTOP}/sys/cddl/contrib/opensolaris/common/atomic/${MACHINE_ARCH}
+ATOMIC_SRCS= opensolaris_atomic.S
+ACFLAGS+= -Wa,--noexecstack
+.else
+.PATH: ${SRCTOP}/sys/cddl/compat/opensolaris/kern
+ATOMIC_SRCS= opensolaris_atomic.c
+.endif
+
+.if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpcspe"
+# Don't waste GOT entries on small data.
+PICFLAG= -fPIC
+.endif
+
+PACKAGE= zfs
+LIB= zpool
+
+USER_C = \
+ arc_os.c \
+ kernel.c \
+ taskq.c \
+ util.c \
+ zfs_debug.c
+
+.PATH: ${ZFSTOP}/module/os/linux/zfs
+
+KERNEL_C = \
+ simd_stat.c \
+ zfeature_common.c \
+ zfs_comutil.c \
+ zfs_deleg.c \
+ zfs_fletcher.c \
+ zfs_fletcher_superscalar.c \
+ zfs_fletcher_superscalar4.c \
+ zfs_namecheck.c \
+ zfs_prop.c \
+ zfs_zstd.c \
+ zpool_prop.c \
+ zprop_common.c \
+ abd.c \
+ abd_os.c \
+ aggsum.c \
+ arc.c \
+ blake3_zfs.c \
+ blkptr.c \
+ bplist.c \
+ bpobj.c \
+ bptree.c \
+ bqueue.c \
+ btree.c \
+ brt.c \
+ cityhash.c \
+ dbuf.c \
+ dbuf_stats.c \
+ ddt.c \
+ ddt_log.c \
+ ddt_stats.c \
+ ddt_zap.c \
+ dmu.c \
+ dmu_diff.c \
+ dmu_direct.c \
+ dmu_object.c \
+ dmu_objset.c \
+ dmu_recv.c \
+ dmu_redact.c \
+ dmu_send.c \
+ dmu_traverse.c \
+ dmu_tx.c \
+ dmu_zfetch.c \
+ dnode.c \
+ dnode_sync.c \
+ dsl_bookmark.c \
+ dsl_dataset.c \
+ dsl_deadlist.c \
+ dsl_deleg.c \
+ dsl_dir.c \
+ dsl_crypt.c \
+ dsl_pool.c \
+ dsl_prop.c \
+ dsl_scan.c \
+ dsl_synctask.c \
+ dsl_destroy.c \
+ dsl_userhold.c \
+ edonr_zfs.c \
+ entropy_common.c \
+ error_private.c \
+ fm.c \
+ fse_compress.c \
+ fse_decompress.c \
+ gzip.c \
+ hist.c \
+ hkdf.c \
+ huf_compress.c \
+ huf_decompress.c \
+ lzjb.c \
+ lz4.c \
+ lz4_zfs.c \
+ metaslab.c \
+ mmp.c \
+ multilist.c \
+ objlist.c \
+ pathname.c \
+ pool.c \
+ range_tree.c \
+ refcount.c \
+ rrwlock.c \
+ sa.c \
+ sha2_zfs.c \
+ skein_zfs.c \
+ spa.c \
+ spa_checkpoint.c \
+ spa_config.c \
+ spa_errlog.c \
+ spa_history.c \
+ spa_log_spacemap.c \
+ spa_misc.c \
+ spa_stats.c \
+ space_map.c \
+ space_reftree.c \
+ txg.c \
+ trace.c \
+ uberblock.c \
+ unique.c \
+ vdev.c \
+ vdev_draid.c \
+ vdev_draid_rand.c \
+ vdev_file.c \
+ vdev_indirect_births.c \
+ vdev_indirect.c \
+ vdev_indirect_mapping.c \
+ vdev_initialize.c \
+ vdev_label.c \
+ vdev_label_os.c \
+ vdev_mirror.c \
+ vdev_missing.c \
+ vdev_queue.c \
+ vdev_raidz.c \
+ vdev_raidz_math_aarch64_neon.c \
+ vdev_raidz_math_aarch64_neonx2.c \
+ vdev_raidz_math_avx2.c \
+ vdev_raidz_math_avx512bw.c \
+ vdev_raidz_math_avx512f.c \
+ vdev_raidz_math.c \
+ vdev_raidz_math_scalar.c \
+ vdev_rebuild.c \
+ vdev_removal.c \
+ vdev_root.c \
+ vdev_trim.c \
+ xxhash.c \
+ zap.c \
+ zap_leaf.c \
+ zap_micro.c \
+ zcp.c \
+ zcp_get.c \
+ zcp_global.c \
+ zcp_iter.c \
+ zcp_set.c \
+ zcp_synctask.c \
+ zfeature.c \
+ zfs_byteswap.c \
+ zfs_chksum.c \
++ zfs_crrd.c \
++ zfs_debug_common.c \
+ zfs_fm.c \
+ zfs_fuid.c \
+ zfs_sa.c \
+ zfs_znode.c \
+ zfs_racct.c \
+ zfs_ratelimit.c \
+ zfs_rlock.c \
+ zil.c \
+ zio.c \
+ zio_checksum.c \
+ zio_compress.c \
+ zio_crypt.c \
+ zio_inject.c \
+ zle.c \
+ zrlock.c \
+ zstd_common.c \
+ zstd_compress.c \
+ zstd_compress_literals.c \
+ zstd_compress_sequences.c \
+ zstd_compress_superblock.c \
+ zstd_ddict.c \
+ zstd_decompress.c \
+ zstd_decompress_block.c \
+ zstd_double_fast.c \
+ zstd_fast.c \
+ zstd_lazy.c \
+ zstd_ldm.c \
+ zstd_opt.c \
+ zthr.c
+
+ARCH_C =
+.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
+ARCH_C += vdev_raidz_math_sse2.c \
+ vdev_raidz_math_ssse3.c \
+ zfs_fletcher_intel.c \
+ zfs_fletcher_sse.c
+CFLAGS += -DHAVE_SSE2 -DHAVE_SSE3
+.endif
+.if ${MACHINE_ARCH} == "amd64"
+ARCH_C += zfs_fletcher_avx512.c
+CFLAGS+= -DHAVE_AVX2 -DHAVE_AVX -D__x86_64 -DHAVE_AVX512F \
+ -DHAVE_AVX512BW
+.endif
+.if ${MACHINE_CPUARCH} == "aarch64"
+ARCH_C += zfs_fletcher_aarch64_neon.c
+.endif
+
+LUA_C = \
+ lapi.c \
+ lauxlib.c \
+ lbaselib.c \
+ lcode.c \
+ lcompat.c \
+ lcorolib.c \
+ lctype.c \
+ ldebug.c \
+ ldo.c \
+ lfunc.c \
+ lgc.c \
+ llex.c \
+ lmem.c \
+ lobject.c \
+ lopcodes.c \
+ lparser.c \
+ lstate.c \
+ lstring.c \
+ lstrlib.c \
+ ltable.c \
+ ltablib.c \
+ ltm.c \
+ lvm.c \
+ lzio.c
+
+UNICODE_C = u8_textprep.c
+
+SRCS+= ${USER_C} ${KERNEL_C} ${LUA_C} ${UNICODE_C} ${ARCH_C}
+
+
+WARNS?= 2
+CFLAGS+= \
+ -DIN_BASE \
+ -I${ZFSTOP}/include \
+ -I${ZFSTOP}/lib/libspl/include \
+ -I${ZFSTOP}/lib/libspl/include/os/freebsd \
+ -I${SRCTOP}/sys/contrib/openzfs/lib/libzpool/include \
+ -I${SRCTOP}/sys \
+ -I${ZFSTOP}/include/os/freebsd/zfs \
+ -I${SRCTOP}/cddl/compat/opensolaris/include \
+ -I${ZFSTOP}/module/icp/include \
+ -I${SRCTOP}/compat/linuxkpi/common/include/linux \
+ -include ${ZFSTOP}/include/os/freebsd/spl/sys/ccompile.h \
+ -DHAVE_ISSETUGID \
+ -include ${SRCTOP}/sys/modules/zfs/zfs_config.h \
+ -I${SRCTOP}/sys/modules/zfs \
+ -I${ZFSTOP}/include/os/freebsd/zfs \
+ -DLIB_ZPOOL_BUILD -DZFS_DEBUG \
+
+# XXX: pthread doesn't have mutex_owned() equivalent, so we need to look
+# into libthr private structures. That's sooo evil, but it's only for
+# ZFS debugging tools needs.
+CFLAGS+= -DWANTS_MUTEX_OWNED
+CFLAGS+= -I${SRCTOP}/lib/libpthread/thread
+CFLAGS+= -I${SRCTOP}/lib/libpthread/sys
+CFLAGS+= -I${SRCTOP}/lib/libthr/arch/${MACHINE_CPUARCH}/include
+CFLAGS.gcc+= -fms-extensions
+
+LIBADD= md pthread z spl icp nvpair avl umem
+
+CSTD= c99
+
+# Since there are many asserts in this library, it makes no sense to compile
+# it without debugging.
+
+CFLAGS+= -g -DDEBUG=1
+
+CFLAGS.gcc+= -Wno-pointer-to-int-cast
+
+# Pointer values are used as debugging "tags" to mark reference count
+# ownerships and in some cases the tag reference is dropped after an
+# object is freed.
+CFLAGS.dbuf.c= ${NO_WUSE_AFTER_FREE}
+CFLAGS.entropy_common.c= -fno-tree-vectorize
+CFLAGS.entropy_common.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL}
+CFLAGS.error_private.c= -fno-tree-vectorize
+CFLAGS.error_private.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL}
+CFLAGS.fse_compress.c= -fno-tree-vectorize
+CFLAGS.fse_compress.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL}
+CFLAGS.fse_decompress.c= -fno-tree-vectorize
+CFLAGS.fse_decompress.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL}
+CFLAGS.hist.c= -fno-tree-vectorize
+CFLAGS.hist.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL}
+CFLAGS.huf_compress.c= -fno-tree-vectorize
+CFLAGS.huf_compress.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL}
+CFLAGS.huf_decompress.c= -fno-tree-vectorize
+CFLAGS.huf_decompress.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL}
+CFLAGS.pool.c= -fno-tree-vectorize
+CFLAGS.pool.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL}
+CFLAGS.xxhash.c= -fno-tree-vectorize
+CFLAGS.xxhash.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL}
+CFLAGS.zstd_compress.c= -fno-tree-vectorize
+CFLAGS.zstd_compress.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL}
+CFLAGS.zstd_compress_literals.c= -fno-tree-vectorize
+CFLAGS.zstd_compress_literals.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL}
+CFLAGS.zstd_compress_sequences.c= -fno-tree-vectorize
+CFLAGS.zstd_compress_sequences.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL}
+CFLAGS.zstd_compress_superblock.c= -fno-tree-vectorize
+CFLAGS.zstd_compress_superblock.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL}
+CFLAGS.zstd_double_fast.c= -fno-tree-vectorize
+CFLAGS.zstd_double_fast.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL}
+CFLAGS.zstd_fast.c= -fno-tree-vectorize
+CFLAGS.zstd_fast.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL}
+CFLAGS.zstd_lazy.c= -fno-tree-vectorize
+CFLAGS.zstd_lazy.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL}
+CFLAGS.zstd_ldm.c= -fno-tree-vectorize
+CFLAGS.zstd_ldm.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL}
+CFLAGS.zstd_opt.c= -fno-tree-vectorize
+CFLAGS.zstd_opt.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL}
+CFLAGS.zstd_ddict.c= -fno-tree-vectorize
+CFLAGS.zstd_ddict.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL}
+CFLAGS.zstd_decompress.c= -fno-tree-vectorize
+CFLAGS.zstd_decompress.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL}
+CFLAGS.zstd_decompress_block.c= -fno-tree-vectorize
+CFLAGS.zstd_decompress_block.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL}
+
+.include <bsd.lib.mk>
diff --cc stand/libsa/zfs/spl/sys/zfs_context.h
index 48f164317611,000000000000..9f12955dd05f
mode 100644,000000..100644
--- a/stand/libsa/zfs/spl/sys/zfs_context.h
+++ b/stand/libsa/zfs/spl/sys/zfs_context.h
@@@ -1,32 -1,0 +1,32 @@@
+/*
+ * Copyright 2022, Netflix, Inc
+ *
+ * SPDX-License-Identifier: BSD-2-Clause
+ */
+
+#pragma once
+
+/* TODO: openzfs/include/sys/uio_impl.h must not be included in stand */
+#ifndef _SYS_UIO_IMPL_H
+#define _SYS_UIO_IMPL_H
+#endif
+
+/*
+ * sys/atomic.h must be included after sys/sysmacros.h. The latter includes
+ * machine/atomic.h, which interferes. Sadly, upstream includes them in the
+ * wrong order, so we include it here to fix that.
+ */
+#include <sys/sysmacros.h>
+
+#include_next <sys/zfs_context.h>
+
- #define ZFS_MODULE_PARAM_ARGS void
++#define SYSCTL_HANDLER_ARGS void
+
+/*
+ * Not sure why I need these, but including the canonical stand.h fails because
+ * the normal string.h doesn't like all the other shenanigans in this environment.
+ */
+void *memcpy(void *dst, const void *src, size_t len);
+void *memset(void *dest, int c, size_t len);
+void *memmem(const void *big, size_t big_len, const void *little,
+ size_t little_len);
diff --cc sys/conf/files
index b7c19fae0b8e,000000000000..be65ed20d6aa
mode 100644,000000..100644
--- a/sys/conf/files
+++ b/sys/conf/files
@@@ -1,5304 -1,0 +1,5305 @@@
+#
+# The long compile-with and dependency lines are required because of
+# limitations in config: backslash-newline doesn't work in strings, and
+# dependency lines other than the first are silently ignored.
+#
+acpi_quirks.h optional acpi \
+ dependency "$S/tools/acpi_quirks2h.awk $S/dev/acpica/acpi_quirks" \
+ compile-with "${AWK} -f $S/tools/acpi_quirks2h.awk $S/dev/acpica/acpi_quirks" \
+ no-obj no-implicit-rule before-depend \
+ clean "acpi_quirks.h"
+bhnd_nvram_map.h optional bhnd \
+ dependency "$S/dev/bhnd/tools/nvram_map_gen.sh $S/dev/bhnd/tools/nvram_map_gen.awk $S/dev/bhnd/nvram/nvram_map" \
+ compile-with "sh $S/dev/bhnd/tools/nvram_map_gen.sh $S/dev/bhnd/nvram/nvram_map -h" \
+ no-obj no-implicit-rule before-depend \
+ clean "bhnd_nvram_map.h"
+bhnd_nvram_map_data.h optional bhnd \
+ dependency "$S/dev/bhnd/tools/nvram_map_gen.sh $S/dev/bhnd/tools/nvram_map_gen.awk $S/dev/bhnd/nvram/nvram_map" \
+ compile-with "sh $S/dev/bhnd/tools/nvram_map_gen.sh $S/dev/bhnd/nvram/nvram_map -d" \
+ no-obj no-implicit-rule before-depend \
+ clean "bhnd_nvram_map_data.h"
+fdt_static_dtb.h optional fdt fdt_dtb_static \
+ compile-with "sh -c 'MACHINE=${MACHINE} $S/tools/fdt/make_dtbh.sh ${FDT_DTS_FILE} ${.OBJDIR}'" \
+ dependency "${FDT_DTS_FILE:T:R}.dtb" \
+ no-obj no-implicit-rule before-depend \
+ clean "fdt_static_dtb.h"
+feeder_eq_gen.h optional sound \
+ dependency "$S/tools/sound/feeder_eq_mkfilter.awk" \
+ compile-with "${AWK} -f $S/tools/sound/feeder_eq_mkfilter.awk -- ${FEEDER_EQ_PRESETS} > feeder_eq_gen.h" \
+ no-obj no-implicit-rule before-depend \
+ clean "feeder_eq_gen.h"
+feeder_rate_gen.h optional sound \
+ dependency "$S/tools/sound/feeder_rate_mkfilter.awk" \
+ compile-with "${AWK} -f $S/tools/sound/feeder_rate_mkfilter.awk -- ${FEEDER_RATE_PRESETS} > feeder_rate_gen.h" \
+ no-obj no-implicit-rule before-depend \
+ clean "feeder_rate_gen.h"
+font.h optional sc_dflt_font \
+ compile-with "uudecode < ${SRCTOP}/share/syscons/fonts/${SC_DFLT_FONT}-8x16.fnt && file2c 'u_char dflt_font_16[16*256] = {' '};' < ${SC_DFLT_FONT}-8x16 > font.h && uudecode < ${SRCTOP}/share/syscons/fonts/${SC_DFLT_FONT}-8x14.fnt && file2c 'u_char dflt_font_14[14*256] = {' '};' < ${SC_DFLT_FONT}-8x14 >> font.h && uudecode < ${SRCTOP}/share/syscons/fonts/${SC_DFLT_FONT}-8x8.fnt && file2c 'u_char dflt_font_8[8*256] = {' '};' < ${SC_DFLT_FONT}-8x8 >> font.h" \
+ no-obj no-implicit-rule before-depend \
+ clean "font.h ${SC_DFLT_FONT}-8x14 ${SC_DFLT_FONT}-8x16 ${SC_DFLT_FONT}-8x8"
+snd_fxdiv_gen.h optional sound \
+ dependency "$S/tools/sound/snd_fxdiv_gen.awk" \
+ compile-with "${AWK} -f $S/tools/sound/snd_fxdiv_gen.awk -- > snd_fxdiv_gen.h" \
+ no-obj no-implicit-rule before-depend \
+ clean "snd_fxdiv_gen.h"
+miidevs.h optional miibus | mii \
+ dependency "$S/tools/miidevs2h.awk $S/dev/mii/miidevs" \
+ compile-with "${AWK} -f $S/tools/miidevs2h.awk $S/dev/mii/miidevs" \
+ no-obj no-implicit-rule before-depend \
+ clean "miidevs.h"
+kbdmuxmap.h optional kbdmux_dflt_keymap \
+ compile-with "${KEYMAP} -L ${KBDMUX_DFLT_KEYMAP} | ${KEYMAP_FIX} > ${.TARGET}" \
+ no-obj no-implicit-rule before-depend \
+ clean "kbdmuxmap.h"
+teken_state.h optional sc | vt \
+ dependency "$S/teken/gensequences $S/teken/sequences" \
+ compile-with "${AWK} -f $S/teken/gensequences $S/teken/sequences > teken_state.h" \
+ no-obj no-implicit-rule before-depend \
+ clean "teken_state.h"
+ukbdmap.h optional ukbd_dflt_keymap \
+ compile-with "${KEYMAP} -L ${UKBD_DFLT_KEYMAP} | ${KEYMAP_FIX} > ${.TARGET}" \
+ no-obj no-implicit-rule before-depend \
+ clean "ukbdmap.h"
+usbdevs.h optional usb | hid \
+ dependency "$S/tools/usbdevs2h.awk $S/dev/usb/usbdevs" \
+ compile-with "${AWK} -f $S/tools/usbdevs2h.awk $S/dev/usb/usbdevs -h" \
+ no-obj no-implicit-rule before-depend \
+ clean "usbdevs.h"
+usbdevs_data.h optional usb \
+ dependency "$S/tools/usbdevs2h.awk $S/dev/usb/usbdevs" \
+ compile-with "${AWK} -f $S/tools/usbdevs2h.awk $S/dev/usb/usbdevs -d" \
+ no-obj no-implicit-rule before-depend \
+ clean "usbdevs_data.h"
+sdiodevs.h optional mmccam \
+ dependency "$S/tools/sdiodevs2h.awk $S/dev/sdio/sdiodevs" \
+ compile-with "${AWK} -f $S/tools/sdiodevs2h.awk $S/dev/sdio/sdiodevs -h" \
+ no-obj no-implicit-rule before-depend \
+ clean "sdiodevs.h"
+sdiodevs_data.h optional mmccam \
+ dependency "$S/tools/sdiodevs2h.awk $S/dev/sdio/sdiodevs" \
+ compile-with "${AWK} -f $S/tools/sdiodevs2h.awk $S/dev/sdio/sdiodevs -d" \
+ no-obj no-implicit-rule before-depend \
+ clean "sdiodevs_data.h"
+cam/cam.c optional scbus
+cam/cam_compat.c optional scbus
+cam/cam_iosched.c optional scbus
+cam/cam_periph.c optional scbus
+cam/cam_queue.c optional scbus
+cam/cam_sim.c optional scbus
+cam/cam_xpt.c optional scbus
+cam/ata/ata_all.c optional scbus
+cam/ata/ata_xpt.c optional scbus
+cam/ata/ata_pmp.c optional scbus
+cam/nvme/nvme_all.c optional scbus
+cam/nvme/nvme_da.c optional nda | da
+cam/nvme/nvme_xpt.c optional scbus
+cam/scsi/scsi_xpt.c optional scbus
+cam/scsi/scsi_all.c optional scbus
+cam/scsi/scsi_cd.c optional cd
+cam/scsi/scsi_ch.c optional ch
+cam/ata/ata_da.c optional ada | da
+cam/ctl/ctl.c optional ctl
+cam/ctl/ctl_backend.c optional ctl
+cam/ctl/ctl_backend_block.c optional ctl
+cam/ctl/ctl_backend_ramdisk.c optional ctl
+cam/ctl/ctl_cmd_table.c optional ctl
+cam/ctl/ctl_frontend.c optional ctl
+cam/ctl/ctl_frontend_cam_sim.c optional ctl
+cam/ctl/ctl_frontend_ioctl.c optional ctl
+cam/ctl/ctl_frontend_iscsi.c optional ctl cfiscsi
+cam/ctl/ctl_ha.c optional ctl
+cam/ctl/ctl_nvme_all.c optional ctl
+cam/ctl/ctl_nvme_cmd_table.c optional ctl
+cam/ctl/ctl_scsi_all.c optional ctl
+cam/ctl/ctl_tpc.c optional ctl
+cam/ctl/ctl_tpc_local.c optional ctl
+cam/ctl/ctl_error.c optional ctl
+cam/ctl/ctl_util.c optional ctl
+cam/ctl/scsi_ctl.c optional ctl
+cam/mmc/mmc_xpt.c optional scbus mmccam
+cam/mmc/mmc_sim.c optional scbus mmccam
+cam/mmc/mmc_sim_if.m optional scbus mmccam
+cam/mmc/mmc_da.c optional scbus mmccam da
+cam/scsi/scsi_da.c optional da
+cam/scsi/scsi_pass.c optional pass
+cam/scsi/scsi_pt.c optional pt
+cam/scsi/scsi_sa.c optional sa
+cam/scsi/scsi_enc.c optional ses
+cam/scsi/scsi_enc_ses.c optional ses
+cam/scsi/scsi_enc_safte.c optional ses
+cam/scsi/scsi_sg.c optional sg
+cam/scsi/scsi_targ_bh.c optional targbh
+cam/scsi/scsi_target.c optional targ
+cam/scsi/smp_all.c optional scbus
+
+# shared between zfs and dtrace
+cddl/compat/opensolaris/kern/opensolaris.c optional dtrace compile-with "${CDDL_C}"
+cddl/compat/opensolaris/kern/opensolaris_proc.c optional zfs | dtrace compile-with "${CDDL_C}"
+contrib/openzfs/module/os/freebsd/spl/spl_misc.c optional zfs | dtrace compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/spl/spl_cmn_err.c optional zfs | dtrace compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/spl/spl_taskq.c optional zfs | dtrace compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/spl/spl_kmem.c optional zfs | dtrace compile-with "${ZFS_C}"
+
+#zfs solaris portability layer
+contrib/openzfs/module/os/freebsd/spl/acl_common.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/spl/callb.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/spl/list.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/spl/spl_acl.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/spl/spl_dtrace.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/spl/spl_kstat.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/spl/spl_policy.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/spl/spl_procfs_list.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/spl/spl_string.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/spl/spl_sunddi.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/spl/spl_sysevent.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/spl/spl_uio.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/spl/spl_vfs.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/spl/spl_vm.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/spl/spl_zlib.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/spl/spl_zone.c optional zfs compile-with "${ZFS_C}"
+
+
+
+# zfs specific
+
+#zfs avl
+contrib/openzfs/module/avl/avl.c optional zfs compile-with "${ZFS_C}"
+
+# zfs lua support
+contrib/openzfs/module/lua/lapi.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/lua/lauxlib.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/lua/lbaselib.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/lua/lcode.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/lua/lcompat.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/lua/lcorolib.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/lua/lctype.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/lua/ldebug.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/lua/ldo.c optional zfs compile-with "${ZFS_C} ${NO_WINFINITE_RECURSION}"
+contrib/openzfs/module/lua/lfunc.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/lua/lgc.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/lua/llex.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/lua/lmem.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/lua/lobject.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/lua/lopcodes.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/lua/lparser.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/lua/lstate.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/lua/lstring.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/lua/lstrlib.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/lua/ltable.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/lua/ltablib.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/lua/ltm.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/lua/lvm.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/lua/lzio.c optional zfs compile-with "${ZFS_C}"
+
+# zfs nvpair support
+contrib/openzfs/module/nvpair/fnvpair.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/nvpair/nvpair.c optional zfs compile-with "${ZFS_RPC_C} ${NO_WSTRINGOP_OVERREAD}"
+contrib/openzfs/module/nvpair/nvpair_alloc_fixed.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/nvpair/nvpair_alloc_spl.c optional zfs compile-with "${ZFS_C}"
+
+#zfs platform compatibility code
+contrib/openzfs/module/os/freebsd/zfs/abd_os.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/zfs/arc_os.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/zfs/crypto_os.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/zfs/dmu_os.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/zfs/event_os.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/zfs/hkdf.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/zfs/kmod_core.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/zfs/spa_os.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/zfs/sysctl_os.c optional zfs compile-with "${ZFS_C} -include $S/modules/zfs/zfs_config.h"
+contrib/openzfs/module/os/freebsd/zfs/vdev_label_os.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/zfs/vdev_geom.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/zfs/zfs_acl.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/zfs/zfs_ctldir.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/zfs/zfs_debug.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/zfs/zfs_dir.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/zfs/zfs_file_os.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/zfs/zfs_ioctl_compat.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/zfs/zfs_ioctl_os.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/zfs/zfs_racct.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/zfs/zfs_vfsops.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/zfs/zfs_znode_os.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/zfs/zio_crypt.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/os/freebsd/zfs/zvol_os.c optional zfs compile-with "${ZFS_C}"
+
+#zfs unicode support
+contrib/openzfs/module/unicode/u8_textprep.c optional zfs compile-with "${ZFS_C}"
+
+#zfs checksums / zcommon
+contrib/openzfs/module/zcommon/cityhash.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/zcommon/zfeature_common.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/zcommon/zfs_comutil.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/zcommon/zfs_deleg.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/zcommon/zfs_fletcher.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/zcommon/zfs_fletcher_superscalar.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/zcommon/zfs_fletcher_superscalar4.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/zcommon/zfs_namecheck.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/zcommon/zfs_prop.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/zcommon/zfs_valstr.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/zcommon/zpool_prop.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/zcommon/zprop_common.c optional zfs compile-with "${ZFS_C}"
+
+# zfs edon-r hash support
+contrib/openzfs/module/icp/algs/edonr/edonr.c optional zfs compile-with "${ZFS_C}"
+
+# zfs blake3 hash support
+contrib/openzfs/module/icp/algs/blake3/blake3.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/icp/algs/blake3/blake3_generic.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/icp/algs/blake3/blake3_impl.c optional zfs compile-with "${ZFS_C}"
+
+# zfs sha2 hash support
+contrib/openzfs/module/icp/algs/sha2/sha2_generic.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/icp/algs/sha2/sha256_impl.c optional zfs compile-with "${ZFS_C}"
+contrib/openzfs/module/icp/algs/sha2/sha512_impl.c optional zfs compile-with "${ZFS_C}"
+
+#zfs core common code
+contrib/openzfs/module/zfs/abd.c optional zfs compile-with "${ZFS_C}"
*** 6572 LINES SKIPPED ***