git: 80aae8a3f8aa - main - zfs: merge openzfs/zfs@3ee08abd2
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 19 Mar 2026 20:31:06 UTC
The branch main has been updated by mm:
URL: https://cgit.FreeBSD.org/src/commit/?id=80aae8a3f8aa70712930664572be9e6885dc0be7
commit 80aae8a3f8aa70712930664572be9e6885dc0be7
Merge: 56dddebc5549 3ee08abd2fce
Author: Martin Matuska <mm@FreeBSD.org>
AuthorDate: 2026-03-19 20:25:34 +0000
Commit: Martin Matuska <mm@FreeBSD.org>
CommitDate: 2026-03-19 20:25:34 +0000
zfs: merge openzfs/zfs@3ee08abd2
Notable upstream pull request merges:
#17000 -multiple cmd/zfs: support creating parents with canmount=no
#17926 b481a8bbb Make zpool status dedup table support raw bytes -p output
#18238 -multiple Report space metrics per allocation class
#18240 5dad9459d Add --no-preserve-encryption flag
#18257 1eace5906 libzfs: use mount_setattr for selective remount including
legacy mounts
#18259 1e2c94a04 More consistent use of TREE_* macros in AVL comparators
#18262 c58b8b7dc Fix check for .cfi_negate_ra_state on aarch64
#18264 f109c7bb9 Add the --file-layout (-f) option to zdb(8)
#18268 304de7f19 libzfs: handle EDOM error in zpool_create
#18275 753f1e1e2 zstream: add a drop_record subcommand
#18276 0f90a797d Fix vdev_rebuild_range() tx commit
#18277 1e1d64d66 Fix log vdev removal issues
#18278 06b0abfe6 Fix the send --exclude option to work with encryption
#18281 e73ada771 libzpool: lift zfs_file ops out to separate source file
#18284 d97945776 zstream: consolidate shared code
#18285 -multiple Separate SIMD compile checks for userspace and kernel
#18288 c5905b2cb Implement lzc_send_progress
#18289 -multiple L2ARC: Add depth cap and write budget fairness for
persistent markers
#18290 d45c8d648 FreeBSD: Improve dmesg kernel message prefix
#18294 b403040c4 draid: fix data corruption after disk clear
#18296 -multiple libzfs: mnttab cleanup
#18300 d35951b18 zpool clear: remove undocumented rewind flags
#18301 ae7fcd5f9 fix libzfs diff mem leak in an error path
#18303 65165df12 zilstat: add man page
#18314 7f65e04ab libzfs: scrub: only include start and end nv pairs if
needed for scrub
#18315 -multiple Sync ZVOLs block cloning conditions with file systems
#18330 f80338fac zarcsummary: add man page
#18337 f259a47c7 zpool-iostat.8: clarify first report shows per-second
averages
Obtained from: OpenZFS
OpenZFS commit: 3ee08abd2fcef3123188e9ad61a9cd80b9b7831c
cddl/lib/libicp/Makefile | 1 +
cddl/lib/libicp_rescue/Makefile | 1 +
cddl/lib/libspl/Makefile | 2 +-
cddl/lib/libzdb/Makefile | 1 +
cddl/lib/libzfs/Makefile | 2 +
cddl/lib/libzpool/Makefile | 2 +
cddl/usr.bin/zstream/Makefile | 5 +-
cddl/usr.bin/ztest/Makefile | 1 +
cddl/usr.sbin/zdb/Makefile | 1 +
cddl/usr.sbin/zhack/Makefile | 1 +
stand/libsa/zfs/Makefile.inc | 4 +-
sys/conf/kern.pre.mk | 1 +
sys/contrib/openzfs/README.md | 42 +-
sys/contrib/openzfs/cmd/zdb/zdb.c | 383 +++++++++++-
sys/contrib/openzfs/cmd/zed/zed_exec.c | 17 +-
sys/contrib/openzfs/cmd/zed/zed_strings.c | 22 +-
sys/contrib/openzfs/cmd/zfs/zfs_iter.c | 8 +-
sys/contrib/openzfs/cmd/zfs/zfs_main.c | 130 ++--
sys/contrib/openzfs/cmd/zinject/translate.c | 2 +-
sys/contrib/openzfs/cmd/zpool/zpool_main.c | 63 +-
sys/contrib/openzfs/cmd/zstream/Makefile.am | 5 +-
sys/contrib/openzfs/cmd/zstream/zstream.c | 4 +
sys/contrib/openzfs/cmd/zstream/zstream.h | 4 +-
.../openzfs/cmd/zstream/zstream_decompress.c | 26 +-
.../openzfs/cmd/zstream/zstream_drop_record.c | 324 ++++++++++
sys/contrib/openzfs/cmd/zstream/zstream_dump.c | 13 +-
.../openzfs/cmd/zstream/zstream_recompress.c | 26 +-
sys/contrib/openzfs/cmd/zstream/zstream_redup.c | 54 +-
sys/contrib/openzfs/cmd/zstream/zstream_util.c | 106 ++++
sys/contrib/openzfs/cmd/zstream/zstream_util.h | 60 ++
sys/contrib/openzfs/config/Rules.am | 1 +
sys/contrib/openzfs/config/kernel-fs-context.m4 | 3 +
sys/contrib/openzfs/config/kernel.m4 | 13 +-
sys/contrib/openzfs/config/toolchain-cfi.m4 | 33 ++
sys/contrib/openzfs/config/toolchain-simd.m4 | 656 +++------------------
sys/contrib/openzfs/config/user-mount-setattr.m4 | 27 +
sys/contrib/openzfs/config/user-statx.m4 | 1 +
sys/contrib/openzfs/config/user.m4 | 1 +
sys/contrib/openzfs/config/zfs-build.m4 | 3 +-
.../contrib/debian/openzfs-zfsutils.install | 2 +
sys/contrib/openzfs/include/Makefile.am | 1 +
sys/contrib/openzfs/include/libzfs.h | 5 +
sys/contrib/openzfs/include/libzfs_core.h | 2 +-
sys/contrib/openzfs/include/libzutil.h | 3 +-
.../include/os/linux/kernel/linux/simd_x86.h | 127 +---
sys/contrib/openzfs/include/sys/arc_impl.h | 23 +-
sys/contrib/openzfs/include/sys/fs/zfs.h | 81 +++
sys/contrib/openzfs/include/sys/simd_config.h | 102 ++++
sys/contrib/openzfs/include/sys/spa.h | 1 +
sys/contrib/openzfs/include/sys/vdev_raidz_impl.h | 10 +-
sys/contrib/openzfs/include/sys/vdev_rebuild.h | 1 +
sys/contrib/openzfs/include/zfs_fletcher.h | 16 +-
sys/contrib/openzfs/lib/libspl/Makefile.am | 4 +-
.../lib/libspl/include/os/freebsd/sys/mnttab.h | 18 +-
.../lib/libspl/include/os/linux/sys/mnttab.h | 18 +-
.../os/freebsd/{getmntany.c => getextmntent.c} | 4 +-
sys/contrib/openzfs/lib/libspl/os/freebsd/mnttab.c | 35 +-
.../lib/libspl/os/linux/{getmntany.c => mnttab.c} | 38 +-
sys/contrib/openzfs/lib/libzdb/libzdb.c | 32 +-
sys/contrib/openzfs/lib/libzfs/Makefile.am | 1 +
sys/contrib/openzfs/lib/libzfs/libzfs.abi | 569 +++++++++++++-----
sys/contrib/openzfs/lib/libzfs/libzfs_dataset.c | 234 +-------
sys/contrib/openzfs/lib/libzfs/libzfs_diff.c | 2 +-
sys/contrib/openzfs/lib/libzfs/libzfs_impl.h | 31 +-
sys/contrib/openzfs/lib/libzfs/libzfs_mnttab.c | 211 +++++++
sys/contrib/openzfs/lib/libzfs/libzfs_mount.c | 43 +-
sys/contrib/openzfs/lib/libzfs/libzfs_pool.c | 74 ++-
sys/contrib/openzfs/lib/libzfs/libzfs_sendrecv.c | 79 ++-
sys/contrib/openzfs/lib/libzfs/libzfs_util.c | 2 +-
.../openzfs/lib/libzfs/os/freebsd/libzfs_zmount.c | 11 +
.../openzfs/lib/libzfs/os/linux/libzfs_mount_os.c | 143 +++++
.../openzfs/lib/libzfs_core/libzfs_core.abi | 40 +-
sys/contrib/openzfs/lib/libzfs_core/libzfs_core.c | 33 ++
sys/contrib/openzfs/lib/libzpool/Makefile.am | 1 +
sys/contrib/openzfs/lib/libzpool/kernel.c | 388 ------------
sys/contrib/openzfs/lib/libzpool/zfs_file_os.c | 420 +++++++++++++
sys/contrib/openzfs/lib/libzutil/zutil_pool.c | 50 +-
sys/contrib/openzfs/man/Makefile.am | 2 +
sys/contrib/openzfs/man/man1/zarcsummary.1 | 179 ++++++
sys/contrib/openzfs/man/man1/zilstat.1 | 191 ++++++
sys/contrib/openzfs/man/man4/zfs.4 | 25 +-
sys/contrib/openzfs/man/man7/zpoolconcepts.7 | 18 +-
sys/contrib/openzfs/man/man7/zpoolprops.7 | 151 ++++-
sys/contrib/openzfs/man/man8/zdb.8 | 7 +
sys/contrib/openzfs/man/man8/zfs-clone.8 | 4 +
sys/contrib/openzfs/man/man8/zfs-create.8 | 8 +
sys/contrib/openzfs/man/man8/zfs-rename.8 | 4 +
sys/contrib/openzfs/man/man8/zfs-send.8 | 17 +-
sys/contrib/openzfs/man/man8/zpool-iostat.8 | 4 +-
sys/contrib/openzfs/man/man8/zstream.8 | 39 +-
sys/contrib/openzfs/module/Kbuild.in | 2 +
sys/contrib/openzfs/module/Makefile.bsd | 7 +-
sys/contrib/openzfs/module/icp/algs/aes/aes_impl.c | 4 +-
.../openzfs/module/icp/algs/aes/aes_impl_aesni.c | 4 +-
.../openzfs/module/icp/algs/blake3/blake3_impl.c | 14 +-
sys/contrib/openzfs/module/icp/algs/modes/gcm.c | 6 +-
.../openzfs/module/icp/algs/modes/gcm_pclmulqdq.c | 4 +-
.../openzfs/module/icp/algs/sha2/sha256_impl.c | 16 +-
.../openzfs/module/icp/algs/sha2/sha512_impl.c | 12 +-
.../icp/asm-aarch64/blake3/b3_aarch64_sse2.S | 4 +-
.../icp/asm-aarch64/blake3/b3_aarch64_sse41.S | 4 +-
.../openzfs/module/icp/asm-x86_64/aes/aes_aesni.S | 2 +-
.../module/icp/asm-x86_64/blake3/blake3_avx2.S | 4 +-
.../module/icp/asm-x86_64/blake3/blake3_avx512.S | 4 +-
.../module/icp/asm-x86_64/blake3/blake3_sse2.S | 4 +-
.../module/icp/asm-x86_64/blake3/blake3_sse41.S | 4 +-
.../icp/asm-x86_64/modes/aesni-gcm-avx2-vaes.S | 6 +-
.../module/icp/asm-x86_64/modes/aesni-gcm-x86_64.S | 16 +-
.../module/icp/asm-x86_64/modes/gcm_pclmulqdq.S | 2 +-
.../module/icp/asm-x86_64/modes/ghash-x86_64.S | 6 +-
.../module/icp/asm-x86_64/sha2/sha512-x86_64.S | 6 +-
.../openzfs/module/icp/core/kcf_mech_tabs.c | 4 +-
.../openzfs/module/icp/include/aes/aes_impl.h | 2 +-
.../openzfs/module/icp/include/modes/gcm_impl.h | 2 +-
.../openzfs/module/icp/include/modes/modes.h | 6 +-
.../openzfs/module/os/freebsd/spl/acl_common.c | 10 +-
.../openzfs/module/os/freebsd/spl/spl_cmn_err.c | 10 +-
.../openzfs/module/os/linux/zfs/zfs_ctldir.c | 24 +-
sys/contrib/openzfs/module/os/linux/zfs/zpl_file.c | 1 +
.../openzfs/module/os/linux/zfs/zpl_super.c | 227 +++----
sys/contrib/openzfs/module/zcommon/zfs_fletcher.c | 10 +-
.../openzfs/module/zcommon/zfs_fletcher_avx512.c | 6 +-
.../openzfs/module/zcommon/zfs_fletcher_intel.c | 4 +-
.../openzfs/module/zcommon/zfs_fletcher_sse.c | 8 +-
sys/contrib/openzfs/module/zcommon/zpool_prop.c | 51 +-
sys/contrib/openzfs/module/zfs/arc.c | 234 ++++++--
sys/contrib/openzfs/module/zfs/dmu_redact.c | 22 +-
sys/contrib/openzfs/module/zfs/dsl_bookmark.c | 3 +-
sys/contrib/openzfs/module/zfs/dsl_crypt.c | 21 +-
sys/contrib/openzfs/module/zfs/dsl_deadlist.c | 14 +-
sys/contrib/openzfs/module/zfs/dsl_deleg.c | 6 +-
sys/contrib/openzfs/module/zfs/dsl_scan.c | 7 +-
sys/contrib/openzfs/module/zfs/metaslab.c | 8 +-
sys/contrib/openzfs/module/zfs/refcount.c | 10 +-
sys/contrib/openzfs/module/zfs/spa.c | 83 ++-
sys/contrib/openzfs/module/zfs/spa_misc.c | 11 +-
sys/contrib/openzfs/module/zfs/vdev.c | 29 +-
sys/contrib/openzfs/module/zfs/vdev_draid.c | 7 -
sys/contrib/openzfs/module/zfs/vdev_queue.c | 6 +-
sys/contrib/openzfs/module/zfs/vdev_raidz_math.c | 10 +-
.../openzfs/module/zfs/vdev_raidz_math_avx2.c | 5 +-
.../openzfs/module/zfs/vdev_raidz_math_avx512bw.c | 4 +-
.../openzfs/module/zfs/vdev_raidz_math_avx512f.c | 4 +-
.../openzfs/module/zfs/vdev_raidz_math_sse2.c | 4 +-
.../openzfs/module/zfs/vdev_raidz_math_ssse3.c | 8 +-
sys/contrib/openzfs/module/zfs/vdev_rebuild.c | 24 +-
sys/contrib/openzfs/module/zfs/vdev_removal.c | 1 -
sys/contrib/openzfs/module/zfs/zfs_fuid.c | 7 +-
sys/contrib/openzfs/module/zfs/zil.c | 20 +-
sys/contrib/openzfs/module/zfs/zio.c | 37 +-
sys/contrib/openzfs/module/zfs/zvol.c | 63 ++
sys/contrib/openzfs/tests/runfiles/common.run | 29 +-
sys/contrib/openzfs/tests/runfiles/sanity.run | 5 +-
.../openzfs/tests/test-runner/bin/zts-report.py.in | 6 +-
.../openzfs/tests/zfs-tests/include/libtest.shlib | 40 +-
.../openzfs/tests/zfs-tests/include/tunables.cfg | 2 +
.../openzfs/tests/zfs-tests/tests/Makefile.am | 9 +
.../tests/functional/cli_root/zdb/zdb_args_neg.ksh | 2 +-
.../cli_root/zfs_clone/zfs_clone_011_pos.ksh | 94 +++
.../cli_root/zfs_create/zfs_create_015_pos.ksh | 74 +++
.../cli_root/zfs_rename/zfs_rename_015_pos.ksh | 86 +++
.../zpool_create/zpool_create_edom_neg.ksh | 68 +++
.../functional/cli_root/zpool_get/zpool_get.cfg | 57 ++
.../cli_root/zpool_get/zpool_get_005_pos.ksh | 14 +-
.../cli_root/zpool_get/zpool_get_006_pos.ksh | 416 +++++++++++++
.../cli_root/zpool_get/zpool_get_parsable.cfg | 75 ++-
.../functional/l2arc/l2arc_dwpd_ratelimit_pos.ksh | 5 +-
.../functional/l2arc/l2arc_dwpd_reimport_pos.ksh | 5 +-
.../l2arc/l2arc_multidev_scaling_pos.ksh | 45 +-
.../l2arc/l2arc_multidev_throughput_pos.ksh | 110 ++--
.../tests/functional/mmp/mmp_on_uberblocks.ksh | 2 +-
.../redundancy/redundancy_draid_spare1.ksh | 11 +-
.../removal/removal_with_missing_log.ksh | 95 +++
.../functional/rsend/rsend-exclude_001_pos.ksh | 68 +++
.../functional/rsend/rsend-exclude_002_pos.ksh | 73 +++
.../functional/rsend/send-zstream_drop_record.ksh | 79 +++
.../functional/rsend/send_encrypted_props.ksh | 8 +
sys/modules/zfs/Makefile | 91 +--
sys/modules/zfs/zfs_config.h | 207 ++++---
sys/modules/zfs/zfs_gitrev.h | 2 +-
180 files changed, 5809 insertions(+), 2666 deletions(-)
diff --cc cddl/lib/libicp/Makefile
index 15846e67a14b,000000000000..28e60d687bb7
mode 100644,000000..100644
--- a/cddl/lib/libicp/Makefile
+++ b/cddl/lib/libicp/Makefile
@@@ -1,139 -1,0 +1,140 @@@
+.PATH: ${ZFSTOP}/module/icp
+
+PACKAGE= zfs
+LIB_PACKAGE=
+
+LIB= icp
+LIBADD=
+
+.if ${MACHINE_ARCH} == "amd64"
+ASM_SOURCES_C = asm-x86_64/aes/aeskey.c
+ASM_SOURCES_AS = \
+ asm-x86_64/aes/aes_amd64.S \
+ asm-x86_64/aes/aes_aesni.S \
+ asm-x86_64/modes/gcm_pclmulqdq.S \
+ asm-x86_64/modes/aesni-gcm-x86_64.S \
+ asm-x86_64/modes/aesni-gcm-avx2-vaes.S \
+ asm-x86_64/modes/ghash-x86_64.S \
+ asm-x86_64/sha2/sha256-x86_64.S \
+ asm-x86_64/sha2/sha512-x86_64.S \
+ asm-x86_64/blake3/blake3_avx2.S \
+ asm-x86_64/blake3/blake3_avx512.S \
+ asm-x86_64/blake3/blake3_sse2.S \
+ asm-x86_64/blake3/blake3_sse41.S
+
+CFLAGS+= -D__amd64 -D_SYS_STACK_H -UHAVE_AES
+.elif ${MACHINE_CPUARCH} == "arm"
+ASM_SOURCES_C =
+ASM_SOURCES_AS = \
+ asm-arm/sha2/sha256-armv7.S \
+ asm-arm/sha2/sha512-armv7.S
+.elif ${MACHINE_ARCH} == "aarch64"
+ASM_SOURCES_C =
+ASM_SOURCES_AS = \
+ asm-aarch64/blake3/b3_aarch64_sse2.S \
+ asm-aarch64/blake3/b3_aarch64_sse41.S \
+ asm-aarch64/sha2/sha256-armv8.S \
+ asm-aarch64/sha2/sha512-armv8.S
+.elif ${MACHINE_ARCH} == "powerpc64"
+ASM_SOURCES_C =
+ASM_SOURCES_AS = \
+ asm-ppc64/sha2/sha256-ppc.S \
+ asm-ppc64/sha2/sha512-ppc.S \
+ asm-ppc64/sha2/sha256-p8.S \
+ asm-ppc64/sha2/sha512-p8.S
+.elif ${MACHINE_ARCH} == "powerpc64le"
+ASM_SOURCES_C =
+ASM_SOURCES_AS = \
+ asm-ppc64/blake3/b3_ppc64le_sse2.S \
+ asm-ppc64/blake3/b3_ppc64le_sse41.S \
+ asm-ppc64/sha2/sha256-ppc.S \
+ asm-ppc64/sha2/sha512-ppc.S \
+ asm-ppc64/sha2/sha256-p8.S \
+ asm-ppc64/sha2/sha512-p8.S
+.else
+ASM_SOURCES_C =
+ASM_SOURCES_AS =
+.endif
+
+KERNEL_C = \
+ spi/kcf_spi.c \
+ api/kcf_ctxops.c \
+ api/kcf_cipher.c \
+ api/kcf_mac.c \
+ algs/aes/aes_impl_aesni.c \
+ algs/aes/aes_impl_generic.c \
+ algs/aes/aes_impl_x86-64.c \
+ algs/aes/aes_impl.c \
+ algs/aes/aes_modes.c \
+ algs/blake3/blake3.c \
+ algs/blake3/blake3_generic.c \
+ algs/blake3/blake3_impl.c \
+ algs/edonr/edonr.c \
+ algs/modes/modes.c \
+ algs/modes/gcm_generic.c \
+ algs/modes/gcm_pclmulqdq.c \
+ algs/modes/gcm.c \
+ algs/modes/ccm.c \
+ algs/sha2/sha2_generic.c \
+ algs/sha2/sha256_impl.c \
+ algs/sha2/sha512_impl.c \
+ algs/skein/skein.c \
+ algs/skein/skein_block.c \
+ algs/skein/skein_iv.c \
+ illumos-crypto.c \
+ io/aes.c \
+ io/sha2_mod.c \
+ core/kcf_sched.c \
+ core/kcf_prov_lib.c \
+ core/kcf_callprov.c \
+ core/kcf_mech_tabs.c \
+ core/kcf_prov_tabs.c \
+ $(ASM_SOURCES_C)
+
+SRCS= $(ASM_SOURCES_AS) $(KERNEL_C)
+
+WARNS?= 2
+SHLIB_MAJOR= 3
+CSTD= c99
+CFLAGS+= -DIN_BASE
+CFLAGS+= -I${ZFSTOP}/include
+CFLAGS+= -I${ZFSTOP}/lib/libspl/include/
+CFLAGS+= -I${ZFSTOP}/lib/libspl/include/os/freebsd
+CFLAGS+= -I${SRCTOP}/sys
+CFLAGS+= -I${SRCTOP}/cddl/compat/opensolaris/include
+CFLAGS+= -I${ZFSTOP}/module/icp/include
+CFLAGS+= -I${ZFSTOP}/lib/libzpool/include
++CFLAGS+= -include ${ZFSTOP}/include/sys/simd_config.h
+CFLAGS+= -include ${ZFSTOP}/include/os/freebsd/spl/sys/ccompile.h
+CFLAGS+= -DHAVE_ISSETUGID
+CFLAGS+= -include ${SRCTOP}/sys/modules/zfs/zfs_config.h
+
+CFLAGS.aes_amd64.S+= -DLOCORE
+CFLAGS.aes_aesni.S+= -DLOCORE
+CFLAGS.gcm_pclmulqdq.S+= -DLOCORE
+CFLAGS.aesni-gcm-x86_64.S+= -DLOCORE
+CFLAGS.aesni-gcm-avx2-vaes.S+= -DLOCORE
+CFLAGS.ghash-x86_64.S+= -DLOCORE
+CFLAGS.sha256-x86_64.S+= -DLOCORE
+CFLAGS.sha512-x86_64.S+= -DLOCORE
+CFLAGS.blake3_avx2.S = -DLOCORE
+CFLAGS.blake3_avx512.S = -DLOCORE
+CFLAGS.blake3_sse2.S = -DLOCORE
+CFLAGS.blake3_sse41.S = -DLOCORE
+CFLAGS.b3_aarch64_sse2.S = -DLOCORE
+CFLAGS.b3_aarch64_sse41.S = -DLOCORE
+CFLAGS.sha256-armv7.S = -DLOCORE
+CFLAGS.sha256-armv8.S = -DLOCORE
+CFLAGS.sha512-armv7.S = -DLOCORE
+CFLAGS.sha512-armv8.S = -DLOCORE
+CFLAGS.b3_ppc64le_sse2.S = -DLOCORE
+CFLAGS.b3_ppc64le_sse41.S = -DLOCORE
+CFLAGS.sha256-p8.S = -DLOCORE
+CFLAGS.sha256-ppc.S = -DLOCORE
+CFLAGS.sha512-p8.S = -DLOCORE
+CFLAGS.sha512-ppc.S = -DLOCORE
+
+
+LDFLAGS.bfd+= -Wl,-znoexecstack
+
+.include <bsd.lib.mk>
diff --cc cddl/lib/libicp_rescue/Makefile
index 8dc8c396774c,000000000000..337bf0b145fa
mode 100644,000000..100644
--- a/cddl/lib/libicp_rescue/Makefile
+++ b/cddl/lib/libicp_rescue/Makefile
@@@ -1,137 -1,0 +1,138 @@@
+.PATH: ${ZFSTOP}/module/icp
+
+PACKAGE= utilities
+LIB= icp_rescue
+LIBADD=
+
+.if ${MACHINE_ARCH} == "amd64"
+ASM_SOURCES_C = asm-x86_64/aes/aeskey.c
+ASM_SOURCES_AS = \
+ asm-x86_64/aes/aes_amd64.S \
+ asm-x86_64/aes/aes_aesni.S \
+ asm-x86_64/modes/gcm_pclmulqdq.S \
+ asm-x86_64/modes/aesni-gcm-x86_64.S \
+ asm-x86_64/modes/aesni-gcm-avx2-vaes.S \
+ asm-x86_64/sha2/sha256-x86_64.S \
+ asm-x86_64/sha2/sha512-x86_64.S \
+ asm-x86_64/blake3/blake3_avx2.S \
+ asm-x86_64/blake3/blake3_avx512.S \
+ asm-x86_64/blake3/blake3_sse2.S \
+ asm-x86_64/blake3/blake3_sse41.S
+
+CFLAGS+= -D__amd64 -D_SYS_STACK_H
+.elif ${MACHINE_CPUARCH} == "arm"
+ASM_SOURCES_C =
+ASM_SOURCES_AS = \
+ asm-arm/sha2/sha256-armv7.S \
+ asm-arm/sha2/sha512-armv7.S
+.elif ${MACHINE_ARCH} == "aarch64"
+ASM_SOURCES_C =
+ASM_SOURCES_AS = \
+ asm-aarch64/blake3/b3_aarch64_sse2.S \
+ asm-aarch64/blake3/b3_aarch64_sse41.S \
+ asm-aarch64/sha2/sha256-armv8.S \
+ asm-aarch64/sha2/sha512-armv8.S
+.elif ${MACHINE_ARCH} == "powerpc64"
+ASM_SOURCES_C =
+ASM_SOURCES_AS = \
+ asm-ppc64/sha2/sha256-ppc.S \
+ asm-ppc64/sha2/sha512-ppc.S \
+ asm-ppc64/sha2/sha256-p8.S \
+ asm-ppc64/sha2/sha512-p8.S
+.elif ${MACHINE_ARCH} == "powerpc64le"
+ASM_SOURCES_C =
+ASM_SOURCES_AS = \
+ asm-ppc64/blake3/b3_ppc64le_sse2.S \
+ asm-ppc64/blake3/b3_ppc64le_sse41.S \
+ asm-ppc64/sha2/sha256-ppc.S \
+ asm-ppc64/sha2/sha512-ppc.S \
+ asm-ppc64/sha2/sha256-p8.S \
+ asm-ppc64/sha2/sha512-p8.S
+.else
+ASM_SOURCES_C =
+ASM_SOURCES_AS =
+.endif
+
+KERNEL_C = \
+ spi/kcf_spi.c \
+ api/kcf_ctxops.c \
+ api/kcf_cipher.c \
+ api/kcf_mac.c \
+ algs/aes/aes_impl_aesni.c \
+ algs/aes/aes_impl_generic.c \
+ algs/aes/aes_impl_x86-64.c \
+ algs/aes/aes_impl.c \
+ algs/aes/aes_modes.c \
+ algs/blake3/blake3.c \
+ algs/blake3/blake3_generic.c \
+ algs/blake3/blake3_impl.c \
+ algs/edonr/edonr.c \
+ algs/modes/modes.c \
+ algs/modes/gcm_generic.c \
+ algs/modes/gcm_pclmulqdq.c \
+ algs/modes/gcm.c \
+ algs/modes/ccm.c \
+ algs/sha2/sha2_generic.c \
+ algs/sha2/sha256_impl.c \
+ algs/sha2/sha512_impl.c \
+ algs/skein/skein_block.c \
+ illumos-crypto.c \
+ io/aes.c \
+ io/sha2_mod.c \
+ core/kcf_sched.c \
+ core/kcf_prov_lib.c \
+ core/kcf_callprov.c \
+ core/kcf_mech_tabs.c \
+ core/kcf_prov_tabs.c \
+ $(ASM_SOURCES_C)
+
+.PATH: ${ZFSTOP}/module/zfs
+KERNEL_C+= zfs_impl.c
+
+SRCS= $(ASM_SOURCES_AS) $(KERNEL_C)
+
+WARNS?= 2
+SHLIB_MAJOR= 3
+CSTD= c99
+CFLAGS+= -DIN_BASE
+CFLAGS+= -I${ZFSTOP}/include
+CFLAGS+= -I${ZFSTOP}/lib/libspl/include/
+CFLAGS+= -I${ZFSTOP}/lib/libspl/include/os/freebsd
+CFLAGS+= -I${SRCTOP}/sys
+CFLAGS+= -I${SRCTOP}/cddl/compat/opensolaris/include
+CFLAGS+= -I${ZFSTOP}/module/icp/include
+CFLAGS+= -I${ZFSTOP}/lib/libzpool/include
++CFLAGS+= -include ${ZFSTOP}/include/sys/simd_config.h
+CFLAGS+= -include ${ZFSTOP}/include/os/freebsd/spl/sys/ccompile.h
+CFLAGS+= -DHAVE_ISSETUGID -UHAVE_AVX -DRESCUE
+CFLAGS+= -include ${SRCTOP}/sys/modules/zfs/zfs_config.h
+
+CFLAGS.aes_amd64.S+= -DLOCORE
+CFLAGS.aes_aesni.S+= -DLOCORE
+CFLAGS.gcm_pclmulqdq.S+= -DLOCORE
+CFLAGS.aesni-gcm-x86_64.S+= -DLOCORE
+CFLAGS.aesni-gcm-avx2-vaes.S+= -DLOCORE
+CFLAGS.ghash-x86_64.S+= -DLOCORE
+CFLAGS.sha256-x86_64.S+= -DLOCORE
+CFLAGS.sha512-x86_64.S+= -DLOCORE
+CFLAGS.gcm.c+= -UCAN_USE_GCM_ASM
+CFLAGS.blake3_avx2.S = -DLOCORE
+CFLAGS.blake3_avx512.S = -DLOCORE
+CFLAGS.blake3_sse2.S = -DLOCORE
+CFLAGS.blake3_sse41.S = -DLOCORE
+CFLAGS.b3_aarch64_sse2.S = -DLOCORE
+CFLAGS.b3_aarch64_sse41.S = -DLOCORE
+CFLAGS.sha256-armv7.S = -DLOCORE
+CFLAGS.sha512-armv7.S = -DLOCORE
+CFLAGS.sha256-armv8.S = -DLOCORE
+CFLAGS.sha512-armv8.S = -DLOCORE
+CFLAGS.b3_ppc64le_sse2.S = -DLOCORE
+CFLAGS.b3_ppc64le_sse41.S = -DLOCORE
+CFLAGS.sha256-ppc.S = -DLOCORE
+CFLAGS.sha256-p8.S = -DLOCORE
+CFLAGS.sha512-ppc.S = -DLOCORE
+CFLAGS.sha512-p8.S = -DLOCORE
+
+LDFLAGS.bfd+= -Wl,-znoexecstack
+
+.include <bsd.lib.mk>
diff --cc cddl/lib/libspl/Makefile
index b0f47172e52d,000000000000..a8935a86be16
mode 100644,000000..100644
--- a/cddl/lib/libspl/Makefile
+++ b/cddl/lib/libspl/Makefile
@@@ -1,64 -1,0 +1,64 @@@
+.include <bsd.init.mk>
+.include <bsd.compiler.mk>
+
+.PATH: ${ZFSTOP}/lib/libspl
+.PATH: ${ZFSTOP}/include
+
+PACKAGE= zfs
+LIB_PACKAGE=
+
+LIB= spl
+LIBADD=
+
+SRCS = \
+ assert.c \
+ backtrace.c \
+ condvar.c \
+ kmem.c \
+ libspl.c \
+ list.c \
+ mkdirp.c \
+ mutex.c \
+ os/freebsd/zone.c \
+ page.c \
+ procfs_list.c \
+ random.c \
+ rwlock.c \
+ sid.c \
+ taskq.c \
+ timestamp.c \
+ include/sys/list.h \
+ include/sys/list_impl.h
+
+# These functions are not required when bootstrapping and the atomic code,
+# among others, will not compile when building on macOS.
+.if !defined(BOOTSTRAPPING)
+SRCS += \
+ atomic.c \
+ cred.c \
+ getexecname.c \
+ kstat.c \
+ thread.c \
+ tunables.c \
+ os/freebsd/getexecname.c \
+ os/freebsd/gethostid.c \
- os/freebsd/getmntany.c \
++ os/freebsd/getextmntent.c \
+ os/freebsd/mnttab.c
+.endif
+
+WARNS?= 2
+CSTD= c99
+CFLAGS+= -DIN_BASE
+CFLAGS+= -I${ZFSTOP}/include
+CFLAGS+= -I${ZFSTOP}/lib/libspl/include/
+CFLAGS+= -I${ZFSTOP}/lib/libspl/include/os/freebsd
+CFLAGS+= -I${SRCTOP}/cddl/compat/opensolaris/include
+CFLAGS+= -I${ZFSTOP}/module/icp/include
+CFLAGS+= -include ${ZFSTOP}/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/libzdb/Makefile
index f5a6a42d7aad,000000000000..194521680e9c
mode 100644,000000..100644
--- a/cddl/lib/libzdb/Makefile
+++ b/cddl/lib/libzdb/Makefile
@@@ -1,28 -1,0 +1,29 @@@
+.PATH: ${ZFSTOP}/lib/libzdb
+.PATH: ${ZFSTOP}/include
+
+PACKAGE= zfs
+LIB_PACKAGE=
+
+LIB= zdb
+
+INCS = libzdb.h
+
+SRCS = libzdb.c
+
+WARNS?= 2
+CSTD= c99
+
+CFLAGS+= -I${ZFSTOP}/include
+CFLAGS+= -I${ZFSTOP}/lib/libspl/include
+CFLAGS+= -I${ZFSTOP}/lib/libspl/include/os/freebsd
+CFLAGS+= -I${ZFSTOP}/lib/libzpool/include
+CFLAGS+= -I${ZFSTOP}/include/os/freebsd/zfs
+CFLAGS+= -I${SRCTOP}/sys
+CFLAGS+= -I${SRCTOP}/cddl/compat/opensolaris/include
++CFLAGS+= -include ${ZFSTOP}/include/sys/simd_config.h
+CFLAGS+= -include ${ZFSTOP}/include/os/freebsd/spl/sys/ccompile.h
+CFLAGS+= -I${ZFSTOP}/lib/libzutil
+CFLAGS+= -DHAVE_ISSETUGID -DIN_BASE
+CFLAGS+= -include ${SRCTOP}/sys/modules/zfs/zfs_config.h
+
+.include <bsd.lib.mk>
diff --cc cddl/lib/libzfs/Makefile
index 8f364d2c2bb1,000000000000..d28424a353e5
mode 100644,000000..100644
--- a/cddl/lib/libzfs/Makefile
+++ b/cddl/lib/libzfs/Makefile
@@@ -1,105 -1,0 +1,107 @@@
+.PATH: ${ZFSTOP}/module/icp
+.PATH: ${ZFSTOP}/module/zcommon
+.PATH: ${ZFSTOP}/lib/libzfs
+.PATH: ${ZFSTOP}/lib/libzfs/os/freebsd
+.PATH: ${ZFSTOP}/include
+.PATH: ${ZFSTOP}/module/zstd
+.PATH: ${ZFSTOP}/module/zstd/lib
+
+PACKAGE= zfs
+LIB_PACKAGE=
+
+LIB= zfs
+LIBADD= \
+ avl \
+ bsdxml \
+ crypto \
+ geom \
+ m \
+ md \
+ nvpair \
+ pthread \
+ rt \
+ umem \
+ util \
+ z \
+ zfs_core \
+ zutil
+
+INCS= libzfs.h
+USER_C = \
+ libzfs_changelist.c \
+ libzfs_config.c \
+ libzfs_crypto.c \
+ libzfs_dataset.c \
+ libzfs_diff.c \
+ libzfs_import.c \
+ libzfs_iter.c \
++ libzfs_mnttab.c \
+ libzfs_mount.c \
+ libzfs_pool.c \
+ libzfs_sendrecv.c \
+ libzfs_share.c \
+ libzfs_share_nfs.c \
+ libzfs_status.c \
+ libzfs_util.c \
+ os/freebsd/libzfs_share_nfs.c \
+ os/freebsd/libzfs_share_smb.c
+
+# FreeBSD
+USER_C += \
+ libzfs_compat.c \
+ libzfs_zmount.c
+
+KERNEL_C = \
+ cityhash.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_valstr.c \
+ zpool_prop.c \
+ zprop_common.c
+
+ARCH_C =
+.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
+ARCH_C += zfs_fletcher_intel.c \
+ zfs_fletcher_sse.c
+CFLAGS += -DHAVE_SSE2
+.endif
+.if ${MACHINE_ARCH} == "amd64"
+ARCH_C += zfs_fletcher_avx512.c
+CFLAGS+= -DHAVE_AVX2 -DHAVE_AVX -D__x86_64 -DHAVE_AVX512F
+.endif
+.if ${MACHINE_CPUARCH} == "aarch64"
+ARCH_C += zfs_fletcher_aarch64_neon.c
+.endif
+
+SRCS= $(USER_C) $(KERNEL_C) $(ARCH_C)
+
+WARNS?= 2
+SHLIB_MAJOR= 4
+CSTD= c99
+CFLAGS+= -DIN_BASE
+CFLAGS+= -I${ZFSTOP}/include
+CFLAGS+= -I${ZFSTOP}/include/os/freebsd
+CFLAGS+= -I${ZFSTOP}/lib/libspl/include
+CFLAGS+= -I${ZFSTOP}/lib/libspl/include/os/freebsd
+CFLAGS+= -I${ZFSTOP}/lib/libshare
+CFLAGS+= -I${ZFSTOP}/lib/libzpool/include
+CFLAGS+= -I${SRCTOP}/sys/contrib/ck/include
+CFLAGS+= -I${SRCTOP}/sys
+CFLAGS+= -I${SRCTOP}/cddl/compat/opensolaris/include
+CFLAGS+= -I${ZFSTOP}/module/icp/include
++CFLAGS+= -include ${ZFSTOP}/include/sys/simd_config.h
+CFLAGS+= -include ${ZFSTOP}/include/os/freebsd/spl/sys/ccompile.h
+CFLAGS+= -DHAVE_ISSETUGID
+CFLAGS+= -DHAVE_EXECVPE
+CFLAGS+= -include ${SRCTOP}/sys/modules/zfs/zfs_config.h
+CFLAGS+= -DSYSCONFDIR=\"/etc\"
+CFLAGS+= -DPKGDATADIR=\"/usr/share/zfs\"
+CFLAGS+= -DZFSEXECDIR=\"${LIBEXECDIR}/zfs\"
+
+.include <bsd.lib.mk>
diff --cc cddl/lib/libzpool/Makefile
index 74a5f6ccb438,000000000000..9361d352f7c0
mode 100644,000000..100644
--- a/cddl/lib/libzpool/Makefile
+++ b/cddl/lib/libzpool/Makefile
@@@ -1,342 -1,0 +1,344 @@@
+.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"
+# Don't waste GOT entries on small data.
+PICFLAG= -fPIC
+.endif
+
+PACKAGE= zfs
+LIB_PACKAGE=
+
+LIB= zpool
+
+USER_C = \
+ arc_os.c \
+ kernel.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 \
+ u8_textprep.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 \
+ 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_file_os.c \
+ zfs_fm.c \
+ zfs_fuid.c \
+ zfs_impl.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 \
+ zstd_preSplit.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 \
*** 9473 LINES SKIPPED ***