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

[llvm] spurious multiple definition errors when linking with gcc #62270

Closed
filnet opened this issue Apr 21, 2023 · 9 comments
Closed

[llvm] spurious multiple definition errors when linking with gcc #62270

filnet opened this issue Apr 21, 2023 · 9 comments

Comments

@filnet
Copy link

filnet commented Apr 21, 2023

I am one of the maintainers of the MSYS2 build of Rust.

Since upgrading to LLVM 16.0 the GCC build of Rust fails with the following error.

error: linking with `gcc` failed: exit code: 1
  |
  = note: "gcc" "-Wl,C:\\msys64\\tmp\\rustciRqrEC\\list.def" "-fno-use-linker-plugin" "-Wl,--dynamicbase" "-Wl,--disable-auto-image-base" "-m64" "-Wl,--high-entropy-va" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-sysroot\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsbegin.o" "C:\\msys64\\tmp\\rustciRqrEC\\symbols.o" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\rustc_driver-3739812f65223964.rustc_driver.f3d3923a-cgu.0.rcgu.o" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\rustc_driver-3739812f65223964.45i5ipghey6bp2hn.rcgu.rmeta" "-L" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps" "-L" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\release\\deps" "-L" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\build\\stacker-9b4be49ef4829d62\\out" "-L" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\build\\psm-a84fb5db19ebcf4a\\out" "-L" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\build\\rustc_llvm-317c9010c8d9d071\\out" "-L" "C:/msys64/mingw64/lib" "-L" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-sysroot\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-Wl,-Bstatic" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_driver_impl-28d79fbe3ff52d33.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_log-8badda9c9727e4f8.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_error_codes-77f1b77cb71034ed.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_interface-793a720584637140.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_codegen_llvm-aee538f94724ec4d.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_llvm-e5bef6461610b7d4.rlib" "-lffi" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_ty_utils-2cba2545615869cc.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_hir_typeck-57c1f757e4a3bf2d.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_privacy-1bc18dfe2dd93b97.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_hir_analysis-9ce23f7854d6d04b.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_monomorphize-dcca96494f9b7634.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_mir_transform-0ae3f2be33f7d9dc.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_ast_lowering-1d9e59e11a3b0aea.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_builtin_macros-f5ff9e981c7c9b6b.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_resolve-9ce40720df5ba3ae.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libpulldown_cmark-c44bbe8a2e78eaf1.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libunicase-b5ce8e44ecadeb6d.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_passes-15b835720a4442b5.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_mir_build-8f96b493f7911a7f.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_borrowck-55aa98729451235c.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_traits-5bbeed01fd278c5e.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libchalk_engine-cf421ee873b31b83.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libchalk_solve-da00c93138eb69f9.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libtracing_tree-dc1898b09441f9ba.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libatty-72c4886a855ffba5.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libtracing_subscriber-33b496dde70e3fa1.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libthread_local-5a62f639c19225dd.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libsharded_slab-b913061ae5f90140.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libansi_term-c83403532c5f93c9.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libmatchers-c664264b5b981f48.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libregex_automata-16e4647b55e2e197.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libtracing_log-fb2bfaf498c67a38.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\liblazy_static-3ecc5d8014e2168f.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libpetgraph-6640b6424485b7bb.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libfixedbitset-14dd6219bd85df5e.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_const_eval-da17bbb7d9847651.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_mir_dataflow-b3186c6fc1a07ad8.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_query_impl-bf11f12c93ef9f6d.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_codegen_ssa-79127d665db6e8bd.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libthorin-b8207f5f9699c058.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libgimli-090f758ce0ac437c.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libfallible_iterator-e2cb92ca2d524f8e.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_symbol_mangling-c739a4bcc712e929.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_demangle-d7b0d86bb29d42ad.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libpunycode-10d0138521972523.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libtwox_hash-070b0ec4204e28f7.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libstatic_assertions-f483bc43b61e0e37.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_incremental-27f5dde200a9cbf6.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libpathdiff-6d09260943975ede.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libregex-4e031f8082cc5c18.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libaho_corasick-8a3c73bd0761de47.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libregex_syntax-b46d230ebd9ccb78.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libcc-e8deb52039ec09b9.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libobject-d56fa5a019e31b87.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libflate2-40631ba368e44bd4.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libminiz_oxide-57e6ca4aa61198d8.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libadler-4763266e9e407be5.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libcrc32fast-602d2491b2088e9a.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libar_archive_writer-4b21cb093134633f.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libobject-f731d1e99ac947e3.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_plugin_impl-eb3e07b9661ac4a2.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_metadata-a623859e0e9f9091.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_hir_pretty-4688f19118e72fde.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libsnap-6bb5b13e67909cab.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_expand-0ab8b80cf7ebb98d.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libcrossbeam_channel-673d64dd45ec9093.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libcrossbeam_utils-c5fe0f629c592757.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_ast_passes-9ef612c3977af879.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_parse-df7b83332f1c6a6d.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-sysroot\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libproc_macro-719ef05d02ed46e8.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\liblibloading-a51d0a5cc60361a9.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_lint-2b2fe58019370d13.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libunicode_security-91794485c82c0d96.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libunicode_script-a8087a7791836675.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libunicode_normalization-405364c8cd61fee0.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libtinyvec-bbb40bef8ba9f9dc.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libtinyvec_macros-4c46aa791590b9dd.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_trait_selection-e361e5f7ca8c7764.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_transmute-78b9189a11c99b82.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_parse_format-aa53e31edafca8e9.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libitertools-1eb0f65c5aa13c55.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_infer-31548581667f3b95.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_middle-82070680cbc9f366.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libchalk_ir-8d65321e7f41e3b4.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_apfloat-ecc95e88d2902767.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libgsgdt-1ea5ccad7e197054.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libeither-f7b94e7123417e3a.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libpolonius_engine-f2786f541f2dc56a.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libdatafrog-829bdf26da0c5265.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_attr-faef8c7985630ba2.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_query_system-851e630794c5766f.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_session-7030195d339991ca.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libgetopts-36e703bb7fd21d8b.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_fs_util-8c830a6bdb7812fc.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_errors-b3d6b3ceadae0e59.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libtermize-04195180ae61de38.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_type_ir-0ce33b2dd867c6a2.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_ast_pretty-eabdb16e5d71d312.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libannotate_snippets-e56fa4bacc50ccd1.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libtermcolor-04f35c84ad392f11.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libwinapi_util-2cb5ef131d551f37.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_lint_defs-885c47871613610f.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_hir-247769e28236adcd.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libodht-3366aca827834812.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_target-8b2eeb3727e88b4f.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_feature-1141556f24d6977c.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libserde_json-e0e69e54cbdff970.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libryu-7f4e4f1d36bffa33.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libitoa-40a21cb2366d36e8.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libserde-6b75842aca0779c6.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_abi-e79abfba008c9509.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librand_xoshiro-3aeaa05741c37f0d.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librand-2c8e3fb264112adc.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librand_chacha-4e42ac3fca6ad4ba.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libppv_lite86-1fb455d34e9192b5.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librand_core-4ac656b730a7c96e.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_error_messages-64612b89b1b8e21a.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_baked_icu_data-556326b576cb6ff0.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libicu_list-4c9d944107a1986f.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libregex_automata-b9f6c74468ce19d8.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libfluent_bundle-d0789dabafda4f21.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libfluent_langneg-a5b3b568ca3c9e42.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libintl_pluralrules-2cdb0088fc3a84e9.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libself_cell-9a01aff82e7889ad.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libintl_memoizer-56247f1bb20c45de.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libtype_map-299ea766b84f0e4f.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libunic_langid-0de20ea86e58ea01.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libunic_langid_macros-b5257bdb54b9db7e.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libunic_langid_impl-8990f1b6fe321b9f.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libicu_provider_adapters-8116ed450e621ff9.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libicu_provider-2d1f563d0bef1da7.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libicu_locid-a4fec054523ee196.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libtinystr-b28cf019a39e332a.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\liblitemap-2ddcff9487ed27b7.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libzerovec-9ddeba6c03d413d1.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libwriteable-7103e64d3611176f.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libyoke-03942d3077be2ede.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libzerofrom-249f1aed7748bddc.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libfluent_syntax-5fa68b6f7557ef70.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libthiserror-8113b1062850f231.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_ast-abec9fcb5150f167.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libmemchr-ad41e61399190420.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_lexer-c1a93427e90b358f.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libunic_emoji_char-43d4ddd526efc4d6.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libunic_ucd_version-c233cfe7d7c8fb0c.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libunic_common-f6bce2d1de1497c0.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libunic_char_property-afabb4331ca8eabd.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libunic_char_range-f25028b470ef477b.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libunicode_xid-b3ec028af44038bc.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_span-a75a461a3f633c59.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libscoped_tls-dc2cacc267ea5736.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libsha2-6c93aa8b0e2e75d0.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libsha1-54574bf338b25c76.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libcpufeatures-ebe62965a2a96cfc.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libmd5-a553fe2d7a634de9.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libdigest-ea95adeed8921ea0.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libblock_buffer-d489cc37559fde9e.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libcrypto_common-6aeb6efa8fd30d45.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libgeneric_array-f7e51206e65ddec4.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libtypenum-4f1124729e877cd8.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libunicode_width-7ac0199fffc74f46.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_arena-b739a78da64783f5.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_data_structures-668cbc1ab3ab9ca0.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libelsa-1c89765c68d495a4.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libstacker-a242a9a2b19c5cf6.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libpsm-124c114b384711b9.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\liblibc-b0f2864ed51814cc.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libmemmap2-ccd562da1fa2d3c1.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libbitflags-5d3778f6f1f8e11f.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libtempfile-6076163aa42d25f6.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libfastrand-1feadee47aee260e.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libremove_dir_all-1af04ef7377c44e7.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libmeasureme-6d432f9f711bf97b.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libparking_lot-60f83d70008907f1.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libparking_lot_core-f68cc9f228169766.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libwinapi-478be26c1f1d5c3d.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\liblock_api-f42a0b9bdefb88b8.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libscopeguard-6edaed6968fd99d5.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libinstant-d03ad482a4e58ec3.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libena-d719714ec68c37bb.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\liblog-d9010ff0a936cef2.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libstable_deref_trait-da5015046395bef7.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_graphviz-93e13a648629d365.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libjobserver-896462d587f8a54a.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_hash-8effb2948dd352f1.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_index-10c8ce0c31b24f67.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_serialize-9bf786a9f6286112.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libindexmap-24b54088a92758a0.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libhashbrown-ab02391bffeb9f7a.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libahash-fe159b02ce708ee2.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libgetrandom-945a69d01a3ff9be.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libthin_vec-8e89c0587ca127cc.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libsmallvec-04cc756b00538235.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libarrayvec-17585cc170081b80.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libtracing-4157a7c81df00b36.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libcfg_if-906851f37a9ef65e.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libpin_project_lite-4cf3d85b4aa8c603.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libtracing_core-9b389ededd562ca0.rlib" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\libonce_cell-e6930bc4b20f32a0.rlib" "-L" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-sysroot\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-Wl,-Bdynamic" "-lstd-01b33b2c8e8556fd" "-Wl,-Bstatic" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-sysroot\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\libcompiler_builtins-ee580a67a467286a.rlib" "-Wl,-Bdynamic" "-lpsapi" "-lshell32" "-lole32" "-luuid" "-ladvapi32" "-lpthread" "-lz" "-lzstd" "-lxml2" "-lstdc++" "-ladvapi32" "-lole32" "-loleaut32" "-ladvapi32" "-lcfgmgr32" "-lgdi32" "-lkernel32" "-lmsimg32" "-lopengl32" "-lpsapi" "-lsynchronization" "-luser32" "-lwinspool" "-lbcrypt" "-lkernel32" "-ladvapi32" "-luserenv" "-lkernel32" "-lws2_32" "-lbcrypt" "-lgcc_s" "-lmsvcrt" "-lmingwex" "-lmingw32" "-lgcc" "-lmsvcrt" "-luser32" "-lkernel32" "-Wl,--nxcompat" "-L" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-sysroot\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib" "-o" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\rustc_driver-3739812f65223964.dll" "-shared" "-Wl,--out-implib=C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-rustc\\x86_64-pc-windows-gnu\\release\\deps\\librustc_driver-3739812f65223964.dll.a" "-Wl,-O1" "-nodefaultlibs" "C:\\M\\mingw-w64-rust\\src\\MINGW64\\build\\x86_64-pc-windows-gnu\\stage0-sysroot\\lib\\rustlib\\x86_64-pc-windows-gnu\\lib\\rsend.o"
  = note: C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\M\mingw-w64-rust\src\MINGW64\build\x86_64-pc-windows-gnu\stage0-rustc\x86_64-pc-windows-gnu\release\deps\librustc_llvm-e5bef6461610b7d4.rlib(PassBuilder.cpp.obj):(.bss$_ZN4llvm3Any6TypeIdIPKNS_8FunctionEE2IdE[_ZN4llvm3Any6TypeIdIPKNS_8FunctionEE2IdE]+0x0): multiple definition of `llvm::Any::TypeId<llvm::Function const*>::Id'; C:\M\mingw-w64-rust\src\MINGW64\build\x86_64-pc-windows-gnu\stage0-rustc\x86_64-pc-windows-gnu\release\deps\librustc_llvm-e5bef6461610b7d4.rlib(PassWrapper.o):PassWrapper.cp:(.data$_ZN4llvm3Any6TypeIdIPKNS_8FunctionEE2IdE[_ZN4llvm3Any6TypeIdIPKNS_8FunctionEE2IdE]+0x0): first defined here
          C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\M\mingw-w64-rust\src\MINGW64\build\x86_64-pc-windows-gnu\stage0-rustc\x86_64-pc-windows-gnu\release\deps\librustc_llvm-e5bef6461610b7d4.rlib(PassBuilder.cpp.obj):(.bss$_ZN4llvm3Any6TypeIdIPKNS_6ModuleEE2IdE[_ZN4llvm3Any6TypeIdIPKNS_6ModuleEE2IdE]+0x0): multiple definition of `llvm::Any::TypeId<llvm::Module const*>::Id'; C:\M\mingw-w64-rust\src\MINGW64\build\x86_64-pc-windows-gnu\stage0-rustc\x86_64-pc-windows-gnu\release\deps\librustc_llvm-e5bef6461610b7d4.rlib(PassWrapper.o):PassWrapper.cp:(.data$_ZN4llvm3Any6TypeIdIPKNS_6ModuleEE2IdE[_ZN4llvm3Any6TypeIdIPKNS_6ModuleEE2IdE]+0x0): first defined here
          C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\M\mingw-w64-rust\src\MINGW64\build\x86_64-pc-windows-gnu\stage0-rustc\x86_64-pc-windows-gnu\release\deps\librustc_llvm-e5bef6461610b7d4.rlib(PassBuilder.cpp.obj):(.bss$_ZN4llvm3Any6TypeIdIPKNS_13LazyCallGraph3SCCEE2IdE[_ZN4llvm3Any6TypeIdIPKNS_13LazyCallGraph3SCCEE2IdE]+0x0): multiple definition of `llvm::Any::TypeId<llvm::LazyCallGraph::SCC const*>::Id'; C:\M\mingw-w64-rust\src\MINGW64\build\x86_64-pc-windows-gnu\stage0-rustc\x86_64-pc-windows-gnu\release\deps\librustc_llvm-e5bef6461610b7d4.rlib(PassWrapper.o):PassWrapper.cp:(.data$_ZN4llvm3Any6TypeIdIPKNS_13LazyCallGraph3SCCEE2IdE[_ZN4llvm3Any6TypeIdIPKNS_13LazyCallGraph3SCCEE2IdE]+0x0): first defined here
          C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\M\mingw-w64-rust\src\MINGW64\build\x86_64-pc-windows-gnu\stage0-rustc\x86_64-pc-windows-gnu\release\deps\librustc_llvm-e5bef6461610b7d4.rlib(PassBuilder.cpp.obj):(.bss$_ZN4llvm3Any6TypeIdIPKNS_4LoopEE2IdE[_ZN4llvm3Any6TypeIdIPKNS_4LoopEE2IdE]+0x0): multiple definition of `llvm::Any::TypeId<llvm::Loop const*>::Id'; C:\M\mingw-w64-rust\src\MINGW64\build\x86_64-pc-windows-gnu\stage0-rustc\x86_64-pc-windows-gnu\release\deps\librustc_llvm-e5bef6461610b7d4.rlib(PassWrapper.o):PassWrapper.cp:(.data$_ZN4llvm3Any6TypeIdIPKNS_4LoopEE2IdE[_ZN4llvm3Any6TypeIdIPKNS_4LoopEE2IdE]+0x0): first defined here
          collect2.exe: error: ld returned 1 exit status

Shorter version : multiple definition of `llvm::Any::TypeId<llvm::Function const*>::Id';
They are defined in PassBuilder.cpp.obj and PassWrapper.o.

I have traced the cause of the error to this change: 95b27b2
Rerverting it fixes the build issue.

In a nutshell, Rust builds it own C++ wrappers around some LLVM classes.
It happens that both Rust and LLVM end up instantiating the same "static template".
Apparently having these instances "constant" allows GCC to merge them (?).
If they are not constant, GCC fails with multiple definition errors.

Note that the Clang build is fine.

@shafik
Copy link
Collaborator

shafik commented Apr 21, 2023

CC @Flakebi @JoeLoser

@Flakebi
Copy link
Member

Flakebi commented Apr 21, 2023

The commit explicitly makes the Id non-constant so they cannot be merged, because merging the Id between different template instantiations breaks llvm::Any :)

It happens that both Rust and LLVM end up instantiating the same "static template".

I don’t quite understand how that happens, LLVM uses any_cast with the same types in multiple files and it links fine. So why is this a problem when compiling Rust with gcc on mingw and not somewhere else?

One interesting thing in the error message:
PassBuilder.cpp.obj defines llvm::Any::TypeId<llvm::Module const*>::Id in .bss
but PassWrapper.o defines it in .data.
Maybe that is the reason why they cannot be merged?

Edit:
Maybe initializing the type id with a non-zero value forces putting it into .data

template <typename T> char Any::TypeId<T>::Id = 1;

@filnet
Copy link
Author

filnet commented Apr 21, 2023

A simple workaround would be to make the templates non constant only for MSVC ?

What about the other template:

  // The `Typeid<T>::Id` static data member below is a globally unique
  // identifier for the type `T`. It is explicitly marked with default
  // visibility so that when `-fvisibility=hidden` is used, the loader still
  // merges duplicate definitions across DSO boundaries.
  // We also cannot mark it as `const`, otherwise msvc merges all definitions
  // when lto is enabled, making any comparison return true.
  template <typename T> struct TypeId { static char Id; };

Isn't it highly dangerous that the static char is not const anymore ?
Does it allow malicious code to change the Id at runtime ?

PS: I haven't used C++ in years.

@Flakebi
Copy link
Member

Flakebi commented Apr 21, 2023

Does it allow malicious code to change the Id at runtime ?

The value of Id does not matter, it’s never used. The only thing that matters is that the address of Id is different for every template type T. Because the address of Id is compared to check if the object contained in an llvm::Any is of a certain type.

A simple workaround would be to make the templates non constant only for MSVC ?

I would prefer something that can be the same code for all compilers.

Can you try if initializing the Id to something non-zero fixes your rust build?

template <typename T> char Any::TypeId<T>::Id = 1;

This should force the value to always land in the .data section.

I don’t understand how they end up in different sections, the flag -fzero-initialized-in-bss/-fno-zero-initialized-in-bss controls gcc’s behavior, but I don’t see it used in llvm or rust. Using different compilers for llvm and rust could maybe cause that behavior.

@filnet
Copy link
Author

filnet commented Apr 21, 2023

Can you try if initializing the Id to something non-zero fixes your rust build?

Will try that.

Using different compilers for llvm and rust could maybe cause that behavior.

llvm and rust are both compiled with gcc in our case.

@mati865
Copy link
Contributor

mati865 commented Apr 21, 2023

llvm and rust are both compiled with gcc in our case.

Actually LLVM is built with Clang (and linked with ld.bfd) since msys2/MINGW-packages#12866 because GCC cannot build LLVM library with all targets because of the symbols limit.

@filnet
Copy link
Author

filnet commented Apr 21, 2023

Changing to template <typename T> char Any::TypeId<T>::Id = 1; works.

@Flakebi
Copy link
Member

Flakebi commented Apr 21, 2023

Thank you for testing it!

I put a patch with this change into https://reviews.llvm.org/D148953.

@filnet
Copy link
Author

filnet commented Apr 21, 2023

Thanks for the fix!

veselypeta pushed a commit to veselypeta/cherillvm that referenced this issue Aug 21, 2024
Citing the comment in the source:

Define the type id and initialize with a non-zero value.
Initializing with a zero value means the variab can end up in either the
.data or the .bss section. This can lead to multiple definition linker
errors when some object files are compiled with a compiler that puts the
variable into .data but they are linked to object files from a different
compiler that put the variable into .bss. To prevent this issue from
happening, initialize the variable with a non-zero value, which forces
it to land in .data (because .bss is zero-initialized).

Fixes llvm/llvm-project#62270
A regression of D139974.

Differential Revision: https://reviews.llvm.org/D148953
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

5 participants