Skip to content

Building/linking on MSVC fails with LNK1107? #1563

@nabijaczleweli

Description

@nabijaczleweli

Downstream bug: nabijaczleweli/vswhom-sys.rs#3

When building vswhom-sys.rs, @solomoncyj got this:

   Compiling shlex v1.3.0
   Compiling find-msvc-tools v0.1.2
   Compiling libc v0.2.175
   Compiling cc v1.2.38
   Compiling vswhom-sys v0.1.3 (C:\Users\solom\Downloads\vswhom-sys.rs)
error: failed to run custom build command for `vswhom-sys v0.1.3 (C:\Users\solom\Downloads\vswhom-sys.rs)`

Caused by:
  process didn't exit successfully: `C:\Users\solom\target\debug\build\vswhom-sys-046bce82504c0475\build-script-build` (exit code: 1)
  --- stdout
  cargo:rerun-if-changed=build.rs
  cargo:rerun-if-changed=ext/vswhom.cpp
  OPT_LEVEL = Some(0)
  OUT_DIR = Some(C:\Users\solom\target\debug\build\vswhom-sys-7a4b6afb6681f858\out)
  TARGET = Some(x86_64-pc-windows-msvc)
  cargo:rerun-if-env-changed=VCINSTALLDIR
  VCINSTALLDIR = None
  cargo:rerun-if-env-changed=VSTEL_MSBuildProjectFullPath
  VSTEL_MSBuildProjectFullPath = None
  cargo:rerun-if-env-changed=VSCMD_ARG_VCVARS_SPECTRE
  VSCMD_ARG_VCVARS_SPECTRE = None
  cargo:rerun-if-env-changed=WindowsSdkDir
  WindowsSdkDir = None
  cargo:rerun-if-env-changed=WindowsSDKVersion
  WindowsSDKVersion = None
  cargo:rerun-if-env-changed=LIB
  LIB = None
  PATH = Some(C:\Users\solom\target\debug\deps;C:\Users\solom\target\debug;C:\Users\solom\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\x86_64-pc-windows-msvc\lib;C:\Program Files (x86)\oh-my-posh\bin\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\ProgramData\chocolatey\bin;C:\clang\bin;C:\Program Files\NASM;C:\bin;C:\lib;C:\Program Files\dotnet\;C:\Program Files\NVIDIA Corporation\NVIDIA app\NvDLISR;C:\Program Files\GitHub CLI\;C:\Program Files\CMake\bin;C:\Program Files\Git\cmd;C:\Program Files (x86)\Gpg4win\..\GnuPG\bin;C:\Program Files\Monero GUI Wallet\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files\nodejs\;C:\LLVM\bin;C:\Program Files\Go\bin;C:\Program Files\PowerShell\7\;C:\c\bin;C:\perl\site\bin;C:\perl\bin;C:\Users\solom\AppData\Local\Programs\oh-my-posh\bin\;C:\Users\solom\AppData\Local\Programs\Python\Python310\Scripts\;C:\Users\solom\AppData\Local\Programs\Python\Python310\;C:\Users\solom\AppData\Local\Programs\Python\Launcher\;C:\Users\solom\.cargo\bin;C:\Users\solom\AppData\Local\Microsoft\WindowsApps;C:\Users\solom\AppData\Local\Microsoft\WinGet\Links;C:\Users\solom\AppData\Local\Programs\Python\Python313\Scripts;C:\Users\solom\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\solom\AppData\Local\JetBrains\Toolbox\scripts;C:\Users\solom\.dotnet\tools;C:\Users\solom\AppData\Local\gitkraken\bin;C:\Users\solom\.dotnet\tools;C:\Users\solom\AppData\Local\Microsoft\WindowsApps;C:\Users\solom\AppData\Local\Programs\cursor\resources\app\bin;C:\Users\solom\AppData\Local\Muse Hub\lib;C:\Users\solom\AppData\Roaming\npm;C:\Users\solom\go\bin)
  cargo:rerun-if-env-changed=INCLUDE
  INCLUDE = None
  HOST = Some(x86_64-pc-windows-msvc)
  cargo:rerun-if-env-changed=CXX_x86_64-pc-windows-msvc
  CXX_x86_64-pc-windows-msvc = None
  cargo:rerun-if-env-changed=CXX_x86_64_pc_windows_msvc
  CXX_x86_64_pc_windows_msvc = None
  cargo:rerun-if-env-changed=HOST_CXX
  HOST_CXX = None
  cargo:rerun-if-env-changed=CXX
  CXX = Some(clang++)
  cargo:rerun-if-env-changed=CC_KNOWN_WRAPPER_CUSTOM
  CC_KNOWN_WRAPPER_CUSTOM = None
  RUSTC_WRAPPER = None
  cargo:rerun-if-env-changed=CC_ENABLE_DEBUG_OUTPUT
  cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some(true)
  cargo:rerun-if-env-changed=CXXFLAGS
  CXXFLAGS = Some(-march=native -flto=thin)
  cargo:rerun-if-env-changed=CC_SHELL_ESCAPED_FLAGS
  CC_SHELL_ESCAPED_FLAGS = None
  cargo:rerun-if-env-changed=HOST_CXXFLAGS
  HOST_CXXFLAGS = None
  cargo:rerun-if-env-changed=CXXFLAGS_x86_64_pc_windows_msvc
  CXXFLAGS_x86_64_pc_windows_msvc = None
  cargo:rerun-if-env-changed=CXXFLAGS_x86_64-pc-windows-msvc
  CXXFLAGS_x86_64-pc-windows-msvc = None
  CARGO_ENCODED_RUSTFLAGS = Some(-Ctarget-cpu=native)
  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
  ARFLAGS = None
  cargo:rerun-if-env-changed=HOST_ARFLAGS
  HOST_ARFLAGS = 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
  C:\Users\solom\target\debug\build\vswhom-sys-7a4b6afb6681f858\out\71b29add3157f200-vswhom.o : fatal error LNK1107: invalid or corrupt file: cannot read at 0x1B124

  --- stderr


  error occurred in cc-rs: command did not execute successfully (status code exit code: 1107): "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.44.35207\\bin\\HostX64\\x64\\lib.exe" "-out:C:\\Users\\solom\\target\\debug\\build\\vswhom-sys-7a4b6afb6681f858\\out\\libvswhom.a" "-nologo" "C:\\Users\\solom\\target\\debug\\build\\vswhom-sys-7a4b6afb6681f858\\out\\71b29add3157f200-vswhom.o"

LNK1107 is nominally corruption, but this persists through a de-novo rebuild.

build.rs says:

    let mut cc = cc::Build::new();
    cc.cpp(true);
    cc.file("ext/vswhom.cpp");
    if cc.get_compiler().is_like_msvc() {
        cc.flag("/Zm2000");
    }
    cc.compile("vswhom");

with nothing of interest otherwise, so this looks like an issue with the reporter's setup or with the way cc drives it to me.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions