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 93*071ab5a1SMartin Matuska.if ${MACHINE_ARCH} == "aarch64" 941f1e2261SMartin Matuska#icp/asm-aarch64/blake3 951f1e2261SMartin MatuskaSRCS+= b3_aarch64_sse2.S \ 961f1e2261SMartin Matuska b3_aarch64_sse41.S 97*071ab5a1SMartin Matuska.endif 981f1e2261SMartin Matuska 99*071ab5a1SMartin Matuska.if ${MACHINE_ARCH} == "powerpc64le" 1001f1e2261SMartin Matuska#icp/asm-ppc64/blake3 1011f1e2261SMartin MatuskaSRCS+= b3_ppc64le_sse2.S \ 1021f1e2261SMartin Matuska b3_ppc64le_sse41.S 103*071ab5a1SMartin Matuska.endif 1041f1e2261SMartin Matuska 105*071ab5a1SMartin Matuska.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386" 1061f1e2261SMartin Matuska#icp/asm-x86_64/blake3 1071f1e2261SMartin MatuskaSRCS+= blake3_avx2.S \ 1081f1e2261SMartin Matuska blake3_avx512.S \ 1091f1e2261SMartin Matuska blake3_sse2.S \ 1101f1e2261SMartin Matuska blake3_sse41.S 111*071ab5a1SMartin Matuska.endif 1121f1e2261SMartin Matuska 1131719886fSMartin Matuska#icp/algs/edonr 1141719886fSMartin MatuskaSRCS+= edonr.c 1151719886fSMartin Matuska 1162a58b312SMartin Matuska#icp/algs/sha2 1171719886fSMartin MatuskaSRCS+= sha256_impl.c \ 1181719886fSMartin Matuska sha2_generic.c \ 1192a58b312SMartin Matuska sha512_impl.c 1202a58b312SMartin Matuska 121*071ab5a1SMartin Matuska.if ${MACHINE_ARCH} == "armv7" 1222a58b312SMartin Matuska#icp/asm-arm/sha2 1232a58b312SMartin MatuskaSRCS+= sha256-armv7.S \ 1242a58b312SMartin Matuska sha512-armv7.S 125*071ab5a1SMartin Matuska.endif 1262a58b312SMartin Matuska 127*071ab5a1SMartin Matuska.if ${MACHINE_ARCH} == "aarch64" 1282a58b312SMartin Matuska#icp/asm-aarch64/sha2 1292a58b312SMartin MatuskaSRCS+= sha256-armv8.S \ 1302a58b312SMartin Matuska sha512-armv8.S 131*071ab5a1SMartin Matuska.endif 1322a58b312SMartin Matuska 133*071ab5a1SMartin Matuska.if ${MACHINE_ARCH} == "powerpc64" || ${MACHINE_ARCH} == "powerpc64le" 1342a58b312SMartin Matuska#icp/asm-ppc64/sha2 1352a58b312SMartin MatuskaSRCS+= sha256-p8.S \ 1362a58b312SMartin Matuska sha256-ppc.S \ 1371719886fSMartin Matuska sha512-p8.S \ 1382a58b312SMartin Matuska sha512-ppc.S 139*071ab5a1SMartin Matuska.endif 1402a58b312SMartin Matuska 141*071ab5a1SMartin Matuska.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386" 1422a58b312SMartin Matuska#icp/asm-x86_64/sha2 1432a58b312SMartin MatuskaSRCS+= sha256-x86_64.S \ 1442a58b312SMartin Matuska sha512-x86_64.S 145*071ab5a1SMartin Matuska.endif 1462a58b312SMartin Matuska 147eda14cbcSMatt Macy#lua 148eda14cbcSMatt MacySRCS+= lapi.c \ 149eda14cbcSMatt Macy lauxlib.c \ 150eda14cbcSMatt Macy lbaselib.c \ 151eda14cbcSMatt Macy lcode.c \ 152eda14cbcSMatt Macy lcompat.c \ 153eda14cbcSMatt Macy lcorolib.c \ 154eda14cbcSMatt Macy lctype.c \ 155eda14cbcSMatt Macy ldebug.c \ 156eda14cbcSMatt Macy ldo.c \ 157eda14cbcSMatt Macy lfunc.c \ 158eda14cbcSMatt Macy lgc.c \ 159eda14cbcSMatt Macy llex.c \ 160eda14cbcSMatt Macy lmem.c \ 161eda14cbcSMatt Macy lobject.c \ 162eda14cbcSMatt Macy lopcodes.c \ 163eda14cbcSMatt Macy lparser.c \ 164eda14cbcSMatt Macy lstate.c \ 165eda14cbcSMatt Macy lstring.c \ 166eda14cbcSMatt Macy lstrlib.c \ 167eda14cbcSMatt Macy ltable.c \ 168eda14cbcSMatt Macy ltablib.c \ 169eda14cbcSMatt Macy ltm.c \ 170eda14cbcSMatt Macy lvm.c \ 171eda14cbcSMatt Macy lzio.c 172eda14cbcSMatt Macy 173eda14cbcSMatt Macy#nvpair 1741719886fSMartin MatuskaSRCS+= fnvpair.c \ 1751719886fSMartin Matuska nvpair.c \ 1761719886fSMartin Matuska nvpair_alloc_fixed.c \ 1771719886fSMartin Matuska nvpair_alloc_spl.c 178eda14cbcSMatt Macy 179eda14cbcSMatt Macy#os/freebsd/spl 180eda14cbcSMatt MacySRCS+= acl_common.c \ 181eda14cbcSMatt Macy callb.c \ 182eda14cbcSMatt Macy list.c \ 183eda14cbcSMatt Macy spl_acl.c \ 184eda14cbcSMatt Macy spl_cmn_err.c \ 185eda14cbcSMatt Macy spl_dtrace.c \ 186eda14cbcSMatt Macy spl_kmem.c \ 187eda14cbcSMatt Macy spl_kstat.c \ 188eda14cbcSMatt Macy spl_misc.c \ 189eda14cbcSMatt Macy spl_policy.c \ 1907877fdebSMatt Macy spl_procfs_list.c \ 191eda14cbcSMatt Macy spl_string.c \ 192eda14cbcSMatt Macy spl_sunddi.c \ 193eda14cbcSMatt Macy spl_sysevent.c \ 194eda14cbcSMatt Macy spl_taskq.c \ 195eda14cbcSMatt Macy spl_uio.c \ 196eda14cbcSMatt Macy spl_vfs.c \ 197eda14cbcSMatt Macy spl_vm.c \ 1987877fdebSMatt Macy spl_zlib.c \ 1997877fdebSMatt Macy spl_zone.c 200eda14cbcSMatt Macy 201eda14cbcSMatt Macy.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "powerpc" || \ 2022a58b312SMartin Matuska ${MACHINE_ARCH} == "powerpcspe" || ${MACHINE_ARCH} == "arm" 203eda14cbcSMatt MacySRCS+= spl_atomic.c 204eda14cbcSMatt Macy.endif 205eda14cbcSMatt Macy 206eda14cbcSMatt Macy#os/freebsd/zfs 207eda14cbcSMatt MacySRCS+= abd_os.c \ 2087877fdebSMatt Macy arc_os.c \ 209eda14cbcSMatt Macy crypto_os.c \ 210eda14cbcSMatt Macy dmu_os.c \ 211c7046f76SMartin Matuska event_os.c \ 212eda14cbcSMatt Macy hkdf.c \ 213eda14cbcSMatt Macy kmod_core.c \ 214eda14cbcSMatt Macy spa_os.c \ 215eda14cbcSMatt Macy sysctl_os.c \ 216eda14cbcSMatt Macy vdev_geom.c \ 2177877fdebSMatt Macy vdev_label_os.c \ 218eda14cbcSMatt Macy zfs_acl.c \ 219eda14cbcSMatt Macy zfs_ctldir.c \ 2207877fdebSMatt Macy zfs_debug.c \ 221eda14cbcSMatt Macy zfs_dir.c \ 2221719886fSMartin Matuska zfs_file_os.c \ 223eda14cbcSMatt Macy zfs_ioctl_compat.c \ 224eda14cbcSMatt Macy zfs_ioctl_os.c \ 225ba27dd8bSMartin Matuska zfs_racct.c \ 226eda14cbcSMatt Macy zfs_vfsops.c \ 2277877fdebSMatt Macy zfs_vnops_os.c \ 2287a7741afSMartin Matuska zfs_znode_os.c \ 229eda14cbcSMatt Macy zio_crypt.c \ 230eda14cbcSMatt Macy zvol_os.c 231eda14cbcSMatt Macy 232eda14cbcSMatt Macy#unicode 2335c65a0a9SMartin MatuskaSRCS+= u8_textprep.c 234eda14cbcSMatt Macy 235eda14cbcSMatt Macy#zcommon 2361719886fSMartin MatuskaSRCS+= cityhash.c \ 2371719886fSMartin Matuska zfeature_common.c \ 238eda14cbcSMatt Macy zfs_comutil.c \ 239eda14cbcSMatt Macy zfs_deleg.c \ 240eda14cbcSMatt Macy zfs_fletcher_avx512.c \ 2411719886fSMartin Matuska zfs_fletcher.c \ 242eda14cbcSMatt Macy zfs_fletcher_intel.c \ 243eda14cbcSMatt Macy zfs_fletcher_sse.c \ 244eda14cbcSMatt Macy zfs_fletcher_superscalar4.c \ 2451719886fSMartin Matuska zfs_fletcher_superscalar.c \ 246eda14cbcSMatt Macy zfs_namecheck.c \ 247eda14cbcSMatt Macy zfs_prop.c \ 248e2df9bb4SMartin Matuska zfs_valstr.c \ 249eda14cbcSMatt Macy zpool_prop.c \ 250eda14cbcSMatt Macy zprop_common.c 251eda14cbcSMatt Macy 252eda14cbcSMatt Macy#zfs 253eda14cbcSMatt MacySRCS+= abd.c \ 254eda14cbcSMatt Macy aggsum.c \ 255eda14cbcSMatt Macy arc.c \ 2561f1e2261SMartin Matuska blake3_zfs.c \ 257eda14cbcSMatt Macy blkptr.c \ 258eda14cbcSMatt Macy bplist.c \ 259eda14cbcSMatt Macy bpobj.c \ 260eda14cbcSMatt Macy bptree.c \ 261eda14cbcSMatt Macy bqueue.c \ 2621719886fSMartin Matuska brt.c \ 2631719886fSMartin Matuska btree.c \ 264eda14cbcSMatt Macy dataset_kstats.c \ 2651719886fSMartin Matuska dbuf.c \ 2661719886fSMartin Matuska dbuf_stats.c \ 267eda14cbcSMatt Macy ddt.c \ 268e2df9bb4SMartin Matuska ddt_log.c \ 2694fefe1b7SMartin Matuska ddt_stats.c \ 270eda14cbcSMatt Macy ddt_zap.c \ 271eda14cbcSMatt Macy dmu.c \ 2727a7741afSMartin Matuska dmu_direct.c \ 273eda14cbcSMatt Macy dmu_diff.c \ 274eda14cbcSMatt Macy dmu_object.c \ 275eda14cbcSMatt Macy dmu_objset.c \ 276eda14cbcSMatt Macy dmu_recv.c \ 277eda14cbcSMatt Macy dmu_redact.c \ 278eda14cbcSMatt Macy dmu_send.c \ 279eda14cbcSMatt Macy dmu_traverse.c \ 280eda14cbcSMatt Macy dmu_tx.c \ 281eda14cbcSMatt Macy dmu_zfetch.c \ 282eda14cbcSMatt Macy dnode.c \ 283eda14cbcSMatt Macy dnode_sync.c \ 2841719886fSMartin Matuska dsl_bookmark.c \ 2851719886fSMartin Matuska dsl_crypt.c \ 286eda14cbcSMatt Macy dsl_dataset.c \ 287eda14cbcSMatt Macy dsl_deadlist.c \ 288eda14cbcSMatt Macy dsl_deleg.c \ 289eda14cbcSMatt Macy dsl_destroy.c \ 2901719886fSMartin Matuska dsl_dir.c \ 291eda14cbcSMatt Macy dsl_pool.c \ 292eda14cbcSMatt Macy dsl_prop.c \ 293eda14cbcSMatt Macy dsl_scan.c \ 294eda14cbcSMatt Macy dsl_synctask.c \ 295eda14cbcSMatt Macy dsl_userhold.c \ 296dae17134SMartin Matuska edonr_zfs.c \ 297eda14cbcSMatt Macy fm.c \ 298eda14cbcSMatt Macy gzip.c \ 299eda14cbcSMatt Macy lz4.c \ 300e92ffd9bSMartin Matuska lz4_zfs.c \ 3011719886fSMartin Matuska lzjb.c \ 302eda14cbcSMatt Macy metaslab.c \ 303eda14cbcSMatt Macy mmp.c \ 304eda14cbcSMatt Macy multilist.c \ 305eda14cbcSMatt Macy objlist.c \ 306eda14cbcSMatt Macy pathname.c \ 307eda14cbcSMatt Macy range_tree.c \ 308eda14cbcSMatt Macy refcount.c \ 309eda14cbcSMatt Macy rrwlock.c \ 310eda14cbcSMatt Macy sa.c \ 3112a58b312SMartin Matuska sha2_zfs.c \ 312eda14cbcSMatt Macy skein_zfs.c \ 313eda14cbcSMatt Macy spa.c \ 3141719886fSMartin Matuska space_map.c \ 3151719886fSMartin Matuska space_reftree.c \ 316eda14cbcSMatt Macy spa_checkpoint.c \ 317eda14cbcSMatt Macy spa_config.c \ 318eda14cbcSMatt Macy spa_errlog.c \ 319eda14cbcSMatt Macy spa_history.c \ 320eda14cbcSMatt Macy spa_log_spacemap.c \ 321eda14cbcSMatt Macy spa_misc.c \ 322eda14cbcSMatt Macy spa_stats.c \ 323eda14cbcSMatt Macy txg.c \ 324eda14cbcSMatt Macy uberblock.c \ 325eda14cbcSMatt Macy unique.c \ 326eda14cbcSMatt Macy vdev.c \ 3277877fdebSMatt Macy vdev_draid.c \ 3287877fdebSMatt Macy vdev_draid_rand.c \ 329d2a8fad3SMartin Matuska vdev_file.c \ 330eda14cbcSMatt Macy vdev_indirect_births.c \ 3311719886fSMartin Matuska vdev_indirect.c \ 332eda14cbcSMatt Macy vdev_indirect_mapping.c \ 333eda14cbcSMatt Macy vdev_initialize.c \ 334eda14cbcSMatt Macy vdev_label.c \ 335eda14cbcSMatt Macy vdev_mirror.c \ 336eda14cbcSMatt Macy vdev_missing.c \ 337eda14cbcSMatt Macy vdev_queue.c \ 338eda14cbcSMatt Macy vdev_raidz.c \ 339eda14cbcSMatt Macy vdev_raidz_math_avx2.c \ 340eda14cbcSMatt Macy vdev_raidz_math_avx512bw.c \ 341eda14cbcSMatt Macy vdev_raidz_math_avx512f.c \ 3421719886fSMartin Matuska vdev_raidz_math.c \ 3431719886fSMartin Matuska vdev_raidz_math_scalar.c \ 344eda14cbcSMatt Macy vdev_raidz_math_sse2.c \ 345eda14cbcSMatt Macy vdev_raidz_math_ssse3.c \ 346681ce946SMartin Matuska vdev_rebuild.c \ 347eda14cbcSMatt Macy vdev_removal.c \ 348eda14cbcSMatt Macy vdev_root.c \ 349eda14cbcSMatt Macy vdev_trim.c \ 350eda14cbcSMatt Macy zap.c \ 351eda14cbcSMatt Macy zap_leaf.c \ 352eda14cbcSMatt Macy zap_micro.c \ 353eda14cbcSMatt Macy zcp.c \ 354eda14cbcSMatt Macy zcp_get.c \ 355eda14cbcSMatt Macy zcp_global.c \ 356eda14cbcSMatt Macy zcp_iter.c \ 357eda14cbcSMatt Macy zcp_set.c \ 358eda14cbcSMatt Macy zcp_synctask.c \ 359eda14cbcSMatt Macy zfeature.c \ 360eda14cbcSMatt Macy zfs_byteswap.c \ 3611f1e2261SMartin Matuska zfs_chksum.c \ 362eda14cbcSMatt Macy zfs_fm.c \ 363eda14cbcSMatt Macy zfs_fuid.c \ 3642a58b312SMartin Matuska zfs_impl.c \ 365eda14cbcSMatt Macy zfs_ioctl.c \ 3667877fdebSMatt Macy zfs_log.c \ 367eda14cbcSMatt Macy zfs_onexit.c \ 368eda14cbcSMatt Macy zfs_quota.c \ 369eda14cbcSMatt Macy zfs_ratelimit.c \ 3707877fdebSMatt Macy zfs_replay.c \ 371eda14cbcSMatt Macy zfs_rlock.c \ 372eda14cbcSMatt Macy zfs_sa.c \ 3737877fdebSMatt Macy zfs_vnops.c \ 3747a7741afSMartin Matuska zfs_znode.c \ 375eda14cbcSMatt Macy zil.c \ 376eda14cbcSMatt Macy zio.c \ 377eda14cbcSMatt Macy zio_checksum.c \ 378eda14cbcSMatt Macy zio_compress.c \ 379eda14cbcSMatt Macy zio_inject.c \ 380eda14cbcSMatt Macy zle.c \ 381eda14cbcSMatt Macy zrlock.c \ 382eda14cbcSMatt Macy zthr.c \ 383eda14cbcSMatt Macy zvol.c 384eda14cbcSMatt Macy 385eda14cbcSMatt Macy#zstd 3861719886fSMartin MatuskaSRCS+= zfs_zstd.c 3871719886fSMartin Matuska 3881719886fSMartin Matuska#zstd/common 3891719886fSMartin MatuskaSRCS+= entropy_common.c \ 390c03c5b1cSMartin Matuska error_private.c \ 3912a58b312SMartin Matuska fse_decompress.c \ 3922a58b312SMartin Matuska pool.c \ 3932a58b312SMartin Matuska xxhash.c \ 3942a58b312SMartin Matuska zstd_common.c \ 3951719886fSMartin Matuska 3961719886fSMartin Matuska#zstd/compress 3971719886fSMartin MatuskaSRCS+= fse_compress.c \ 3981719886fSMartin Matuska hist.c \ 3991719886fSMartin Matuska huf_compress.c \ 400c03c5b1cSMartin Matuska zstd_compress.c \ 401c03c5b1cSMartin Matuska zstd_compress_literals.c \ 402c03c5b1cSMartin Matuska zstd_compress_sequences.c \ 403c03c5b1cSMartin Matuska zstd_compress_superblock.c \ 404c03c5b1cSMartin Matuska zstd_double_fast.c \ 405c03c5b1cSMartin Matuska zstd_fast.c \ 406c03c5b1cSMartin Matuska zstd_lazy.c \ 407c03c5b1cSMartin Matuska zstd_ldm.c \ 4082a58b312SMartin Matuska zstd_opt.c 409c03c5b1cSMartin Matuska 4101719886fSMartin Matuska#zstd/decompress 4111719886fSMartin MatuskaSRCS+= huf_decompress.c \ 4121719886fSMartin Matuska zstd_ddict.c \ 4131719886fSMartin Matuska zstd_decompress_block.c \ 4141719886fSMartin Matuska zstd_decompress.c 4151719886fSMartin Matuska 416eda14cbcSMatt Macybeforeinstall: 417eda14cbcSMatt Macy.if ${MK_DEBUG_FILES} != "no" 418eda14cbcSMatt Macy mtree -eu \ 419eda14cbcSMatt Macy -f /etc/mtree/BSD.debug.dist \ 420eda14cbcSMatt Macy -p ${DESTDIR}/usr/lib 421eda14cbcSMatt Macy.endif 422eda14cbcSMatt Macy 423eda14cbcSMatt Macy.include <bsd.kmod.mk> 424eda14cbcSMatt Macy 4254e8d558cSMartin Matuska# Generated binary search code is particularly bad with this optimization. 4264e8d558cSMartin Matuska# Oddly, range_tree.c is not affected when unrolling is not done and dsl_scan.c 4274e8d558cSMartin Matuska# is not affected when unrolling is done. 4284e8d558cSMartin Matuska# Disable it until the following upstream issue is resolved: 4294e8d558cSMartin Matuska# https://github.com/llvm/llvm-project/issues/62790 4304e8d558cSMartin Matuska.if ${CC} == "clang" 4314e8d558cSMartin Matuska.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "amd64" 4324e8d558cSMartin MatuskaCFLAGS.dsl_scan.c= -mllvm -x86-cmov-converter=false 4334e8d558cSMartin MatuskaCFLAGS.metaslab.c= -mllvm -x86-cmov-converter=false 4344e8d558cSMartin MatuskaCFLAGS.range_tree.c= -mllvm -x86-cmov-converter=false 4354e8d558cSMartin MatuskaCFLAGS.zap_micro.c= -mllvm -x86-cmov-converter=false 4364e8d558cSMartin Matuska.endif 4374e8d558cSMartin Matuska.endif 4384e8d558cSMartin Matuska 4392a58b312SMartin MatuskaCFLAGS.sysctl_os.c= -include ../zfs_config.h 4402a58b312SMartin MatuskaCFLAGS.xxhash.c+= -include ${SYSDIR}/sys/_null.h 441eda14cbcSMatt Macy 442eda14cbcSMatt MacyCFLAGS.gcc+= -Wno-pointer-to-int-cast 443eda14cbcSMatt Macy 444eda14cbcSMatt MacyCFLAGS.abd.c= -Wno-cast-qual 445eda14cbcSMatt MacyCFLAGS.ddt.c= -Wno-cast-qual 446e2df9bb4SMartin MatuskaCFLAGS.ddt_log.c= -Wno-cast-qual -Wno-pointer-arith 4474fefe1b7SMartin MatuskaCFLAGS.ddt_zap.c= -Wno-cast-qual 448eda14cbcSMatt MacyCFLAGS.dmu.c= -Wno-cast-qual 449eda14cbcSMatt MacyCFLAGS.dmu_traverse.c= -Wno-cast-qual 4502a58b312SMartin MatuskaCFLAGS.dnode.c= ${NO_WUNUSED_BUT_SET_VARIABLE} 451eda14cbcSMatt MacyCFLAGS.dsl_deadlist.c= -Wno-cast-qual 4522a58b312SMartin MatuskaCFLAGS.dsl_dir.c= -Wno-cast-qual 453eda14cbcSMatt MacyCFLAGS.dsl_prop.c= -Wno-cast-qual 454dae17134SMartin MatuskaCFLAGS.edonr.c= -Wno-cast-qual 455eda14cbcSMatt MacyCFLAGS.fm.c= -Wno-cast-qual 4562a58b312SMartin MatuskaCFLAGS.hist.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 4572a58b312SMartin MatuskaCFLAGS.lapi.c= -Wno-cast-qual 4582a58b312SMartin MatuskaCFLAGS.lcompat.c= -Wno-cast-qual 4592a58b312SMartin MatuskaCFLAGS.ldo.c= ${NO_WINFINITE_RECURSION} 4602a58b312SMartin MatuskaCFLAGS.lobject.c= -Wno-cast-qual 4612a58b312SMartin MatuskaCFLAGS.ltable.c= -Wno-cast-qual 4622a58b312SMartin MatuskaCFLAGS.lvm.c= -Wno-cast-qual 4632a58b312SMartin MatuskaCFLAGS.lz4.c= -Wno-cast-qual 464e92ffd9bSMartin MatuskaCFLAGS.lz4_zfs.c= -Wno-cast-qual 4652a58b312SMartin MatuskaCFLAGS.nvpair.c= -Wno-cast-qual -DHAVE_RPC_TYPES ${NO_WSTRINGOP_OVERREAD} 4662a58b312SMartin MatuskaCFLAGS.pool.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 4672a58b312SMartin MatuskaCFLAGS.pool.c= -U__BMI__ -fno-tree-vectorize 468eda14cbcSMatt MacyCFLAGS.spa.c= -Wno-cast-qual 469eda14cbcSMatt MacyCFLAGS.spa_misc.c= -Wno-cast-qual 4702a58b312SMartin MatuskaCFLAGS.spl_string.c= -Wno-cast-qual 4712a58b312SMartin MatuskaCFLAGS.spl_vm.c= -Wno-cast-qual 4722a58b312SMartin MatuskaCFLAGS.spl_zlib.c= -Wno-cast-qual 4732a58b312SMartin MatuskaCFLAGS.u8_textprep.c= -Wno-cast-qual 4747877fdebSMatt MacyCFLAGS.vdev_draid.c= -Wno-cast-qual 475eda14cbcSMatt MacyCFLAGS.vdev_raidz.c= -Wno-cast-qual 476eda14cbcSMatt MacyCFLAGS.vdev_raidz_math.c= -Wno-cast-qual 477eda14cbcSMatt MacyCFLAGS.vdev_raidz_math_avx2.c= -Wno-cast-qual -Wno-duplicate-decl-specifier 478eda14cbcSMatt MacyCFLAGS.vdev_raidz_math_avx512f.c= -Wno-cast-qual -Wno-duplicate-decl-specifier 4792a58b312SMartin MatuskaCFLAGS.vdev_raidz_math_scalar.c= -Wno-cast-qual 480eda14cbcSMatt MacyCFLAGS.vdev_raidz_math_sse2.c= -Wno-cast-qual -Wno-duplicate-decl-specifier 481eda14cbcSMatt MacyCFLAGS.zap_leaf.c= -Wno-cast-qual 482eda14cbcSMatt MacyCFLAGS.zap_micro.c= -Wno-cast-qual 483eda14cbcSMatt MacyCFLAGS.zcp.c= -Wno-cast-qual 4842a58b312SMartin MatuskaCFLAGS.zfs_fletcher.c= -Wno-cast-qual -Wno-pointer-arith 4852a58b312SMartin MatuskaCFLAGS.zfs_fletcher_avx512.c= -Wno-cast-qual -Wno-pointer-arith 4862a58b312SMartin MatuskaCFLAGS.zfs_fletcher_intel.c= -Wno-cast-qual -Wno-pointer-arith 4872a58b312SMartin MatuskaCFLAGS.zfs_fletcher_sse.c= -Wno-cast-qual -Wno-pointer-arith 4882a58b312SMartin MatuskaCFLAGS.zfs_fm.c= -Wno-cast-qual ${NO_WUNUSED_BUT_SET_VARIABLE} 489eda14cbcSMatt MacyCFLAGS.zfs_ioctl.c= -Wno-cast-qual 4902a58b312SMartin MatuskaCFLAGS.zfs_log.c= -Wno-cast-qual 4912a58b312SMartin MatuskaCFLAGS.zfs_vnops_os.c= -Wno-pointer-arith 4922a58b312SMartin MatuskaCFLAGS.zfs_zstd.c= -Wno-cast-qual -Wno-pointer-arith 493eda14cbcSMatt MacyCFLAGS.zil.c= -Wno-cast-qual 494eda14cbcSMatt MacyCFLAGS.zio.c= -Wno-cast-qual 4952a58b312SMartin MatuskaCFLAGS.zprop_common.c= -Wno-cast-qual 496eda14cbcSMatt MacyCFLAGS.zrlock.c= -Wno-cast-qual 4972a58b312SMartin Matuska 4982a58b312SMartin Matuska#zstd 4992a58b312SMartin MatuskaCFLAGS.entropy_common.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5002a58b312SMartin MatuskaCFLAGS.error_private.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5012a58b312SMartin MatuskaCFLAGS.fse_compress.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} ${NO_WUNUSED_BUT_SET_VARIABLE} 5022a58b312SMartin MatuskaCFLAGS.fse_decompress.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5032a58b312SMartin MatuskaCFLAGS.huf_compress.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5042a58b312SMartin MatuskaCFLAGS.huf_decompress.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5052a58b312SMartin MatuskaCFLAGS.xxhash.c+= -U__BMI__ -fno-tree-vectorize 5062a58b312SMartin MatuskaCFLAGS.xxhash.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5072a58b312SMartin MatuskaCFLAGS.zstd.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5082a58b312SMartin MatuskaCFLAGS.zstd_common.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5092a58b312SMartin MatuskaCFLAGS.zstd_compress.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5102a58b312SMartin MatuskaCFLAGS.zstd_compress_literals.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5112a58b312SMartin MatuskaCFLAGS.zstd_compress_sequences.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5122a58b312SMartin MatuskaCFLAGS.zstd_compress_superblock.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} ${NO_WUNUSED_BUT_SET_VARIABLE} 5132a58b312SMartin MatuskaCFLAGS.zstd_ddict.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5142a58b312SMartin MatuskaCFLAGS.zstd_decompress.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5152a58b312SMartin MatuskaCFLAGS.zstd_decompress_block.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5162a58b312SMartin MatuskaCFLAGS.zstd_double_fast.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5172a58b312SMartin MatuskaCFLAGS.zstd_fast.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5182a58b312SMartin MatuskaCFLAGS.zstd_lazy.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5192a58b312SMartin MatuskaCFLAGS.zstd_ldm.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5202a58b312SMartin MatuskaCFLAGS.zstd_opt.c= -U__BMI__ -fno-tree-vectorize ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 5212a58b312SMartin Matuska 522*071ab5a1SMartin Matuska.if ${MACHINE_ARCH} == "aarch64" 5232a58b312SMartin Matuska__ZFS_ZSTD_AARCH64_FLAGS= -include ${SRCDIR}/zstd/include/aarch64_compat.h 5242a58b312SMartin MatuskaCFLAGS.zstd.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5252a58b312SMartin MatuskaCFLAGS.entropy_common.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5262a58b312SMartin MatuskaCFLAGS.error_private.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5272a58b312SMartin MatuskaCFLAGS.fse_compress.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5282a58b312SMartin MatuskaCFLAGS.fse_decompress.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5292a58b312SMartin MatuskaCFLAGS.hist.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5302a58b312SMartin MatuskaCFLAGS.huf_compress.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5312a58b312SMartin MatuskaCFLAGS.huf_decompress.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5322a58b312SMartin MatuskaCFLAGS.pool.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5332a58b312SMartin MatuskaCFLAGS.xxhash.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5342a58b312SMartin MatuskaCFLAGS.zstd_common.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5352a58b312SMartin MatuskaCFLAGS.zstd_compress.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5362a58b312SMartin MatuskaCFLAGS.zstd_compress_literals.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5372a58b312SMartin MatuskaCFLAGS.zstd_compress_sequences.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5382a58b312SMartin MatuskaCFLAGS.zstd_compress_superblock.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5392a58b312SMartin MatuskaCFLAGS.zstd_ddict.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5402a58b312SMartin MatuskaCFLAGS.zstd_decompress.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5412a58b312SMartin MatuskaCFLAGS.zstd_decompress_block.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5422a58b312SMartin MatuskaCFLAGS.zstd_double_fast.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5432a58b312SMartin MatuskaCFLAGS.zstd_fast.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5442a58b312SMartin MatuskaCFLAGS.zstd_lazy.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5452a58b312SMartin MatuskaCFLAGS.zstd_ldm.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5462a58b312SMartin MatuskaCFLAGS.zstd_opt.c+= ${__ZFS_ZSTD_AARCH64_FLAGS} 5472a58b312SMartin Matuska 548d411c1d6SMartin Matuskasha256-armv8.o: sha256-armv8.S 549d411c1d6SMartin Matuska ${CC} -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${.IMPSRC} \ 550d411c1d6SMartin Matuska -o ${.TARGET} 551d411c1d6SMartin Matuska ${CTFCONVERT_CMD} 552d411c1d6SMartin Matuska 553d411c1d6SMartin Matuskasha512-armv8.o: sha512-armv8.S 554d411c1d6SMartin Matuska ${CC} -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${.IMPSRC} \ 555d411c1d6SMartin Matuska -o ${.TARGET} 556d411c1d6SMartin Matuska ${CTFCONVERT_CMD} 557d411c1d6SMartin Matuska 5582a58b312SMartin Matuskab3_aarch64_sse2.o: b3_aarch64_sse2.S 5592a58b312SMartin Matuska ${CC} -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${.IMPSRC} \ 5602a58b312SMartin Matuska -o ${.TARGET} 5612a58b312SMartin Matuska ${CTFCONVERT_CMD} 5622a58b312SMartin Matuska 5632a58b312SMartin Matuskab3_aarch64_sse41.o: b3_aarch64_sse41.S 5642a58b312SMartin Matuska ${CC} -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${.IMPSRC} \ 5652a58b312SMartin Matuska -o ${.TARGET} 5662a58b312SMartin Matuska ${CTFCONVERT_CMD} 5672a58b312SMartin Matuska 5682a58b312SMartin Matuska.endif 569