Bindings to the seekable variant of the ZSTD compression format

#12 [Documentation] Failed to build on Windows: zstd required to build it

Closed on April 17, 2023
saona-raimundo on April 12, 2023

Hi! I wanted to note that the build script does panics on Windows, presumably because zstd is not installed by default. In Linux, libzstd should be included.

Could you document the solution? Should zstd be a prerequisite to build this crate?

I wanted to use other crates that depend on this one, which is why I think this documentation might be useful for others too.

pmeunier on April 13, 2023

Hi. ZStd is supposed to be included and compiled by the build script.

Can you provide more information, or maybe even a patch for Windows?

saona-raimundo on April 13, 2023

Oh! I am sorry, it seems I wrongly read the version number.

I was having trouble compiling zstd-seekable version 0.1.20, not the current 0.2.2 version. The current version 0.2.2, cloned from this repository, compiles perfectly on Windows. Sorry for the mistake.

The issue arised for me when I tried using the crate pijul-export. It depends on libpijul, which has as an optional dependency zstd-seekable (turned on by default). The same issue arises if I clone pjilul/libpijul and try to build the crate on Windows.

I think a solution would be to release a new version in crates.io of zstd-seekable. The current highest version available is 0.1.20.

Checking its crates.io versions page, the 0.2.* versions are yanked there. Is this intended?

pmeunier on April 13, 2023

Checking its crates.io versions page, the 0.2.* versions are yanked there. Is this intended?

This is complicated. This crate is being worked on. Versions 0.2.* were attempts to rewrite the C parts in Rust, in order to make them less dependent on performance changes from the upstream version of ZStd. Unfortunately, they had major bugs, and we never found the time to fix these, so I had to yank.

Version 0.1.20 is a build script improvement of an old version. I should probably find some time to clean the repo’s history.

What is the exact issue you’re having on Windows? Can you provide more information on that?

saona-raimundo on April 14, 2023

Surely! Thanks for looking into it.

These are my steps on Windows.

  1. pijul clone https://nest.pijul.com/pijul/pijul
  2. cd pijul\libpijul, for the record, it is version v1.0.0-beta.4
  3. cargo check

This is the result (head first).

   Compiling zstd-seekable v0.1.20
The following warnings were emitted during compilation:

warning: cl : Command line warning D9024 : unrecognized source file type 'zstd/lib/decompress\huf_decompress_amd64.S', object file assumed
warning: cl : Command line warning D9027 : source file 'zstd/lib/decompress\huf_decompress_amd64.S' ignored

error: failed to run custom build command for `zstd-seekable v0.1.20`

Caused by:
  process didn't exit successfully: `D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-78dc152d9263ea15\build-script-build` (exit code: 1)
  --- stdout
  cargo:rerun-if-changed=zstd/contrib/seekable_format/zstdseek_compress.c
  cargo:rerun-if-changed=zstd/contrib/seekable_format/zstdseek_decompress.c
  TARGET = Some("x86_64-pc-windows-msvc")
  HOST = Some("x86_64-pc-windows-msvc")
  cargo:rerun-if-env-changed=CC_x86_64-pc-windows-msvc
  (...)

Warning Long full error message (I am not sure what is important)

(…) Compiling zstd-seekable v0.1.20 The following warnings were emitted during compilation:

warning: cl : Command line warning D9024 : unrecognized source file type ‘zstd/lib/decompress\huf_decompress_amd64.S’, object file assumed warning: cl : Command line warning D9027 : source file ‘zstd/lib/decompress\huf_decompress_amd64.S’ ignored

error: failed to run custom build command for zstd-seekable v0.1.20

