mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-23 10:54:35 +03:00
Add simd_config.h and HAVE_SIMD() selector
We need to select which SIMD variable to check based on the compilation target: HAVE_KERNEL_xxx for the Linux kernel, HAVE_TOOLCHAIN_xxx for other platforms. This adds a HAVE_SIMD() macro returns the right result depending on the definedness or value of the variable for this target. The macro is in simd_config.h, which is forcibly included in every compiler call (like zfs_config.h), to ensure that it can be used directly without further includes. Sponsored-by: TrueNAS Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Rob Norris <rob.norris@truenas.com> Closes #18285
This commit is contained in:
committed by
Brian Behlendorf
parent
35f74f84e6
commit
c329530e6b
@@ -11,6 +11,7 @@ zfs_include = @abs_top_srcdir@/include
|
||||
icp_include = @abs_srcdir@/icp/include
|
||||
zstd_include = @abs_srcdir@/zstd/include
|
||||
ZFS_MODULE_CFLAGS += -include @abs_top_builddir@/zfs_config.h
|
||||
ZFS_MODULE_CFLAGS += -include $(zfs_include)/sys/simd_config.h
|
||||
ZFS_MODULE_CFLAGS += -I@abs_top_builddir@/include
|
||||
src = @abs_srcdir@
|
||||
obj = @abs_builddir@
|
||||
@@ -19,6 +20,7 @@ zfs_include = $(srctree)/include/zfs
|
||||
icp_include = $(src)/icp/include
|
||||
zstd_include = $(src)/zstd/include
|
||||
ZFS_MODULE_CFLAGS += -include $(zfs_include)/zfs_config.h
|
||||
ZFS_MODULE_CFLAGS += -include $(zfs_include)/sys/simd_config.h
|
||||
endif
|
||||
|
||||
ZFS_MODULE_CFLAGS += -I$(zfs_include)/os/linux/kernel
|
||||
|
||||
+5
-2
@@ -38,6 +38,7 @@ CFLAGS+= -I${INCDIR}/os/freebsd
|
||||
CFLAGS+= -I${INCDIR}/os/freebsd/spl
|
||||
CFLAGS+= -I${INCDIR}/os/freebsd/zfs
|
||||
CFLAGS+= -I${SRCDIR}/zstd/include
|
||||
CFLAGS+= -include ${INCDIR}/sys/simd_config.h
|
||||
CFLAGS+= -include ${INCDIR}/os/freebsd/spl/sys/ccompile.h
|
||||
CFLAGS+= -I${.CURDIR}
|
||||
|
||||
@@ -46,8 +47,10 @@ CFLAGS+= -D__KERNEL__ -DFREEBSD_NAMECACHE -DBUILDING_ZFS -D__BSD_VISIBLE=1 \
|
||||
-D_SYS_VMEM_H_ -DKDTRACE_HOOKS -DCOMPAT_FREEBSD11
|
||||
|
||||
.if ${MACHINE_ARCH} == "amd64"
|
||||
CFLAGS+= -D__x86_64 -DHAVE_SSE2 -DHAVE_SSSE3 -DHAVE_SSE4_1 \
|
||||
-DHAVE_AVX -DHAVE_AVX2 -DHAVE_AVX512F -DHAVE_AVX512VL -DHAVE_AVX512BW
|
||||
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
|
||||
.endif
|
||||
|
||||
.if defined(WITH_DEBUG) && ${WITH_DEBUG} == "true"
|
||||
|
||||
Reference in New Issue
Block a user