Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unpaired surrogate in any env var stalls libz-ng-sys build on Windows #215

Open
EliahKagan opened this issue Sep 5, 2024 · 5 comments
Open

Comments

@EliahKagan
Copy link
Contributor

EliahKagan commented Sep 5, 2024

On Windows, when building libz-ng-sys, including when it is built by cargo as a dependency of another crate, the build stalls if the value of any environment variable is ill-formed Unicode due to the presence of an unpaired surrogate code point.

This is not related to #212 or any other Windows-specific behavior of the cargo-zng script in this repository. It happens even when libz-ng-sys is downloaded and built by cargo as a dependency of another project (which is unaffected by #212). In particular, I discovered this when investigating GitoxideLabs/gitoxide#1574, due to the libz-ng-sys dependency of gitoxide.

Working around it in gitoxide, to test the behavior of gix-testtools (or other gitoxide crates) in the presence of environment variables whose values contain unpaired surrogates, requires that I build, set the environment, and then run the tests, in such a way that this crate is built but the fixture scripts are not able to run. This is only slightly cumbersome, but it slows things down a bit and, more importantly, is easy to get wrong. So I think that application illustrates a possible benefit to fixing this. (This is because the machinery for running fixture scripts is what I'm currently investigating in gitoxide. In an investigation of another crate's build.rs behavior in the presence of such an environment variable, working around this could be even more complex.)

However, while this is not specific to the direct use of cargo-zng, it appears only libz-ng-sys is affected. Building the code in a clone of this repository with an environment variable set to a value that contains an unpaired surrogate, running cargo build still works fine, while ./cargo-zng build stalls.

My guess is that the bug is in a downstream component or possibly even a build tool, and not in any code in this repository. But I am not entirely sure, nor do I know what component. So at least initially I'm opening this here.

The problem occurs regardless of what environment variable has such a value. It does not need to be a variable that any code here or in a downstream component or build tool plausibly uses. In addition to testing with MSYS, I also tested with FOO and BE65CC05_8B18_486B_BED4_4DB214E47441, the latter of which is trivially derived from the output of a new run of uuidgen and not used elsewhere before this test. For example, this is one of the commands that stalled:

BE65CC05_8B18_486B_BED4_4DB214E47441=$'x\uD800y' ./cargo-zng -v build

I primarily tested in Git Bash. I verified that I was really setting unpaired surrogates by also trying in PowerShell with the ` notation, and (more convincingly) by running prenv, a program I happen to have written in such a way as to panic when it tries to print all environment variables when any environment variable's value cannot be decoded as UTF-8 (which should probably be considered a bug in prenv, so I may fix that and this behavior may thus go away, but is convenient for now and here).

$ BE65CC05_8B18_486B_BED4_4DB214E47441=$'x\uD800y' prenv
thread 'main' panicked at library\std\src\env.rs:171:83:
called `Result::unwrap()` on an `Err` value: "x\u{d800}y"
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

To make sure that it was really invalid Unicode, rather than non-ASCII or the presence of surrogates whether or not they are paired, I also tested with a variable whose value contained . As expected, this did not trigger the bug.

Although this bug is unrelated to #212, my ability to test it in Git Bash on my Windows system using the code here was simplified by being able to run the cargo-zng script, so I ran most tests on the dirsep branch (for #213).

The best information about where the stall occurs may be from a run with high verbosity. But first, in a low verbosity run:

ek@Glub MINGW64 ~/source/repos/libz-sys (dirsep)
$ FOO=$'x\uD800y' ./cargo-zng build
    Updating crates.io index
     Locking 40 packages to latest compatible versions
      Adding bitflags v1.3.2 (latest: v2.6.0)
      Adding cfg-if v0.1.10 (latest: v1.0.0)
      Adding dirs v2.0.2 (latest: v5.0.1)
      Adding dirs-sys v0.3.7 (latest: v0.4.1)
      Adding term v0.6.1 (latest: v1.0.0)
      Adding wasi v0.11.0+wasi-snapshot-preview1 (latest: v0.13.2+wasi-0.2.1)
   Compiling shlex v1.3.0
   Compiling libc v0.2.158
   Compiling cc v1.1.16
   Compiling cmake v0.1.51
   Compiling libz-ng-sys v1.1.16 (C:\Users\ek\AppData\Local\Temp\tmp.4HJfMhBr0v)
    Building [=====================>       ] 7/9: libz-ng-sys(build)

In a medium verbosity run:

ek@Glub MINGW64 ~/source/repos/libz-sys (dirsep)
$ FOO=$'x\uD800y' ./cargo-zng -v build
    Updating crates.io index
     Locking 40 packages to latest compatible versions
      Adding bitflags v1.3.2 (latest: v2.6.0)
      Adding cfg-if v0.1.10 (latest: v1.0.0)
      Adding dirs v2.0.2 (latest: v5.0.1)
      Adding dirs-sys v0.3.7 (latest: v0.4.1)
      Adding term v0.6.1 (latest: v1.0.0)
      Adding wasi v0.11.0+wasi-snapshot-preview1 (latest: v0.13.2+wasi-0.2.1)
   Compiling shlex v1.3.0
   Compiling libc v0.2.158
     Running `C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\rustc.exe --crate-name shlex --edition=2015 'C:\Users\ek\.cargo\registry\src\index.crates.io-6f17d22bba15001f\shlex-1.3.0\src\lib.rs' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=119 --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no --cfg 'feature="default"' --cfg 'feature="std"' --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values("default", "std"))' -C metadata=01c172d66b02238f -C extra-filename=-01c172d66b02238f --out-dir 'C:\Users\ek\AppData\Local\Temp\tmp.pgjR5vUo44\target\debug\deps' -L 'dependency=C:\Users\ek\AppData\Local\Temp\tmp.pgjR5vUo44\target\debug\deps' --cap-lints allow`
     Running `C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\rustc.exe --crate-name build_script_build --edition=2015 'C:\Users\ek\.cargo\registry\src\index.crates.io-6f17d22bba15001f\libc-0.2.158\build.rs' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=119 --crate-type bin --emit=dep-info,link -C embed-bitcode=no --cfg 'feature="default"' --cfg 'feature="std"' --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values("align", "const-extern-fn", "default", "extra_traits", "rustc-dep-of-std", "rustc-std-workspace-core", "std", "use_std"))' -C metadata=7181910614a0fd0a -C extra-filename=-7181910614a0fd0a --out-dir 'C:\Users\ek\AppData\Local\Temp\tmp.pgjR5vUo44\target\debug\build\libc-7181910614a0fd0a' -L 'dependency=C:\Users\ek\AppData\Local\Temp\tmp.pgjR5vUo44\target\debug\deps' --cap-lints allow`
   Compiling cc v1.1.16
     Running `C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\rustc.exe --crate-name cc --edition=2018 'C:\Users\ek\.cargo\registry\src\index.crates.io-6f17d22bba15001f\cc-1.1.16\src/lib.rs' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=119 --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values("jobserver", "parallel"))' -C metadata=5d9366911527f674 -C extra-filename=-5d9366911527f674 --out-dir 'C:\Users\ek\AppData\Local\Temp\tmp.pgjR5vUo44\target\debug\deps' -L 'dependency=C:\Users\ek\AppData\Local\Temp\tmp.pgjR5vUo44\target\debug\deps' --extern 'shlex=C:\Users\ek\AppData\Local\Temp\tmp.pgjR5vUo44\target\debug\deps\libshlex-01c172d66b02238f.rmeta' --cap-lints allow`
     Running `C:\Users\ek\AppData\Local\Temp\tmp.pgjR5vUo44\target\debug\build\libc-7181910614a0fd0a\build-script-build`
     Running `C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\rustc.exe --crate-name libc --edition=2015 'C:\Users\ek\.cargo\registry\src\index.crates.io-6f17d22bba15001f\libc-0.2.158\src/lib.rs' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=119 --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="std"' --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values("align", "const-extern-fn", "default", "extra_traits", "rustc-dep-of-std", "rustc-std-workspace-core", "std", "use_std"))' -C metadata=91cbcf99614a8ce5 -C extra-filename=-91cbcf99614a8ce5 --out-dir 'C:\Users\ek\AppData\Local\Temp\tmp.pgjR5vUo44\target\debug\deps' -L 'dependency=C:\Users\ek\AppData\Local\Temp\tmp.pgjR5vUo44\target\debug\deps' --cap-lints allow --cfg freebsd11 --cfg libc_priv_mod_use --cfg libc_union --cfg libc_const_size_of --cfg libc_align --cfg libc_int128 --cfg libc_core_cvoid --cfg libc_packedN --cfg libc_cfg_target_vendor --cfg libc_non_exhaustive --cfg libc_long_array --cfg libc_ptr_addr_of --cfg libc_underscore_const_names --cfg libc_const_extern_fn --check-cfg 'cfg(emscripten_new_stat_abi)' --check-cfg 'cfg(espidf_time64)' --check-cfg 'cfg(freebsd10)' --check-cfg 'cfg(freebsd11)' --check-cfg 'cfg(freebsd12)' --check-cfg 'cfg(freebsd13)' --check-cfg 'cfg(freebsd14)' --check-cfg 'cfg(freebsd15)' --check-cfg 'cfg(libc_align)' --check-cfg 'cfg(libc_cfg_target_vendor)' --check-cfg 'cfg(libc_const_extern_fn)' --check-cfg 'cfg(libc_const_extern_fn_unstable)' --check-cfg 'cfg(libc_const_size_of)' --check-cfg 'cfg(libc_core_cvoid)' --check-cfg 'cfg(libc_deny_warnings)' --check-cfg 'cfg(libc_int128)' --check-cfg 'cfg(libc_long_array)' --check-cfg 'cfg(libc_non_exhaustive)' --check-cfg 'cfg(libc_packedN)' --check-cfg 'cfg(libc_priv_mod_use)' --check-cfg 'cfg(libc_ptr_addr_of)' --check-cfg 'cfg(libc_thread_local)' --check-cfg 'cfg(libc_underscore_const_names)' --check-cfg 'cfg(libc_union)' --check-cfg 'cfg(target_os,values("switch","aix","ohos","hurd","visionos"))' --check-cfg 'cfg(target_env,values("illumos","wasi","aix","ohos"))' --check-cfg 'cfg(target_arch,values("loongarch64","mips32r6","mips64r6","csky"))'`
   Compiling cmake v0.1.51
     Running `C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\rustc.exe --crate-name cmake --edition=2021 'C:\Users\ek\.cargo\registry\src\index.crates.io-6f17d22bba15001f\cmake-0.1.51\src/lib.rs' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=119 --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values())' -C metadata=6fb58bf9c525de85 -C extra-filename=-6fb58bf9c525de85 --out-dir 'C:\Users\ek\AppData\Local\Temp\tmp.pgjR5vUo44\target\debug\deps' -L 'dependency=C:\Users\ek\AppData\Local\Temp\tmp.pgjR5vUo44\target\debug\deps' --extern 'cc=C:\Users\ek\AppData\Local\Temp\tmp.pgjR5vUo44\target\debug\deps\libcc-5d9366911527f674.rmeta' --cap-lints allow`
   Compiling libz-ng-sys v1.1.16 (C:\Users\ek\AppData\Local\Temp\tmp.pgjR5vUo44)
     Running `C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\rustc.exe --crate-name build_script_cmake --edition=2018 zng/cmake.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=119 --crate-type bin --emit=dep-info,link -C embed-bitcode=no --warn=unexpected_cfgs --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values())' --check-cfg 'cfg(zng)' -C metadata=d3c602731d9baee3 -C extra-filename=-d3c602731d9baee3 --out-dir 'C:\Users\ek\AppData\Local\Temp\tmp.pgjR5vUo44\target\debug\build\libz-ng-sys-d3c602731d9baee3' -C 'incremental=C:\Users\ek\AppData\Local\Temp\tmp.pgjR5vUo44\target\debug\incremental' -L 'dependency=C:\Users\ek\AppData\Local\Temp\tmp.pgjR5vUo44\target\debug\deps' --extern 'cmake=C:\Users\ek\AppData\Local\Temp\tmp.pgjR5vUo44\target\debug\deps\libcmake-6fb58bf9c525de85.rlib'`
     Running `C:\Users\ek\AppData\Local\Temp\tmp.pgjR5vUo44\target\debug\build\libz-ng-sys-d3c602731d9baee3\build-script-cmake`
    Building [=====================>       ] 7/9: libz-ng-sys(build)

In a high verbosity run:

ek@Glub MINGW64 ~/source/repos/libz-sys (dirsep)
$ FOO=$'x\uD800y' ./cargo-zng -vv build
    Updating crates.io index
     Locking 40 packages to latest compatible versions
      Adding bitflags v1.3.2 (latest: v2.6.0)
      Adding cfg-if v0.1.10 (latest: v1.0.0)
      Adding dirs v2.0.2 (latest: v5.0.1)
      Adding dirs-sys v0.3.7 (latest: v0.4.1)
      Adding term v0.6.1 (latest: v1.0.0)
      Adding wasi v0.11.0+wasi-snapshot-preview1 (latest: v0.13.2+wasi-0.2.1)
   Compiling shlex v1.3.0
   Compiling libc v0.2.158
     Running `set CARGO='\\?\C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\cargo.exe'&& set CARGO_CRATE_NAME=shlex&& set CARGO_MANIFEST_DIR='C:\Users\ek\.cargo\registry\src\index.crates.io-6f17d22bba15001f\shlex-1.3.0'&& set CARGO_PKG_AUTHORS='comex <comexk@gmail.com>:Fenhl <fenhl@fenhl.net>:Adrian Taylor <adetaylor@chromium.org>:Alex Touchet <alextouchet@outlook.com>:Daniel Parks <dp+git@oxidized.org>:Garrett Berg <googberg@gmail.com>'&& set CARGO_PKG_DESCRIPTION='Split a string into shell words, like Python'\''s shlex.'&& set CARGO_PKG_HOMEPAGE=''&& set CARGO_PKG_LICENSE='MIT OR Apache-2.0'&& set CARGO_PKG_LICENSE_FILE=''&& set CARGO_PKG_NAME=shlex&& set CARGO_PKG_README=README.md&& set CARGO_PKG_REPOSITORY='https://github.com/comex/rust-shlex'&& set CARGO_PKG_RUST_VERSION=1.46.0&& set CARGO_PKG_VERSION=1.3.0&& set CARGO_PKG_VERSION_MAJOR=1&& set CARGO_PKG_VERSION_MINOR=3&& set CARGO_PKG_VERSION_PATCH=0&& set CARGO_PKG_VERSION_PRE=''&& set PATH='C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\deps;C:\Users\ek\bin;C:\Users\ek\scoop\apps\git\2.46.0\mingw64\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\local\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\scoop\apps\git\2.46.0\mingw64\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\bin;C:\Program Files (x86)\VMware\VMware Workstation\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit;C:\Program Files\dotnet;C:\Users\ek\scoop\apps\vscodium\current\bin;C:\Users\ek\scoop\apps\nodejs-lts\current\bin;C:\Users\ek\scoop\apps\nodejs-lts\current;C:\Users\ek\scoop\apps\maven\current\bin;C:\Users\ek\.cargo\bin;C:\Users\ek\scoop\apps\mpv\current;C:\Users\ek\scoop\apps\gpg\current\bin;C:\Users\ek\scoop\apps\openjdk19\current\bin;C:\Users\ek\bin;C:\Users\ek\.local\share\gem\ruby\3.0.0\bin;C:\Users\ek\scoop\shims;C:\Users\ek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\Scripts;C:\Users\ek\AppData\Local\Microsoft\WindowsApps;C:\Users\ek\.dotnet\tools;C:\Users\ek\AppData\Local\Programs\Microsoft VS Code\bin;C:\msys64\ucrt64\bin;C:\msys64\ucrt64\sbin;C:\msys64\usr\bin;C:\Users\ek\AppData\Local\Programs\MiKTeX\miktex\bin\x64;C:\users\ek\.local\bin;C:\Users\ek\AppData\Local\JetBrains\Toolbox\scripts;C:\Program Files\IronPython 3.4;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\AppData\Local\Programs\Microsoft VS Code Insiders\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin\vendor_perl;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin\core_perl'&& C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\rustc.exe --crate-name shlex --edition=2015 'C:\Users\ek\.cargo\registry\src\index.crates.io-6f17d22bba15001f\shlex-1.3.0\src\lib.rs' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=119 --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no --cfg 'feature="default"' --cfg 'feature="std"' --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values("default", "std"))' -C metadata=01c172d66b02238f -C extra-filename=-01c172d66b02238f --out-dir 'C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\deps' -L 'dependency=C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\deps' --cap-lints warn`
     Running `set CARGO='\\?\C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\cargo.exe'&& set CARGO_CRATE_NAME=build_script_build&& set CARGO_MANIFEST_DIR='C:\Users\ek\.cargo\registry\src\index.crates.io-6f17d22bba15001f\libc-0.2.158'&& set CARGO_PKG_AUTHORS='The Rust Project Developers'&& set CARGO_PKG_DESCRIPTION='Raw FFI bindings to platform libraries like libc.
'&& set CARGO_PKG_HOMEPAGE='https://github.com/rust-lang/libc'&& set CARGO_PKG_LICENSE='MIT OR Apache-2.0'&& set CARGO_PKG_LICENSE_FILE=''&& set CARGO_PKG_NAME=libc&& set CARGO_PKG_README=README.md&& set CARGO_PKG_REPOSITORY='https://github.com/rust-lang/libc'&& set CARGO_PKG_RUST_VERSION=''&& set CARGO_PKG_VERSION=0.2.158&& set CARGO_PKG_VERSION_MAJOR=0&& set CARGO_PKG_VERSION_MINOR=2&& set CARGO_PKG_VERSION_PATCH=158&& set CARGO_PKG_VERSION_PRE=''&& set PATH='C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\deps;C:\Users\ek\bin;C:\Users\ek\scoop\apps\git\2.46.0\mingw64\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\local\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\scoop\apps\git\2.46.0\mingw64\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\bin;C:\Program Files (x86)\VMware\VMware Workstation\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit;C:\Program Files\dotnet;C:\Users\ek\scoop\apps\vscodium\current\bin;C:\Users\ek\scoop\apps\nodejs-lts\current\bin;C:\Users\ek\scoop\apps\nodejs-lts\current;C:\Users\ek\scoop\apps\maven\current\bin;C:\Users\ek\.cargo\bin;C:\Users\ek\scoop\apps\mpv\current;C:\Users\ek\scoop\apps\gpg\current\bin;C:\Users\ek\scoop\apps\openjdk19\current\bin;C:\Users\ek\bin;C:\Users\ek\.local\share\gem\ruby\3.0.0\bin;C:\Users\ek\scoop\shims;C:\Users\ek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\Scripts;C:\Users\ek\AppData\Local\Microsoft\WindowsApps;C:\Users\ek\.dotnet\tools;C:\Users\ek\AppData\Local\Programs\Microsoft VS Code\bin;C:\msys64\ucrt64\bin;C:\msys64\ucrt64\sbin;C:\msys64\usr\bin;C:\Users\ek\AppData\Local\Programs\MiKTeX\miktex\bin\x64;C:\users\ek\.local\bin;C:\Users\ek\AppData\Local\JetBrains\Toolbox\scripts;C:\Program Files\IronPython 3.4;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\AppData\Local\Programs\Microsoft VS Code Insiders\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin\vendor_perl;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin\core_perl'&& C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\rustc.exe --crate-name build_script_build --edition=2015 'C:\Users\ek\.cargo\registry\src\index.crates.io-6f17d22bba15001f\libc-0.2.158\build.rs' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=119 --crate-type bin --emit=dep-info,link -C embed-bitcode=no --cfg 'feature="default"' --cfg 'feature="std"' --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values("align", "const-extern-fn", "default", "extra_traits", "rustc-dep-of-std", "rustc-std-workspace-core", "std", "use_std"))' -C metadata=7181910614a0fd0a -C extra-filename=-7181910614a0fd0a --out-dir 'C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\build\libc-7181910614a0fd0a' -L 'dependency=C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\deps' --cap-lints warn`
warning: unexpected `cfg` condition name: `manual_codegen_check`
   --> C:\Users\ek\.cargo\registry\src\index.crates.io-6f17d22bba15001f\shlex-1.3.0\src\bytes.rs:353:12
    |
353 | #[cfg_attr(manual_codegen_check, inline(never))]
    |            ^^^^^^^^^^^^^^^^^^^^
    |
    = help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows`
    = help: consider using a Cargo feature instead
    = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
             [lints.rust]
             unexpected_cfgs = { level = "warn", check-cfg = ['cfg(manual_codegen_check)'] }
    = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(manual_codegen_check)");` to the top of the `build.rs`
    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
    = note: `#[warn(unexpected_cfgs)]` on by default

   Compiling cc v1.1.16
     Running `set CARGO='\\?\C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\cargo.exe'&& set CARGO_CRATE_NAME=cc&& set CARGO_MANIFEST_DIR='C:\Users\ek\.cargo\registry\src\index.crates.io-6f17d22bba15001f\cc-1.1.16'&& set CARGO_PKG_AUTHORS='Alex Crichton <alex@alexcrichton.com>'&& set CARGO_PKG_DESCRIPTION='A build-time dependency for Cargo build scripts to assist in invoking the native
C compiler to compile native C code into a static archive to be linked into Rust
code.
'&& set CARGO_PKG_HOMEPAGE='https://github.com/rust-lang/cc-rs'&& set CARGO_PKG_LICENSE='MIT OR Apache-2.0'&& set CARGO_PKG_LICENSE_FILE=''&& set CARGO_PKG_NAME=cc&& set CARGO_PKG_README=README.md&& set CARGO_PKG_REPOSITORY='https://github.com/rust-lang/cc-rs'&& set CARGO_PKG_RUST_VERSION=1.63&& set CARGO_PKG_VERSION=1.1.16&& set CARGO_PKG_VERSION_MAJOR=1&& set CARGO_PKG_VERSION_MINOR=1&& set CARGO_PKG_VERSION_PATCH=16&& set CARGO_PKG_VERSION_PRE=''&& set PATH='C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\deps;C:\Users\ek\bin;C:\Users\ek\scoop\apps\git\2.46.0\mingw64\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\local\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\scoop\apps\git\2.46.0\mingw64\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\bin;C:\Program Files (x86)\VMware\VMware Workstation\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit;C:\Program Files\dotnet;C:\Users\ek\scoop\apps\vscodium\current\bin;C:\Users\ek\scoop\apps\nodejs-lts\current\bin;C:\Users\ek\scoop\apps\nodejs-lts\current;C:\Users\ek\scoop\apps\maven\current\bin;C:\Users\ek\.cargo\bin;C:\Users\ek\scoop\apps\mpv\current;C:\Users\ek\scoop\apps\gpg\current\bin;C:\Users\ek\scoop\apps\openjdk19\current\bin;C:\Users\ek\bin;C:\Users\ek\.local\share\gem\ruby\3.0.0\bin;C:\Users\ek\scoop\shims;C:\Users\ek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\Scripts;C:\Users\ek\AppData\Local\Microsoft\WindowsApps;C:\Users\ek\.dotnet\tools;C:\Users\ek\AppData\Local\Programs\Microsoft VS Code\bin;C:\msys64\ucrt64\bin;C:\msys64\ucrt64\sbin;C:\msys64\usr\bin;C:\Users\ek\AppData\Local\Programs\MiKTeX\miktex\bin\x64;C:\users\ek\.local\bin;C:\Users\ek\AppData\Local\JetBrains\Toolbox\scripts;C:\Program Files\IronPython 3.4;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\AppData\Local\Programs\Microsoft VS Code Insiders\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin\vendor_perl;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin\core_perl'&& C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\rustc.exe --crate-name cc --edition=2018 'C:\Users\ek\.cargo\registry\src\index.crates.io-6f17d22bba15001f\cc-1.1.16\src/lib.rs' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=119 --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values("jobserver", "parallel"))' -C metadata=5d9366911527f674 -C extra-filename=-5d9366911527f674 --out-dir 'C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\deps' -L 'dependency=C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\deps' --extern 'shlex=C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\deps\libshlex-01c172d66b02238f.rmeta' --cap-lints warn`
warning: `shlex` (lib) generated 1 warning
     Running `set CARGO='\\?\C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\cargo.exe'&& set CARGO_CFG_PANIC=unwind&& set CARGO_CFG_TARGET_ABI=''&& set CARGO_CFG_TARGET_ARCH=x86_64&& set CARGO_CFG_TARGET_ENDIAN=little&& set CARGO_CFG_TARGET_ENV=msvc&& set CARGO_CFG_TARGET_FAMILY=windows&& set CARGO_CFG_TARGET_FEATURE=cmpxchg16b,fxsr,sse,sse2,sse3&& set CARGO_CFG_TARGET_HAS_ATOMIC=128,16,32,64,8,ptr&& set CARGO_CFG_TARGET_OS=windows&& set CARGO_CFG_TARGET_POINTER_WIDTH=64&& set CARGO_CFG_TARGET_VENDOR=pc&& set CARGO_CFG_WINDOWS=''&& set CARGO_ENCODED_RUSTFLAGS=''&& set CARGO_FEATURE_DEFAULT=1&& set CARGO_FEATURE_STD=1&& set CARGO_MANIFEST_DIR='C:\Users\ek\.cargo\registry\src\index.crates.io-6f17d22bba15001f\libc-0.2.158'&& set CARGO_PKG_AUTHORS='The Rust Project Developers'&& set CARGO_PKG_DESCRIPTION='Raw FFI bindings to platform libraries like libc.
'&& set CARGO_PKG_HOMEPAGE='https://github.com/rust-lang/libc'&& set CARGO_PKG_LICENSE='MIT OR Apache-2.0'&& set CARGO_PKG_LICENSE_FILE=''&& set CARGO_PKG_NAME=libc&& set CARGO_PKG_README=README.md&& set CARGO_PKG_REPOSITORY='https://github.com/rust-lang/libc'&& set CARGO_PKG_RUST_VERSION=''&& set CARGO_PKG_VERSION=0.2.158&& set CARGO_PKG_VERSION_MAJOR=0&& set CARGO_PKG_VERSION_MINOR=2&& set CARGO_PKG_VERSION_PATCH=158&& set CARGO_PKG_VERSION_PRE=''&& set DEBUG=true&& set HOST=x86_64-pc-windows-msvc&& set NUM_JOBS=16&& set OPT_LEVEL=0&& set OUT_DIR='C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\build\libc-78b4558b561989db\out'&& set PATH='C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\deps;C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug;C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib;C:\Users\ek\bin;C:\Users\ek\scoop\apps\git\2.46.0\mingw64\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\local\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\scoop\apps\git\2.46.0\mingw64\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\bin;C:\Program Files (x86)\VMware\VMware Workstation\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit;C:\Program Files\dotnet;C:\Users\ek\scoop\apps\vscodium\current\bin;C:\Users\ek\scoop\apps\nodejs-lts\current\bin;C:\Users\ek\scoop\apps\nodejs-lts\current;C:\Users\ek\scoop\apps\maven\current\bin;C:\Users\ek\.cargo\bin;C:\Users\ek\scoop\apps\mpv\current;C:\Users\ek\scoop\apps\gpg\current\bin;C:\Users\ek\scoop\apps\openjdk19\current\bin;C:\Users\ek\bin;C:\Users\ek\.local\share\gem\ruby\3.0.0\bin;C:\Users\ek\scoop\shims;C:\Users\ek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\Scripts;C:\Users\ek\AppData\Local\Microsoft\WindowsApps;C:\Users\ek\.dotnet\tools;C:\Users\ek\AppData\Local\Programs\Microsoft VS Code\bin;C:\msys64\ucrt64\bin;C:\msys64\ucrt64\sbin;C:\msys64\usr\bin;C:\Users\ek\AppData\Local\Programs\MiKTeX\miktex\bin\x64;C:\users\ek\.local\bin;C:\Users\ek\AppData\Local\JetBrains\Toolbox\scripts;C:\Program Files\IronPython 3.4;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\AppData\Local\Programs\Microsoft VS Code Insiders\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin\vendor_perl;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin\core_perl'&& set PROFILE=debug&& set RUSTC='C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\rustc.exe'&& set RUSTDOC='C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\rustdoc.exe'&& set TARGET=x86_64-pc-windows-msvc&& C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\build\libc-7181910614a0fd0a\build-script-build`
[libc 0.2.158] cargo:rerun-if-changed=build.rs
[libc 0.2.158] cargo:rustc-cfg=freebsd11
[libc 0.2.158] cargo:rustc-cfg=libc_priv_mod_use
[libc 0.2.158] cargo:rustc-cfg=libc_union
[libc 0.2.158] cargo:rustc-cfg=libc_const_size_of
[libc 0.2.158] cargo:rustc-cfg=libc_align
[libc 0.2.158] cargo:rustc-cfg=libc_int128
[libc 0.2.158] cargo:rustc-cfg=libc_core_cvoid
[libc 0.2.158] cargo:rustc-cfg=libc_packedN
[libc 0.2.158] cargo:rustc-cfg=libc_cfg_target_vendor
[libc 0.2.158] cargo:rustc-cfg=libc_non_exhaustive
[libc 0.2.158] cargo:rustc-cfg=libc_long_array
[libc 0.2.158] cargo:rustc-cfg=libc_ptr_addr_of
[libc 0.2.158] cargo:rustc-cfg=libc_underscore_const_names
[libc 0.2.158] cargo:rustc-cfg=libc_const_extern_fn
[libc 0.2.158] cargo:rustc-check-cfg=cfg(emscripten_new_stat_abi)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(espidf_time64)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(freebsd10)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(freebsd11)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(freebsd12)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(freebsd13)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(freebsd14)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(freebsd15)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(libc_align)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(libc_cfg_target_vendor)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(libc_const_extern_fn)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(libc_const_extern_fn_unstable)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(libc_const_size_of)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(libc_core_cvoid)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(libc_deny_warnings)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(libc_int128)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(libc_long_array)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(libc_non_exhaustive)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(libc_packedN)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(libc_priv_mod_use)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(libc_ptr_addr_of)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(libc_thread_local)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(libc_underscore_const_names)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(libc_union)
[libc 0.2.158] cargo:rustc-check-cfg=cfg(target_os,values("switch","aix","ohos","hurd","visionos"))
[libc 0.2.158] cargo:rustc-check-cfg=cfg(target_env,values("illumos","wasi","aix","ohos"))
[libc 0.2.158] cargo:rustc-check-cfg=cfg(target_arch,values("loongarch64","mips32r6","mips64r6","csky"))
     Running `set CARGO='\\?\C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\cargo.exe'&& set CARGO_CRATE_NAME=libc&& set CARGO_MANIFEST_DIR='C:\Users\ek\.cargo\registry\src\index.crates.io-6f17d22bba15001f\libc-0.2.158'&& set CARGO_PKG_AUTHORS='The Rust Project Developers'&& set CARGO_PKG_DESCRIPTION='Raw FFI bindings to platform libraries like libc.
'&& set CARGO_PKG_HOMEPAGE='https://github.com/rust-lang/libc'&& set CARGO_PKG_LICENSE='MIT OR Apache-2.0'&& set CARGO_PKG_LICENSE_FILE=''&& set CARGO_PKG_NAME=libc&& set CARGO_PKG_README=README.md&& set CARGO_PKG_REPOSITORY='https://github.com/rust-lang/libc'&& set CARGO_PKG_RUST_VERSION=''&& set CARGO_PKG_VERSION=0.2.158&& set CARGO_PKG_VERSION_MAJOR=0&& set CARGO_PKG_VERSION_MINOR=2&& set CARGO_PKG_VERSION_PATCH=158&& set CARGO_PKG_VERSION_PRE=''&& set OUT_DIR='C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\build\libc-78b4558b561989db\out'&& set PATH='C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\deps;C:\Users\ek\bin;C:\Users\ek\scoop\apps\git\2.46.0\mingw64\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\local\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\scoop\apps\git\2.46.0\mingw64\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\bin;C:\Program Files (x86)\VMware\VMware Workstation\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit;C:\Program Files\dotnet;C:\Users\ek\scoop\apps\vscodium\current\bin;C:\Users\ek\scoop\apps\nodejs-lts\current\bin;C:\Users\ek\scoop\apps\nodejs-lts\current;C:\Users\ek\scoop\apps\maven\current\bin;C:\Users\ek\.cargo\bin;C:\Users\ek\scoop\apps\mpv\current;C:\Users\ek\scoop\apps\gpg\current\bin;C:\Users\ek\scoop\apps\openjdk19\current\bin;C:\Users\ek\bin;C:\Users\ek\.local\share\gem\ruby\3.0.0\bin;C:\Users\ek\scoop\shims;C:\Users\ek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\Scripts;C:\Users\ek\AppData\Local\Microsoft\WindowsApps;C:\Users\ek\.dotnet\tools;C:\Users\ek\AppData\Local\Programs\Microsoft VS Code\bin;C:\msys64\ucrt64\bin;C:\msys64\ucrt64\sbin;C:\msys64\usr\bin;C:\Users\ek\AppData\Local\Programs\MiKTeX\miktex\bin\x64;C:\users\ek\.local\bin;C:\Users\ek\AppData\Local\JetBrains\Toolbox\scripts;C:\Program Files\IronPython 3.4;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\AppData\Local\Programs\Microsoft VS Code Insiders\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin\vendor_perl;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin\core_perl'&& C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\rustc.exe --crate-name libc --edition=2015 'C:\Users\ek\.cargo\registry\src\index.crates.io-6f17d22bba15001f\libc-0.2.158\src/lib.rs' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=119 --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 --cfg 'feature="default"' --cfg 'feature="std"' --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values("align", "const-extern-fn", "default", "extra_traits", "rustc-dep-of-std", "rustc-std-workspace-core", "std", "use_std"))' -C metadata=91cbcf99614a8ce5 -C extra-filename=-91cbcf99614a8ce5 --out-dir 'C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\deps' -L 'dependency=C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\deps' --cap-lints warn --cfg freebsd11 --cfg libc_priv_mod_use --cfg libc_union --cfg libc_const_size_of --cfg libc_align --cfg libc_int128 --cfg libc_core_cvoid --cfg libc_packedN --cfg libc_cfg_target_vendor --cfg libc_non_exhaustive --cfg libc_long_array --cfg libc_ptr_addr_of --cfg libc_underscore_const_names --cfg libc_const_extern_fn --check-cfg 'cfg(emscripten_new_stat_abi)' --check-cfg 'cfg(espidf_time64)' --check-cfg 'cfg(freebsd10)' --check-cfg 'cfg(freebsd11)' --check-cfg 'cfg(freebsd12)' --check-cfg 'cfg(freebsd13)' --check-cfg 'cfg(freebsd14)' --check-cfg 'cfg(freebsd15)' --check-cfg 'cfg(libc_align)' --check-cfg 'cfg(libc_cfg_target_vendor)' --check-cfg 'cfg(libc_const_extern_fn)' --check-cfg 'cfg(libc_const_extern_fn_unstable)' --check-cfg 'cfg(libc_const_size_of)' --check-cfg 'cfg(libc_core_cvoid)' --check-cfg 'cfg(libc_deny_warnings)' --check-cfg 'cfg(libc_int128)' --check-cfg 'cfg(libc_long_array)' --check-cfg 'cfg(libc_non_exhaustive)' --check-cfg 'cfg(libc_packedN)' --check-cfg 'cfg(libc_priv_mod_use)' --check-cfg 'cfg(libc_ptr_addr_of)' --check-cfg 'cfg(libc_thread_local)' --check-cfg 'cfg(libc_underscore_const_names)' --check-cfg 'cfg(libc_union)' --check-cfg 'cfg(target_os,values("switch","aix","ohos","hurd","visionos"))' --check-cfg 'cfg(target_env,values("illumos","wasi","aix","ohos"))' --check-cfg 'cfg(target_arch,values("loongarch64","mips32r6","mips64r6","csky"))'`
   Compiling cmake v0.1.51
     Running `set CARGO='\\?\C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\cargo.exe'&& set CARGO_CRATE_NAME=cmake&& set CARGO_MANIFEST_DIR='C:\Users\ek\.cargo\registry\src\index.crates.io-6f17d22bba15001f\cmake-0.1.51'&& set CARGO_PKG_AUTHORS='Alex Crichton <alex@alexcrichton.com>'&& set CARGO_PKG_DESCRIPTION='A build dependency for running `cmake` to build a native library
'&& set CARGO_PKG_HOMEPAGE='https://github.com/rust-lang/cmake-rs'&& set CARGO_PKG_LICENSE='MIT OR Apache-2.0'&& set CARGO_PKG_LICENSE_FILE=''&& set CARGO_PKG_NAME=cmake&& set CARGO_PKG_README=README.md&& set CARGO_PKG_REPOSITORY='https://github.com/rust-lang/cmake-rs'&& set CARGO_PKG_RUST_VERSION=''&& set CARGO_PKG_VERSION=0.1.51&& set CARGO_PKG_VERSION_MAJOR=0&& set CARGO_PKG_VERSION_MINOR=1&& set CARGO_PKG_VERSION_PATCH=51&& set CARGO_PKG_VERSION_PRE=''&& set PATH='C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\deps;C:\Users\ek\bin;C:\Users\ek\scoop\apps\git\2.46.0\mingw64\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\local\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\scoop\apps\git\2.46.0\mingw64\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\bin;C:\Program Files (x86)\VMware\VMware Workstation\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit;C:\Program Files\dotnet;C:\Users\ek\scoop\apps\vscodium\current\bin;C:\Users\ek\scoop\apps\nodejs-lts\current\bin;C:\Users\ek\scoop\apps\nodejs-lts\current;C:\Users\ek\scoop\apps\maven\current\bin;C:\Users\ek\.cargo\bin;C:\Users\ek\scoop\apps\mpv\current;C:\Users\ek\scoop\apps\gpg\current\bin;C:\Users\ek\scoop\apps\openjdk19\current\bin;C:\Users\ek\bin;C:\Users\ek\.local\share\gem\ruby\3.0.0\bin;C:\Users\ek\scoop\shims;C:\Users\ek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\Scripts;C:\Users\ek\AppData\Local\Microsoft\WindowsApps;C:\Users\ek\.dotnet\tools;C:\Users\ek\AppData\Local\Programs\Microsoft VS Code\bin;C:\msys64\ucrt64\bin;C:\msys64\ucrt64\sbin;C:\msys64\usr\bin;C:\Users\ek\AppData\Local\Programs\MiKTeX\miktex\bin\x64;C:\users\ek\.local\bin;C:\Users\ek\AppData\Local\JetBrains\Toolbox\scripts;C:\Program Files\IronPython 3.4;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\AppData\Local\Programs\Microsoft VS Code Insiders\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin\vendor_perl;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin\core_perl'&& C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\rustc.exe --crate-name cmake --edition=2021 'C:\Users\ek\.cargo\registry\src\index.crates.io-6f17d22bba15001f\cmake-0.1.51\src/lib.rs' --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=119 --crate-type lib --emit=dep-info,metadata,link -C embed-bitcode=no --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values())' -C metadata=6fb58bf9c525de85 -C extra-filename=-6fb58bf9c525de85 --out-dir 'C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\deps' -L 'dependency=C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\deps' --extern 'cc=C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\deps\libcc-5d9366911527f674.rmeta' --cap-lints warn`
   Compiling libz-ng-sys v1.1.16 (C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi)
     Running `set CARGO='\\?\C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\cargo.exe'&& set CARGO_CRATE_NAME=build_script_cmake&& set CARGO_MANIFEST_DIR='C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi'&& set CARGO_PKG_AUTHORS='Alex Crichton <alex@alexcrichton.com>:Josh Triplett <josh@joshtriplett.org>:Sebastian Thiel <sebastian.thiel@icloud.com>'&& set CARGO_PKG_DESCRIPTION='Low-level bindings to zlib-ng (libz-ng), a high-performance zlib library.'&& set CARGO_PKG_HOMEPAGE=''&& set CARGO_PKG_LICENSE='MIT OR Apache-2.0'&& set CARGO_PKG_LICENSE_FILE=''&& set CARGO_PKG_NAME=libz-ng-sys&& set CARGO_PKG_README=README-zng.md&& set CARGO_PKG_REPOSITORY='https://github.com/rust-lang/libz-sys'&& set CARGO_PKG_RUST_VERSION=''&& set CARGO_PKG_VERSION=1.1.16&& set CARGO_PKG_VERSION_MAJOR=1&& set CARGO_PKG_VERSION_MINOR=1&& set CARGO_PKG_VERSION_PATCH=16&& set CARGO_PKG_VERSION_PRE=''&& set CARGO_PRIMARY_PACKAGE=1&& set PATH='C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\deps;C:\Users\ek\bin;C:\Users\ek\scoop\apps\git\2.46.0\mingw64\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\local\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\scoop\apps\git\2.46.0\mingw64\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\bin;C:\Program Files (x86)\VMware\VMware Workstation\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit;C:\Program Files\dotnet;C:\Users\ek\scoop\apps\vscodium\current\bin;C:\Users\ek\scoop\apps\nodejs-lts\current\bin;C:\Users\ek\scoop\apps\nodejs-lts\current;C:\Users\ek\scoop\apps\maven\current\bin;C:\Users\ek\.cargo\bin;C:\Users\ek\scoop\apps\mpv\current;C:\Users\ek\scoop\apps\gpg\current\bin;C:\Users\ek\scoop\apps\openjdk19\current\bin;C:\Users\ek\bin;C:\Users\ek\.local\share\gem\ruby\3.0.0\bin;C:\Users\ek\scoop\shims;C:\Users\ek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\Scripts;C:\Users\ek\AppData\Local\Microsoft\WindowsApps;C:\Users\ek\.dotnet\tools;C:\Users\ek\AppData\Local\Programs\Microsoft VS Code\bin;C:\msys64\ucrt64\bin;C:\msys64\ucrt64\sbin;C:\msys64\usr\bin;C:\Users\ek\AppData\Local\Programs\MiKTeX\miktex\bin\x64;C:\users\ek\.local\bin;C:\Users\ek\AppData\Local\JetBrains\Toolbox\scripts;C:\Program Files\IronPython 3.4;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\AppData\Local\Programs\Microsoft VS Code Insiders\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin\vendor_perl;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin\core_perl'&& C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\rustc.exe --crate-name build_script_cmake --edition=2018 zng/cmake.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=119 --crate-type bin --emit=dep-info,link -C embed-bitcode=no --warn=unexpected_cfgs --check-cfg 'cfg(docsrs)' --check-cfg 'cfg(feature, values())' --check-cfg 'cfg(zng)' -C metadata=d3c602731d9baee3 -C extra-filename=-d3c602731d9baee3 --out-dir 'C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\build\libz-ng-sys-d3c602731d9baee3' -C 'incremental=C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\incremental' -L 'dependency=C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\deps' --extern 'cmake=C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\deps\libcmake-6fb58bf9c525de85.rlib'`
     Running `set CARGO='\\?\C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\cargo.exe'&& set CARGO_CFG_PANIC=unwind&& set CARGO_CFG_TARGET_ABI=''&& set CARGO_CFG_TARGET_ARCH=x86_64&& set CARGO_CFG_TARGET_ENDIAN=little&& set CARGO_CFG_TARGET_ENV=msvc&& set CARGO_CFG_TARGET_FAMILY=windows&& set CARGO_CFG_TARGET_FEATURE=cmpxchg16b,fxsr,sse,sse2,sse3&& set CARGO_CFG_TARGET_HAS_ATOMIC=128,16,32,64,8,ptr&& set CARGO_CFG_TARGET_OS=windows&& set CARGO_CFG_TARGET_POINTER_WIDTH=64&& set CARGO_CFG_TARGET_VENDOR=pc&& set CARGO_CFG_WINDOWS=''&& set CARGO_ENCODED_RUSTFLAGS=''&& set CARGO_MANIFEST_DIR='C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi'&& set CARGO_MANIFEST_LINKS=z-ng&& set CARGO_PKG_AUTHORS='Alex Crichton <alex@alexcrichton.com>:Josh Triplett <josh@joshtriplett.org>:Sebastian Thiel <sebastian.thiel@icloud.com>'&& set CARGO_PKG_DESCRIPTION='Low-level bindings to zlib-ng (libz-ng), a high-performance zlib library.'&& set CARGO_PKG_HOMEPAGE=''&& set CARGO_PKG_LICENSE='MIT OR Apache-2.0'&& set CARGO_PKG_LICENSE_FILE=''&& set CARGO_PKG_NAME=libz-ng-sys&& set CARGO_PKG_README=README-zng.md&& set CARGO_PKG_REPOSITORY='https://github.com/rust-lang/libz-sys'&& set CARGO_PKG_RUST_VERSION=''&& set CARGO_PKG_VERSION=1.1.16&& set CARGO_PKG_VERSION_MAJOR=1&& set CARGO_PKG_VERSION_MINOR=1&& set CARGO_PKG_VERSION_PATCH=16&& set CARGO_PKG_VERSION_PRE=''&& set DEBUG=true&& set HOST=x86_64-pc-windows-msvc&& set NUM_JOBS=16&& set OPT_LEVEL=0&& set OUT_DIR='C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\build\libz-ng-sys-5e35a63173c56dd6\out'&& set PATH='C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\deps;C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug;C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib;C:\Users\ek\bin;C:\Users\ek\scoop\apps\git\2.46.0\mingw64\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\local\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\scoop\apps\git\2.46.0\mingw64\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin;C:\Users\ek\bin;C:\Program Files (x86)\VMware\VMware Workstation\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit;C:\Program Files\dotnet;C:\Users\ek\scoop\apps\vscodium\current\bin;C:\Users\ek\scoop\apps\nodejs-lts\current\bin;C:\Users\ek\scoop\apps\nodejs-lts\current;C:\Users\ek\scoop\apps\maven\current\bin;C:\Users\ek\.cargo\bin;C:\Users\ek\scoop\apps\mpv\current;C:\Users\ek\scoop\apps\gpg\current\bin;C:\Users\ek\scoop\apps\openjdk19\current\bin;C:\Users\ek\bin;C:\Users\ek\.local\share\gem\ruby\3.0.0\bin;C:\Users\ek\scoop\shims;C:\Users\ek\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\Scripts;C:\Users\ek\AppData\Local\Microsoft\WindowsApps;C:\Users\ek\.dotnet\tools;C:\Users\ek\AppData\Local\Programs\Microsoft VS Code\bin;C:\msys64\ucrt64\bin;C:\msys64\ucrt64\sbin;C:\msys64\usr\bin;C:\Users\ek\AppData\Local\Programs\MiKTeX\miktex\bin\x64;C:\users\ek\.local\bin;C:\Users\ek\AppData\Local\JetBrains\Toolbox\scripts;C:\Program Files\IronPython 3.4;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\.dotnet\tools;C:\Users\ek\AppData\Local\Programs\Microsoft VS Code Insiders\bin;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin\vendor_perl;C:\Users\ek\scoop\apps\git\2.46.0\usr\bin\core_perl'&& set PROFILE=debug&& set RUSTC='C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\rustc.exe'&& set RUSTDOC='C:\Users\ek\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\rustdoc.exe'&& set TARGET=x86_64-pc-windows-msvc&& C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\build\libz-ng-sys-d3c602731d9baee3\build-script-cmake`
