Skip to content

Commit 56a6065

Browse files
committed
Janky zstd backport
1 parent 4b731bb commit 56a6065

File tree

14 files changed

+271
-43
lines changed

14 files changed

+271
-43
lines changed

Make.inc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ USE_SYSTEM_LIBGIT2:=0
6565
USE_SYSTEM_PATCHELF:=0
6666
USE_SYSTEM_LIBWHICH:=0
6767
USE_SYSTEM_ZLIB:=0
68+
USE_SYSTEM_ZSTD:=0
6869
USE_SYSTEM_P7ZIP:=0
6970
USE_SYSTEM_LLD:=0
7071

Makefile

Lines changed: 42 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,12 @@ endif
201201

202202
# private libraries, that are installed in $(prefix)/lib/julia
203203
JL_PRIVATE_LIBS-0 := libccalltest libccalllazyfoo libccalllazybar libllvmcalltest
204+
JL_PRIVATE_LIBS-1 := # libraries from USE_SYSTEM=1
205+
JL_PRIVATE_EXES := 7z
206+
ifeq ($(OS),WINNT)
207+
JL_PRIVATE_EXES += 7z.dll
208+
endif
209+
JL_PRIVATE_TOOLS :=
204210
ifeq ($(JULIA_BUILD_MODE),release)
205211
JL_PRIVATE_LIBS-0 += libjulia-internal libjulia-codegen
206212
else ifeq ($(JULIA_BUILD_MODE),debug)
@@ -225,9 +231,12 @@ JL_PRIVATE_LIBS-$(USE_SYSTEM_ZLIB) += zlib
225231
else
226232
JL_PRIVATE_LIBS-$(USE_SYSTEM_ZLIB) += libz
227233
endif
234+
JL_PRIVATE_LIBS-$(USE_SYSTEM_ZLIB) += libzstd
235+
JL_PRIVATE_EXES += zstd$(EXE) zstdmt$(EXE)
228236
ifeq ($(USE_LLVM_SHLIB),1)
229237
JL_PRIVATE_LIBS-$(USE_SYSTEM_LLVM) += libLLVM $(LLVM_SHARED_LIB_NAME)
230238
endif
239+
JL_PRIVATE_TOOLS += lld$(EXE) dsymutil$(EXE)
231240
JL_PRIVATE_LIBS-$(USE_SYSTEM_LIBUNWIND) += libunwind
232241

233242
ifeq ($(USE_SYSTEM_LIBM),0)
@@ -284,45 +293,41 @@ install: $(build_depsbindir)/stringreplace $(BUILDROOT)/doc/_build/html/en/index
284293