Caused by: process didn’t exit successfully: D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-78dc152d9263ea15\build-script-build (exit code: 1) — stdout cargo:rerun-if-changed=zstd/contrib/seekable_format/zstdseek_compress.c cargo:rerun-if-changed=zstd/contrib/seekable_format/zstdseek_decompress.c TARGET = Some(“x86_64-pc-windows-msvc”) HOST = Some(“x86_64-pc-windows-msvc”) cargo:rerun-if-env-changed=CC_x86_64-pc-windows-msvc CC_x86_64-pc-windows-msvc = None cargo:rerun-if-env-changed=CC_x86_64_pc_windows_msvc CC_x86_64_pc_windows_msvc = None cargo:rerun-if-env-changed=HOST_CC HOST_CC = None cargo:rerun-if-env-changed=CC CC = None cargo:rerun-if-env-changed=CFLAGS_x86_64-pc-windows-msvc CFLAGS_x86_64-pc-windows-msvc = None cargo:rerun-if-env-changed=CFLAGS_x86_64_pc_windows_msvc CFLAGS_x86_64_pc_windows_msvc = None cargo:rerun-if-env-changed=HOST_CFLAGS HOST_CFLAGS = None cargo:rerun-if-env-changed=CFLAGS CFLAGS = None cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS CRATE_CC_NO_DEFAULTS = None CARGO_CFG_TARGET_FEATURE = Some(“fxsr,sse,sse2”) DEBUG = Some(“true”) running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/contrib/seekable_format/zstdseek_compress.o” “-c” “zstd/contrib/seekable_format/zstdseek_compress.c” zstdseek_compress.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/contrib/seekable_format/zstdseek_decompress.o” “-c” “zstd/contrib/seekable_format/zstdseek_decompress.c” zstdseek_decompress.c C:\Users\rasau.cargo\registry\src\github.com-1ecc6299db9ec823\zstd-seekable-0.1.20\zstd\contrib\seekable_format\zstdseek_decompress.c(187) : warning C4701: potentially uninitialized local variable ‘newOffset’ used exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common/xxhash.o” “-c” “zstd/lib/common/xxhash.c” xxhash.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\xxh64.o” “-c” “xxh64.c” xxh64.c xxh64.c(4): warning C4244: ‘return’: conversion from ‘XXH64_hash_t’ to ‘unsigned int’, possible loss of data exit code: 0 cargo:rerun-if-env-changed=AR_x86_64-pc-windows-msvc AR_x86_64-pc-windows-msvc = None cargo:rerun-if-env-changed=AR_x86_64_pc_windows_msvc AR_x86_64_pc_windows_msvc = None cargo:rerun-if-env-changed=HOST_AR HOST_AR = None cargo:rerun-if-env-changed=AR AR = None cargo:rerun-if-env-changed=ARFLAGS_x86_64-pc-windows-msvc ARFLAGS_x86_64-pc-windows-msvc = None cargo:rerun-if-env-changed=ARFLAGS_x86_64_pc_windows_msvc ARFLAGS_x86_64_pc_windows_msvc = None cargo:rerun-if-env-changed=HOST_ARFLAGS HOST_ARFLAGS = None cargo:rerun-if-env-changed=ARFLAGS ARFLAGS = None running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\lib.exe” “-out:D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\libzstdseek.a” “-nologo” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/contrib/seekable_format/zstdseek_compress.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/contrib/seekable_format/zstdseek_decompress.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common/xxhash.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\xxh64.o” exit code: 0 cargo:rustc-link-lib=static=zstdseek cargo:rustc-link-search=native=D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out cargo:rerun-if-env-changed=LIBZSTD_NO_PKG_CONFIG cargo:rerun-if-env-changed=PKG_CONFIG_x86_64-pc-windows-msvc cargo:rerun-if-env-changed=PKG_CONFIG_x86_64_pc_windows_msvc cargo:rerun-if-env-changed=HOST_PKG_CONFIG cargo:rerun-if-env-changed=PKG_CONFIG cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-pc-windows-msvc cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_pc_windows_msvc cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH cargo:rerun-if-env-changed=PKG_CONFIG_PATH cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-pc-windows-msvc cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_pc_windows_msvc cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-pc-windows-msvc cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_pc_windows_msvc cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR TARGET = Some(“x86_64-pc-windows-msvc”) HOST = Some(“x86_64-pc-windows-msvc”) cargo:rerun-if-env-changed=CC_x86_64-pc-windows-msvc CC_x86_64-pc-windows-msvc = None cargo:rerun-if-env-changed=CC_x86_64_pc_windows_msvc CC_x86_64_pc_windows_msvc = None cargo:rerun-if-env-changed=HOST_CC HOST_CC = None cargo:rerun-if-env-changed=CC CC = None cargo:rerun-if-env-changed=CFLAGS_x86_64-pc-windows-msvc CFLAGS_x86_64-pc-windows-msvc = None cargo:rerun-if-env-changed=CFLAGS_x86_64_pc_windows_msvc CFLAGS_x86_64_pc_windows_msvc = None cargo:rerun-if-env-changed=HOST_CFLAGS HOST_CFLAGS = None cargo:rerun-if-env-changed=CFLAGS CFLAGS = None cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS CRATE_CC_NO_DEFAULTS = None CARGO_CFG_TARGET_FEATURE = Some(“fxsr,sse,sse2”) DEBUG = Some(“true”) running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\debug.o” “-c” “zstd/lib/common\debug.c” debug.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\entropy_common.o” “-c” “zstd/lib/common\entropy_common.c” entropy_common.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\error_private.o” “-c” “zstd/lib/common\error_private.c” error_private.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\fse_decompress.o” “-c” “zstd/lib/common\fse_decompress.c” fse_decompress.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\pool.o” “-c” “zstd/lib/common\pool.c” pool.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\threading.o” “-c” “zstd/lib/common\threading.c” threading.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\xxhash.o” “-c” “zstd/lib/common\xxhash.c” xxhash.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\zstd_common.o” “-c” “zstd/lib/common\zstd_common.c” zstd_common.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\zstd_trace.o” “-c” “zstd/lib/common\zstd_trace.c” zstd_trace.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\fse_compress.o” “-c” “zstd/lib/compress\fse_compress.c” fse_compress.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\hist.o” “-c” “zstd/lib/compress\hist.c” hist.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\huf_compress.o” “-c” “zstd/lib/compress\huf_compress.c” huf_compress.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstdmt_compress.o” “-c” “zstd/lib/compress\zstdmt_compress.c” zstdmt_compress.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_compress.o” “-c” “zstd/lib/compress\zstd_compress.c” zstd_compress.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_compress_literals.o” “-c” “zstd/lib/compress\zstd_compress_literals.c” zstd_compress_literals.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_compress_sequences.o” “-c” “zstd/lib/compress\zstd_compress_sequences.c” zstd_compress_sequences.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_compress_superblock.o” “-c” “zstd/lib/compress\zstd_compress_superblock.c” zstd_compress_superblock.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_double_fast.o” “-c” “zstd/lib/compress\zstd_double_fast.c” zstd_double_fast.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_fast.o” “-c” “zstd/lib/compress\zstd_fast.c” zstd_fast.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_lazy.o” “-c” “zstd/lib/compress\zstd_lazy.c” zstd_lazy.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_ldm.o” “-c” “zstd/lib/compress\zstd_ldm.c” zstd_ldm.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_opt.o” “-c” “zstd/lib/compress\zstd_opt.c” zstd_opt.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/decompress\huf_decompress.o” “-c” “zstd/lib/decompress\huf_decompress.c” huf_decompress.c zstd/lib/decompress\huf_decompress.c(699): warning C4090: ‘function’: different ‘const’ qualifiers zstd/lib/decompress\huf_decompress.c(782): warning C4090: ‘function’: different ‘const’ qualifiers zstd/lib/decompress\huf_decompress.c(1479): warning C4090: ‘function’: different ‘const’ qualifiers zstd/lib/decompress\huf_decompress.c(1602): warning C4090: ‘function’: different ‘const’ qualifiers exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/decompress\huf_decompress_amd64.o” “-c” “zstd/lib/decompress\huf_decompress_amd64.S” cargo:warning=cl : Command line warning D9024 : unrecognized source file type ‘zstd/lib/decompress\huf_decompress_amd64.S’, object file assumed cargo:warning=cl : Command line warning D9027 : source file ‘zstd/lib/decompress\huf_decompress_amd64.S’ ignored cl : Command line warning D9021 : no action performed exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/decompress\zstd_ddict.o” “-c” “zstd/lib/decompress\zstd_ddict.c” zstd_ddict.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/decompress\zstd_decompress.o” “-c” “zstd/lib/decompress\zstd_decompress.c” zstd_decompress.c exit code: 0 running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\cl.exe” “-nologo” “-MD” “-O2” “-Z7” “-Brepro” “-I” “zstd/lib/common” “-I” “zstd/lib/compress” “-I” “zstd/lib/decompress” “-W4” “-FoD:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/decompress\zstd_decompress_block.o” “-c” “zstd/lib/decompress\zstd_decompress_block.c” zstd_decompress_block.c exit code: 0 cargo:rerun-if-env-changed=AR_x86_64-pc-windows-msvc AR_x86_64-pc-windows-msvc = None cargo:rerun-if-env-changed=AR_x86_64_pc_windows_msvc AR_x86_64_pc_windows_msvc = None cargo:rerun-if-env-changed=HOST_AR HOST_AR = None cargo:rerun-if-env-changed=AR AR = None cargo:rerun-if-env-changed=ARFLAGS_x86_64-pc-windows-msvc ARFLAGS_x86_64-pc-windows-msvc = None cargo:rerun-if-env-changed=ARFLAGS_x86_64_pc_windows_msvc ARFLAGS_x86_64_pc_windows_msvc = None cargo:rerun-if-env-changed=HOST_ARFLAGS HOST_ARFLAGS = None cargo:rerun-if-env-changed=ARFLAGS ARFLAGS = None running: “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\lib.exe” “-out:D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\libzstd.a” “-nologo” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\debug.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\entropy_common.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\error_private.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\fse_decompress.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\pool.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\threading.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\xxhash.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\zstd_common.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\zstd_trace.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\fse_compress.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\hist.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\huf_compress.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstdmt_compress.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_compress.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_compress_literals.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_compress_sequences.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_compress_superblock.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_double_fast.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_fast.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_lazy.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_ldm.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_opt.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/decompress\huf_decompress.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/decompress\huf_decompress_amd64.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/decompress\zstd_ddict.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/decompress\zstd_decompress.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/decompress\zstd_decompress_block.o” LINK : fatal error LNK1181: cannot open input file ‘D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd\lib\decompress\huf_decompress_amd64.o’ exit code: 1181

