mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-27 03:19:35 +03:00
b1a1c64313
It turns out that layouts of union bitfields are a pain, and the current code results in an inconsistent layout between BE and LE systems, leading to zstd-active datasets on one erroring out on the other. Switch everyone over to the LE layout, and add compatibility code to read both. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Matthew Ahrens <mahrens@delphix.com> Signed-off-by: Rich Ercolani <rincebrain@gmail.com> Closes #12008 Closes #12022
40 lines
1.1 KiB
Makefile
40 lines
1.1 KiB
Makefile
ifneq ($(KBUILD_EXTMOD),)
|
|
src = @abs_srcdir@
|
|
obj = @abs_builddir@
|
|
zstd_include = $(src)/include
|
|
else
|
|
zstd_include = $(srctree)/$(src)/include
|
|
endif
|
|
|
|
MODULE := zzstd
|
|
|
|
obj-$(CONFIG_ZFS) := $(MODULE).o
|
|
|
|
asflags-y := -I$(zstd_include)
|
|
ccflags-y := -I$(zstd_include)
|
|
|
|
# Zstd uses -O3 by default, so we should follow
|
|
ccflags-y += -O3
|
|
|
|
# -fno-tree-vectorize gets set for gcc in zstd/common/compiler.h
|
|
# Set it for other compilers, too.
|
|
$(obj)/lib/zstd.o: c_flags += -fno-tree-vectorize
|
|
|
|
# SSE register return with SSE disabled if -march=znverX is passed
|
|
$(obj)/lib/zstd.o: c_flags += -U__BMI__
|
|
|
|
# Quiet warnings about frame size due to unused code in unmodified zstd lib
|
|
$(obj)/lib/zstd.o: c_flags += -Wframe-larger-than=20480
|
|
|
|
# Disable aarch64 neon SIMD instructions for kernel mode
|
|
$(obj)/lib/zstd.o: c_flags += -include $(zstd_include)/aarch64_compat.h -include $(zstd_include)/zstd_compat_wrapper.h -Wp,-w
|
|
|
|
$(obj)/zfs_zstd.o: c_flags += -include $(zstd_include)/zstd_compat_wrapper.h
|
|
|
|
$(MODULE)-objs += zfs_zstd.o
|
|
$(MODULE)-objs += lib/zstd.o
|
|
$(MODULE)-objs += zstd_sparc.o
|
|
|
|
all:
|
|
mkdir -p lib
|