[libz-ng-sys 1.1.16] CMAKE_TOOLCHAIN_FILE_x86_64-pc-windows-msvc = None
[libz-ng-sys 1.1.16] CMAKE_TOOLCHAIN_FILE_x86_64_pc_windows_msvc = None
[libz-ng-sys 1.1.16] HOST_CMAKE_TOOLCHAIN_FILE = None
[libz-ng-sys 1.1.16] CMAKE_TOOLCHAIN_FILE = None
[libz-ng-sys 1.1.16] CMAKE_GENERATOR_x86_64-pc-windows-msvc = None
[libz-ng-sys 1.1.16] CMAKE_GENERATOR_x86_64_pc_windows_msvc = None
[libz-ng-sys 1.1.16] HOST_CMAKE_GENERATOR = None
[libz-ng-sys 1.1.16] CMAKE_GENERATOR = None
[libz-ng-sys 1.1.16] CMAKE_PREFIX_PATH_x86_64-pc-windows-msvc = None
[libz-ng-sys 1.1.16] CMAKE_PREFIX_PATH_x86_64_pc_windows_msvc = None
[libz-ng-sys 1.1.16] HOST_CMAKE_PREFIX_PATH = None
[libz-ng-sys 1.1.16] CMAKE_PREFIX_PATH = None
[libz-ng-sys 1.1.16] CMAKE_x86_64-pc-windows-msvc = None
[libz-ng-sys 1.1.16] CMAKE_x86_64_pc_windows_msvc = None
[libz-ng-sys 1.1.16] HOST_CMAKE = None
[libz-ng-sys 1.1.16] CMAKE = None
[libz-ng-sys 1.1.16] running: "cmake" "C:\\Users\\ek\\AppData\\Local\\Temp\\tmp.9UwWp0IEZi\\src/zlib-ng" "-G" "Visual Studio 17 2022" "-Thost=x64" "-Ax64" "-DBUILD_SHARED_LIBS=OFF" "-DZLIB_COMPAT=OFF" "-DZLIB_ENABLE_TESTS=OFF" "-DWITH_GZFILEOP=ON" "-DCMAKE_INSTALL_PREFIX=C:\\Users\\ek\\AppData\\Local\\Temp\\tmp.9UwWp0IEZi\\target\\debug\\build\\libz-ng-sys-5e35a63173c56dd6\\out" "-DCMAKE_C_FLAGS= -nologo -MD -Brepro" "-DCMAKE_C_FLAGS_DEBUG= -nologo -MD -Brepro" "-DCMAKE_CXX_FLAGS= -nologo -MD -Brepro" "-DCMAKE_CXX_FLAGS_DEBUG= -nologo -MD -Brepro" "-DCMAKE_ASM_FLAGS= -nologo -MD -Brepro" "-DCMAKE_ASM_FLAGS_DEBUG= -nologo -MD -Brepro" "-DCMAKE_BUILD_TYPE=Debug"
[libz-ng-sys 1.1.16] -- Using CMake version 3.30.3
[libz-ng-sys 1.1.16] -- ZLIB_HEADER_VERSION: 1.3.1
[libz-ng-sys 1.1.16] -- ZLIBNG_HEADER_VERSION: 2.2.1
[libz-ng-sys 1.1.16] -- Selecting Windows SDK version 10.0.22621.0 to target Windows 10.0.19045.
[libz-ng-sys 1.1.16] -- The C compiler identification is MSVC 19.41.34120.0
[libz-ng-sys 1.1.16] -- Detecting C compiler ABI info
[libz-ng-sys 1.1.16] -- Detecting C compiler ABI info - done
[libz-ng-sys 1.1.16] -- Check for working C compiler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.41.34120/bin/Hostx64/x64/cl.exe - skipped
[libz-ng-sys 1.1.16] -- Detecting C compile features
[libz-ng-sys 1.1.16] -- Detecting C compile features - done
[libz-ng-sys 1.1.16] -- Arch detected: 'x86_64'
[libz-ng-sys 1.1.16] -- Basearch of 'x86_64' has been detected as: 'x86'
[libz-ng-sys 1.1.16] -- Looking for arm_acle.h
[libz-ng-sys 1.1.16] -- Looking for arm_acle.h - not found
[libz-ng-sys 1.1.16] -- Looking for sys/auxv.h
[libz-ng-sys 1.1.16] -- Looking for sys/auxv.h - not found
[libz-ng-sys 1.1.16] -- Looking for sys/sdt.h
[libz-ng-sys 1.1.16] -- Looking for sys/sdt.h - not found
[libz-ng-sys 1.1.16] -- Looking for unistd.h
[libz-ng-sys 1.1.16] -- Looking for unistd.h - not found
[libz-ng-sys 1.1.16] -- Looking for linux/auxvec.h
[libz-ng-sys 1.1.16] -- Looking for linux/auxvec.h - not found
[libz-ng-sys 1.1.16] -- Looking for sys/types.h
[libz-ng-sys 1.1.16] -- Looking for sys/types.h - found
[libz-ng-sys 1.1.16] -- Looking for stdint.h
[libz-ng-sys 1.1.16] -- Looking for stdint.h - found
[libz-ng-sys 1.1.16] -- Looking for stddef.h
[libz-ng-sys 1.1.16] -- Looking for stddef.h - found
[libz-ng-sys 1.1.16] -- Check size of off64_t
[libz-ng-sys 1.1.16] -- Check size of off64_t - failed
[libz-ng-sys 1.1.16] -- Check size of _off64_t
[libz-ng-sys 1.1.16] -- Check size of _off64_t - failed
[libz-ng-sys 1.1.16] -- Check size of __off64_t
[libz-ng-sys 1.1.16] -- Check size of __off64_t - failed
[libz-ng-sys 1.1.16] -- Looking for fseeko
[libz-ng-sys 1.1.16] -- Looking for fseeko - not found
[libz-ng-sys 1.1.16] -- Looking for strerror
[libz-ng-sys 1.1.16] -- Looking for strerror - found
[libz-ng-sys 1.1.16] -- Looking for posix_memalign
[libz-ng-sys 1.1.16] -- Looking for posix_memalign - not found
[libz-ng-sys 1.1.16] -- Looking for aligned_alloc
[libz-ng-sys 1.1.16] -- Looking for aligned_alloc - not found
[libz-ng-sys 1.1.16] -- Performing Test HAVE_NO_INTERPOSITION
[libz-ng-sys 1.1.16] -- Performing Test HAVE_NO_INTERPOSITION - Failed
[libz-ng-sys 1.1.16] -- Performing Test HAVE_ATTRIBUTE_VISIBILITY_HIDDEN
[libz-ng-sys 1.1.16] -- Performing Test HAVE_ATTRIBUTE_VISIBILITY_HIDDEN - Failed
[libz-ng-sys 1.1.16] -- Performing Test HAVE_ATTRIBUTE_VISIBILITY_INTERNAL
[libz-ng-sys 1.1.16] -- Performing Test HAVE_ATTRIBUTE_VISIBILITY_INTERNAL - Failed
[libz-ng-sys 1.1.16] -- Performing Test HAVE_ATTRIBUTE_ALIGNED
[libz-ng-sys 1.1.16] -- Performing Test HAVE_ATTRIBUTE_ALIGNED - Failed
[libz-ng-sys 1.1.16] -- Performing Test HAVE_BUILTIN_ASSUME_ALIGNED
[libz-ng-sys 1.1.16] -- Performing Test HAVE_BUILTIN_ASSUME_ALIGNED - Success
[libz-ng-sys 1.1.16] -- Performing Test HAVE_BUILTIN_CTZ
[libz-ng-sys 1.1.16] -- Performing Test HAVE_BUILTIN_CTZ - Failed
[libz-ng-sys 1.1.16] -- Performing Test HAVE_BUILTIN_CTZLL
[libz-ng-sys 1.1.16] -- Performing Test HAVE_BUILTIN_CTZLL - Failed
[libz-ng-sys 1.1.16] -- Performing Test HAVE_PTRDIFF_T
[libz-ng-sys 1.1.16] -- Performing Test HAVE_PTRDIFF_T - Success
[libz-ng-sys 1.1.16] -- Performing Test HAVE_XSAVE_INTRIN
[libz-ng-sys 1.1.16] -- Performing Test HAVE_XSAVE_INTRIN - Success
[libz-ng-sys 1.1.16] -- Performing Test HAVE_SSE2_INTRIN
[libz-ng-sys 1.1.16] -- Performing Test HAVE_SSE2_INTRIN - Success
[libz-ng-sys 1.1.16] -- Performing Test HAVE_SSSE3_INTRIN
[libz-ng-sys 1.1.16] -- Performing Test HAVE_SSSE3_INTRIN - Success
[libz-ng-sys 1.1.16] -- Performing Test HAVE_SSE42_INTRIN
[libz-ng-sys 1.1.16] -- Performing Test HAVE_SSE42_INTRIN - Success
[libz-ng-sys 1.1.16] -- Performing Test HAVE_PCLMULQDQ_INTRIN
[libz-ng-sys 1.1.16] -- Performing Test HAVE_PCLMULQDQ_INTRIN - Success
[libz-ng-sys 1.1.16] -- Performing Test HAVE_AVX2_INTRIN
[libz-ng-sys 1.1.16] -- Performing Test HAVE_AVX2_INTRIN - Success
[libz-ng-sys 1.1.16] -- Performing Test HAVE_AVX512_INTRIN
[libz-ng-sys 1.1.16] -- Performing Test HAVE_AVX512_INTRIN - Success
[libz-ng-sys 1.1.16] -- Performing Test HAVE_AVX512VNNI_INTRIN
[libz-ng-sys 1.1.16] -- Performing Test HAVE_AVX512VNNI_INTRIN - Success
[libz-ng-sys 1.1.16] -- Performing Test HAVE_VPCLMULQDQ_INTRIN
[libz-ng-sys 1.1.16] -- Performing Test HAVE_VPCLMULQDQ_INTRIN - Success
[libz-ng-sys 1.1.16] -- Architecture-specific source files: arch/x86/x86_features.c;arch/x86/chunkset_sse2.c;arch/x86/compare256_sse2.c;arch/x86/slide_hash_sse2.c;arch/x86/adler32_ssse3.c;arch/x86/chunkset_ssse3.c;arch/x86/adler32_sse42.c;arch/x86/crc32_pclmulqdq.c;arch/x86/slide_hash_avx2.c;arch/x86/chunkset_avx2.c;arch/x86/compare256_avx2.c;arch/x86/adler32_avx2.c;arch/x86/adler32_avx512.c;arch/x86/adler32_avx512_vnni.c;arch/x86/crc32_vpclmulqdq.c
[libz-ng-sys 1.1.16] -- The following features have been enabled:
[libz-ng-sys 1.1.16]
[libz-ng-sys 1.1.16]  * XSAVE, Support XSAVE intrinsics using ""
[libz-ng-sys 1.1.16]  * SSSE3_ADLER32, Support SSSE3-accelerated adler32, using ""
[libz-ng-sys 1.1.16]  * SSE42_CRC, Support SSE4.2 optimized adler32 hash generation, using ""
[libz-ng-sys 1.1.16]  * PCLMUL_CRC, Support CRC hash generation using PCLMULQDQ, using " "
[libz-ng-sys 1.1.16]  * AVX2_SLIDEHASH, Support AVX2 optimized slide_hash, using "/arch:AVX2"
[libz-ng-sys 1.1.16]  * AVX2_CHUNKSET, Support AVX2 optimized chunkset, using "/arch:AVX2"
[libz-ng-sys 1.1.16]  * AVX2_COMPARE256, Support AVX2 optimized compare256, using "/arch:AVX2"
[libz-ng-sys 1.1.16]  * AVX2_ADLER32, Support AVX2-accelerated adler32, using "/arch:AVX2"
[libz-ng-sys 1.1.16]  * AVX512_ADLER32, Support AVX512-accelerated adler32, using "/arch:AVX512"
[libz-ng-sys 1.1.16]  * AVX512VNNI_ADLER32, Support AVX512VNNI adler32, using "/arch:AVX512"
[libz-ng-sys 1.1.16]  * VPCLMUL_CRC, Support CRC hash generation using VPCLMULQDQ, using "  /arch:AVX512"
[libz-ng-sys 1.1.16]  * WITH_GZFILEOP, Compile with support for gzFile related functions
[libz-ng-sys 1.1.16]  * ZLIBNG_ENABLE_TESTS, Test zlib-ng specific API
[libz-ng-sys 1.1.16]  * WITH_SANITIZER, Enable sanitizer support
[libz-ng-sys 1.1.16]  * WITH_GTEST, Build gtest_zlib
[libz-ng-sys 1.1.16]  * WITH_OPTIM, Build with optimisation
[libz-ng-sys 1.1.16]  * WITH_NEW_STRATEGIES, Use new strategies
[libz-ng-sys 1.1.16]  * WITH_RUNTIME_CPU_DETECTION, Build with runtime CPU detection
[libz-ng-sys 1.1.16]  * WITH_AVX2, Build with AVX2
[libz-ng-sys 1.1.16]  * WITH_AVX512, Build with AVX512
[libz-ng-sys 1.1.16]  * WITH_AVX512VNNI, Build with AVX512 VNNI
[libz-ng-sys 1.1.16]  * WITH_SSE2, Build with SSE2
[libz-ng-sys 1.1.16]  * WITH_SSSE3, Build with SSSE3
[libz-ng-sys 1.1.16]  * WITH_SSE42, Build with SSE42
[libz-ng-sys 1.1.16]  * WITH_PCLMULQDQ, Build with PCLMULQDQ
[libz-ng-sys 1.1.16]  * WITH_VPCLMULQDQ, Build with VPCLMULQDQ
[libz-ng-sys 1.1.16]
[libz-ng-sys 1.1.16] -- The following features have been disabled:
[libz-ng-sys 1.1.16]
[libz-ng-sys 1.1.16]  * ZLIB_SYMBOL_PREFIX, Publicly exported symbols DO NOT have a custom prefix
[libz-ng-sys 1.1.16]  * ZLIB_COMPAT, Compile with zlib compatible API
[libz-ng-sys 1.1.16]  * ZLIB_ENABLE_TESTS, Build test binaries
[libz-ng-sys 1.1.16]  * WITH_FUZZERS, Build test/fuzz
[libz-ng-sys 1.1.16]  * WITH_BENCHMARKS, Build test/benchmarks
[libz-ng-sys 1.1.16]  * WITH_BENCHMARK_APPS, Build application benchmarks
[libz-ng-sys 1.1.16]  * WITH_NATIVE_INSTRUCTIONS, Instruct the compiler to use the full instruction set on this host (gcc/clang -march=native)
[libz-ng-sys 1.1.16]  * WITH_MAINTAINER_WARNINGS, Build with project maintainer warnings
[libz-ng-sys 1.1.16]  * WITH_CODE_COVERAGE, Enable code coverage reporting
[libz-ng-sys 1.1.16]  * WITH_INFLATE_STRICT, Build with strict inflate distance checking
[libz-ng-sys 1.1.16]  * WITH_INFLATE_ALLOW_INVALID_DIST, Build with zero fill for inflate invalid distances
[libz-ng-sys 1.1.16]  * INSTALL_UTILS, Copy minigzip and minideflate during install
[libz-ng-sys 1.1.16]
[libz-ng-sys 1.1.16] -- Configuring done (25.1s)
[libz-ng-sys 1.1.16] -- Generating done (0.1s)
[libz-ng-sys 1.1.16] CMake Warning:
[libz-ng-sys 1.1.16]   Manually-specified variables were not used by the project:
[libz-ng-sys 1.1.16]
[libz-ng-sys 1.1.16]     CMAKE_ASM_FLAGS
[libz-ng-sys 1.1.16]     CMAKE_ASM_FLAGS_DEBUG
[libz-ng-sys 1.1.16]     CMAKE_BUILD_TYPE
[libz-ng-sys 1.1.16]     CMAKE_CXX_FLAGS
[libz-ng-sys 1.1.16]     CMAKE_CXX_FLAGS_DEBUG
[libz-ng-sys 1.1.16]
[libz-ng-sys 1.1.16]
[libz-ng-sys 1.1.16] -- Build files have been written to: C:/Users/ek/AppData/Local/Temp/tmp.9UwWp0IEZi/target/debug/build/libz-ng-sys-5e35a63173c56dd6/out/build
[libz-ng-sys 1.1.16] running: "cmake" "--build" "." "--target" "install" "--config" "Debug" "--parallel" "16"
[libz-ng-sys 1.1.16] MSBuild version 17.11.2+c078802d4 for .NET Framework
[libz-ng-sys 1.1.16]
[libz-ng-sys 1.1.16] C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppBuild.targets(541,5): warning MSB8029: The Intermediate directory or Output directory cannot reside under the Temporary directory as it could lead to issues with incremental build. [C:\Users\ek\AppData\Local\Temp\tmp.9UwWp0IEZi\target\debug\build\libz-ng-sys-5e35a63173c56dd6\out\build\ZERO_CHECK.vcxproj]
[libz-ng-sys 1.1.16]   1>Checking Build System
    Building [=====================>       ] 7/9: libz-ng-sys(build)

