Cargo injects [env] entries directly into build script environments, bypassing shell-level unset and env -u entirely. SODIUM_USE_PKG_CONFIG was set to "0" in [env], which libsodium-sys-stable build.rs treats as "pkg-config enabled" (env::var().is_ok() returns true for any value including "0"). Combined with SODIUM_LIB_DIR set in the workflow, this triggered the incompatibility panic on every build. The original comment claiming this "avoids memset_explicit on Windows" was incorrect — SODIUM_USE_PKG_CONFIG controls detection strategy, not link behaviour. The actual Windows memset_explicit fix is handled via SODIUM_LIB_DIR pointing to pre-built MinGW sodium.
13 lines
536 B
TOML
13 lines
536 B
TOML
[target.x86_64-pc-windows-gnu]
|
|
# Prevent MinGW ld from auto-exporting all ~106k public symbols into the DLL
|
|
# export table, which would exceed the 65535 ordinal limit and cause a link
|
|
# error. The desktop binary links against rlib (static), so cdylib exports
|
|
# are unused at runtime.
|
|
rustflags = ["-C", "link-arg=-Wl,--exclude-all-symbols"]
|
|
|
|
[env]
|
|
# Use system OpenSSL instead of vendoring from source (which requires Perl modules
|
|
# unavailable on some environments and breaks clippy/check).
|
|
OPENSSL_NO_VENDOR = "1"
|
|
SODIUM_STATIC = "1"
|