diff options
| author | Michael Forney <mforney@mforney.org> | 2023-01-17 13:10:48 -0800 |
|---|---|---|
| committer | Michael Forney <mforney@mforney.org> | 2023-01-21 18:02:46 -0800 |
| commit | 6b7db809b530eee3052f73377c5b0aad13a0b963 (patch) | |
| tree | 317ecefa6441d49448dde7a43d4bdb761c3d98a0 /pkg/zfs/patch | |
| parent | f70b4bb807afbdaccc1daab13b8ff24459c8dfa5 (diff) | |
Add zfs 2.1.7
Diffstat (limited to 'pkg/zfs/patch')
11 files changed, 1426 insertions, 0 deletions
diff --git a/pkg/zfs/patch/0001-Port-to-BearSSL.patch b/pkg/zfs/patch/0001-Port-to-BearSSL.patch new file mode 100644 index 00000000..497cdd59 --- /dev/null +++ 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 new file mode 100644 index 00000000..4e58fa8d --- /dev/null +++ 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 new file mode 100644 index 00000000..c30e255d --- /dev/null +++ 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 new file mode 100644 index 00000000..5bb7abe5 --- /dev/null +++ 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 new file mode 100644 index 00000000..a41cfddc --- /dev/null +++ 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, "a)) != 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 new file mode 100644 index 00000000..99c71827 --- /dev/null +++ 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 new file mode 100644 index 00000000..1bde5c95 --- /dev/null +++ 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 new file mode 100644 index 00000000..87ed8de0 --- /dev/null +++ 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 new file mode 100644 index 00000000..ea4ca5a9 --- /dev/null +++ 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 new file mode 100644 index 00000000..13a902da --- /dev/null +++ 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 new file mode 100644 index 00000000..662c4b11 --- /dev/null +++ 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 + |