To limit the volume of this issue, I've put the control runs, where FOO is unset and where it is set to the value x€y, only in this gist, which also contains the $'x\uD800y' run shown above.

@EliahKagan EliahKagan changed the title Unpaired surrogate in unrelated environment variable stalls libz-ng-sys build on Windows Unpaired surrogate in any env var stalls libz-ng-sys build on Windows Sep 5, 2024
@Byron
Copy link
Member

Byron commented Sep 6, 2024

Thanks a lot for reporting and the detailed write-up!
This is… interesting, and I wonder if you can determine the list of running processes when the build stalls. Is it cargo, rustc, or cc even? Maybe this helps to pin down the part of the toolchain that might be responsible.

If it was a rust program we'd be lucky as it should be possible to find where it iterates through all environment variables. Something I could specifically imagine is that a program traverses UTF-8 variables in a thread while holding a lock, then panics, the lock gets poisoned or it otherwise fails to unlock a resource, making the rest of the program stall as it can't obtain a shared resource anymore.
If it really was lock poisining though, those who attempt to wait on it will panic as well (or fail with an error), so what's going on here is probably more sinister. But… I suspect it's a panic due to trying to handle variables as UTF8 in a threaded/concurrent situation.

@EliahKagan
Copy link
Contributor Author

EliahKagan commented Sep 6, 2024