— stderr

error occurred: Command “C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX64\x64\lib.exe” “-out:D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\libzstd.a” “-nologo” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\debug.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\entropy_common.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\error_private.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\fse_decompress.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\pool.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\threading.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\xxhash.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\zstd_common.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/common\zstd_trace.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\fse_compress.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\hist.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\huf_compress.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstdmt_compress.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_compress.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_compress_literals.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_compress_sequences.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_compress_superblock.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_double_fast.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_fast.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_lazy.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_ldm.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/compress\zstd_opt.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/decompress\huf_decompress.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/decompress\huf_decompress_amd64.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/decompress\zstd_ddict.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/decompress\zstd_decompress.o” “D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd/lib/decompress\zstd_decompress_block.o” with args “lib.exe” did not execute successfully (status code exit code: 1181).

pmeunier on April 17, 2023

The actual error is:

cannot open input file ‘D:\Sync\projects\external_projects\pijul\target\debug\build\zstd-seekable-2a22d6ad8d03e945\out\zstd\lib\decompress\huf_decompress_amd64.o’

This is because the linker expects huf_decompress_amd64.S to be compiled to huf_decompress_amd64.o, while the compiler is ignoring that source file.

The fix was easy: disable ASM on Windows and non-AMD64 targets.

pmeunier closed this discussion on April 17, 2023
pmeunier on April 17, 2023

Oh, and this repo is for the Rust version of the seekable format, which cannot yet be used as a replacement for the C version (since the Rust version is currently broken).

The old version is on pmeunier/zstd-seekable, with a dirty “history reboot” event at the beginning.

saona-raimundo on April 17, 2023

Thank you for looking into it!

I confirm it works in Windows now.