aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2026-07-01 17:09:49 +0000
committerAlexander Motin <mav@FreeBSD.org>2026-07-01 17:09:49 +0000
commitde6872045c07b7eeffe66cba40e7feed23eefc9e (patch)
treed2ce283ffc87fb28b680ec6f3f7e5ca8db31eaa6
parent2a4b8fd1dc070e71fbaab6f12c1c9e4452652aa7 (diff)
zfs: fix SIMD defines to match OpenZFS HAVE_SIMD() macro
The OpenZFS merge 80aae8a3f8aa introduced HAVE_SIMD() which checks for HAVE_TOOLCHAIN_* defines via simd_config.h. The kernel module Makefile was updated, but kern.pre.mk (static kernel build) and the libzpool/libzfs Makefiles were missed, still using the old HAVE_SSE2 etc. names. This caused all vectorized raidz, fletcher, and blake3 implementations to be compiled out.
-rw-r--r--cddl/lib/libzfs/Makefile5
-rw-r--r--cddl/lib/libzpool/Makefile6
-rw-r--r--sys/conf/kern.pre.mk8
3 files changed, 11 insertions, 8 deletions
diff --git a/cddl/lib/libzfs/Makefile b/cddl/lib/libzfs/Makefile
index d28424a353e5..83f93ec4276b 100644
--- a/cddl/lib/libzfs/Makefile
+++ b/cddl/lib/libzfs/Makefile
@@ -69,11 +69,12 @@ ARCH_C =
.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
ARCH_C += zfs_fletcher_intel.c \
zfs_fletcher_sse.c
-CFLAGS += -DHAVE_SSE2
+CFLAGS += -DHAVE_TOOLCHAIN_SSE2 -DHAVE_TOOLCHAIN_SSSE3
.endif
.if ${MACHINE_ARCH} == "amd64"
ARCH_C += zfs_fletcher_avx512.c
-CFLAGS+= -DHAVE_AVX2 -DHAVE_AVX -D__x86_64 -DHAVE_AVX512F
+CFLAGS+= -D__x86_64 -DHAVE_TOOLCHAIN_AVX2 -DHAVE_TOOLCHAIN_AVX \
+ -DHAVE_TOOLCHAIN_AVX512F
.endif
.if ${MACHINE_CPUARCH} == "aarch64"
ARCH_C += zfs_fletcher_aarch64_neon.c
diff --git a/cddl/lib/libzpool/Makefile b/cddl/lib/libzpool/Makefile
index 0c2030faa3d6..68908fcb0241 100644
--- a/cddl/lib/libzpool/Makefile
+++ b/cddl/lib/libzpool/Makefile
@@ -217,12 +217,12 @@ 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
+CFLAGS += -DHAVE_TOOLCHAIN_SSE2 -DHAVE_TOOLCHAIN_SSSE3
.endif
.if ${MACHINE_ARCH} == "amd64"
ARCH_C += zfs_fletcher_avx512.c
-CFLAGS+= -DHAVE_AVX2 -DHAVE_AVX -D__x86_64 -DHAVE_AVX512F \
- -DHAVE_AVX512BW
+CFLAGS+= -D__x86_64 -DHAVE_TOOLCHAIN_AVX2 -DHAVE_TOOLCHAIN_AVX \
+ -DHAVE_TOOLCHAIN_AVX512F -DHAVE_TOOLCHAIN_AVX512BW
.endif
.if ${MACHINE_CPUARCH} == "aarch64"
ARCH_C += zfs_fletcher_aarch64_neon.c
diff --git a/sys/conf/kern.pre.mk b/sys/conf/kern.pre.mk
index d1556660094a..19a7b45f4b6a 100644
--- a/sys/conf/kern.pre.mk
+++ b/sys/conf/kern.pre.mk
@@ -209,9 +209,11 @@ ZFS_CFLAGS+= -I$S/contrib/openzfs/module/icp/include \
-DWITH_NETDUMP -D__KERNEL__ -D_SYS_CONDVAR_H_ -DSMP
.if ${MACHINE_ARCH} == "amd64"
-ZFS_CFLAGS+= -D__x86_64 -DHAVE_SSE2 -DHAVE_SSSE3 -DHAVE_SSE4_1 -DHAVE_SSE4_2 \
- -DHAVE_AVX -DHAVE_AVX2 -DHAVE_AVX512F -DHAVE_AVX512VL -DHAVE_AVX512BW \
- -DHAVE_VAES -DHAVE_VPCLMULQDQ
+ZFS_CFLAGS+= -D__x86_64 -DHAVE_TOOLCHAIN_SSE2 -DHAVE_TOOLCHAIN_SSSE3 \
+ -DHAVE_TOOLCHAIN_SSE4_1 -DHAVE_TOOLCHAIN_AVX -DHAVE_TOOLCHAIN_AVX2 \
+ -DHAVE_TOOLCHAIN_AVX512F -DHAVE_TOOLCHAIN_AVX512VL \
+ -DHAVE_TOOLCHAIN_AVX512BW \
+ -DHAVE_TOOLCHAIN_VAES -DHAVE_TOOLCHAIN_VPCLMULQDQ
.endif
.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "powerpc" || \