1eda14cbcSMatt Macy.if !defined(WITH_CTF) 2eda14cbcSMatt MacyWITH_CTF=1 3eda14cbcSMatt Macy.endif 4eda14cbcSMatt Macy 5eda14cbcSMatt Macy.include <bsd.sys.mk> 6eda14cbcSMatt Macy 7eda14cbcSMatt MacySRCDIR=${.CURDIR} 8eda14cbcSMatt MacyINCDIR=${.CURDIR:H}/include 9eda14cbcSMatt Macy 10eda14cbcSMatt MacyKMOD= openzfs 11eda14cbcSMatt Macy 12eda14cbcSMatt Macy.PATH: ${SRCDIR}/avl \ 13eda14cbcSMatt Macy ${SRCDIR}/lua \ 14eda14cbcSMatt Macy ${SRCDIR}/nvpair \ 152a58b312SMartin Matuska ${SRCDIR}/icp/algs/blake3 \ 16dae17134SMartin Matuska ${SRCDIR}/icp/algs/edonr \ 172a58b312SMartin Matuska ${SRCDIR}/icp/algs/sha2 \ 182a58b312SMartin Matuska ${SRCDIR}/icp/asm-aarch64/blake3 \ 192a58b312SMartin Matuska ${SRCDIR}/icp/asm-aarch64/sha2 \ 202a58b312SMartin Matuska ${SRCDIR}/icp/asm-arm/sha2 \ 212a58b312SMartin Matuska ${SRCDIR}/icp/asm-ppc64/sha2 \ 222a58b312SMartin Matuska ${SRCDIR}/icp/asm-ppc64/blake3 \ 232a58b312SMartin Matuska ${SRCDIR}/icp/asm-x86_64/blake3 \ 242a58b312SMartin Matuska ${SRCDIR}/icp/asm-x86_64/sha2 \ 25eda14cbcSMatt Macy ${SRCDIR}/os/freebsd/spl \ 26eda14cbcSMatt Macy ${SRCDIR}/os/freebsd/zfs \ 27eda14cbcSMatt Macy ${SRCDIR}/unicode \ 28eda14cbcSMatt Macy ${SRCDIR}/zcommon \ 29eda14cbcSMatt Macy ${SRCDIR}/zfs \ 30eda14cbcSMatt Macy ${SRCDIR}/zstd \ 31c03c5b1cSMartin Matuska ${SRCDIR}/zstd/lib/common \ 32c03c5b1cSMartin Matuska ${SRCDIR}/zstd/lib/compress \ 33c03c5b1cSMartin Matuska ${SRCDIR}/zstd/lib/decompress 34eda14cbcSMatt Macy 35eda14cbcSMatt MacyCFLAGS+= -I${INCDIR} 362a58b312SMartin MatuskaCFLAGS+= -I${SRCDIR}/icp/include 37eda14cbcSMatt MacyCFLAGS+= -I${INCDIR}/os/freebsd 38eda14cbcSMatt MacyCFLAGS+= -I${INCDIR}/os/freebsd/spl 39eda14cbcSMatt MacyCFLAGS+= -I${INCDIR}/os/freebsd/zfs 40eda14cbcSMatt MacyCFLAGS+= -I${SRCDIR}/zstd/include 41eda14cbcSMatt MacyCFLAGS+= -include ${INCDIR}/os/freebsd/spl/sys/ccompile.h 422a58b312SMartin MatuskaCFLAGS+= -I${.CURDIR} 43eda14cbcSMatt Macy 44eda14cbcSMatt MacyCFLAGS+= -D__KERNEL__ -DFREEBSD_NAMECACHE -DBUILDING_ZFS -D__BSD_VISIBLE=1 \ 45eda14cbcSMatt Macy -DHAVE_UIO_ZEROCOPY -DWITHOUT_NETDUMP -D__KERNEL -D_SYS_CONDVAR_H_ \ 462a58b312SMartin Matuska -D_SYS_VMEM_H_ -DKDTRACE_HOOKS -DCOMPAT_FREEBSD11 47eda14cbcSMatt Macy 48eda14cbcSMatt Macy.if ${MACHINE_ARCH} == "amd64" 491f1e2261SMartin MatuskaCFLAGS+= -D__x86_64 -DHAVE_SSE2 -DHAVE_SSSE3 -DHAVE_SSE4_1 -DHAVE_SSE4_2 \ 502a58b312SMartin Matuska -DHAVE_AVX -DHAVE_AVX2 -DHAVE_AVX512F -DHAVE_AVX512VL -DHAVE_AVX512BW 51eda14cbcSMatt Macy.endif 52eda14cbcSMatt Macy 53eda14cbcSMatt Macy.if defined(WITH_DEBUG) && ${WITH_DEBUG} == "true" 547877fdebSMatt MacyCFLAGS+= -DZFS_DEBUG -g 557877fdebSMatt Macy.if defined(WITH_INVARIANTS) && ${WITH_INVARIANTS} == "true" 567877fdebSMatt Macy CFLAGS+= -DINVARIANTS -DWITNESS -DOPENSOLARIS_WITNESS 577877fdebSMatt Macy.endif 587877fdebSMatt Macy.if defined(WITH_O0) && ${WITH_O0} == "true" 597877fdebSMatt Macy CFLAGS+= -O0 607877fdebSMatt Macy.endif 61eda14cbcSMatt Macy.else 62eda14cbcSMatt MacyCFLAGS += -DNDEBUG 63eda14cbcSMatt Macy.endif 64eda14cbcSMatt Macy 65eda14cbcSMatt Macy.if defined(WITH_VFS_DEBUG) && ${WITH_VFS_DEBUG} == "true" 66eda14cbcSMatt Macy# kernel must also be built with this option for this to work 67eda14cbcSMatt MacyCFLAGS+= -DDEBUG_VFS_LOCKS 68eda14cbcSMatt Macy.endif 69eda14cbcSMatt Macy 70eda14cbcSMatt Macy.if defined(WITH_GCOV) && ${WITH_GCOV} == "true" 71eda14cbcSMatt MacyCFLAGS+= -fprofile-arcs -ftest-coverage 72eda14cbcSMatt Macy.endif 73eda14cbcSMatt Macy 74eda14cbcSMatt MacyDEBUG_FLAGS=-g 75eda14cbcSMatt Macy 76eda14cbcSMatt Macy.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "powerpc" || \ 772a58b312SMartin Matuska ${MACHINE_ARCH} == "powerpcspe" || ${MACHINE_ARCH} == "arm" 78eda14cbcSMatt MacyCFLAGS+= -DBITS_PER_LONG=32 79eda14cbcSMatt Macy.else 80eda14cbcSMatt MacyCFLAGS+= -DBITS_PER_LONG=64 81eda14cbcSMatt Macy.endif 82eda14cbcSMatt Macy 83eda14cbcSMatt MacySRCS= vnode_if.h device_if.h bus_if.h 84eda14cbcSMatt Macy 85eda14cbcSMatt Macy#avl 86eda14cbcSMatt MacySRCS+= avl.c 87eda14cbcSMatt Macy 881f1e2261SMartin Matuska#icp/algs/blake3 891f1e2261SMartin MatuskaSRCS+= blake3.c \ 901f1e2261SMartin Matuska blake3_generic.c \ 912a58b312SMartin Matuska blake3_impl.c 921f1e2261SMartin Matuska 931f1e2261SMartin Matuska#icp/asm-aarch64/blake3 941f1e2261SMartin MatuskaSRCS+= b3_aarch64_sse2.S \ 951f1e2261SMartin Matuska b3_aarch64_sse41.S 961f1e2261SMartin Matuska 971f1e2261SMartin Matuska#icp/asm-ppc64/blake3 981f1e2261SMartin MatuskaSRCS+= b3_ppc64le_sse2.S \ 991f1e2261SMartin Matuska b3_ppc64le_sse41.S 1001f1e2261SMartin Matuska 1011f1e2261SMartin Matuska#icp/asm-x86_64/blake3 1021f1e2261SMartin MatuskaSRCS+= blake3_avx2.S \ 1031f1e2261SMartin Matuska blake3_avx512.S \ 1041f1e2261SMartin Matuska blake3_sse2.S \ 1051f1e2261SMartin Matuska blake3_sse41.S 1061f1e2261SMartin Matuska 1071719886fSMartin Matuska#icp/algs/edonr 1081719886fSMartin MatuskaSRCS+= edonr.c 1091719886fSMartin Matuska 1102a58b312SMartin Matuska#icp/algs/sha2 1111719886fSMartin MatuskaSRCS+= sha256_impl.c \ 1121719886fSMartin Matuska sha2_generic.c \ 1132a58b312SMartin Matuska sha512_impl.c 1142a58b312SMartin Matuska 1152a58b312SMartin Matuska#icp/asm-arm/sha2 1162a58b312SMartin MatuskaSRCS+= sha256-armv7.S \ 1172a58b312SMartin Matuska sha512-armv7.S 1182a58b312SMartin Matuska 1192a58b312SMartin Matuska#icp/asm-aarch64/sha2 1202a58b312SMartin MatuskaSRCS+= sha256-armv8.S \ 1212a58b312SMartin Matuska sha512-armv8.S 1222a58b312SMartin Matuska 1232a58b312SMartin Matuska#icp/asm-ppc64/sha2 1242a58b312SMartin MatuskaSRCS+= sha256-p8.S \ 1252a58b312SMartin Matuska sha256-ppc.S \ 1261719886fSMartin Matuska sha512-p8.S \ 1272a58b312SMartin Matuska sha512-ppc.S 1282a58b312SMartin Matuska 1292a58b312SMartin Matuska#icp/asm-x86_64/sha2 1302a58b312SMartin MatuskaSRCS+= sha256-x86_64.S \ 1312a58b312SMartin Matuska sha512-x86_64.S 1322a58b312SMartin Matuska 133eda14cbcSMatt Macy#lua 134eda14cbcSMatt MacySRCS+= lapi.c \ 135eda14cbcSMatt Macy lauxlib.c \ 136eda14cbcSMatt Macy lbaselib.c \ 137eda14cbcSMatt Macy lcode.c \ 138eda14cbcSMatt Macy lcompat.c \ 139eda14cbcSMatt Macy lcorolib.c \ 140eda14cbcSMatt Macy lctype.c \ 141eda14cbcSMatt Macy ldebug.c \ 142eda14cbcSMatt Macy ldo.c \ 143eda14cbcSMatt Macy lfunc.c \ 144eda14cbcSMatt Macy lgc.c \ 145eda14cbcSMatt Macy llex.c \ 146eda14cbcSMatt Macy lmem.c \ 147eda14cbcSMatt Macy lobject.c \ 148eda14cbcSMatt Macy lopcodes.c \ 149eda14cbcSMatt Macy lparser.c \ 150eda14cbcSMatt Macy lstate.c \ 151eda14cbcSMatt Macy lstring.c \ 152eda14cbcSMatt Macy lstrlib.c \ 153eda14cbcSMatt Macy ltable.c \ 154eda14cbcSMatt Macy ltablib.c \ 155eda14cbcSMatt Macy ltm.c \ 156eda14cbcSMatt Macy lvm.c \ 157eda14cbcSMatt Macy lzio.c 158eda14cbcSMatt Macy 159eda14cbcSMatt Macy#nvpair 1601719886fSMartin MatuskaSRCS+= fnvpair.c \ 1611719886fSMartin Matuska nvpair.c \ 1621719886fSMartin Matuska nvpair_alloc_fixed.c \ 1631719886fSMartin Matuska nvpair_alloc_spl.c 164eda14cbcSMatt Macy 165eda14cbcSMatt Macy#os/freebsd/spl 166eda14cbcSMatt MacySRCS+= acl_common.c \ 167eda14cbcSMatt Macy callb.c \ 168eda14cbcSMatt Macy list.c \ 169eda14cbcSMatt Macy spl_acl.c \ 170eda14cbcSMatt Macy spl_cmn_err.c \ 171eda14cbcSMatt Macy spl_dtrace.c \ 172eda14cbcSMatt Macy spl_kmem.c \ 173eda14cbcSMatt Macy spl_kstat.c \ 174eda14cbcSMatt Macy spl_misc.c \ 175eda14cbcSMatt Macy spl_policy.c \ 1767877fdebSMatt Macy spl_procfs_list.c \ 177eda14cbcSMatt Macy spl_string.c \ 178eda14cbcSMatt Macy spl_sunddi.c \ 179eda14cbcSMatt Macy spl_sysevent.c \ 180eda14cbcSMatt Macy spl_taskq.c \ 181eda14cbcSMatt Macy spl_uio.c \ 182eda14cbcSMatt Macy spl_vfs.c \ 183eda14cbcSMatt Macy spl_vm.c \ 1847877fdebSMatt Macy spl_zlib.c \ 1857877fdebSMatt Macy spl_zone.c 186eda14cbcSMatt Macy 187eda14cbcSMatt Macy.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "powerpc" || \ 1882a58b312SMartin Matuska ${MACHINE_ARCH} == "powerpcspe" || ${MACHINE_ARCH} == "arm" 189eda14cbcSMatt MacySRCS+= spl_atomic.c 190eda14cbcSMatt Macy.endif 191eda14cbcSMatt Macy 192eda14cbcSMatt Macy#os/freebsd/zfs 193eda14cbcSMatt MacySRCS+= abd_os.c \ 1947877fdebSMatt Macy arc_os.c \ 195eda14cbcSMatt Macy crypto_os.c \ 196eda14cbcSMatt Macy dmu_os.c \ 197c7046f76SMartin Matuska event_os.c \ 198eda14cbcSMatt Macy hkdf.c \ 199eda14cbcSMatt Macy kmod_core.c \ 200eda14cbcSMatt Macy spa_os.c \ 201eda14cbcSMatt Macy sysctl_os.c \ 202eda14cbcSMatt Macy vdev_file.c \ 203eda14cbcSMatt Macy vdev_geom.c \ 2047877fdebSMatt Macy vdev_label_os.c \ 205eda14cbcSMatt Macy zfs_acl.c \ 206eda14cbcSMatt Macy zfs_ctldir.c \ 2077877fdebSMatt Macy zfs_debug.c \ 208eda14cbcSMatt Macy zfs_dir.c \ 2091719886fSMartin Matuska zfs_file_os.c \ 210eda14cbcSMatt Macy zfs_ioctl_compat.c \ 211eda14cbcSMatt Macy zfs_ioctl_os.c \ 212ba27dd8bSMartin Matuska zfs_racct.c \ 213eda14cbcSMatt Macy zfs_vfsops.c \ 2147877fdebSMatt Macy zfs_vnops_os.c \ 2157a7741afSMartin Matuska zfs_znode_os.c \ 216eda14cbcSMatt Macy zio_crypt.c \ 217eda14cbcSMatt Macy zvol_os.c 218eda14cbcSMatt Macy 219eda14cbcSMatt Macy#unicode 220*5c65a0a9SMartin MatuskaSRCS+= u8_textprep.c 221eda14cbcSMatt Macy 222eda14cbcSMatt Macy#zcommon 2231719886fSMartin MatuskaSRCS+= cityhash.c \ 2241719886fSMartin Matuska zfeature_common.c \ 225eda14cbcSMatt Macy zfs_comutil.c \ 226eda14cbcSMatt Macy zfs_deleg.c \ 227eda14cbcSMatt Macy zfs_fletcher_avx512.c \ 2281719886fSMartin Matuska zfs_fletcher.c \ 229eda14cbcSMatt Macy zfs_fletcher_intel.c \ 230eda14cbcSMatt Macy zfs_fletcher_sse.c \ 231eda14cbcSMatt Macy zfs_fletcher_superscalar4.c \ 2321719886fSMartin Matuska zfs_fletcher_superscalar.c \ 233eda14cbcSMatt Macy zfs_namecheck.c \ 234eda14cbcSMatt Macy zfs_prop.c \ 235e2df9bb4SMartin Matuska zfs_valstr.c \ 236eda14cbcSMatt Macy zpool_prop.c \ 237eda14cbcSMatt Macy zprop_common.c 238eda14cbcSMatt Macy 239eda14cbcSMatt Macy#zfs 240eda14cbcSMatt MacySRCS+= abd.c \ 241eda14cbcSMatt Macy aggsum.c \ 242eda14cbcSMatt Macy arc.c \ 2431f1e2261SMartin Matuska blake3_zfs.c \ 244eda14cbcSMatt Macy blkptr.c \ 245eda14cbcSMatt Macy bplist.c \ 246eda14cbcSMatt Macy bpobj.c \ 247eda14cbcSMatt Macy bptree.c \ 248eda14cbcSMatt Macy bqueue.c \ 2491719886fSMartin Matuska brt.c \ 2501719886fSMartin Matuska btree.c \ 251eda14cbcSMatt Macy dataset_kstats.c \ 2521719886fSMartin Matuska dbuf.c \ 2531719886fSMartin Matuska dbuf_stats.c \ 254eda14cbcSMatt Macy ddt.c \ 255e2df9bb4SMartin Matuska ddt_log.c \ 2564fefe1b7SMartin Matuska ddt_stats.c \ 257eda14cbcSMatt Macy ddt_zap.c \ 258eda14cbcSMatt Macy dmu.c \ 2597a7741afSMartin Matuska dmu_direct.c \ 260eda14cbcSMatt Macy dmu_diff.c \ 261eda14cbcSMatt Macy dmu_object.c \ 262eda14cbcSMatt Macy dmu_objset.c \ 263eda14cbcSMatt Macy dmu_recv.c \ 264eda14cbcSMatt Macy dmu_redact.c \ 265eda14cbcSMatt Macy dmu_send.c \ 266eda14cbcSMatt Macy dmu_traverse.c \ 267eda14cbcSMatt Macy dmu_tx.c \ 268eda14cbcSMatt Macy dmu_zfetch.c \ 269eda14cbcSMatt Macy dnode.c \ 270eda14cbcSMatt Macy dnode_sync.c \ 2711719886fSMartin Matuska dsl_bookmark.c \ 2721719886fSMartin Matuska dsl_crypt.c \ 273eda14cbcSMatt Macy dsl_dataset.c \ 274eda14cbcSMatt Macy dsl_deadlist.c \ 275eda14cbcSMatt Macy dsl_deleg.c \ 276eda14cbcSMatt Macy dsl_destroy.c \ 2771719886fSMartin Matuska dsl_dir.c \ 278eda14cbcSMatt Macy dsl_pool.c \ 279eda14cbcSMatt Macy dsl_prop.c \ 280eda14cbcSMatt Macy dsl_scan.c \ 281eda14cbcSMatt Macy dsl_synctask.c \ 282eda14cbcSMatt Macy dsl_userhold.c \ 283dae17134SMartin Matuska edonr_zfs.c \ 284eda14cbcSMatt Macy fm.c \ 285eda14cbcSMatt Macy gzip.c \ 286eda14cbcSMatt Macy lz4.c \ 287e92ffd9bSMartin Matuska lz4_zfs.c \ 2881719886fSMartin Matuska lzjb.c \ 289eda14cbcSMatt Macy metaslab.c \ 290eda14cbcSMatt Macy mmp.c \ 291eda14cbcSMatt Macy multilist.c \ 292eda14cbcSMatt Macy objlist.c \ 293eda14cbcSMatt Macy pathname.c \ 294eda14cbcSMatt Macy range_tree.c \ 295eda14cbcSMatt Macy refcount.c \ 296eda14cbcSMatt Macy rrwlock.c \ 297eda14cbcSMatt Macy sa.c \ 2982a58b312SMartin Matuska sha2_zfs.c \ 299eda14cbcSMatt Macy skein_zfs.c \ 300eda14cbcSMatt Macy spa.c \ 3011719886fSMartin Matuska space_map.c \ 3021719886fSMartin Matuska space_reftree.c \ 303eda14cbcSMatt Macy spa_checkpoint.c \ 304eda14cbcSMatt Macy spa_config.c \ 305eda14cbcSMatt Macy spa_errlog.c \ 306eda14cbcSMatt Macy spa_history.c \ 307eda14cbcSMatt Macy spa_log_spacemap.c \ 308eda14cbcSMatt Macy spa_misc.c \ 309eda14cbcSMatt Macy spa_stats.c \ 310eda14cbcSMatt Macy txg.c \ 311eda14cbcSMatt Macy uberblock.c \ 312eda14cbcSMatt Macy unique.c \ 313eda14cbcSMatt Macy vdev.c \ 3147877fdebSMatt Macy vdev_draid.c \ 3157877fdebSMatt Macy vdev_draid_rand.c \ 316eda14cbcSMatt Macy vdev_indirect_births.c \ 3171719886fSMartin Matuska vdev_indirect.c \ 318eda14cbcSMatt Macy vdev_indirect_mapping.c \ 319eda14cbcSMatt Macy vdev_initialize.c \ 320eda14cbcSMatt Macy vdev_label.c \ 321eda14cbcSMatt Macy vdev_mirror.c \ 322eda14cbcSMatt Macy vdev_missing.c \ 323eda14cbcSMatt Macy vdev_queue.c \ 324eda14cbcSMatt Macy vdev_raidz.c \ 325eda14cbcSMatt Macy vdev_raidz_math_avx2.c \ 326eda14cbcSMatt Macy vdev_raidz_math_avx512bw.c \ 327eda14cbcSMatt Macy vdev_raidz_math_avx512f.c \ 3281719886fSMartin Matuska vdev_raidz_math.c \ 3291719886fSMartin Matuska vdev_raidz_math_scalar.c \ 330eda14cbcSMatt Macy vdev_raidz_math_sse2.c \ 331eda14cbcSMatt Macy vdev_raidz_math_ssse3.c \ 332681ce946SMartin Matuska vdev_rebuild.c \ 333eda14cbcSMatt Macy vdev_removal.c \ 334eda14cbcSMatt Macy vdev_root.c \ 335eda14cbcSMatt Macy vdev_trim.c \ 336eda14cbcSMatt Macy zap.c \ 337eda14cbcSMatt Macy zap_leaf.c \ 338eda14cbcSMatt Macy zap_micro.c \ 339eda14cbcSMatt Macy zcp.c \ 340eda14cbcSMatt Macy zcp_get.c \ 341eda14cbcSMatt Macy zcp_global.c \ 342eda14cbcSMatt Macy zcp_iter.c \ 343eda14cbcSMatt Macy zcp_set.c \ 344eda14cbcSMatt Macy zcp_synctask.c \ 345eda14cbcSMatt Macy zfeature.c \ 346eda14cbcSMatt Macy zfs_byteswap.c \ 3471f1e2261SMartin Matuska zfs_chksum.c \ 348eda14cbcSMatt Macy zfs_fm.c \ 349eda14cbcSMatt Macy zfs_fuid.c \ 3502a58b312SMartin Matuska zfs_impl.c \ 351eda14cbcSMatt Macy zfs_ioctl.c \ 3527877fdebSMatt Macy zfs_log.c \ 353eda14cbcSMatt Macy zfs_onexit.c \ 354eda14cbcSMatt Macy zfs_quota.c \ 355eda14cbcSMatt Macy zfs_ratelimit.c \ 3567877fdebSMatt Macy zfs_replay.c \ 357eda14cbcSMatt Macy zfs_rlock.c \ 358eda14cbcSMatt Macy zfs_sa.c \ 3597877fdebSMatt Macy zfs_vnops.c \ 3607a7741afSMartin Matuska zfs_znode.c \ 361eda14cbcSMatt Macy zil.c \ 362eda14cbcSMatt Macy zio.c \ 363eda14cbcSMatt Macy zio_checksum.c \ 364eda14cbcSMatt Macy zio_compress.c \ 365eda14cbcSMatt Macy zio_inject.c \ 366eda14cbcSMatt Macy zle.c \ 367eda14cbcSMatt Macy zrlock.c \ 368eda14cbcSMatt Macy zthr.c \ 369eda14cbcSMatt Macy zvol.c 370eda14cbcSMatt Macy 371eda14cbcSMatt Macy#zstd 3721719886fSMartin MatuskaSRCS+= zfs_zstd.c 3731719886fSMartin Matuska 3741719886fSMartin Matuska#zstd/common 3751719886fSMartin MatuskaSRCS+= entropy_common.c \ 376c03c5b1cSMartin Matuska error_private.c \ 3772a58b312SMartin Matuska fse_decompress.c \ 3782a58b312SMartin Matuska pool.c \ 3792a58b312SMartin Matuska xxhash.c \ 3802a58b312SMartin Matuska zstd_common.c \ 3811719886fSMartin Matuska 3821719886fSMartin Matuska#zstd/compress 3831719886fSMartin MatuskaSRCS+= fse_compress.c \ 3841719886fSMartin Matuska hist.c \ 3851719886fSMartin Matuska huf_compress.c \ 386c03c5b1cSMartin Matuska zstd_compress.c \ 387c03c5b1cSMartin Matuska zstd_compress_literals.c \ 388c03c5b1cSMartin Matuska zstd_compress_sequences.c \ 389c03c5b1cSMartin Matuska zstd_compress_superblock.c \ 390c03c5b1cSMartin Matuska zstd_double_fast.c \ 391c03c5b1cSMartin Matuska zstd_fast.c \ 392c03c5b1cSMartin Matuska zstd_lazy.c \ 393c03c5b1cSMartin Matuska zstd_ldm.c \ 3942a58b312SMartin Matuska zstd_opt.c 395c03c5b1cSMartin Matuska 3961719886fSMartin Matuska#zstd/decompress 3971719886fSMartin MatuskaSRCS+= huf_decompress.c \ 3981719886fSMartin Matuska zstd_ddict.c \ 3991719886fSMartin Matuska zstd_decompress_block.c \ 4001719886fSMartin Matuska zstd_decompress.c 4011719886fSMartin Matuska 402eda14cbcSMatt Macybeforeinstall: 403eda14cbcSMatt Macy.if ${MK_DEBUG_FILES} != "no" 404eda14cbcSMatt Macy mtree -eu \ 405eda14cbcSMatt Macy -f /etc/mtree/BSD.debug.dist \ 406eda14cbcSMatt Macy -p ${DESTDIR}/usr/lib 407eda14cbcSMatt Macy.endif 408eda14cbcSMatt Macy 409eda14cbcSMatt Macy.include <bsd.kmod.mk> 410eda14cbcSMatt Macy 4114e8d558cSMartin Matuska# Generated binary search code is particularly bad with this optimization. 4124e8d558cSMartin Matuska# Oddly, range_tree.c is not affected when unrolling is not done and dsl_scan.c 4134e8d558cSMartin Matuska# is not affected when unrolling is done. 4144e8d558cSMartin Matuska# Disable it until the following upstream issue is resolved: 4154e8d558cSMartin Matuska# https://github.com/llvm/llvm-project/issues/62790 4164e8d558cSMartin Matuska.if ${CC} == "clang" 4174e8d558cSMartin Matuska.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "amd64" 4184e8d558cSMartin MatuskaCFLAGS.dsl_scan.c= -mllvm -x86-cmov-converter=false 4194e8d558cSMartin MatuskaCFLAGS.metaslab.c= -mllvm -x86-cmov-converter=false 4204e8d558cSMartin MatuskaCFLAGS.range_tree.c= -mllvm -x86-cmov-converter=false 4214e8d558cSMartin MatuskaCFLAGS.zap_micro.c= -mllvm -x86-cmov-converter=false 4224e8d558cSMartin Matuska.endif 4234e8d558cSMartin Matuska.endif 4244e8d558cSMartin Matuska 4252a58b312SMartin MatuskaCFLAGS.sysctl_os.c= -include ../zfs_config.h 4262a58b312SMartin MatuskaCFLAGS.xxhash.c+= -include ${SYSDIR}/sys/_null.h 427eda14cbcSMatt Macy 428eda14cbcSMatt MacyCFLAGS.gcc+= -Wno-pointer-to-int-cast 429eda14cbcSMatt Macy 430eda14cbcSMatt MacyCFLAGS.abd.c= -Wno-cast-qual 431eda14cbcSMatt MacyCFLAGS.ddt.c= -Wno-cast-qual 432e2df9bb4SMartin MatuskaCFLAGS.ddt_log.c= -Wno-cast-qual -Wno-pointer-arith 4334fefe1b7SMartin MatuskaCFLAGS.ddt_zap.c= -Wno-cast-qual 434eda14cbcSMatt MacyCFLAGS.dmu.c= -Wno-cast-qual 435eda14cbcSMatt MacyCFLAGS.dmu_traverse.c= -Wno-cast-qual 4362a58b312SMartin MatuskaCFLAGS.dnode.c= ${NO_WUNUSED_BUT_SET_VARIABLE} 437eda14cbcSMatt MacyCFLAGS.dsl_deadlist.c= -Wno-cast-qual 4382a58b312SMartin MatuskaCFLAGS.dsl_dir.c= -Wno-cast-qual 439eda14cbcSMatt MacyCFLAGS.dsl_prop.c= -Wno-cast-qual 440dae17134SMartin MatuskaCFLAGS.edonr.c= -Wno-cast-qual 441eda14cbcSMatt MacyCFLAGS.fm.c= -Wno-cast-qual 4422a58b312SMartin MatuskaCFLAGS.hist.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 4432a58b312SMartin MatuskaCFLAGS.lapi.c= -Wno-cast-qual 4442a58b312SMartin MatuskaCFLAGS.lcompat.c= -Wno-cast-qual 4452a58b312SMartin MatuskaCFLAGS.ldo.c= ${NO_WINFINITE_RECURSION} 4462a58b312SMartin MatuskaCFLAGS.lobject.c= -Wno-cast-qual 4472a58b312SMartin MatuskaCFLAGS.ltable.c= -Wno-cast-qual 4482a58b312SMartin MatuskaCFLAGS.lvm.c= -Wno-cast-qual 4492a58b312SMartin MatuskaCFLAGS.lz4.c= -Wno-cast-qual 450e92ffd9bSMartin MatuskaCFLAGS.lz4_zfs.c= -Wno-cast-qual 4512a58b312SMartin MatuskaCFLAGS.nvpair.c= -Wno-cast-qual -DHAVE_RPC_TYPES ${NO_WSTRINGOP_OVERREAD} 4522a58b312SMartin MatuskaCFLAGS.pool.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 4532a58b312SMartin MatuskaCFLAGS.pool.c= -U__BMI__ -fno-tree-vectorize 454eda14cbcSMatt MacyCFLAGS.spa.c= -Wno-cast-qual 455eda14cbcSMatt MacyCFLAGS.spa_misc.c= -Wno-cast-qual 4562a58b312SMartin MatuskaCFLAGS.spl_string.c= -Wno-cast-qual 4572a58b312SMartin MatuskaCFLAGS.spl_vm.c= -Wno-cast-qual 4582a58b312SMartin MatuskaCFLAGS.spl_zlib.c= -Wno-cast-qual 4592a58b312SMartin MatuskaCFLAGS.u8_textprep.c= -Wno-cast-qual 4607877fdebSMatt MacyCFLAGS.vdev_draid.c= -Wno-cast-qual 461eda14cbcSMatt MacyCFLAGS.vdev_raidz.c= -Wno-cast-qual 462eda14cbcSMatt MacyCFLAGS.vdev_raidz_math.c= -Wno-cast-qual 463eda14cbcSMatt MacyCFLAGS.vdev_raidz_math_avx2.c= -Wno-cast-qual -Wno-duplicate-decl-specifier 464eda14cbcSMatt MacyCFLAGS.vdev_raidz_math_avx512f.c= -Wno-cast-qual -Wno-duplicate-decl-specifier 4652a58b312SMartin MatuskaCFLAGS.vdev_raidz_math_scalar.c= -Wno-cast-qual 466eda14cbcSMatt MacyCFLAGS.vdev_raidz_math_sse2.c= -Wno-cast-qual -Wno-duplicate-decl-specifier 467eda14cbcSMatt MacyCFLAGS.zap_leaf.c= -Wno-cast-qual 468eda14cbcSMatt MacyCFLAGS.zap_micro.c= -Wno-cast-qual 469eda14cbcSMatt MacyCFLAGS.zcp.c= -Wno-cast-qual 4702a58b312SMartin MatuskaCFLAGS.zfs_fletcher.c= -Wno-cast-qual -Wno-pointer-arith 4712a58b312SMartin MatuskaCFLAGS.zfs_fletcher_avx512.c= -Wno-cast-qual -Wno-pointer-arith 4722a58b312SMartin MatuskaCFLAGS.zfs_fletcher_intel.c= -Wno-cast-qual -Wno-pointer-arith 4732a58b312SMartin MatuskaCFLAGS.zfs_fletcher_sse.c= -Wno-cast-qual -Wno-pointer-arith 4742a58b312SMartin MatuskaCFLAGS.zfs_fm.c= -Wno-cast-qual ${NO_WUNUSED_BUT_SET_VARIABLE} 475eda14cbcSMatt MacyCFLAGS.zfs_ioctl.c= -Wno-cast-qual 4762a58b312SMartin MatuskaCFLAGS.zfs_log.c= -Wno-cast-qual 4772a58b312SMartin MatuskaCFLAGS.zfs_vnops_os.c= -Wno-pointer-arith 4782a58b312SMartin MatuskaCFLAGS.zfs_zstd.c= -Wno-cast-qual -Wno-pointer-arith 479eda14cbcSMatt MacyCFLAGS.zil.c= -Wno-cast-qual 480eda14cbcSMatt MacyCFLAGS.zio.c= -Wno-cast-qual 4812a58b312SMartin MatuskaCFLAGS.zprop_common.c= -Wno-cast-qual 482eda14cbcSMatt MacyCFLAGS.zrlock.c= -Wno-cast-qual 4832a58b312SMartin Matuska 4842a58b312SMartin Matuska#zstd 4852a58b312SMartin MatuskaCFLAGS.entropy_common.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 4862a58b312SMartin MatuskaCFLAGS.error_private.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 4872a58b312SMartin MatuskaCFLAGS.fse_compress.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} ${NO_WUNUSED_BUT_SET_VARIABLE} 4882a58b312SMartin MatuskaCFLAGS.fse_decompress.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 4892a58b312SMartin MatuskaCFLAGS.huf_compress.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 4902a58b312SMartin MatuskaCFLAGS.huf_decompress.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 4912a58b312SMartin MatuskaCFLAGS.xxhash.c+= -U__BMI__ -fno-tree-vectorize 4922a58b312SMartin MatuskaCFLAGS.xxhash.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 4932a58b312SMartin MatuskaCFLAGS.zstd.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 4942a58b312SMartin MatuskaCFLAGS.zstd_common.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 4952a58b312SMartin MatuskaCFLAGS.zstd_compress.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 4962a58b312SMartin MatuskaCFLAGS.zstd_compress_literals.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 4972a58b312SMartin MatuskaCFLAGS.zstd_compress_sequences.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 4982a58b312SMartin MatuskaCFLAGS.zstd_compress_superblock.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} ${NO_WUNUSED_BUT_SET_VARIABLE} 4992a58b312SMartin MatuskaCFLAGS.zstd_ddict.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5002a58b312SMartin MatuskaCFLAGS.zstd_decompress.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5012a58b312SMartin MatuskaCFLAGS.zstd_decompress_block.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5022a58b312SMartin MatuskaCFLAGS.zstd_double_fast.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5032a58b312SMartin MatuskaCFLAGS.zstd_fast.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5042a58b312SMartin MatuskaCFLAGS.zstd_lazy.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5052a58b312SMartin MatuskaCFLAGS.zstd_ldm.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5062a58b312SMartin MatuskaCFLAGS.zstd_opt.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5072a58b312SMartin Matuska 5082a58b312SMartin Matuska.if ${MACHINE_CPUARCH} == "aarch64" 5092a58b312SMartin Matuska__ZFS_ZSTD_AARCH64_FLAGS= -include ${SRCDIR}/zstd/include/aarch64_compat.h 5102a58b312SMartin MatuskaCFLAGS.zstd.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5112a58b312SMartin MatuskaCFLAGS.entropy_common.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5122a58b312SMartin MatuskaCFLAGS.error_private.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5132a58b312SMartin MatuskaCFLAGS.fse_compress.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5142a58b312SMartin MatuskaCFLAGS.fse_decompress.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5152a58b312SMartin MatuskaCFLAGS.hist.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5162a58b312SMartin MatuskaCFLAGS.huf_compress.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5172a58b312SMartin MatuskaCFLAGS.huf_decompress.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5182a58b312SMartin MatuskaCFLAGS.pool.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5192a58b312SMartin MatuskaCFLAGS.xxhash.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5202a58b312SMartin MatuskaCFLAGS.zstd_common.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5212a58b312SMartin MatuskaCFLAGS.zstd_compress.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5222a58b312SMartin MatuskaCFLAGS.zstd_compress_literals.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5232a58b312SMartin MatuskaCFLAGS.zstd_compress_sequences.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5242a58b312SMartin MatuskaCFLAGS.zstd_compress_superblock.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5252a58b312SMartin MatuskaCFLAGS.zstd_ddict.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5262a58b312SMartin MatuskaCFLAGS.zstd_decompress.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5272a58b312SMartin MatuskaCFLAGS.zstd_decompress_block.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5282a58b312SMartin MatuskaCFLAGS.zstd_double_fast.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5292a58b312SMartin MatuskaCFLAGS.zstd_fast.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5302a58b312SMartin MatuskaCFLAGS.zstd_lazy.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5312a58b312SMartin MatuskaCFLAGS.zstd_ldm.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5322a58b312SMartin MatuskaCFLAGS.zstd_opt.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5332a58b312SMartin Matuska 534d411c1d6SMartin Matuskasha256-armv8.o: sha256-armv8.S 535d411c1d6SMartin Matuska ${CC} -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${.IMPSRC} \ 536d411c1d6SMartin Matuska -o ${.TARGET} 537d411c1d6SMartin Matuska ${CTFCONVERT_CMD} 538d411c1d6SMartin Matuska 539d411c1d6SMartin Matuskasha512-armv8.o: sha512-armv8.S 540d411c1d6SMartin Matuska ${CC} -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${.IMPSRC} \ 541d411c1d6SMartin Matuska -o ${.TARGET} 542d411c1d6SMartin Matuska ${CTFCONVERT_CMD} 543d411c1d6SMartin Matuska 5442a58b312SMartin Matuskab3_aarch64_sse2.o: b3_aarch64_sse2.S 5452a58b312SMartin Matuska ${CC} -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${.IMPSRC} \ 5462a58b312SMartin Matuska -o ${.TARGET} 5472a58b312SMartin Matuska ${CTFCONVERT_CMD} 5482a58b312SMartin Matuska 5492a58b312SMartin Matuskab3_aarch64_sse41.o: b3_aarch64_sse41.S 5502a58b312SMartin Matuska ${CC} -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${.IMPSRC} \ 5512a58b312SMartin Matuska -o ${.TARGET} 5522a58b312SMartin Matuska ${CTFCONVERT_CMD} 5532a58b312SMartin Matuska 5542a58b312SMartin Matuska.endif 555