Skip to content

Commit bf2f4a1

Browse files
committed
Add a build intermediary lib for zstd
This add a new build intermediary `libzstd`, that allows us to keep zstd cleanly separated from libzpool and to override the frame-size compiler option for zstd only. (This is needed due to unused coude in the intentionally unmodified zstd source.) Signed-off-by: Michael Niewöhner <[email protected]>
1 parent 1c9161a commit bf2f4a1

File tree

4 files changed

+51
-1
lines changed

4 files changed

+51
-1
lines changed

configure.ac

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ AC_CONFIG_FILES([
167167
lib/libzfs/libzfs_core.pc
168168
lib/libzfs_core/Makefile
169169
lib/libzpool/Makefile
170+
lib/libzstd/Makefile
170171
lib/libzutil/Makefile
171172
man/Makefile
172173
man/man1/Makefile

lib/Makefile.am

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ endif
99
# libzutil depends on libefi if present
1010
SUBDIRS += libzutil libunicode
1111

12+
# zstd intermediary build component
13+
SUBDIRS += libzstd
14+
1215
# These four libraries, which are installed as the final build product,
1316
# incorporate the six convenience libraries given above.
1417
SUBDIRS += libuutil libnvpair libzpool libzfs_core libzfs

lib/libzpool/Makefile.am

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,8 @@ libzpool_la_LIBADD = \
197197
$(top_builddir)/lib/libicp/libicp.la \
198198
$(top_builddir)/lib/libnvpair/libnvpair.la \
199199
$(top_builddir)/lib/libunicode/libunicode.la \
200-
$(top_builddir)/lib/libzutil/libzutil.la
200+
$(top_builddir)/lib/libzutil/libzutil.la \
201+
$(top_builddir)/lib/libzstd/libzstd.la
201202

202203
if BUILD_FREEBSD
203204
libzpool_la_LIBADD += $(ZLIB) -ldl -lgeom

lib/libzstd/Makefile.am

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
include $(top_srcdir)/config/Rules.am
2+
3+
VPATH = \
4+
$(top_srcdir)/contrib/zstd \
5+
$(top_srcdir)/contrib/zstd/common \
6+
$(top_srcdir)/contrib/zstd/compress \
7+
$(top_srcdir)/contrib/zstd/decompress \
8+
$(top_srcdir)/module/zstd
9+
10+
DEFAULT_INCLUDES += \
11+
-I$(top_srcdir)/contrib/zstd \
12+
-I$(top_srcdir)/contrib/zstd/common \
13+
-I$(top_srcdir)/contrib/zstd/compress \
14+
-I$(top_srcdir)/contrib/zstd/decompress
15+
16+
noinst_LTLIBRARIES = libzstd.la
17+
18+
KERNEL_C = \
19+
zstd_common.c \
20+
fse_decompress.c \
21+
entropy_common.c \
22+
xxhash.c \
23+
hist.c \
24+
error_private.c \
25+
zstd_compress.c \
26+
zstd_compress_literals.c \
27+
zstd_compress_sequences.c \
28+
fse_compress.c \
29+
huf_compress.c \
30+
zstd_double_fast.c \
31+
zstd_fast.c \
32+
zstd_lazy.c \
33+
zstd_ldm.c \
34+
zstd_opt.c \
35+
zstd_ddict.c \
36+
zstd_decompress.c \
37+
zstd_decompress_block.c \
38+
huf_decompress.c \
39+
zstd.c
40+
41+
nodist_libzstd_la_SOURCES = $(KERNEL_C)
42+
43+
# -fno-tree-vectorize gets set for gcc in zstd/common/compiler.h
44+
# Set it for other compilers, too.
45+
CFLAGS_zstd_decompress_block.o := -fno-tree-vectorize

0 commit comments

Comments
 (0)