]> git.proxmox.com Git - mirror_zfs.git/blobdiff - module/Makefile.bsd
zvol_os: fix build on Linux <3.13
[mirror_zfs.git] / module / Makefile.bsd
index 999dc90ff59f5f5f35af3f5eae3fb87542e0244c..d9d31564d09075a7b4c38fa16d5291793abca7be 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}
 
@@ -79,17 +82,13 @@ CFLAGS+= -DBITS_PER_LONG=64
 
 SRCS=  vnode_if.h device_if.h bus_if.h
 
-# avl
+#avl
 SRCS+= avl.c
 
-# icp
-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 +104,32 @@ SRCS+=     blake3_avx2.S \
        blake3_sse2.S \
        blake3_sse41.S
 
+#icp/algs/edonr
+SRCS+= edonr.c
+
+#icp/algs/sha2
+SRCS+= sha256_impl.c \
+       sha2_generic.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 \
+       sha256-ppc.S \
+       sha512-p8.S \
+       sha512-ppc.S
+
+#icp/asm-x86_64/sha2
+SRCS+= sha256-x86_64.S \
+       sha512-x86_64.S
+
 #lua
 SRCS+= lapi.c \
        lauxlib.c \
@@ -132,17 +157,15 @@ SRCS+=    lapi.c \
        lzio.c
 
 #nvpair
-SRCS+= nvpair.c \
-       fnvpair.c \
-       nvpair_alloc_spl.c \
-       nvpair_alloc_fixed.c
+SRCS+= fnvpair.c \
+       nvpair.c \
+       nvpair_alloc_fixed.c \
+       nvpair_alloc_spl.c
 
 #os/freebsd/spl
 SRCS+= acl_common.c \
        callb.c \
        list.c \
-       sha256c.c \
-       sha512c.c \
        spl_acl.c \
        spl_cmn_err.c \
        spl_dtrace.c \
@@ -161,7 +184,6 @@ SRCS+=      acl_common.c \
        spl_zlib.c \
        spl_zone.c
 
-
 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "powerpc" || \
        ${MACHINE_ARCH} == "powerpcspe" || ${MACHINE_ARCH} == "arm"
 SRCS+= spl_atomic.c
@@ -184,6 +206,7 @@ SRCS+=      abd_os.c \
        zfs_ctldir.c \
        zfs_debug.c \
        zfs_dir.c \
+       zfs_file_os.c \
        zfs_ioctl_compat.c \
        zfs_ioctl_os.c \
        zfs_racct.c \
@@ -194,19 +217,20 @@ SRCS+=    abd_os.c \
        zvol_os.c
 
 #unicode
-SRCS+= uconv.c \
-       u8_textprep.c
+SRCS+=         u8_textprep.c \
+       uconv.c
 
 #zcommon
-SRCS+= zfeature_common.c \
+SRCS+= cityhash.c \
+       zfeature_common.c \
        zfs_comutil.c \
        zfs_deleg.c \
-       zfs_fletcher.c \
        zfs_fletcher_avx512.c \
+       zfs_fletcher.c \
        zfs_fletcher_intel.c \
        zfs_fletcher_sse.c \
-       zfs_fletcher_superscalar.c \
        zfs_fletcher_superscalar4.c \
+       zfs_fletcher_superscalar.c \
        zfs_namecheck.c \
        zfs_prop.c \
        zpool_prop.c \
@@ -220,14 +244,15 @@ SRCS+=    abd.c \
        blkptr.c \
        bplist.c \
        bpobj.c \
-       btree.c \
-       cityhash.c \
-       dbuf.c \
-       dbuf_stats.c \
        bptree.c \
        bqueue.c \
+       brt.c \
+       btree.c \
        dataset_kstats.c \
+       dbuf.c \
+       dbuf_stats.c \
        ddt.c \
+       ddt_stats.c \
        ddt_zap.c \
        dmu.c \
        dmu_diff.c \
@@ -241,13 +266,13 @@ SRCS+=    abd.c \
        dmu_zfetch.c \
        dnode.c \
        dnode_sync.c \
+       dsl_bookmark.c \
+       dsl_crypt.c \
        dsl_dataset.c \
        dsl_deadlist.c \
        dsl_deleg.c \
-       dsl_bookmark.c \
-       dsl_dir.c \
-       dsl_crypt.c \
        dsl_destroy.c \
+       dsl_dir.c \
        dsl_pool.c \
        dsl_prop.c \
        dsl_scan.c \
@@ -256,9 +281,9 @@ SRCS+=      abd.c \
        edonr_zfs.c \
        fm.c \
        gzip.c \
-       lzjb.c \
        lz4.c \
        lz4_zfs.c \
+       lzjb.c \
        metaslab.c \
        mmp.c \
        multilist.c \
@@ -268,9 +293,11 @@ SRCS+=     abd.c \
        refcount.c \
        rrwlock.c \
        sa.c \
-       sha256.c \
+       sha2_zfs.c \
        skein_zfs.c \
        spa.c \
+       space_map.c \
+       space_reftree.c \
        spa_checkpoint.c \
        spa_config.c \
        spa_errlog.c \
@@ -278,17 +305,14 @@ SRCS+=    abd.c \
        spa_log_spacemap.c \
        spa_misc.c \
        spa_stats.c \
-       space_map.c \
-       space_reftree.c \
        txg.c \
        uberblock.c \
        unique.c \
        vdev.c \
-       vdev_cache.c \
        vdev_draid.c \
        vdev_draid_rand.c \
-       vdev_indirect.c \
        vdev_indirect_births.c \
+       vdev_indirect.c \
        vdev_indirect_mapping.c \
        vdev_initialize.c \
        vdev_label.c \
@@ -296,11 +320,11 @@ SRCS+=    abd.c \
        vdev_missing.c \
        vdev_queue.c \
        vdev_raidz.c \
-       vdev_raidz_math.c \
-       vdev_raidz_math_scalar.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_raidz_math_sse2.c \
        vdev_raidz_math_ssse3.c \
        vdev_rebuild.c \
@@ -319,9 +343,9 @@ SRCS+=      abd.c \
        zfeature.c \
        zfs_byteswap.c \
        zfs_chksum.c \
-       zfs_file_os.c \
        zfs_fm.c \
        zfs_fuid.c \
+       zfs_impl.c \
        zfs_ioctl.c \
        zfs_log.c \
        zfs_onexit.c \
@@ -342,30 +366,36 @@ SRCS+=    abd.c \
        zvol.c
 
 #zstd
-SRCS+= zfs_zstd.c \
-       entropy_common.c \
+SRCS+= zfs_zstd.c
+
+#zstd/common
+SRCS+= entropy_common.c \
        error_private.c \
-       fse_compress.c \
        fse_decompress.c \
-       hist.c \
-       huf_compress.c \
-       huf_decompress.c \
        pool.c \
        xxhash.c \
        zstd_common.c \
+
+#zstd/compress
+SRCS+= fse_compress.c \
+       hist.c \
+       huf_compress.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/decompress
+SRCS+= huf_decompress.c \
+       zstd_ddict.c \
+       zstd_decompress_block.c \
+       zstd_decompress.c
+
 beforeinstall:
 .if ${MK_DEBUG_FILES} != "no"
        mtree -eu \
@@ -375,6 +405,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
 
@@ -382,6 +426,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}
@@ -482,6 +527,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}