This is… interesting, and I wonder if you can determine the list of running processes when the build stalls. Is it cargo, rustc, or cc even? Maybe this helps to pin down the part of the toolchain that might be responsible.

Yes, I should be able to find and add more information, including that. I had reported this with the readily available information so I could refer to it from other issues and PRs, which turned out just to be GitoxideLabs/gitoxide#1574 and GitoxideLabs/gitoxide#1580, but can I find more information. In addition to looking at what's running, I should also be able to check if it happens with other non-MSVC Windows targets on Windows, such as gnu targets, at least if libz-sys otherwise supports them. (It could be that the affected process is even cl.exe or MSBuild.exe.)

@EliahKagan
Copy link
Contributor Author

EliahKagan commented Sep 8, 2024

Something I could specifically imagine is that a program traverses UTF-8 variables in a thread while holding a lock, then panics, the lock gets poisoned or it otherwise fails to unlock a resource, making the rest of the program stall as it can't obtain a shared resource anymore.

As possible support for this hypothesis, I've just noticed that the problem only happens in parallel builds. Passing -j1 avoids it. This does not stall, and succeeds:

FOO=$'x\uD800y' ./cargo-zng build -j1

Edit: It looks like the affected processes may be MSBuild.exe, but I am not sure. With FOO=$'x\uD800y' ./cargo-zng build -j2, the relevant parts of the output pslist /t when run in another terminal are:

Name                             Pid Pri Thd  Hnd      VM      WS    Priv
bash                            7648   8   8  175 13228612    8580    6016
  bash                         17788   8   2  133 13216980    6960    5532
    cargo                      25496   8   1  128 4312540    9216    3652
      cargo                    21492   8   6  219 4344484   31396   17080
        build-script-cmake     25244   8   1  161 4298884    9756    1836
          cmake                26452   8   1  113   50236    5740    1136
            cmake              24080   8   6  201 4378888   12344    6352
              MSBuild           7248   8  16  417 4871864   52872   43548
                MSBuild         4900   8  12  323 4839400   25164   26348
                  conhost      20132   8   2  108 2151779888   11116    6376

Killing either the parent or child MSBuild.exe process allows the build to fail. Killing the conhost.exe grandchild has no discernible effect. This is all what I would expect from looking at that process tree, and I don't think any of it proves for sure that the cause of the problem is in MSBuild.exe. Examining information about threads in Process Explorer doesn't show any obvious cause...but perhaps it actually does and I am just missing it. I have not yet investigated this systematically.

@Byron
Copy link
Member

Byron commented Sep 8, 2024

This is very interesting! Now a workaround exists, and maybe that can be useful. Unfortunately the process explorer seems to only sample the current process tree, so it might miss invocations or at least won't have the exact timing of who spawns what, when. If that was possible, maybe it would be clearer which two processes have to be present for the hang to occur.

