bazelbuild / rules_rust

Rust rules for Bazel

Home Page:https://bazelbuild.github.io/rules_rust/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Re-enable `//test/native_deps/...` tests on Windows

UebelAndre opened this issue · comments

From #2639

Running into a build failure on windows for a test introduced in #1500
https://buildkite.com/bazel/rules-rust-rustlang/builds/11290#018f3cc6-57a5-4aaf-88e7-2c0dbd2fdc86

(18:01:46) ERROR: C:/b/bk-windows-j20f/bazel/rules-rust-rustlang/test/native_deps/BUILD.bazel:21:10: Compiling Rust bin main (1 files) failed: (Exit 1): process_wrapper.exe failed: error executing Rustc command (from target //test/native_deps:main)
  cd /d C:/b/4kox4qbk/execroot/rules_rust
  SET CARGO_CFG_TARGET_ARCH=x86_64
    SET CARGO_CFG_TARGET_OS=windows
    SET CARGO_CRATE_NAME=main
    SET CARGO_MANIFEST_DIR=${pwd}/test/native_deps
    SET CARGO_PKG_AUTHORS=
    SET CARGO_PKG_DESCRIPTION=
    SET CARGO_PKG_HOMEPAGE=
    SET CARGO_PKG_NAME=main
    SET CARGO_PKG_VERSION=0.0.0
    SET CARGO_PKG_VERSION_MAJOR=0
    SET CARGO_PKG_VERSION_MINOR=0
    SET CARGO_PKG_VERSION_PATCH=0
    SET CARGO_PKG_VERSION_PRE=
    SET LIB=C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.39.33519\lib\x64;C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64;C:\Program Files (x86)\Windows Kits\10\lib\10.0.22621.0\ucrt\x64;C:\Program Files (x86)\Windows Kits\10\\lib\10.0.22621.0\\um\x64
    SET PATH=C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.39.33519\bin\HostX64\x64;C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\IDE\VC\VCPackages;C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\bin\Roslyn;C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\;C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\\x64;C:\Program Files (x86)\Windows Kits\10\bin\\x64;C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\\MSBuild\Current\Bin\amd64;C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\Tools\;;C:\Windows\system32;C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin;C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja;C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\IDE\VC\Linux\bin\ConnectionManagerExe
    SET REPOSITORY_NAME=
    SET TEMP=C:\temp
    SET TMP=C:\temp
  bazel-out\x64_windows-opt-exec-ST-13d3ddad9198\bin\util\process_wrapper\process_wrapper.exe --subst pwd=${pwd} -- bazel-out/x64_windows-fastbuild/bin/external/rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools/rust_toolchain/bin/rustc.exe test/native_deps/main.rs --crate-name=main --crate-type=bin --error-format=human --out-dir=bazel-out/x64_windows-fastbuild/bin/test/native_deps/test-604970701 --codegen=opt-level=0 --codegen=debuginfo=0 --codegen=strip=none --remap-path-prefix=${pwd}= --emit=link=bazel-out/x64_windows-fastbuild/bin/test/native_deps/test-604970701/main.exe --emit=dep-info --color=always --target=x86_64-pc-windows-msvc -L bazel-out/x64_windows-fastbuild/bin/external/rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools/rust_toolchain/lib/rustlib/x86_64-pc-windows-msvc/lib --test --edition=2018 --codegen=linker=C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.39.33519/bin/HostX64/x64/link.exe --codegen=link-arg=/nologo --codegen=link-arg=/SUBSYSTEM:CONSOLE --codegen=link-arg=advapi32.lib --codegen=link-arg=ws2_32.lib --codegen=link-arg=userenv.lib --codegen=link-arg=Bcrypt.lib --codegen=link-arg=/MACHINE:X64 --codegen=link-arg=/DEFAULTLIB:msvcrt.lib --codegen=link-arg=/DEBUG:FASTLINK --codegen=link-arg=/INCREMENTAL:NO -Lnative=bazel-out/x64_windows-fastbuild/bin/test/native_deps -Lnative=bazel-out/x64_windows-fastbuild/bin/external/rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools/lib/rustlib/x86_64-pc-windows-msvc/lib -Lnative=bazel-out/x64_windows-fastbuild/bin/ffi/cc/allocator_library -Lnative=bazel-out/x64_windows-fastbuild/bin/test/native_deps/_ambiguous_libs/main.exe -lstatic=direct -Clink-arg=direct.lib -lstatic=libtransitive-98841843-1668357837 -Clink-arg=libtransitive-98841843-1668357837.lib -lstatic=libtest-8e2036ec60ef8f6c-1490437518 -Clink-arg=libtest-8e2036ec60ef8f6c-1490437518.lib -lstatic=librustc_std_workspace_alloc-61f07eb10bc24cc3-208039089 -Clink-arg=librustc_std_workspace_alloc-61f07eb10bc24cc3-208039089.lib -lstatic=librustc_std_workspace_core-4bf403d115b018c3-1288131662 -Clink-arg=librustc_std_workspace_core-4bf403d115b018c3-1288131662.lib -lstatic=librustc_std_workspace_std-802fa6f8e61fc815-1168655923 -Clink-arg=librustc_std_workspace_std-802fa6f8e61fc815-1168655923.lib -lstatic=libstd-49e3d1aefc00cc02-703415650 -Clink-arg=libstd-49e3d1aefc00cc02-703415650.lib -lstatic=libstd_detect-af9ffb3c6d3f8ec7-554469149 -Clink-arg=libstd_detect-af9ffb3c6d3f8ec7-554469149.lib -lstatic=libcfg_if-6892c9ede6f0d6e6-141000888 -Clink-arg=libcfg_if-6892c9ede6f0d6e6-141000888.lib -lstatic=libgetopts-01ecb4752fc44057-437194374 -Clink-arg=libgetopts-01ecb4752fc44057-437194374.lib -lstatic=libhashbrown-a6bfe0548f994b2d-1213713881 -Clink-arg=libhashbrown-a6bfe0548f994b2d-1213713881.lib -lstatic=liblibc-788771c7bce73875-15435464 -Clink-arg=liblibc-788771c7bce73875-15435464.lib -lstatic=libpanic_unwind-42f4cb2417289cd4-921565428 -Clink-arg=libpanic_unwind-42f4cb2417289cd4-921565428.lib -lstatic=libproc_macro-e8f614908a7227a3-966206167 -Clink-arg=libproc_macro-e8f614908a7227a3-966206167.lib -lstatic=libprofiler_builtins-83118a0870268087-1131158328 -Clink-arg=libprofiler_builtins-83118a0870268087-1131158328.lib -lstatic=librustc_demangle-99c77609a4536a8b-100865763 -Clink-arg=librustc_demangle-99c77609a4536a8b-100865763.lib -lstatic=libsysroot-e61c0ff4e2b05b3b-1798444717 -Clink-arg=libsysroot-e61c0ff4e2b05b3b-1798444717.lib -lstatic=libunicode_width-6c0a2e38ddf037eb-1767734907 -Clink-arg=libunicode_width-6c0a2e38ddf037eb-1767734907.lib -lstatic=libunwind-2fb3f9083307133a-1556197416 -Clink-arg=libunwind-2fb3f9083307133a-1556197416.lib -lstatic=libcore-48aa4c2213e4ac50-1737774916 -Clink-arg=libcore-48aa4c2213e4ac50-1737774916.lib -lstatic=libcompiler_builtins-34df001b737926cd-1267961883 -Clink-arg=libcompiler_builtins-34df001b737926cd-1267961883.lib -lstatic=liballoc-8a4c192e8601db8f-848333145 -Clink-arg=liballoc-8a4c192e8601db8f-848333145.lib -lstatic=allocator_library -Clink-arg=allocator_library.lib --sysroot=bazel-out/x64_windows-fastbuild/bin/external/rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools/rust_toolchain
# Configuration: a3de660be5fc5706ed180d212ff1d81f4b040639368930efa13d4737ccd1d171
# Execution platform: @@local_config_platform//:host
error: linking with `C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.39.33519/bin/HostX64/x64/link.exe` failed: exit code: 1169
  |
  = note: "C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.39.33519/bin/HostX64/x64/link.exe" "/NOLOGO" "C:\\temp\\rustctH4boT\\symbols.o" "bazel-out/x64_windows-fastbuild/bin/test/native_deps/test-604970701\\main.main.bc80b724d1b8b0c7-cgu.0.rcgu.o" "bazel-out/x64_windows-fastbuild/bin/test/native_deps/test-604970701\\main.4uibsh26a5rhkege.rcgu.o" "/LIBPATH:bazel-out/x64_windows-fastbuild/bin/external/rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools/rust_toolchain/lib/rustlib/x86_64-pc-windows-msvc/lib" "/LIBPATH:bazel-out/x64_windows-fastbuild/bin/test/native_deps" "/LIBPATH:bazel-out/x64_windows-fastbuild/bin/external/rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools/lib/rustlib/x86_64-pc-windows-msvc/lib" "/LIBPATH:bazel-out/x64_windows-fastbuild/bin/ffi/cc/allocator_library" "/LIBPATH:bazel-out/x64_windows-fastbuild/bin/test/native_deps/_ambiguous_libs/main.exe" "/LIBPATH:bazel-out/x64_windows-fastbuild/bin/external/rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools/rust_toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "/WHOLEARCHIVE:direct.lib" "/WHOLEARCHIVE:libtransitive-98841843-1668357837.lib" "/WHOLEARCHIVE:libtest-8e2036ec60ef8f6c-1490437518.lib" "/WHOLEARCHIVE:librustc_std_workspace_alloc-61f07eb10bc24cc3-208039089.lib" "/WHOLEARCHIVE:librustc_std_workspace_core-4bf403d115b018c3-1288131662.lib" "/WHOLEARCHIVE:librustc_std_workspace_std-802fa6f8e61fc815-1168655923.lib" "/WHOLEARCHIVE:libstd-49e3d1aefc00cc02-703415650.lib" "/WHOLEARCHIVE:libstd_detect-af9ffb3c6d3f8ec7-554469149.lib" "/WHOLEARCHIVE:libcfg_if-6892c9ede6f0d6e6-141000888.lib" "/WHOLEARCHIVE:libgetopts-01ecb4752fc44057-437194374.lib" "/WHOLEARCHIVE:libhashbrown-a6bfe0548f994b2d-1213713881.lib" "/WHOLEARCHIVE:liblibc-788771c7bce73875-15435464.lib" "/WHOLEARCHIVE:libpanic_unwind-42f4cb2417289cd4-921565428.lib" "/WHOLEARCHIVE:libproc_macro-e8f614908a7227a3-966206167.lib" "/WHOLEARCHIVE:libprofiler_builtins-83118a0870268087-1131158328.lib" "/WHOLEARCHIVE:librustc_demangle-99c77609a4536a8b-100865763.lib" "/WHOLEARCHIVE:libsysroot-e61c0ff4e2b05b3b-1798444717.lib" "/WHOLEARCHIVE:libunicode_width-6c0a2e38ddf037eb-1767734907.lib" "/WHOLEARCHIVE:libunwind-2fb3f9083307133a-1556197416.lib" "/WHOLEARCHIVE:libcore-48aa4c2213e4ac50-1737774916.lib" "/WHOLEARCHIVE:libcompiler_builtins-34df001b737926cd-1267961883.lib" "/WHOLEARCHIVE:liballoc-8a4c192e8601db8f-848333145.lib" "/WHOLEARCHIVE:allocator_library.lib" "C:\\b\\4kox4qbk\\external\\rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libtest-8e2036ec60ef8f6c.rlib" "C:\\b\\4kox4qbk\\external\\rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libgetopts-01ecb4752fc44057.rlib" "C:\\b\\4kox4qbk\\external\\rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunicode_width-6c0a2e38ddf037eb.rlib" "C:\\b\\4kox4qbk\\external\\rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_std-802fa6f8e61fc815.rlib" "C:\\b\\4kox4qbk\\external\\rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd-49e3d1aefc00cc02.rlib" "C:\\b\\4kox4qbk\\external\\rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libpanic_unwind-42f4cb2417289cd4.rlib" "C:\\b\\4kox4qbk\\external\\rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_demangle-99c77609a4536a8b.rlib" "C:\\b\\4kox4qbk\\external\\rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libstd_detect-af9ffb3c6d3f8ec7.rlib" "C:\\b\\4kox4qbk\\external\\rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libhashbrown-a6bfe0548f994b2d.rlib" "C:\\b\\4kox4qbk\\external\\rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_alloc-61f07eb10bc24cc3.rlib" "C:\\b\\4kox4qbk\\external\\rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libunwind-2fb3f9083307133a.rlib" "C:\\b\\4kox4qbk\\external\\rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcfg_if-6892c9ede6f0d6e6.rlib" "C:\\b\\4kox4qbk\\external\\rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liblibc-788771c7bce73875.rlib" "C:\\b\\4kox4qbk\\external\\rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\liballoc-8a4c192e8601db8f.rlib" "C:\\b\\4kox4qbk\\external\\rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\librustc_std_workspace_core-4bf403d115b018c3.rlib" "C:\\b\\4kox4qbk\\external\\rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcore-48aa4c2213e4ac50.rlib" "C:\\b\\4kox4qbk\\external\\rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib\\libcompiler_builtins-34df001b737926cd.rlib" "kernel32.lib" "kernel32.lib" "advapi32.lib" "kernel32.lib" "ntdll.lib" "userenv.lib" "ws2_32.lib" "kernel32.lib" "ws2_32.lib" "kernel32.lib" "msvcrt.lib" "/NXCOMPAT" "/LIBPATH:bazel-out/x64_windows-fastbuild/bin/external/rust_windows_x86_64__x86_64-pc-windows-msvc__stable_tools/rust_toolchain\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib" "/OUT:bazel-out/x64_windows-fastbuild/bin/test/native_deps/test-604970701/main.exe" "/OPT:REF,NOICF" "/DEBUG" "/PDBALTPATH:%_PDB%" "/nologo" "/SUBSYSTEM:CONSOLE" "advapi32.lib" "ws2_32.lib" "userenv.lib" "Bcrypt.lib" "/MACHINE:X64" "/DEFAULTLIB:msvcrt.lib" "/DEBUG:FASTLINK" "/INCREMENTAL:NO" "direct.lib" "libtransitive-98841843-1668357837.lib" "libtest-8e2036ec60ef8f6c-1490437518.lib" "librustc_std_workspace_alloc-61f07eb10bc24cc3-208039089.lib" "librustc_std_workspace_core-4bf403d115b018c3-1288131662.lib" "librustc_std_workspace_std-802fa6f8e61fc815-1168655923.lib" "libstd-49e3d1aefc00cc02-703415650.lib" "libstd_detect-af9ffb3c6d3f8ec7-554469149.lib" "libcfg_if-6892c9ede6f0d6e6-141000888.lib" "libgetopts-01ecb4752fc44057-437194374.lib" "libhashbrown-a6bfe0548f994b2d-1213713881.lib" "liblibc-788771c7bce73875-15435464.lib" "libpanic_unwind-42f4cb2417289cd4-921565428.lib" "libproc_macro-e8f614908a7227a3-966206167.lib" "libprofiler_builtins-83118a0870268087-1131158328.lib" "librustc_demangle-99c77609a4536a8b-100865763.lib" "libsysroot-e61c0ff4e2b05b3b-1798444717.lib" "libunicode_width-6c0a2e38ddf037eb-1767734907.lib" "libunwind-2fb3f9083307133a-1556197416.lib" "libcore-48aa4c2213e4ac50-1737774916.lib" "libcompiler_builtins-34df001b737926cd-1267961883.lib" "liballoc-8a4c192e8601db8f-848333145.lib" "allocator_library.lib"
  = note: libstd-49e3d1aefc00cc02-703415650.lib(api-ms-win-core-synch-l1-2-0.dll) : error LNK2005: __NULL_IMPORT_DESCRIPTOR already defined in libstd-49e3d1aefc00cc02-703415650.lib(bcryptprimitives.dll)
          bazel-out\x64_windows-fastbuild\bin\test\native_deps\test-604970701\main.exe : fatal error LNK1169: one or more multiply defined symbols found
error: aborting due to 1 previous error

At a glance it seems like the native C++ toolchain in Bazel CI no longer plays nicely with Rust? These targets are also curious to me since I would have expected to see a test that executes some interaction from transitive -> direct -> main.

cc @scentini @krasimirgg since you added the test do you have any ideas? I know we've run into cases where things feel like they randomly work and break on windows so if this is one of those cases I'd love some thoughts on a path forward? Is this serious? Disable it?

I know we've run into cases where things feel like they randomly work and break on windows so if this is one of those cases I'd love some thoughts on a path forward? Is this serious? Disable it?

Clearly my decision was to "disable the test and figure it out later" 😅