Skip to content

[Possible Regression] Link failure on 1.67-x86_64-pc-windows-msvcΒ #133

Closed
@kanerogers

Description

@kanerogers

Background

Hi, there!

Since updating my toolchain to 1.67-x86_64-pc-windows-msvc I am now unable to build a crate that depends on shaderc. If I create a simple project with:

cargo new shaderc_test
cd shaderc_test
cargo add shaderc

And modify src/main.rs to:

use shaderc::Compiler;

fn main() {
    let compiler = Compiler::new().unwrap();
    println!("Hello, world!");
}

cargo build will give the following error:

error: linking with `link.exe` failed: exit code: 1377
  |
  = note: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.31.31103\\bin\\HostX64\\x64\\link.exe" "/NOLOGO" "C:\\Users\\enaku\\AppData\\Local\\Temp\\rustcS8yjpU\\symbols.o" "C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\shaderc_test.1da0qcrv6jcb53ue.rcgu.o" "C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\shaderc_test.1wke1ryfpb9g28wy.rcgu.o" "C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\shaderc_test.2o68n2l8aqsfxyeo.rcgu.o" "C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\shaderc_test.397bbwv6md8qefv4.rcgu.o" "C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\shaderc_test.44uaa13kd8y7oxw7.rcgu.o" "C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\shaderc_test.47hytwwgw7qau3s4.rcgu.o" "C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\shaderc_test.ifxhz3lrx3e199n.rcgu.o" "C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\shaderc_test.1v2gxaxgar1yn8k7.rcgu.o" "/LIBPATH:C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps" "/LIBPATH:C:\\VulkanSDK\\1.3.211.0\\Lib" "/LIBPATH:C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\libshaderc-abccb43ce05b4ccd.rlib" "C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\libshaderc_sys-5ba1156ecedc7241.rlib" "C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\liblibc-3a1484c748211e20.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd-d948d7ba3a1428f8.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libpanic_unwind-160203b957826e76.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_demangle-b24bd95fe5d36805.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd_detect-0e9d70f22be1c0d7.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libhashbrown-b095d6ec0de2c748.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libminiz_oxide-fb910d16a05b94c5.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libadler-3a4bfb6892558bf2.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_alloc-a9e6a5964ad33a4c.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunwind-213bb51833c43573.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcfg_if-4140ea5b1ce3650e.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liblibc-9a1df03c8e50ccf9.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc-860856f6a77183a1.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_core-d38e1b9df5cea3b4.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcore-b993f6ac479af571.rlib" "C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcompiler_builtins-3f0eed38bcc54ffc.rlib" "legacy_stdio_definitions.lib" "kernel32.lib" "advapi32.lib" "userenv.lib" "kernel32.lib" "ws2_32.lib" "bcrypt.lib" "msvcrt.lib" "legacy_stdio_definitions.lib" "/NXCOMPAT" "/LIBPATH:C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "/OUT:C:\\Users\\enaku\\Documents\\Development\\shaderc_test\\target\\debug\\deps\\shaderc_test.exe" "/OPT:REF,NOICF" "/DEBUG" "/NATVIS:C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\intrinsic.natvis" "/NATVIS:C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\liballoc.natvis" "/NATVIS:C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libcore.natvis" "/NATVIS:C:\\Users\\enaku\\.rustup\\toolchains\\1.67-x86_64-pc-windows-msvc\\lib\\rustlib\\etc\\libstd.natvis"
  = note: libshaderc_sys-5ba1156ecedc7241.rlib(ShaderLang.obj) : fatal error LNK1377: '??_EIncluder@TShader@glslang@@UEAAPEAXI@Z' symbol not found in object. The containing library is corrupt.


warning: `shaderc_test` (bin "shaderc_test") generated 1 warning
error: could not compile `shaderc_test` due to previous error; 1 warning emitted

If I switch my toolchain back to 1.66 with rustup default 1.66, then everything builds fine.

Some further notes:

  • Building this repository works fine, but I'm assuming that's because the linker does not get invoked
  • Adding/removing the build-from-source flag doesn't appear to make a difference
  • I get the following warning when building shaderc:
warning: shaderc: searching native shaderc libraries in Vulkan SDK 'C:\VulkanSDK\1.3.211.0/lib'
warning: shaderc: Windows MSVC static build is experimental
  • I am not very familiar with shaderc or C/C++ development so I've not really done much digging, but I'm more than happy to investigate if need be

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