In the tree above it doesn't seem that there are any multiple/parallel processes, but maybe I am not seeing it right and MSBuild is not really waiting on the child MSBuild, and thus is running concurrently. Or maybe… somehow the parent MSBuild attempts to copy the environment for its child, and kind of succeeds enough to spawn the child, but then bails out early without properly handling it so the whole process tree seems to hang. Strange that the children don't terminate if that's the case, but who knows how the tree communicates internally.

Sorry for the rambling above.

Maybe it's possible to examine if MSBuild is part of the problem by invoking it just like cmake does, with different environments. If it would be reproducible this way, we'd know it's MSBuild which has trouble, and where to file an issue (possibly).

Alternatively, as a fix, one could probably sanitize the environment in the build-script to clean cmake or cc invocations.

@EliahKagan
Copy link
Contributor Author

EliahKagan commented Sep 8, 2024

Unfortunately the process explorer seems to only sample the current process tree, so it might miss invocations or at least won't have the exact timing of who spawns what, when.

That's because a separate Sysinternals tool, Process Monitor, is meant for that. It dumps an enormous number of events if one does not narrow down what one wants and set filters accordingly, though.

If that was possible, maybe it would be clearer which two processes have to be present for the hang to occur.

I could use a Process Monitor to record what is going on, but I am somewhat more interested in attaching a debugger. I didn't manage to get very far with that, though I think I technically did do it, with the tools currently installed on this machine: I was able to attach the Visual Studio debugger, but the information available was minimal and I couldn't do much. But I can install WinDbg (or another version of it) and try again.

The other thing that comes to mind is that MSBuild is actually free open source software, so if I can get it to run a version built from source code that is present, I may be able to debug the actual C# code of MSBuild. What I'm unsure of is if it really has all the same functionality; its readme mentions:

It may not work for all scenarios, including C++ builds.

I don't know why that would be, if it is the same.

In the tree above it doesn't seem that there are any multiple/parallel processes, but maybe I am not seeing it right and MSBuild is not really waiting on the child MSBuild, and thus is running concurrently. Or maybe… somehow the parent MSBuild attempts to copy the environment for its child, and kind of succeeds enough to spawn the child, but then bails out early without properly handling it so the whole process tree seems to hang.

This could be, but I don't know how it would be, because I've watched the process tree in Process Explorer as the command runs, and the parent seems to have no trouble creating other children earlier in the build (which it seems to wait on successfully).

Maybe it's possible to examine if MSBuild is part of the problem by invoking it just like cmake does, with different environments. If it would be reproducible this way, we'd know it's MSBuild which has trouble, and where to file an issue (possibly).

I will include this among the things I try.

Alternatively, as a fix, one could probably sanitize the environment in the build-script to clean cmake or cc invocations.

A disadvantage there, even if especially important variables such as SystemRoot are kept, is that some environment variables may be set intentionally to produce particular effects.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants