1eda14cbcSMatt Macy# When integrated in to a monolithic kernel the spl module must appear 2eda14cbcSMatt Macy# first. This ensures its module initialization function is run before 3eda14cbcSMatt Macy# any of the other module initialization functions which depend on it. 4eda14cbcSMatt Macy 5eda14cbcSMatt MacyZFS_MODULE_CFLAGS += -std=gnu99 -Wno-declaration-after-statement 6eda14cbcSMatt MacyZFS_MODULE_CFLAGS += -Wmissing-prototypes 7eda14cbcSMatt MacyZFS_MODULE_CFLAGS += @KERNEL_DEBUG_CFLAGS@ @NO_FORMAT_ZERO_LENGTH@ 8eda14cbcSMatt Macy 9eda14cbcSMatt Macyifneq ($(KBUILD_EXTMOD),) 10eda14cbcSMatt Macyzfs_include = @abs_top_srcdir@/include 11716fd348SMartin Matuskaicp_include = @abs_srcdir@/icp/include 12716fd348SMartin Matuskazstd_include = @abs_srcdir@/zstd/include 13eda14cbcSMatt MacyZFS_MODULE_CFLAGS += -include @abs_top_builddir@/zfs_config.h 14eda14cbcSMatt MacyZFS_MODULE_CFLAGS += -I@abs_top_builddir@/include 15716fd348SMartin Matuskasrc = @abs_srcdir@ 16716fd348SMartin Matuskaobj = @abs_builddir@ 17eda14cbcSMatt Macyelse 18eda14cbcSMatt Macyzfs_include = $(srctree)/include/zfs 19716fd348SMartin Matuskaicp_include = $(srctree)/$(src)/icp/include 20716fd348SMartin Matuskazstd_include = $(srctree)/$(src)/zstd/include 21eda14cbcSMatt MacyZFS_MODULE_CFLAGS += -include $(zfs_include)/zfs_config.h 22eda14cbcSMatt Macyendif 23eda14cbcSMatt Macy 24eda14cbcSMatt MacyZFS_MODULE_CFLAGS += -I$(zfs_include)/os/linux/kernel 25eda14cbcSMatt MacyZFS_MODULE_CFLAGS += -I$(zfs_include)/os/linux/spl 26eda14cbcSMatt MacyZFS_MODULE_CFLAGS += -I$(zfs_include)/os/linux/zfs 27eda14cbcSMatt MacyZFS_MODULE_CFLAGS += -I$(zfs_include) 28eda14cbcSMatt MacyZFS_MODULE_CPPFLAGS += -D_KERNEL 29eda14cbcSMatt MacyZFS_MODULE_CPPFLAGS += @KERNEL_DEBUG_CPPFLAGS@ 30eda14cbcSMatt Macy 31716fd348SMartin Matuska# KASAN enables -Werror=frame-larger-than=1024, which 32716fd348SMartin Matuska# breaks oh so many parts of our build. 33716fd348SMartin Matuskaifeq ($(CONFIG_KASAN),y) 34716fd348SMartin MatuskaZFS_MODULE_CFLAGS += -Wno-error=frame-larger-than= 35716fd348SMartin Matuskaendif 36716fd348SMartin Matuska 37eda14cbcSMatt Macyifneq ($(KBUILD_EXTMOD),) 38eda14cbcSMatt Macy@CONFIG_QAT_TRUE@ZFS_MODULE_CFLAGS += -I@QAT_SRC@/include 39eda14cbcSMatt Macy@CONFIG_QAT_TRUE@KBUILD_EXTRA_SYMBOLS += @QAT_SYMBOLS@ 40eda14cbcSMatt Macyendif 41eda14cbcSMatt Macy 42716fd348SMartin Matuskaasflags-y := $(ZFS_MODULE_CFLAGS) $(ZFS_MODULE_CPPFLAGS) 43716fd348SMartin Matuskaccflags-y := $(ZFS_MODULE_CFLAGS) $(ZFS_MODULE_CPPFLAGS) 44eda14cbcSMatt Macy 45bb2d13b6SMartin Matuskaifeq ($(CONFIG_ARM64),y) 46bb2d13b6SMartin MatuskaCFLAGS_REMOVE_zcommon/zfs_fletcher_aarch64_neon.o += -mgeneral-regs-only 47bb2d13b6SMartin MatuskaCFLAGS_REMOVE_zfs/vdev_raidz_math_aarch64_neon.o += -mgeneral-regs-only 48bb2d13b6SMartin MatuskaCFLAGS_REMOVE_zfs/vdev_raidz_math_aarch64_neonx2.o += -mgeneral-regs-only 49bb2d13b6SMartin Matuskaendif 50bb2d13b6SMartin Matuska 51716fd348SMartin Matuska# Suppress unused-value warnings in sparc64 architecture headers 52716fd348SMartin Matuskaccflags-$(CONFIG_SPARC64) += -Wno-unused-value 53716fd348SMartin Matuska 54716fd348SMartin Matuska 55716fd348SMartin Matuskaobj-$(CONFIG_ZFS) := spl.o zfs.o 56716fd348SMartin Matuska 57716fd348SMartin MatuskaSPL_OBJS := \ 58716fd348SMartin Matuska spl-atomic.o \ 59716fd348SMartin Matuska spl-condvar.o \ 60716fd348SMartin Matuska spl-cred.o \ 61716fd348SMartin Matuska spl-err.o \ 62716fd348SMartin Matuska spl-generic.o \ 63716fd348SMartin Matuska spl-kmem-cache.o \ 64716fd348SMartin Matuska spl-kmem.o \ 65716fd348SMartin Matuska spl-kstat.o \ 66716fd348SMartin Matuska spl-proc.o \ 67716fd348SMartin Matuska spl-procfs-list.o \ 68716fd348SMartin Matuska spl-taskq.o \ 69716fd348SMartin Matuska spl-thread.o \ 70716fd348SMartin Matuska spl-trace.o \ 71716fd348SMartin Matuska spl-tsd.o \ 72716fd348SMartin Matuska spl-vmem.o \ 73716fd348SMartin Matuska spl-xdr.o \ 741f1e2261SMartin Matuska spl-zlib.o \ 751f1e2261SMartin Matuska spl-zone.o 76716fd348SMartin Matuska 77716fd348SMartin Matuskaspl-objs += $(addprefix os/linux/spl/,$(SPL_OBJS)) 78716fd348SMartin Matuska 79716fd348SMartin Matuskazfs-objs += avl/avl.o 80716fd348SMartin Matuska 81716fd348SMartin MatuskaICP_OBJS := \ 82716fd348SMartin Matuska algs/aes/aes_impl.o \ 83716fd348SMartin Matuska algs/aes/aes_impl_generic.o \ 84716fd348SMartin Matuska algs/aes/aes_modes.o \ 851f1e2261SMartin Matuska algs/blake3/blake3.o \ 861f1e2261SMartin Matuska algs/blake3/blake3_generic.o \ 871f1e2261SMartin Matuska algs/blake3/blake3_impl.o \ 88716fd348SMartin Matuska algs/edonr/edonr.o \ 89716fd348SMartin Matuska algs/modes/cbc.o \ 90716fd348SMartin Matuska algs/modes/ccm.o \ 91716fd348SMartin Matuska algs/modes/ctr.o \ 92716fd348SMartin Matuska algs/modes/ecb.o \ 93716fd348SMartin Matuska algs/modes/gcm.o \ 94716fd348SMartin Matuska algs/modes/gcm_generic.o \ 95716fd348SMartin Matuska algs/modes/modes.o \ 96*2a58b312SMartin Matuska algs/sha2/sha2_generic.o \ 97*2a58b312SMartin Matuska algs/sha2/sha256_impl.o \ 98*2a58b312SMartin Matuska algs/sha2/sha512_impl.o \ 99716fd348SMartin Matuska algs/skein/skein.o \ 100716fd348SMartin Matuska algs/skein/skein_block.o \ 101716fd348SMartin Matuska algs/skein/skein_iv.o \ 102716fd348SMartin Matuska api/kcf_cipher.o \ 103716fd348SMartin Matuska api/kcf_ctxops.o \ 104716fd348SMartin Matuska api/kcf_mac.o \ 105716fd348SMartin Matuska core/kcf_callprov.o \ 106716fd348SMartin Matuska core/kcf_mech_tabs.o \ 107716fd348SMartin Matuska core/kcf_prov_lib.o \ 108716fd348SMartin Matuska core/kcf_prov_tabs.o \ 109716fd348SMartin Matuska core/kcf_sched.o \ 110716fd348SMartin Matuska illumos-crypto.o \ 111716fd348SMartin Matuska io/aes.o \ 112716fd348SMartin Matuska io/sha2_mod.o \ 113716fd348SMartin Matuska io/skein_mod.o \ 114716fd348SMartin Matuska spi/kcf_spi.o 115716fd348SMartin Matuska 116716fd348SMartin MatuskaICP_OBJS_X86_64 := \ 117716fd348SMartin Matuska asm-x86_64/aes/aes_aesni.o \ 118716fd348SMartin Matuska asm-x86_64/aes/aes_amd64.o \ 119716fd348SMartin Matuska asm-x86_64/aes/aeskey.o \ 1201f1e2261SMartin Matuska asm-x86_64/blake3/blake3_avx2.o \ 1211f1e2261SMartin Matuska asm-x86_64/blake3/blake3_avx512.o \ 1221f1e2261SMartin Matuska asm-x86_64/blake3/blake3_sse2.o \ 1231f1e2261SMartin Matuska asm-x86_64/blake3/blake3_sse41.o \ 124*2a58b312SMartin Matuska asm-x86_64/sha2/sha256-x86_64.o \ 125*2a58b312SMartin Matuska asm-x86_64/sha2/sha512-x86_64.o \ 126716fd348SMartin Matuska asm-x86_64/modes/aesni-gcm-x86_64.o \ 127716fd348SMartin Matuska asm-x86_64/modes/gcm_pclmulqdq.o \ 128*2a58b312SMartin Matuska asm-x86_64/modes/ghash-x86_64.o 1291f1e2261SMartin Matuska 130716fd348SMartin MatuskaICP_OBJS_X86 := \ 131716fd348SMartin Matuska algs/aes/aes_impl_aesni.o \ 132716fd348SMartin Matuska algs/aes/aes_impl_x86-64.o \ 133716fd348SMartin Matuska algs/modes/gcm_pclmulqdq.o 134716fd348SMartin Matuska 135*2a58b312SMartin MatuskaICP_OBJS_ARM := \ 136*2a58b312SMartin Matuska asm-arm/sha2/sha256-armv7.o \ 137*2a58b312SMartin Matuska asm-arm/sha2/sha512-armv7.o 1381f1e2261SMartin Matuska 1391f1e2261SMartin MatuskaICP_OBJS_ARM64 := \ 1401f1e2261SMartin Matuska asm-aarch64/blake3/b3_aarch64_sse2.o \ 141*2a58b312SMartin Matuska asm-aarch64/blake3/b3_aarch64_sse41.o \ 142*2a58b312SMartin Matuska asm-aarch64/sha2/sha256-armv8.o \ 143*2a58b312SMartin Matuska asm-aarch64/sha2/sha512-armv8.o 1441f1e2261SMartin Matuska 1451f1e2261SMartin MatuskaICP_OBJS_PPC_PPC64 := \ 1461f1e2261SMartin Matuska asm-ppc64/blake3/b3_ppc64le_sse2.o \ 147*2a58b312SMartin Matuska asm-ppc64/blake3/b3_ppc64le_sse41.o \ 148*2a58b312SMartin Matuska asm-ppc64/sha2/sha256-p8.o \ 149*2a58b312SMartin Matuska asm-ppc64/sha2/sha512-p8.o \ 150*2a58b312SMartin Matuska asm-ppc64/sha2/sha256-ppc.o \ 151*2a58b312SMartin Matuska asm-ppc64/sha2/sha512-ppc.o 1521f1e2261SMartin Matuska 153716fd348SMartin Matuskazfs-objs += $(addprefix icp/,$(ICP_OBJS)) 154716fd348SMartin Matuskazfs-$(CONFIG_X86) += $(addprefix icp/,$(ICP_OBJS_X86)) 1551f1e2261SMartin Matuskazfs-$(CONFIG_UML_X86)+= $(addprefix icp/,$(ICP_OBJS_X86)) 156716fd348SMartin Matuskazfs-$(CONFIG_X86_64) += $(addprefix icp/,$(ICP_OBJS_X86_64)) 157*2a58b312SMartin Matuskazfs-$(CONFIG_ARM) += $(addprefix icp/,$(ICP_OBJS_ARM)) 1581f1e2261SMartin Matuskazfs-$(CONFIG_ARM64) += $(addprefix icp/,$(ICP_OBJS_ARM64)) 1591f1e2261SMartin Matuskazfs-$(CONFIG_PPC) += $(addprefix icp/,$(ICP_OBJS_PPC_PPC64)) 1601f1e2261SMartin Matuskazfs-$(CONFIG_PPC64) += $(addprefix icp/,$(ICP_OBJS_PPC_PPC64)) 161716fd348SMartin Matuska 1621f1e2261SMartin Matuska$(addprefix $(obj)/icp/,$(ICP_OBJS) $(ICP_OBJS_X86) $(ICP_OBJS_X86_64) \ 16315f0b8c3SMartin Matuska $(ICP_OBJS_ARM64) $(ICP_OBJS_PPC_PPC64)) : asflags-y += -I$(icp_include) -I$(zfs_include)/os/linux/spl -I$(zfs_include) 1641f1e2261SMartin Matuska 1651f1e2261SMartin Matuska$(addprefix $(obj)/icp/,$(ICP_OBJS) $(ICP_OBJS_X86) $(ICP_OBJS_X86_64) \ 16615f0b8c3SMartin Matuska $(ICP_OBJS_ARM64) $(ICP_OBJS_PPC_PPC64)) : ccflags-y += -I$(icp_include) -I$(zfs_include)/os/linux/spl -I$(zfs_include) 167716fd348SMartin Matuska 168dbd5678dSMartin Matuska# Suppress objtool "return with modified stack frame" warnings. 169716fd348SMartin MatuskaOBJECT_FILES_NON_STANDARD_aesni-gcm-x86_64.o := y 1701f1e2261SMartin Matuska 171*2a58b312SMartin Matuska# Suppress objtool "unsupported stack pointer realignment" warnings. 172716fd348SMartin Matuska# See #6950 for the reasoning. 173*2a58b312SMartin MatuskaOBJECT_FILES_NON_STANDARD_sha256-x86_64.o := y 174*2a58b312SMartin MatuskaOBJECT_FILES_NON_STANDARD_sha512-x86_64.o := y 175716fd348SMartin Matuska 176716fd348SMartin MatuskaLUA_OBJS := \ 177716fd348SMartin Matuska lapi.o \ 178716fd348SMartin Matuska lauxlib.o \ 179716fd348SMartin Matuska lbaselib.o \ 180716fd348SMartin Matuska lcode.o \ 181716fd348SMartin Matuska lcompat.o \ 182716fd348SMartin Matuska lcorolib.o \ 183716fd348SMartin Matuska lctype.o \ 184716fd348SMartin Matuska ldebug.o \ 185716fd348SMartin Matuska ldo.o \ 186716fd348SMartin Matuska lfunc.o \ 187716fd348SMartin Matuska lgc.o \ 188716fd348SMartin Matuska llex.o \ 189716fd348SMartin Matuska lmem.o \ 190716fd348SMartin Matuska lobject.o \ 191716fd348SMartin Matuska lopcodes.o \ 192716fd348SMartin Matuska lparser.o \ 193716fd348SMartin Matuska lstate.o \ 194716fd348SMartin Matuska lstring.o \ 195716fd348SMartin Matuska lstrlib.o \ 196716fd348SMartin Matuska ltable.o \ 197716fd348SMartin Matuska ltablib.o \ 198716fd348SMartin Matuska ltm.o \ 199716fd348SMartin Matuska lvm.o \ 200716fd348SMartin Matuska lzio.o \ 201716fd348SMartin Matuska setjmp/setjmp.o 202716fd348SMartin Matuska 203716fd348SMartin Matuskazfs-objs += $(addprefix lua/,$(LUA_OBJS)) 204716fd348SMartin Matuska 205716fd348SMartin Matuska 206716fd348SMartin MatuskaNVPAIR_OBJS := \ 207716fd348SMartin Matuska fnvpair.o \ 208716fd348SMartin Matuska nvpair.o \ 209716fd348SMartin Matuska nvpair_alloc_fixed.o \ 210716fd348SMartin Matuska nvpair_alloc_spl.o 211716fd348SMartin Matuska 212716fd348SMartin Matuskazfs-objs += $(addprefix nvpair/,$(NVPAIR_OBJS)) 213716fd348SMartin Matuska 214716fd348SMartin Matuska 215716fd348SMartin MatuskaUNICODE_OBJS := \ 216716fd348SMartin Matuska u8_textprep.o \ 217716fd348SMartin Matuska uconv.o 218716fd348SMartin Matuska 219716fd348SMartin Matuskazfs-objs += $(addprefix unicode/,$(UNICODE_OBJS)) 220716fd348SMartin Matuska 221716fd348SMartin Matuska 222716fd348SMartin MatuskaZCOMMON_OBJS := \ 223716fd348SMartin Matuska cityhash.o \ 224716fd348SMartin Matuska zfeature_common.o \ 225716fd348SMartin Matuska zfs_comutil.o \ 226716fd348SMartin Matuska zfs_deleg.o \ 227716fd348SMartin Matuska zfs_fletcher.o \ 228716fd348SMartin Matuska zfs_fletcher_superscalar.o \ 229716fd348SMartin Matuska zfs_fletcher_superscalar4.o \ 230716fd348SMartin Matuska zfs_namecheck.o \ 231716fd348SMartin Matuska zfs_prop.o \ 232716fd348SMartin Matuska zpool_prop.o \ 233716fd348SMartin Matuska zprop_common.o 234716fd348SMartin Matuska 235716fd348SMartin MatuskaZCOMMON_OBJS_X86 := \ 236716fd348SMartin Matuska zfs_fletcher_avx512.o \ 237716fd348SMartin Matuska zfs_fletcher_intel.o \ 238716fd348SMartin Matuska zfs_fletcher_sse.o 239716fd348SMartin Matuska 240716fd348SMartin MatuskaZCOMMON_OBJS_ARM64 := \ 241716fd348SMartin Matuska zfs_fletcher_aarch64_neon.o 242716fd348SMartin Matuska 243716fd348SMartin Matuskazfs-objs += $(addprefix zcommon/,$(ZCOMMON_OBJS)) 244716fd348SMartin Matuskazfs-$(CONFIG_X86) += $(addprefix zcommon/,$(ZCOMMON_OBJS_X86)) 2451f1e2261SMartin Matuskazfs-$(CONFIG_UML_X86)+= $(addprefix zcommon/,$(ZCOMMON_OBJS_X86)) 246716fd348SMartin Matuskazfs-$(CONFIG_ARM64) += $(addprefix zcommon/,$(ZCOMMON_OBJS_ARM64)) 247716fd348SMartin Matuska 248716fd348SMartin Matuska 249716fd348SMartin Matuska# Zstd uses -O3 by default, so we should follow 250716fd348SMartin MatuskaZFS_ZSTD_FLAGS := -O3 251716fd348SMartin Matuska 252716fd348SMartin Matuska# -fno-tree-vectorize gets set for gcc in zstd/common/compiler.h 253716fd348SMartin Matuska# Set it for other compilers, too. 254716fd348SMartin MatuskaZFS_ZSTD_FLAGS += -fno-tree-vectorize 255716fd348SMartin Matuska 256716fd348SMartin Matuska# SSE register return with SSE disabled if -march=znverX is passed 257716fd348SMartin MatuskaZFS_ZSTD_FLAGS += -U__BMI__ 258716fd348SMartin Matuska 259716fd348SMartin Matuska# Quiet warnings about frame size due to unused code in unmodified zstd lib 260716fd348SMartin MatuskaZFS_ZSTD_FLAGS += -Wframe-larger-than=20480 261716fd348SMartin Matuska 262716fd348SMartin MatuskaZSTD_OBJS := \ 263716fd348SMartin Matuska zfs_zstd.o \ 264716fd348SMartin Matuska zstd_sparc.o 265716fd348SMartin Matuska 266716fd348SMartin MatuskaZSTD_UPSTREAM_OBJS := \ 267716fd348SMartin Matuska lib/common/entropy_common.o \ 268716fd348SMartin Matuska lib/common/error_private.o \ 269716fd348SMartin Matuska lib/common/fse_decompress.o \ 270716fd348SMartin Matuska lib/common/pool.o \ 271716fd348SMartin Matuska lib/common/zstd_common.o \ 272716fd348SMartin Matuska lib/compress/fse_compress.o \ 273716fd348SMartin Matuska lib/compress/hist.o \ 274716fd348SMartin Matuska lib/compress/huf_compress.o \ 275716fd348SMartin Matuska lib/compress/zstd_compress.o \ 276716fd348SMartin Matuska lib/compress/zstd_compress_literals.o \ 277716fd348SMartin Matuska lib/compress/zstd_compress_sequences.o \ 278716fd348SMartin Matuska lib/compress/zstd_compress_superblock.o \ 279716fd348SMartin Matuska lib/compress/zstd_double_fast.o \ 280716fd348SMartin Matuska lib/compress/zstd_fast.o \ 281716fd348SMartin Matuska lib/compress/zstd_lazy.o \ 282716fd348SMartin Matuska lib/compress/zstd_ldm.o \ 283716fd348SMartin Matuska lib/compress/zstd_opt.o \ 284716fd348SMartin Matuska lib/decompress/huf_decompress.o \ 285716fd348SMartin Matuska lib/decompress/zstd_ddict.o \ 286716fd348SMartin Matuska lib/decompress/zstd_decompress.o \ 287716fd348SMartin Matuska lib/decompress/zstd_decompress_block.o 288716fd348SMartin Matuska 289716fd348SMartin Matuskazfs-objs += $(addprefix zstd/,$(ZSTD_OBJS) $(ZSTD_UPSTREAM_OBJS)) 290716fd348SMartin Matuska 291716fd348SMartin Matuska# Disable aarch64 neon SIMD instructions for kernel mode 292716fd348SMartin Matuska$(addprefix $(obj)/zstd/,$(ZSTD_OBJS) $(ZSTD_UPSTREAM_OBJS)) : ccflags-y += -I$(zstd_include) $(ZFS_ZSTD_FLAGS) 293716fd348SMartin Matuska$(addprefix $(obj)/zstd/,$(ZSTD_OBJS) $(ZSTD_UPSTREAM_OBJS)) : asflags-y += -I$(zstd_include) 294716fd348SMartin Matuska$(addprefix $(obj)/zstd/,$(ZSTD_UPSTREAM_OBJS)) : ccflags-y += -include $(zstd_include)/aarch64_compat.h -include $(zstd_include)/zstd_compat_wrapper.h -Wp,-w 295716fd348SMartin Matuska$(obj)/zstd/zfs_zstd.o : ccflags-y += -include $(zstd_include)/zstd_compat_wrapper.h 296716fd348SMartin Matuska 297716fd348SMartin Matuska 298716fd348SMartin MatuskaZFS_OBJS := \ 299716fd348SMartin Matuska abd.o \ 300716fd348SMartin Matuska aggsum.o \ 301716fd348SMartin Matuska arc.o \ 3021f1e2261SMartin Matuska blake3_zfs.o \ 303716fd348SMartin Matuska blkptr.o \ 304716fd348SMartin Matuska bplist.o \ 305716fd348SMartin Matuska bpobj.o \ 306716fd348SMartin Matuska bptree.o \ 307716fd348SMartin Matuska bqueue.o \ 308*2a58b312SMartin Matuska brt.o \ 309716fd348SMartin Matuska btree.o \ 310716fd348SMartin Matuska dataset_kstats.o \ 311716fd348SMartin Matuska dbuf.o \ 312716fd348SMartin Matuska dbuf_stats.o \ 313716fd348SMartin Matuska ddt.o \ 314716fd348SMartin Matuska ddt_zap.o \ 315716fd348SMartin Matuska dmu.o \ 316716fd348SMartin Matuska dmu_diff.o \ 317716fd348SMartin Matuska dmu_object.o \ 318716fd348SMartin Matuska dmu_objset.o \ 319716fd348SMartin Matuska dmu_recv.o \ 320716fd348SMartin Matuska dmu_redact.o \ 321716fd348SMartin Matuska dmu_send.o \ 322716fd348SMartin Matuska dmu_traverse.o \ 323716fd348SMartin Matuska dmu_tx.o \ 324716fd348SMartin Matuska dmu_zfetch.o \ 325716fd348SMartin Matuska dnode.o \ 326716fd348SMartin Matuska dnode_sync.o \ 327716fd348SMartin Matuska dsl_bookmark.o \ 328716fd348SMartin Matuska dsl_crypt.o \ 329716fd348SMartin Matuska dsl_dataset.o \ 330716fd348SMartin Matuska dsl_deadlist.o \ 331716fd348SMartin Matuska dsl_deleg.o \ 332716fd348SMartin Matuska dsl_destroy.o \ 333716fd348SMartin Matuska dsl_dir.o \ 334716fd348SMartin Matuska dsl_pool.o \ 335716fd348SMartin Matuska dsl_prop.o \ 336716fd348SMartin Matuska dsl_scan.o \ 337716fd348SMartin Matuska dsl_synctask.o \ 338716fd348SMartin Matuska dsl_userhold.o \ 339716fd348SMartin Matuska edonr_zfs.o \ 340716fd348SMartin Matuska fm.o \ 341716fd348SMartin Matuska gzip.o \ 342716fd348SMartin Matuska hkdf.o \ 343716fd348SMartin Matuska lz4.o \ 344716fd348SMartin Matuska lz4_zfs.o \ 345716fd348SMartin Matuska lzjb.o \ 346716fd348SMartin Matuska metaslab.o \ 347716fd348SMartin Matuska mmp.o \ 348716fd348SMartin Matuska multilist.o \ 349716fd348SMartin Matuska objlist.o \ 350716fd348SMartin Matuska pathname.o \ 351716fd348SMartin Matuska range_tree.o \ 352716fd348SMartin Matuska refcount.o \ 353716fd348SMartin Matuska rrwlock.o \ 354716fd348SMartin Matuska sa.o \ 355*2a58b312SMartin Matuska sha2_zfs.o \ 356716fd348SMartin Matuska skein_zfs.o \ 357716fd348SMartin Matuska spa.o \ 358716fd348SMartin Matuska spa_checkpoint.o \ 359716fd348SMartin Matuska spa_config.o \ 360716fd348SMartin Matuska spa_errlog.o \ 361716fd348SMartin Matuska spa_history.o \ 362716fd348SMartin Matuska spa_log_spacemap.o \ 363716fd348SMartin Matuska spa_misc.o \ 364716fd348SMartin Matuska spa_stats.o \ 365716fd348SMartin Matuska space_map.o \ 366716fd348SMartin Matuska space_reftree.o \ 367716fd348SMartin Matuska txg.o \ 368716fd348SMartin Matuska uberblock.o \ 369716fd348SMartin Matuska unique.o \ 370716fd348SMartin Matuska vdev.o \ 371716fd348SMartin Matuska vdev_cache.o \ 372716fd348SMartin Matuska vdev_draid.o \ 373716fd348SMartin Matuska vdev_draid_rand.o \ 374716fd348SMartin Matuska vdev_indirect.o \ 375716fd348SMartin Matuska vdev_indirect_births.o \ 376716fd348SMartin Matuska vdev_indirect_mapping.o \ 377716fd348SMartin Matuska vdev_initialize.o \ 378716fd348SMartin Matuska vdev_label.o \ 379716fd348SMartin Matuska vdev_mirror.o \ 380716fd348SMartin Matuska vdev_missing.o \ 381716fd348SMartin Matuska vdev_queue.o \ 382716fd348SMartin Matuska vdev_raidz.o \ 383716fd348SMartin Matuska vdev_raidz_math.o \ 384716fd348SMartin Matuska vdev_raidz_math_scalar.o \ 385716fd348SMartin Matuska vdev_rebuild.o \ 386716fd348SMartin Matuska vdev_removal.o \ 387716fd348SMartin Matuska vdev_root.o \ 388716fd348SMartin Matuska vdev_trim.o \ 389716fd348SMartin Matuska zap.o \ 390716fd348SMartin Matuska zap_leaf.o \ 391716fd348SMartin Matuska zap_micro.o \ 392716fd348SMartin Matuska zcp.o \ 393716fd348SMartin Matuska zcp_get.o \ 394716fd348SMartin Matuska zcp_global.o \ 395716fd348SMartin Matuska zcp_iter.o \ 396716fd348SMartin Matuska zcp_set.o \ 397716fd348SMartin Matuska zcp_synctask.o \ 398716fd348SMartin Matuska zfeature.o \ 399716fd348SMartin Matuska zfs_byteswap.o \ 4001f1e2261SMartin Matuska zfs_chksum.o \ 401716fd348SMartin Matuska zfs_fm.o \ 402716fd348SMartin Matuska zfs_fuid.o \ 403*2a58b312SMartin Matuska zfs_impl.o \ 404716fd348SMartin Matuska zfs_ioctl.o \ 405716fd348SMartin Matuska zfs_log.o \ 406716fd348SMartin Matuska zfs_onexit.o \ 407716fd348SMartin Matuska zfs_quota.o \ 408716fd348SMartin Matuska zfs_ratelimit.o \ 409716fd348SMartin Matuska zfs_replay.o \ 410716fd348SMartin Matuska zfs_rlock.o \ 411716fd348SMartin Matuska zfs_sa.o \ 412716fd348SMartin Matuska zfs_vnops.o \ 413716fd348SMartin Matuska zil.o \ 414716fd348SMartin Matuska zio.o \ 415716fd348SMartin Matuska zio_checksum.o \ 416716fd348SMartin Matuska zio_compress.o \ 417716fd348SMartin Matuska zio_inject.o \ 418716fd348SMartin Matuska zle.o \ 419716fd348SMartin Matuska zrlock.o \ 420716fd348SMartin Matuska zthr.o \ 421716fd348SMartin Matuska zvol.o 422716fd348SMartin Matuska 423716fd348SMartin MatuskaZFS_OBJS_OS := \ 424716fd348SMartin Matuska abd_os.o \ 425716fd348SMartin Matuska arc_os.o \ 426716fd348SMartin Matuska mmp_os.o \ 427716fd348SMartin Matuska policy.o \ 428716fd348SMartin Matuska qat.o \ 429716fd348SMartin Matuska qat_compress.o \ 430716fd348SMartin Matuska qat_crypt.o \ 431716fd348SMartin Matuska spa_misc_os.o \ 432716fd348SMartin Matuska trace.o \ 433716fd348SMartin Matuska vdev_disk.o \ 434716fd348SMartin Matuska vdev_file.o \ 435716fd348SMartin Matuska zfs_acl.o \ 436716fd348SMartin Matuska zfs_ctldir.o \ 437716fd348SMartin Matuska zfs_debug.o \ 438716fd348SMartin Matuska zfs_dir.o \ 439716fd348SMartin Matuska zfs_file_os.o \ 440716fd348SMartin Matuska zfs_ioctl_os.o \ 441716fd348SMartin Matuska zfs_racct.o \ 442716fd348SMartin Matuska zfs_sysfs.o \ 443716fd348SMartin Matuska zfs_uio.o \ 444716fd348SMartin Matuska zfs_vfsops.o \ 445716fd348SMartin Matuska zfs_vnops_os.o \ 446716fd348SMartin Matuska zfs_znode.o \ 447716fd348SMartin Matuska zio_crypt.o \ 448716fd348SMartin Matuska zpl_ctldir.o \ 449716fd348SMartin Matuska zpl_export.o \ 450716fd348SMartin Matuska zpl_file.o \ 451716fd348SMartin Matuska zpl_inode.o \ 452716fd348SMartin Matuska zpl_super.o \ 453716fd348SMartin Matuska zpl_xattr.o \ 454716fd348SMartin Matuska zvol_os.o 455716fd348SMartin Matuska 456716fd348SMartin MatuskaZFS_OBJS_X86 := \ 457716fd348SMartin Matuska vdev_raidz_math_avx2.o \ 458716fd348SMartin Matuska vdev_raidz_math_avx512bw.o \ 459716fd348SMartin Matuska vdev_raidz_math_avx512f.o \ 460716fd348SMartin Matuska vdev_raidz_math_sse2.o \ 461716fd348SMartin Matuska vdev_raidz_math_ssse3.o 462716fd348SMartin Matuska 463716fd348SMartin MatuskaZFS_OBJS_ARM64 := \ 464716fd348SMartin Matuska vdev_raidz_math_aarch64_neon.o \ 465716fd348SMartin Matuska vdev_raidz_math_aarch64_neonx2.o 466716fd348SMartin Matuska 467716fd348SMartin MatuskaZFS_OBJS_PPC_PPC64 := \ 468716fd348SMartin Matuska vdev_raidz_math_powerpc_altivec.o 469716fd348SMartin Matuska 470716fd348SMartin Matuskazfs-objs += $(addprefix zfs/,$(ZFS_OBJS)) $(addprefix os/linux/zfs/,$(ZFS_OBJS_OS)) 471716fd348SMartin Matuskazfs-$(CONFIG_X86) += $(addprefix zfs/,$(ZFS_OBJS_X86)) 4721f1e2261SMartin Matuskazfs-$(CONFIG_UML_X86)+= $(addprefix zfs/,$(ZFS_OBJS_X86)) 473716fd348SMartin Matuskazfs-$(CONFIG_ARM64) += $(addprefix zfs/,$(ZFS_OBJS_ARM64)) 474716fd348SMartin Matuskazfs-$(CONFIG_PPC) += $(addprefix zfs/,$(ZFS_OBJS_PPC_PPC64)) 475716fd348SMartin Matuskazfs-$(CONFIG_PPC64) += $(addprefix zfs/,$(ZFS_OBJS_PPC_PPC64)) 476716fd348SMartin Matuska 477716fd348SMartin Matuska# Suppress incorrect warnings from versions of objtool which are not 478716fd348SMartin Matuska# aware of x86 EVEX prefix instructions used for AVX512. 479716fd348SMartin MatuskaOBJECT_FILES_NON_STANDARD_vdev_raidz_math_avx512bw.o := y 480716fd348SMartin MatuskaOBJECT_FILES_NON_STANDARD_vdev_raidz_math_avx512f.o := y 481716fd348SMartin Matuska 482716fd348SMartin Matuskaifeq ($(CONFIG_ALTIVEC),y) 483716fd348SMartin Matuska$(obj)/zfs/vdev_raidz_math_powerpc_altivec.o : c_flags += -maltivec 484eda14cbcSMatt Macyendif 485