]> git.proxmox.com Git - mirror_zfs.git/blobdiff - module/Makefile.bsd
vdev_disk: add module parameter to select BIO submission method
[mirror_zfs.git] / module / Makefile.bsd
index 1663dcec63c7491a717fef37345c70cbd67c5be5..e9ad69fc50a2b5bc0652f9860424248acb52be3f 100644 (file)
@@ -13,10 +13,15 @@ KMOD=       openzfs
        ${SRCDIR}/lua \
        ${SRCDIR}/nvpair \
        ${SRCDIR}/icp/algs/blake3 \
+       ${SRCDIR}/icp/algs/edonr \
+       ${SRCDIR}/icp/algs/sha2 \
        ${SRCDIR}/icp/asm-aarch64/blake3 \
+       ${SRCDIR}/icp/asm-aarch64/sha2 \
+       ${SRCDIR}/icp/asm-arm/sha2 \
+       ${SRCDIR}/icp/asm-ppc64/sha2 \
        ${SRCDIR}/icp/asm-ppc64/blake3 \
        ${SRCDIR}/icp/asm-x86_64/blake3 \
-       ${SRCDIR}/icp/algs/edonr \
+       ${SRCDIR}/icp/asm-x86_64/sha2 \
        ${SRCDIR}/os/freebsd/spl \
        ${SRCDIR}/os/freebsd/zfs \
        ${SRCDIR}/unicode \
@@ -27,14 +32,12 @@ KMOD=       openzfs
        ${SRCDIR}/zstd/lib/compress \
        ${SRCDIR}/zstd/lib/decompress
 
-
-
 CFLAGS+= -I${INCDIR}
+CFLAGS+= -I${SRCDIR}/icp/include
 CFLAGS+= -I${INCDIR}/os/freebsd
 CFLAGS+= -I${INCDIR}/os/freebsd/spl
 CFLAGS+= -I${INCDIR}/os/freebsd/zfs
 CFLAGS+= -I${SRCDIR}/zstd/include
-CFLAGS+= -I${SRCDIR}/icp/include
 CFLAGS+= -include ${INCDIR}/os/freebsd/spl/sys/ccompile.h
 CFLAGS+= -I${.CURDIR}
 
@@ -88,8 +91,7 @@ SRCS+=        edonr.c
 #icp/algs/blake3
 SRCS+= blake3.c \
        blake3_generic.c \
-       blake3_impl.c \
-       blake3_x86-64.c
+       blake3_impl.c
 
 #icp/asm-aarch64/blake3
 SRCS+= b3_aarch64_sse2.S \
@@ -105,6 +107,29 @@ SRCS+=     blake3_avx2.S \
        blake3_sse2.S \
        blake3_sse41.S
 
+#icp/algs/sha2
+SRCS+= sha2_generic.c \
+       sha256_impl.c \
+       sha512_impl.c
+
+#icp/asm-arm/sha2
+SRCS+= sha256-armv7.S \
+       sha512-armv7.S
+
+#icp/asm-aarch64/sha2
+SRCS+= sha256-armv8.S \
+       sha512-armv8.S
+
+#icp/asm-ppc64/sha2
+SRCS+= sha256-p8.S \
+       sha512-p8.S \
+       sha256-ppc.S \
+       sha512-ppc.S
+
+#icp/asm-x86_64/sha2
+SRCS+= sha256-x86_64.S \
+       sha512-x86_64.S
+
 #lua
 SRCS+= lapi.c \
        lauxlib.c \
@@ -218,6 +243,7 @@ SRCS+=      abd.c \
        blkptr.c \
        bplist.c \
        bpobj.c \
+       brt.c \
        btree.c \
        cityhash.c \
        dbuf.c \
@@ -226,6 +252,7 @@ SRCS+=      abd.c \
        bqueue.c \
        dataset_kstats.c \
        ddt.c \
+       ddt_stats.c \
        ddt_zap.c \
        dmu.c \
        dmu_diff.c \
@@ -282,7 +309,6 @@ SRCS+=      abd.c \
        uberblock.c \
        unique.c \
        vdev.c \
-       vdev_cache.c \
        vdev_draid.c \
        vdev_draid_rand.c \
        vdev_indirect.c \
@@ -320,6 +346,7 @@ SRCS+=      abd.c \
        zfs_file_os.c \
        zfs_fm.c \
        zfs_fuid.c \
+       zfs_impl.c \
        zfs_ioctl.c \
        zfs_log.c \
        zfs_onexit.c \
@@ -373,6 +400,20 @@ beforeinstall:
 
 .include <bsd.kmod.mk>
 
+# Generated binary search code is particularly bad with this optimization.
+# Oddly, range_tree.c is not affected when unrolling is not done and dsl_scan.c
+# is not affected when unrolling is done.
+# Disable it until the following upstream issue is resolved:
+# https://github.com/llvm/llvm-project/issues/62790
+.if ${CC} == "clang"
+.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "amd64"
+CFLAGS.dsl_scan.c= -mllvm -x86-cmov-converter=false
+CFLAGS.metaslab.c= -mllvm -x86-cmov-converter=false
+CFLAGS.range_tree.c= -mllvm -x86-cmov-converter=false
+CFLAGS.zap_micro.c= -mllvm -x86-cmov-converter=false
+.endif
+.endif
+
 CFLAGS.sysctl_os.c= -include ../zfs_config.h
 CFLAGS.xxhash.c+= -include ${SYSDIR}/sys/_null.h
 
@@ -380,6 +421,7 @@ CFLAGS.gcc+= -Wno-pointer-to-int-cast
 
 CFLAGS.abd.c= -Wno-cast-qual
 CFLAGS.ddt.c= -Wno-cast-qual
+CFLAGS.ddt_zap.c= -Wno-cast-qual
 CFLAGS.dmu.c= -Wno-cast-qual
 CFLAGS.dmu_traverse.c= -Wno-cast-qual
 CFLAGS.dnode.c= ${NO_WUNUSED_BUT_SET_VARIABLE}
@@ -480,6 +522,16 @@ CFLAGS.zstd_lazy.c+= ${__ZFS_ZSTD_AARCH64_FLAGS}
 CFLAGS.zstd_ldm.c+= ${__ZFS_ZSTD_AARCH64_FLAGS}
 CFLAGS.zstd_opt.c+= ${__ZFS_ZSTD_AARCH64_FLAGS}
 
+sha256-armv8.o: sha256-armv8.S
+       ${CC} -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${.IMPSRC} \
+            -o ${.TARGET}
+       ${CTFCONVERT_CMD}
+
+sha512-armv8.o: sha512-armv8.S
+       ${CC} -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${.IMPSRC} \
+            -o ${.TARGET}
+       ${CTFCONVERT_CMD}
+
 b3_aarch64_sse2.o: b3_aarch64_sse2.S
        ${CC} -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${.IMPSRC} \
             -o ${.TARGET}