285294
$(INSTALL_M) $(JULIA_EXECUTABLE_$(JULIA_BUILD_MODE)) $(DESTDIR)$(bindir)/
286295
ifeq ($(OS),WINNT)
287-
-$(INSTALL_M) $(wildcard $(build_bindir)/*.dll) $(DESTDIR)$(bindir)/
296+
$(INSTALL_M) $(wildcard $(build_bindir)/*.dll) $(DESTDIR)$(bindir)/
288297
ifeq ($(JULIA_BUILD_MODE),release)
289-
-$(INSTALL_M) $(build_libdir)/libjulia.dll.a $(DESTDIR)$(libdir)/
290-
-$(INSTALL_M) $(build_libdir)/libjulia-internal.dll.a $(DESTDIR)$(libdir)/
298+
$(INSTALL_M) $(build_libdir)/libjulia.dll.a $(DESTDIR)$(libdir)/
299+
$(INSTALL_M) $(build_libdir)/libjulia-internal.dll.a $(DESTDIR)$(libdir)/
291300
else ifeq ($(JULIA_BUILD_MODE),debug)
292-
-$(INSTALL_M) $(build_libdir)/libjulia-debug.dll.a $(DESTDIR)$(libdir)/
293-
-$(INSTALL_M) $(build_libdir)/libjulia-internal-debug.dll.a $(DESTDIR)$(libdir)/
301+
$(INSTALL_M) $(build_libdir)/libjulia-debug.dll.a $(DESTDIR)$(libdir)/
302+
$(INSTALL_M) $(build_libdir)/libjulia-internal-debug.dll.a $(DESTDIR)$(libdir)/
294303
endif
295-
-$(INSTALL_M) $(wildcard $(build_private_libdir)/*.a) $(DESTDIR)$(private_libdir)/
296-
-rm -f $(DESTDIR)$(private_libdir)/sys-o.a
304+
$(INSTALL_M) $(filter-out %-bc.a %-o.a,$(wildcard $(build_private_libdir)/lib*.a)) $(DESTDIR)$(private_libdir)/
297305

298-
# We have a single exception; we want 7z.dll to live in private_libexecdir,
299-
# not bindir, so that 7z.exe can find it.
300-
-mv $(DESTDIR)$(bindir)/7z.dll $(DESTDIR)$(private_libexecdir)/
301-
-$(INSTALL_M) $(build_bindir)/libopenlibm.dll.a $(DESTDIR)$(libdir)/
302-
-$(INSTALL_M) $(build_libdir)/libssp.dll.a $(DESTDIR)$(libdir)/
306+
$(INSTALL_M) $(build_bindir)/libopenlibm.dll.a $(DESTDIR)$(libdir)/
307+
$(INSTALL_M) $(build_libdir)/libssp.dll.a $(DESTDIR)$(libdir)/
303308
else
304309

305310
# Copy over .dSYM directories directly for Darwin
306311
ifneq ($(DARWIN_FRAMEWORK),1)
307312
ifeq ($(OS),Darwin)
308313
ifeq ($(JULIA_BUILD_MODE),release)
309-
-cp -a $(build_libdir)/libjulia.*.dSYM $(DESTDIR)$(libdir)
310-
-cp -a $(build_libdir)/libjulia-internal.*.dSYM $(DESTDIR)$(private_libdir)
311-
-cp -a $(build_libdir)/libjulia-codegen.*.dSYM $(DESTDIR)$(private_libdir)
312-
-cp -a $(build_private_libdir)/sys.dylib.dSYM $(DESTDIR)$(private_libdir)
314+
cp -a $(build_libdir)/libjulia.*.dSYM $(DESTDIR)$(libdir)
315+
cp -a $(build_libdir)/libjulia-internal.*.dSYM $(DESTDIR)$(private_libdir)
316+
cp -a $(build_libdir)/libjulia-codegen.*.dSYM $(DESTDIR)$(private_libdir)
317+
cp -a $(build_private_libdir)/sys.dylib.dSYM $(DESTDIR)$(private_libdir)
313318
else ifeq ($(JULIA_BUILD_MODE),debug)
314-
-cp -a $(build_libdir)/libjulia-debug.*.dSYM $(DESTDIR)$(libdir)
315-
-cp -a $(build_libdir)/libjulia-internal-debug.*.dSYM $(DESTDIR)$(private_libdir)
316-
-cp -a $(build_libdir)/libjulia-codegen-debug.*.dSYM $(DESTDIR)$(private_libdir)
317-
-cp -a $(build_private_libdir)/sys-debug.dylib.dSYM $(DESTDIR)$(private_libdir)
319+
cp -a $(build_libdir)/libjulia-debug.*.dSYM $(DESTDIR)$(libdir)
320+
cp -a $(build_libdir)/libjulia-internal-debug.*.dSYM $(DESTDIR)$(private_libdir)
321+
cp -a $(build_libdir)/libjulia-codegen-debug.*.dSYM $(DESTDIR)$(private_libdir)
322+
cp -a $(build_private_libdir)/sys-debug.dylib.dSYM $(DESTDIR)$(private_libdir)
318323
endif
319324
endif
320325

321326
# Copy over shared library file for libjulia.*
322327
for suffix in $(JL_TARGETS) ; do \
323328
for lib in $(build_libdir)/lib$${suffix}.*$(SHLIB_EXT)*; do \
324329
if [ "$${lib##*.}" != "dSYM" ]; then \
325-
$(INSTALL_M) $$lib $(DESTDIR)$(libdir) ; \
330+
$(INSTALL_M) $$lib $(DESTDIR)$(libdir) || exit 1; \
326331
fi \
327332
done \
328333
done
@@ -342,26 +347,24 @@ endif
342347
for suffix in $(JL_PRIVATE_LIBS-0) ; do \
343348
for lib in $(build_libdir)/$${suffix}.*$(SHLIB_EXT)*; do \
344349
if [ "$${lib##*.}" != "dSYM" ]; then \
345-
$(INSTALL_M) $$lib $(DESTDIR)$(private_libdir) ; \
350+
$(INSTALL_M) $$lib $(DESTDIR)$(private_libdir) || exit 1; \
346351
fi \
347352
done \
348353
done
349354
for suffix in $(JL_PRIVATE_LIBS-1) ; do \
350355
for lib in $(build_private_libdir)/$${suffix}.$(SHLIB_EXT)*; do \
351356
if [ "$${lib##*.}" != "dSYM" ]; then \
352-
$(INSTALL_M) $$lib $(DESTDIR)$(private_libdir) ; \
357+
$(INSTALL_M) $$lib $(DESTDIR)$(private_libdir) || exit 1; \
353358
fi \
354359
done \
355360
done
356361
endif
357-
# Install `7z` into private_libexecdir
358-
$(INSTALL_M) $(build_bindir)/7z$(EXE) $(DESTDIR)$(private_libexecdir)/
359-
360-
# Install `lld` into private_libexecdir
361-
$(INSTALL_M) $(build_depsbindir)/lld$(EXE) $(DESTDIR)$(private_libexecdir)/
362-
363-
# Install `dsymutil` into private_libexecdir/
364-
$(INSTALL_M) $(build_depsbindir)/dsymutil$(EXE) $(DESTDIR)$(private_libexecdir)/
362+
for exe in $(JL_PRIVATE_EXES) ; do \
363+
$(INSTALL_M) $(build_private_libexecdir)/$$exe $(DESTDIR)$(private_libexecdir) || exit 1; \
364+
done
365+
for exe in $(JL_PRIVATE_TOOLS) ; do \
366+
$(INSTALL_M) $(build_depsbindir)/$$exe $(DESTDIR)$(private_libexecdir) || exit 1; \
367+
done
365368

366369
# Copy public headers
367370
cp -R -L $(build_includedir)/julia/* $(DESTDIR)$(includedir)/julia
@@ -413,13 +416,13 @@ ifneq ($(private_libdir_rel),$(build_private_libdir_rel))
413416
ifeq ($(OS), Darwin)
414417
ifneq ($(DARWIN_FRAMEWORK),1)
415418
for j in $(JL_TARGETS) ; do \
416-
install_name_tool -rpath @executable_path/$(build_private_libdir_rel) @executable_path/$(private_libdir_rel) $(DESTDIR)$(bindir)/$$j; \
417-
install_name_tool -add_rpath @executable_path/$(build_libdir_rel) @executable_path/$(libdir_rel) $(DESTDIR)$(bindir)/$$j; \
419+
install_name_tool -rpath @executable_path/$(build_private_libdir_rel) @executable_path/$(private_libdir_rel) $(DESTDIR)$(bindir)/$$j || exit 1; \
420+
install_name_tool -rpath @executable_path/$(build_libdir_rel) @executable_path/$(libdir_rel) $(DESTDIR)$(bindir)/$$j || exit 1; \
418421
done
419422
endif
420423
else ifneq (,$(findstring $(OS),Linux FreeBSD))
421424
for j in $(JL_TARGETS) ; do \
422-
$(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN/$(private_libdir_rel):$$ORIGIN/$(libdir_rel)' $(DESTDIR)$(bindir)/$$j; \
425+
$(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN/$(private_libdir_rel):$$ORIGIN/$(libdir_rel)' $(DESTDIR)$(bindir)/$$j || exit 1; \
423426
done
424427
endif
425428

@@ -442,11 +445,11 @@ endif
442445
ifeq ($(OS), Darwin)
443446
ifneq ($(DARWIN_FRAMEWORK),1)
444447
ifeq ($(JULIA_BUILD_MODE),release)
445-
install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel)/ $(DESTDIR)$(private_libdir)/libjulia-internal.$(SHLIB_EXT)
446-
install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel)/ $(DESTDIR)$(private_libdir)/libjulia-codegen.$(SHLIB_EXT)
448+
install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel) $(DESTDIR)$(private_libdir)/libjulia-internal.$(SHLIB_EXT)
449+
install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel) $(DESTDIR)$(private_libdir)/libjulia-codegen.$(SHLIB_EXT)
447450
else ifeq ($(JULIA_BUILD_MODE),debug)
448-
install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel)/ $(DESTDIR)$(private_libdir)/libjulia-internal-debug.$(SHLIB_EXT)
449-
install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel)/ $(DESTDIR)$(private_libdir)/libjulia-codegen-debug.$(SHLIB_EXT)
451+
install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel) $(DESTDIR)$(private_libdir)/libjulia-internal-debug.$(SHLIB_EXT)
452+
install_name_tool -add_rpath @loader_path/$(reverse_private_libdir_rel) $(DESTDIR)$(private_libdir)/libjulia-codegen-debug.$(SHLIB_EXT)
450453
endif
451454
endif
452455
else ifneq (,$(findstring $(OS),Linux FreeBSD))
@@ -483,7 +486,7 @@ ifeq ($(OS),FreeBSD)
483486
# don't set libgfortran's RPATH, it won't be able to find its friends on systems
484487
# that don't have the exact GCC port installed used for the build.
485488
for lib in $(DESTDIR)$(private_libdir)/libgfortran*$(SHLIB_EXT)*; do \
486-
$(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN' $$lib; \
489+
$(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN' $$lib || exit 1; \
487490
done
488491
endif
489492

THIRDPARTY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ Julia bundles the following external programs and libraries:
5656

5757
- [7-Zip](https://www.7-zip.org/license.txt)
5858
- [ZLIB](https://zlib.net/zlib_license.html)
59+
- [ZSTD](https://github.com/facebook/zstd/blob/v1.5.7/LICENSE)
5960

6061
On some platforms, distributions of Julia contain SSL certificate authority certificates,
6162
released under the [Mozilla Public License](https://en.wikipedia.org/wiki/Mozilla_Public_License).

contrib/refresh_checksums.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ CLANG_TRIPLETS=$(filter %-darwin %-freebsd,$(TRIPLETS))
2424
NON_CLANG_TRIPLETS=$(filter-out %-darwin %-freebsd,$(TRIPLETS))
2525

2626
# These are the projects currently using BinaryBuilder; both GCC-expanded and non-GCC-expanded:
27-
BB_PROJECTS=mbedtls libssh2 nghttp2 mpfr curl libgit2 pcre libuv unwind llvmunwind dsfmt objconv p7zip zlib libsuitesparse openlibm blastrampoline libtracyclient
27+
BB_PROJECTS=mbedtls libssh2 nghttp2 mpfr curl libgit2 pcre libuv unwind llvmunwind dsfmt objconv p7zip zlib zstd libsuitesparse openlibm blastrampoline libtracyclient
2828
BB_GCC_EXPANDED_PROJECTS=openblas csl
2929
BB_CXX_EXPANDED_PROJECTS=gmp llvm clang llvm-tools lld
3030
# These are non-BB source-only deps

deps/Makefile

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,10 @@ ifeq ($(USE_SYSTEM_ZLIB), 0)
155155
DEP_LIBS += zlib
156156
endif
157157

158+
ifeq ($(USE_SYSTEM_ZSTD), 0)
159+
DEP_LIBS += zstd
160+
endif
161+
158162
ifeq ($(USE_SYSTEM_P7ZIP), 0)
159163
DEP_LIBS += p7zip
160164
endif
@@ -195,7 +199,7 @@ DEP_LIBS_STAGED := $(DEP_LIBS)
195199
# list all targets
196200
DEP_LIBS_STAGED_ALL := llvm llvm-tools clang llvmunwind unwind libuv pcre \
197201
openlibm dsfmt blastrampoline openblas lapack gmp mpfr patchelf utf8proc \
198-
objconv mbedtls libssh2 nghttp2 curl libgit2 libwhich zlib p7zip csl \
202+
objconv mbedtls libssh2 nghttp2 curl libgit2 libwhich zlib zstd p7zip csl \
199203
sanitizers libsuitesparse lld libtracyclient ittapi JuliaSyntax terminfo
200204
DEP_LIBS_ALL := $(DEP_LIBS_STAGED_ALL)
201205

@@ -244,6 +248,7 @@ include $(SRCDIR)/openblas.mk
244248
include $(SRCDIR)/utf8proc.mk
245249
include $(SRCDIR)/libsuitesparse.mk
246250
include $(SRCDIR)/zlib.mk
251+
include $(SRCDIR)/zstd.mk
247252
include $(SRCDIR)/unwind.mk
248253
include $(SRCDIR)/gmp.mk
249254
include $(SRCDIR)/mpfr.mk

deps/checksums/zstd

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
Zstd.v1.5.7+1.aarch64-apple-darwin.tar.gz/md5/d6b2fb32d705078dbc369986ac8b056b
2+
Zstd.v1.5.7+1.aarch64-apple-darwin.tar.gz/sha512/5dfcf36087ce8540b1f6a04181adee962e2164a763e758ac5cc256c332756774b381ca58e26641a15ce555d59641690a6da72a67bf935d8611734f2006bde504
3+
Zstd.v1.5.7+1.aarch64-linux-gnu.tar.gz/md5/0c627ec83e426383c25eb4bc297f3548
4+
Zstd.v1.5.7+1.aarch64-linux-gnu.tar.gz/sha512/1fdcf77e877f0676fc26a05e0cc20a1d6e1df731d81e0bba9a5657131116bbea75da4d38953969d8d07dce0bf2d7654075dbb285ebe5f4588c446e88774336c8
5+
Zstd.v1.5.7+1.aarch64-linux-musl.tar.gz/md5/cc9ada74a19db50d7dd6edd05866c902
6+
Zstd.v1.5.7+1.aarch64-linux-musl.tar.gz/sha512/0b33c0df144bb1e95290685f01695b26da834a70a365c0362314cb001ba611962a0876bc5baac31f19c80bcb110e030fb9840a56761b4d29a7893ca65f95b111
7+
Zstd.v1.5.7+1.aarch64-unknown-freebsd.tar.gz/md5/5daa5b2bf2b856c448feaa8329d0de1b
8+
Zstd.v1.5.7+1.aarch64-unknown-freebsd.tar.gz/sha512/b39d025463b4bf21295fd5bbff91ba501506b3480363cdcfe6dd2f11d2e0afaf130f6c74d962e503fccb7a55bfcad0504ebb19f18b6b5c8b8103e7b9919df536
9+
Zstd.v1.5.7+1.armv6l-linux-gnueabihf.tar.gz/md5/f4218e8b4f8d415df49aeba9d43f0ba0
10+
Zstd.v1.5.7+1.armv6l-linux-gnueabihf.tar.gz/sha512/878d4f90160c6b0c341c61ecafbf5f5cb89c73db3175f272adc666bc25c88b127145d78946bc0fcb992489b54fbb48089bfcacf768397fc5d54d7cae4aeae9f9
11+
Zstd.v1.5.7+1.armv6l-linux-musleabihf.tar.gz/md5/3c2e132ca47e6d1d23c149fdde9d8bd5
12+
Zstd.v1.5.7+1.armv6l-linux-musleabihf.tar.gz/sha512/3745d99c9ca0ce9f98ff9393e405e8b382d05573a972067d57e800e282a9544fff7bc3d49b91eccc98d7736acdc3faa4c637911d79fab10f5a691d33ae775574
13+
Zstd.v1.5.7+1.armv7l-linux-gnueabihf.tar.gz/md5/926d765281bef388ecc25d04cbb66102
14+
Zstd.v1.5.7+1.armv7l-linux-gnueabihf.tar.gz/sha512/2d2c14587e2e7b2b147cb6423720cc30ed6aa57ed07372a1aa54e7f2e6badb5aa640b116e83371561d6f8f3a1b3f7fff7f6df137f8c7be788ee889bb30273eae
15+
Zstd.v1.5.7+1.armv7l-linux-musleabihf.tar.gz/md5/c25420561ce254e57d74e30c88fc53dd
16+
Zstd.v1.5.7+1.armv7l-linux-musleabihf.tar.gz/sha512/2f924e2089589057e8713d04db9a1cb2f2d571ad9e7eeda3b7f898c9a75f8fecf0647f2185d3c01fc3b399d3662ff3b1acb13429c8a953f0394a3ed9ca30b877
17+
Zstd.v1.5.7+1.i686-linux-gnu.tar.gz/md5/3314bf1b52f2295555fb4ae44b1d9331
18+
Zstd.v1.5.7+1.i686-linux-gnu.tar.gz/sha512/91502910a0c9b786d91499477fee2445b8f6de6bcb71af7d79c738ea2430c67cb1957866383ee3921ed1a23c53a80be19aea6abcf0e76056ffee69583728c3ed
19+
Zstd.v1.5.7+1.i686-linux-musl.tar.gz/md5/845eddc06527a4c4b196666f7ac64ba3
20+
Zstd.v1.5.7+1.i686-linux-musl.tar.gz/sha512/bb15b4327cef32be38c2fd68afedb3245c7db881ad66d3ece2198ff3034be9c12efa3d62bcba2b8e6056e7d8cb5f1b3e33726f7d1e1bead235c38f8fa985b557
21+
Zstd.v1.5.7+1.i686-w64-mingw32.tar.gz/md5/9bc0b3c951f5e66393fd5433bf60a2c8
22+
Zstd.v1.5.7+1.i686-w64-mingw32.tar.gz/sha512/550b0189097e569f98404aa836b76a5cbdc36428292214c4af8916dea2713440cf3ba94125b3e5fa0c65b2bcb916733094fdef906ad19f923d90dabfc961c75a
23+
Zstd.v1.5.7+1.powerpc64le-linux-gnu.tar.gz/md5/468d930de7a27af961996e7c6ed35298
24+
Zstd.v1.5.7+1.powerpc64le-linux-gnu.tar.gz/sha512/d680715b1ac9ff07d5662c499fbab67757509599335f861158b9dba32fe9b22da6e52d0db6b402dd4542799621ad3dccf254dfd9d3c8748bbd22f7446681539a
25+
Zstd.v1.5.7+1.riscv64-linux-gnu.tar.gz/md5/b93fef8db2b0b4417f7836d73c5fbe86
26+
Zstd.v1.5.7+1.riscv64-linux-gnu.tar.gz/sha512/9f3ee42c7952aba2d2c26252f058bb7ab96828fafc978c9273b500ef15ccd271c51399d4b93eebd4c832b087ab5ed8a4847104ce9c83c9483aaa13c22df681bb
27+
Zstd.v1.5.7+1.x86_64-apple-darwin.tar.gz/md5/29a260789fae6f6b6df0e5cebdafd615
28+
Zstd.v1.5.7+1.x86_64-apple-darwin.tar.gz/sha512/015045a1b7a477504057cb4c87428d42386218e48af38f83739dbe6b93961ca2c8dd4d794377a2d54b8cc284f5a467e3358d4f534cf8bcbcad886ef8cea038e9
29+
Zstd.v1.5.7+1.x86_64-linux-gnu.tar.gz/md5/06656befb6ef9a8cc7f56e7152c2acc5
30+
Zstd.v1.5.7+1.x86_64-linux-gnu.tar.gz/sha512/16aea0d95432a87d21d9a6f55d84e45df85caf1fda77c75b7e9a8bba519605168585f21a812773ddf1075d9bad68412e63b8cad1a143420e25ae4405bb41842e
31+
Zstd.v1.5.7+1.x86_64-linux-musl.tar.gz/md5/da13dd1cc0d20ba9a06e9e79a588cda4
32+
Zstd.v1.5.7+1.x86_64-linux-musl.tar.gz/sha512/cd4218fa92dcf8772390788d5654ca12132af7829fb0ada016f3c663e2045e29e7d7587f2f5a4f057020cacca17c188c8537f284b1456100d57e84bb47c40e77
33+
Zstd.v1.5.7+1.x86_64-unknown-freebsd.tar.gz/md5/bce5f37e53e330bfe4df4a28cf5c223b
34+
Zstd.v1.5.7+1.x86_64-unknown-freebsd.tar.gz/sha512/8f6bd7664efea537ac7815db0604ca1a07bcfb71b5152c22dc7f0a11b57643f059c341fa71d315407e2333e4c97e43e214471c73eed8b977680785302c7c2b3e
35+
Zstd.v1.5.7+1.x86_64-w64-mingw32.tar.gz/md5/7cf3a740fa174004b94125e8754f4a19
36+
Zstd.v1.5.7+1.x86_64-w64-mingw32.tar.gz/sha512/faac37ad4dacb0f083364c593cd3bd1c0b592947341a631bd2fbc4081361d97ef89482f4459c46ad37ae030aa900c62305a8525e64a2ad8e91204d76dda89db1
37+
zstd-f8745da6ff1ad1e7bab384bd1f9d742439278e99.tar.gz/md5/a679d9aa86549b5851100ac5d4044c68
38+
zstd-f8745da6ff1ad1e7bab384bd1f9d742439278e99.tar.gz/sha512/27c6fff165abea694d91311a6657a939433ba1d707147ed9072b5e4ecce259b929970306788e0c3e95db38ce85e894e5025936b1faa81cf67741b8464e24fc4e

deps/zstd.mk

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
## Zstd ##
2+
ifneq ($(USE_BINARYBUILDER_ZSTD), 1)
3+
ZSTD_GIT_URL := https://github.com/facebook/zstd.git
4+
ZSTD_TAR_URL = https://api.github.com/repos/facebook/zstd/tarball/$1
5+
$(eval $(call git-external,zstd,ZSTD,,,$(BUILDDIR)))
6+
7+
ZSTD_BUILD_OPTS := MOREFLAGS="-DZSTD_MULTITHREAD $(fPIC)" bindir=$(build_private_libexecdir)
8+
9+
$(BUILDDIR)/$(ZSTD_SRC_DIR)/build-configured: $(BUILDDIR)/$(ZSTD_SRC_DIR)/source-extracted
10+
echo 1 > $@
11+
12+
$(BUILDDIR)/$(ZSTD_SRC_DIR)/build-compiled: $(BUILDDIR)/$(ZSTD_SRC_DIR)/build-configured
13+
$(MAKE) -C $(dir $<) $(MAKE_COMMON) $(ZSTD_BUILD_OPTS)
14+
echo 1 > $@
15+
16+
$(eval $(call staged-install, \
17+
zstd,$(ZSTD_SRC_DIR), \
18+
MAKE_INSTALL,$(ZSTD_BUILD_OPTS) MT=1,, \
19+
$(INSTALL_NAME_CMD)libzstd.$(SHLIB_EXT) $(build_shlibdir)/libzstd.$(SHLIB_EXT)))
20+
21+
clean-zstd:
22+
-rm -f $(BUILDDIR)/$(ZSTD_SRC_DIR)/build-configured $(BUILDDIR)/$(ZSTD_SRC_DIR)/build-compiled
23+
-$(MAKE) -C $(BUILDDIR)/$(ZSTD_SRC_DIR) $(MAKE_COMMON) $(ZSTD_BUILD_OPTS) clean
24+
25+
get-zstd: $(ZSTD_SRC_FILE)
26+
extract-zstd: $(BUILDDIR)/$(ZSTD_SRC_DIR)/source-extracted
27+
configure-zstd: $(BUILDDIR)/$(ZSTD_SRC_DIR)/build-configured
28+
compile-zstd: $(BUILDDIR)/$(ZSTD_SRC_DIR)/build-compiled
29+
fastcheck-zstd: check-zstd
30+
check-zstd: compile-zstd
31+
32+
else # USE_BINARYBUILDER_ZSTD
33+
34+
$(eval $(call bb-install,zstd,ZSTD,false))
35+
# move from bindir to shlibdir, where we expect to install it
36+
install-zstd: post-install-zstd
37+
uninstall-zstd: pre-uninstall-zstd
38+
post-install-zstd: $(build_prefix)/manifest/zstd $(PATCHELF_MANIFEST)
39+
mkdir -p $(build_private_libexecdir)/
40+
[ ! -e $(build_bindir)/zstdmt$(EXE) ] || mv $(build_bindir)/zstdmt$(EXE) $(build_private_libexecdir)/zstdmt$(EXE)
41+
[ ! -e $(build_bindir)/zstd$(EXE) ] || mv $(build_bindir)/zstd$(EXE) $(build_private_libexecdir)/zstd$(EXE)
42+
[ -e $(build_private_libexecdir)/zstd$(EXE) ]
43+
[ -e $(build_private_libexecdir)/zstdmt$(EXE) ]
44+
ifeq ($(OS), Darwin)
45+
for j in zstd zstdmt ; do \
46+
[ -L $(build_private_libexecdir)/$$j ] && continue; \
47+
install_name_tool -rpath @executable_path/$(reverse_build_private_libexecdir_rel) @loader_path/$(build_libdir_rel) $(build_private_libexecdir)/$$j 2>/dev/null || true; \
48+
install_name_tool -rpath @loader_path/$(build_libdir_rel) @executable_path/$(reverse_build_private_libexecdir_rel) $(build_private_libexecdir)/$$j || exit 1; \
49+
done
50+
else ifneq (,$(findstring $(OS),Linux FreeBSD))
51+
for j in zstd zstdmt ; do \
52+
[ -L $(build_private_libexecdir)/$$j ] && continue; \
53+
$(PATCHELF) $(PATCHELF_SET_RPATH_ARG) '$$ORIGIN/$(reverse_build_private_libexecdir_rel)' $(build_private_libexecdir)/$$j || exit 1; \
54+
done
55+
endif
56+
57+
pre-uninstall-zstd:
58+
-rm -f $(build_private_libexecdir)/zstd$(EXE) $(build_private_libexecdir)/zstdmt$(EXE)
59+
60+
endif # USE_BINARYBUILDER_ZSTD

deps/zstd.version

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# -*- makefile -*-
2+
## jll artifact
3+
ZSTD_JLL_NAME := Zstd
4+
5+
## source build
6+
ZSTD_VER := 1.5.7
7+
ZSTD_BRANCH=v1.5.7
8+
ZSTD_SHA1=f8745da6ff1ad1e7bab384bd1f9d742439278e99

julia.spdx.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,18 @@
420420
"copyrightText": "Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler",
421421
"summary": "A massively spiffy yet delicately unobtrusive compression library."
422422
},
423+
{
424+
"name": "zstd",
425+
"SPDXID": "SPDXRef-zstd",
426+
"downloadLocation": "git+https://github.com/facebook/zstd.git",
427+
"filesAnalyzed": false,
428+
"homepage": "https://www.zstd.net",
429+
"sourceInfo": "The git hash of the version in use can be found in the file deps/zstd.version",
430+
"licenseConcluded": "BSD-3-Clause",
431+
"licenseDeclared": "GPL-2.0+ OR BSD-3-Clause",
432+
"copyrightText": "Copyright (c) Meta Platforms, Inc. and affiliates. All rights reserved.",
433+
"summary": "Zstandard, or zstd as short version, is a fast lossless compression algorithm."
434+
},
423435
{
424436
"name": "patchelf",
425437
"SPDXID": "SPDXRef-patchelf",
@@ -627,6 +639,11 @@
627639
"relationshipType": "BUILD_DEPENDENCY_OF",
628640
"relatedSpdxElement": "SPDXRef-JuliaMain"
629641
},
642+
{
643+
"spdxElementId": "SPDXRef-zstd",
644+
"relationshipType": "BUILD_DEPENDENCY_OF",
645+
"relatedSpdxElement": "SPDXRef-JuliaMain"
646+
},
630647
{
631648
"spdxElementId": "SPDXRef-patchelf",
632649
"relationshipType": "BUILD_TOOL_OF",

0 commit comments

Comments
 (0)