3 SRCS= entropy_common.c \
13 zstd_compress_literals.c \
14 zstd_compress_sequences.c \
15 zstd_compress_superblock.c \
20 zstd_decompress_block.c \
37 CFLAGS+= -I${ZSTDDIR}/lib -I${ZSTDDIR}/lib/common -DXXH_NAMESPACE=ZSTD_ \
38 -DZSTD_MULTITHREAD=1 -fvisibility=hidden
41 # ZSTD_ASM_SUPPORTED is 0 on FreeBSD but 1 on macOS and Linux. Since we build
42 # this as a bootstrap library and don't include any assembly sources in SRCS,
43 # explicitly disable assembly.
44 CFLAGS+= -DZSTD_DISABLE_ASM
49 ZSTDDIR= ${SRCTOP}/sys/contrib/zstd
50 .PATH: ${ZSTDDIR}/lib/common ${ZSTDDIR}/lib/compress \
51 ${ZSTDDIR}/lib/decompress ${ZSTDDIR}/lib/deprecated \
52 ${ZSTDDIR}/lib/dictBuilder ${ZSTDDIR}/lib
54 .include <bsd.compiler.mk>
56 CFLAGS.huf_decompress.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL}
58 # https://github.com/facebook/zstd/commit/812e8f2a [zstd 1.4.1]
59 # "Note that [GCC] autovectorization still does not do a good job on the
60 # optimized version, so it's turned off via attribute and flag. I found
61 # that neither attribute nor command-line flag were entirely successful in
62 # turning off vectorization, which is why there were both."
63 .if ${COMPILER_TYPE} == "gcc"
64 CFLAGS.zstd_decompress_block.c+= -fno-tree-vectorize
67 # Work around lack of __bswap[sd]i2() intrinsics on riscv. Probably should be
68 # added to one of the runtime C libraries instead.
69 .if ${MACHINE_CPUARCH} == "riscv"
70 .PATH: ${ZSTDDIR}/lib/freebsd
71 SRCS+= zstd_kfreebsd.c