Skip to content

regression: rust-lld: error: duplicate symbol: crc32␍ etc. on x86_64-pc-windows-msvc for tests depending on crate libz-sys #139821

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

Open
MingweiSamuel opened this issue Apr 14, 2025 · 15 comments
Labels
A-linkage Area: linking into static, shared libraries and binaries C-discussion Category: Discussion or questions that doesn't represent real issues. O-windows-msvc Toolchain: MSVC, Operating system: Windows

Comments

@MingweiSamuel
Copy link
Contributor

Trying to compile on latest nightlies (see bisect below) emits many of the following error within libz-sys:

  = note: rust-lld: error: duplicate symbol: crc32␍
          >>> defined at D:\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libz-sys-1.1.19\src\zlib\crc32.c:1016␍
          >>>            liblibz_sys-79931f388a357a82.rlib(f0389296f42960e9-crc32.o)␍
          >>> defined at liblibz_rs_sys-917737c2d13c5fa2.rlib(libz_rs_sys-917737c2d13c5fa2.libz_rs_sys.1b0108f55cc9e3dd-cgu.0.rcgu.o)␍
          ␍

error output

error: linking with `rust-lld.exe` failed: exit code: 1
  |
  = note: "rust-lld.exe" "-flavor" "link" "/NOLOGO" "F:\\Users\\Mingw\\AppData\\Local\\Temp\\rustcVT7IxH\\symbols.o" "<257 object files omitted>" "F:\\Projects\\hydroflow\\target\\debug\\deps/{libdunce-490ac6fa22527cc8.rlib,libshell_escape-89070ccbf731f64b.rlib,libserde_path_to_error-da51a08afeca280c.rlib}.rlib" "<sysroot>\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib/{libtest-*,libgetopts-*,libunicode_width-*,librustc_std_workspace_std-*}.rlib" "F:\\Projects\\hydroflow\\target\\debug\\deps/{libdyn_clone-2c693edc2cafa74f.rlib,libmemo_map-f7e8140045a63887.rlib,libcargo_metadata-3afb5e79ee503ae3.rlib,libthiserror-28d33aa4c229c2c1.rlib,libcargo_platform-d650f7536ffa273b.rlib,libsemver-52b80da623a41b76.rlib,libcamino-7daee7d692550714.rlib,libnameof-f136cce52656def7.rlib,libnanoid-80da1872751f6bd3.rlib,librand-f66c24a3e23da036.rlib,librand_chacha-cdce07244619ead2.rlib,libppv_lite86-87acd66a3af1067c.rlib,librand_core-e5b2c4a2527420db.rlib,libasync_ssh2_lite-270f70caff4c1ae1.rlib,libssh2-7a90b2bd0d5489d1.rlib,libparking_lot-33597997cfdb7231.rlib,libparking_lot_core-cc85084db42e01da.rlib,libwinapi-f5016ecd14306506.rlib,libinstant-7da65afc8f736b5b.rlib,libbitflags-dfca5c4ffa4f1d59.rlib,liblibssh2_sys-cbf2128f425bceef.rlib,liblibz_sys-79931f388a357a82.rlib,liblibc-a14427b2ce3ebb83.rlib,libwholesym-74ecbccfec7015a6.rlib,libmemmap2-064691de1c58a477.rlib,libsymsrv-12e706f982ec2993.rlib,libcab-2e089a49d9ac0c46.rlib,libtime-809d5794ce6898c1.rlib,libtime_core-40359cbabc3dbbd8.rlib,libnum_conv-25ee515b4446d7e9.rlib,libderanged-9c0bfc5fd8262718.rlib,libpowerfmt-a21659ed8be10e5c.rlib,liblzxd-3e4bad9e8edf9af4.rlib,libdirs-fc08918f61b189fe.rlib,libdirs_sys-05ae3af10ff5437a.rlib,liboption_ext-e4d4647d689901b6.rlib,libfs4-d520eeb1e9d05ace.rlib,libreqwest-c660a0274084bcb4.rlib,libserde_urlencoded-d325f55c391e18d2.rlib,libbase64-c9cc1af3ab183922.rlib,librustls_pemfile-05af8cdd4ccb74df.rlib,libwindows_registry-e55a9fba5bae9d24.rlib,libwindows_targets-b590ae889d183991.rlib,libwindows_strings-25810f1c5d216952.rlib,libwindows_result-dc937b9c04ad74e9.rlib,libwindows_link-7d8b2e9c4c517ee5.rlib,libipnet-7ce64db73d9ff15f.rlib,libhyper_rustls-60e78f3c39d804bb.rlib,libwebpki_roots-03ec4688ee94d750.rlib,libtokio_rustls-079572aa37a2b4e9.rlib,librustls-84c70ec789ca42a9.rlib,libsubtle-7a62713adcbc7e72.rlib,libwebpki-b4e8d81b42678268.rlib,libring-486fbf2bb30088c3.rlib,libuntrusted-1def58ec6b7b2f4e.rlib,libzeroize-c08345c222b1583f.rlib,librustls_pki_types-2e827a03ba10a040.rlib,libtower-428c81796e3e0fd0.rlib,libsync_wrapper-e037a74fa6b7e2ad.rlib,libtower_layer-e54a78936e51308c.rlib,libhyper_util-f263ddc484cf5094.rlib,libtower_service-85c893f18d7f8b9f.rlib,libtracing-0b0145a8dbbb01fe.rlib,libtracing_core-db1a3b8b3b65f464.rlib,libhyper-6820c8bc64085243.rlib,libwant-67e7bc29f1287585.rlib,libtry_lock-1d7644d8c8c15ffe.rlib,libhttparse-585899819f2a3a27.rlib,libhttp_body_util-6d8c7e1752339e1f.rlib,libhttp_body-1b59bcd5395fb701.rlib,liburl-52e809396ce589e1.rlib,libidna-6b7afb58eee59160.rlib,libidna_adapter-185c05017dd58bb5.rlib,libicu_normalizer-b15f6ad34e0dd70e.rlib,libicu_normalizer_data-666d8f3d46b55a2e.rlib,libwrite16-0f669802e9093f18.rlib,libutf8_iter-470e50d0e67000d5.rlib,libutf16_iter-27e504796cb8d100.rlib,libicu_properties-13a87cc51f3b8215.rlib,libicu_properties_data-35b8ff2aee66a1d8.rlib,libicu_locid_transform-55cf717f6fdc2392.rlib,libicu_locid_transform_data-213cc3c639c231fc.rlib,libicu_collections-f66d773264b3162f.rlib,libicu_provider-b520fc8a22146158.rlib,libicu_locid-62bde748e35d53d5.rlib,liblitemap-34c4bc45f88d5ced.rlib,libtinystr-84b7602b1c22ab24.rlib,libzerovec-377492b5fde4ca71.rlib,libwriteable-484bb341793a49d8.rlib,libyoke-c0507b5ac7fe8c6b.rlib,libform_urlencoded-da3d6eb3563d5673.rlib,libpercent_encoding-36355d0f5ec6ec70.rlib,libhttp-af52b89ff3279088.rlib,libfnv-98890e3ff67f2430.rlib,libasync_compression-e1956eaa1d112b4b.rlib,libbrotli-82b292736b206164.rlib,libbrotli_decompressor-8018f8ddfa7e3624.rlib,liballoc_stdlib-41fab82aeccd3af7.rlib,liballoc_no_stdlib-4168b4549df78f01.rlib,libsamply_symbols-c2ac46f6e836665c.rlib,libsrcsrv-64ba2fd3573645e2.rlib,liblzma_rs-3eaf7f38c1f8944f.rlib,libcrc-fbbbe845a020ed4a.rlib,libcrc_catalog-c873fc02293324ce.rlib,libcpp_demangle-dde96526b656d553.rlib,librustc_demangle-2f576b73b3db47c4.rlib,libscala_native_demangle-f2ffbaac1112fd4f.rlib,libmacho_unwind_info-b97d12d171525024.rlib,libaddr2line-1a3fae4293c420b7.rlib,libgimli-8aa99044ad1337ab.rlib,libmsvc_demangler-c2eb509166b0c8a8.rlib,librangemap-3de585ea42dc7a79.rlib,libyoke-5a567535db9b8a46.rlib,libzerofrom-5f4d553fc90d281d.rlib,libzerocopy-81539db6a385509e.rlib,libnom-78d8028cc1a84c94.rlib,libobject-f18b49d7f84b169a.rlib,libruzstd-e37616e219a06d02.rlib,libtwox_hash-fba1d96825ffdab7.rlib,libstatic_assertions-dc86ef657059a9cd.rlib,libflate2-8aa5969ec56e6327.rlib,libminiz_oxide-bdfacedcde0c1a8d.rlib,libadler2-169b89118f2b28c6.rlib,liblibz_rs_sys-917737c2d13c5fa2.rlib,libzlib_rs-3144043675f988b1.rlib,libcrc32fast-3eeb57e99fd7cc8c.rlib,libpdb_addr2line-71528517243462a8.rlib,libelsa-45c4f51591e6ec1d.rlib,libstable_deref_trait-fd6a8db73e3da569.rlib,librange_collections-45a3961a66c5c5e4.rlib,libref_cast-64021d61a821e6d3.rlib,libinplace_vec_builder-aecbbe16f1765acd.rlib,libbinary_merge-c76102d13edc83d0.rlib,libpdb2-7f4841b425d62b22.rlib,libfallible_iterator-a07db4be72934cd9.rlib,libscroll-a0be68c3ca7eebfb.rlib,libmaybe_owned-c901fbcabbae31a6.rlib,liblinux_perf_data-9c741e308aed6cbf.rlib,libthiserror-012cb0549d9e5c41.rlib,libprost-115d9224e91ce42b.rlib,liblinear_map-fbe13a192fb66a1b.rlib,liblinux_perf_event_reader-37724c0fab6c6b1e.rlib,libbitflags-b1abe4b513ef3df2.rlib,libdebugid-98dfce93f1ee323f.rlib,libuuid-d397581c277c82db.rlib,libserde_json-2c88ac84baf31653.rlib,libryu-bf51b1d236e27c94.rlib,libitertools-2d0b343c344846f9.rlib,libeither-6a9092ae74ed7681.rlib,libinferno-3ad0f034387fc91a.rlib,libcrossbeam_channel-6b592612d221d435.rlib,libnum_format-b2d19895521ec8c2.rlib,libitoa-fc76cb868d844108.rlib,libarrayvec-bb2e20a36e5c84f5.rlib,libstr_stack-6cc3ea276f42d60b.rlib,libquick_xml-da74564e48fc88b8.rlib,librgb-bc2a64edf0e25898.rlib,libbytemuck-e65601f1e9631584.rlib,libindexmap-babcf1743e3087a3.rlib,libequivalent-7faac8ed80161d67.rlib,libhashbrown-a0662571c6c349c2.rlib,libis_terminal-a8d8cd755dda3f4a.rlib,liblog-ca2053a95ea62abf.rlib,libdashmap-ab1189f71e8170e7.rlib,libhashbrown-aeca10d661ea0b2e.rlib,libahash-ef78d2f1c2034f15.rlib,libgetrandom-55ce9492b8d02544.rlib,libzerocopy-cd7af60e3c7dab6b.rlib,libbyteorder-d8a0d051f37c2508.rlib,libasync_process-007d4c5efac7c8cf.rlib,libasync_lock-0827c634d62fae4f.rlib,libblocking-3ce5f753e697724d.rlib,libpiper-0b8eec5aab2ee92c.rlib,libatomic_waker-f01c4339b1368ba1.rlib,libfutures_lite-328b112a01133dfc.rlib,libasync_task-af502716746afb1f.rlib,libasync_channel-f4ba0fdc403f1715.rlib,libevent_listener_strategy-f7981ef9e464da06.rlib,libevent_listener-065148104e9fc094.rlib,libparking-3747cdeb4bf2ef95.rlib,libconcurrent_queue-400a061152355efe.rlib,libcrossbeam_utils-fe08fa544bf1ea02.rlib,libindicatif-12f4a919a3f7c7fc.rlib,libportable_atomic-6a555d1102815e10.rlib,libnumber_prefix-2702996356c9fc09.rlib,libconsole-60496b983dc405bd.rlib,libencode_unicode-07c1bfd418cfa80e.rlib,libunicode_width-d579936016215271.rlib,liblazy_static-aa264dec8e156b7d.rlib,libhydro_deploy_integration-70a8e2a1d4aa5f30.rlib,libtempfile-d807cf10f2563cdb.rlib,libfastrand-655f54079e8f8ff5.rlib,libwindows_sys-54142bdc5b8b5c56.rlib,libonce_cell-dc5e0301747cff4c.rlib,libtokio_util-0ccfb72b0d3986b7.rlib,libtokio_stream-7946bf2ac51e1e38.rlib,libtokio-d64401ccf84f80bb.rlib,libsocket2-2b875af0760b0a2c.rlib,libmio-38a62f0bb437cc5c.rlib,libwindows_sys-9764bd6a78a9949c.rlib,libparking_lot-978bc75a6287f8c7.rlib,libparking_lot_core-3243c1ffcf34cf4b.rlib,libwindows_targets-dd8cca008988cf75.rlib,libcfg_if-120b7212e7bc72ec.rlib,libsmallvec-204b4f9486a8735d.rlib,liblock_api-b5a7f7f782f9b204.rlib,libscopeguard-4a1404f096e49870.rlib,libserde-a7895223f17d2b9f.rlib,libpin_project-fe14311b4bcc6f75.rlib,libfutures-8fcf4f1290fdbe49.rlib,libfutures_executor-d265691d3ffecee2.rlib,libfutures_util-9186330e5c57b7bd.rlib,libmemchr-105646b5756cb14a.rlib,libfutures_io-b16ac9f488b8d9f8.rlib,libslab-75bf095029a1be07.rlib,libfutures_channel-fc933f5ba1427b0e.rlib,libpin_project_lite-f75bdb3e4a574140.rlib,libfutures_sink-aa7e954255f4c0c6.rlib,libfutures_task-1c3fa5431198fd55.rlib,libpin_utils-8ff768994ab1a462.rlib,libfutures_core-b17e2c2a87306059.rlib,libbytes-6e1b71233944c901.rlib,libanyhow-7cafc956d4aec9ec.rlib}.rlib" "<sysroot>\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib/{libstd-*,libpanic_unwind-*,libwindows_targets-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libunwind-*,libcfg_if-*,liballoc-*,librustc_std_workspace_core-*,libcore-*,libcompiler_builtins-*}.rlib" "kernel32.lib" "advapi32.lib" "cfgmgr32.lib" "kernel32.lib" "user32.lib" "bcrypt.lib" "crypt32.lib" "user32.lib" "ntdll.lib" "legacy_stdio_definitions.lib" "D:\\.cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows_x86_64_msvc-0.53.0\\lib\\windows.0.53.0.lib" "bcrypt.lib" "advapi32.lib" "D:\\.cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows_x86_64_msvc-0.52.6\\lib\\windows.0.52.0.lib" "D:\\.cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows_x86_64_msvc-0.52.6\\lib\\windows.0.52.0.lib" "D:\\.cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows_x86_64_msvc-0.52.6\\lib\\windows.0.52.0.lib" "kernel32.lib" "kernel32.lib" "ntdll.lib" "userenv.lib" "ws2_32.lib" "dbghelp.lib" "/defaultlib:msvcrt" "/NXCOMPAT" "/LIBPATH:D:\\.cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows_x86_64_msvc-0.52.6\\lib" "/LIBPATH:C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.43.34808\\atlmfc\\lib\\x64" "/LIBPATH:F:\\Projects\\hydroflow\\target\\debug\\build\\libssh2-sys-81938cdcc849f117\\out\\build" "/LIBPATH:C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.43.34808\\atlmfc\\lib\\x64" "/LIBPATH:F:\\Projects\\hydroflow\\target\\debug\\build\\libz-sys-70d2e91a1e33f430\\out\\lib" "/LIBPATH:F:\\Projects\\hydroflow\\target\\debug\\build\\libz-sys-70d2e91a1e33f430\\out\\lib" "/LIBPATH:F:\\Projects\\hydroflow\\target\\debug\\build\\ring-612246a69f22c61f\\out" "/LIBPATH:D:\\.cargo\\registry\\src\\index.crates.io-1949cf8c6b5b557f\\windows_x86_64_msvc-0.53.0\\lib" "/OUT:F:\\Projects\\hydroflow\\target\\debug\\deps\\hydro_deploy-6fb3a3162701b4fd.exe" "/OPT:REF,NOICF" "/DEBUG" "/PDBALTPATH:%_PDB%" "/NATVIS:<sysroot>\\lib\\rustlib\\etc\\intrinsic.natvis" "/NATVIS:<sysroot>\\lib\\rustlib\\etc\\liballoc.natvis" "/NATVIS:<sysroot>\\lib\\rustlib\\etc\\libcore.natvis" "/NATVIS:<sysroot>\\lib\\rustlib\\etc\\libstd.natvis"
  = note: some arguments are omitted. use `--verbose` to show all linker arguments
  = note: rust-lld: error: duplicate symbol: crc32␍
          >>> defined at D:\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libz-sys-1.1.19\src\zlib\crc32.c:1016␍
          >>>            liblibz_sys-79931f388a357a82.rlib(f0389296f42960e9-crc32.o)␍
          >>> defined at liblibz_rs_sys-917737c2d13c5fa2.rlib(libz_rs_sys-917737c2d13c5fa2.libz_rs_sys.1b0108f55cc9e3dd-cgu.0.rcgu.o)␍
          ␍
          rust-lld: error: duplicate symbol: crc32_combine␍
          >>> defined at D:\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libz-sys-1.1.19\src\zlib\crc32.c:1029␍
          >>>            liblibz_sys-79931f388a357a82.rlib(f0389296f42960e9-crc32.o)␍
          >>> defined at liblibz_rs_sys-917737c2d13c5fa2.rlib(libz_rs_sys-917737c2d13c5fa2.libz_rs_sys.1b0108f55cc9e3dd-cgu.0.rcgu.o)␍
          ␍
          rust-lld: error: duplicate symbol: adler32␍
          >>> defined at D:\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libz-sys-1.1.19\src\zlib\adler32.c:128␍
          >>>            liblibz_sys-79931f388a357a82.rlib(f0389296f42960e9-adler32.o)␍
          >>> defined at liblibz_rs_sys-917737c2d13c5fa2.rlib(libz_rs_sys-917737c2d13c5fa2.libz_rs_sys.1b0108f55cc9e3dd-cgu.0.rcgu.o)␍
          ␍
          rust-lld: error: duplicate symbol: adler32_combine␍
          >>> defined at D:\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libz-sys-1.1.19\src\zlib\adler32.c:158␍
          >>>            liblibz_sys-79931f388a357a82.rlib(f0389296f42960e9-adler32.o)␍
          >>> defined at liblibz_rs_sys-917737c2d13c5fa2.rlib(libz_rs_sys-917737c2d13c5fa2.libz_rs_sys.1b0108f55cc9e3dd-cgu.0.rcgu.o)␍
          ␍
          rust-lld: error: duplicate symbol: uncompress␍
          >>> defined at D:\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libz-sys-1.1.19\src\zlib\uncompr.c:83␍
          >>>            liblibz_sys-79931f388a357a82.rlib(f0389296f42960e9-uncompr.o)␍
          >>> defined at liblibz_rs_sys-917737c2d13c5fa2.rlib(libz_rs_sys-917737c2d13c5fa2.libz_rs_sys.1b0108f55cc9e3dd-cgu.0.rcgu.o)␍
          ␍
          rust-lld: error: duplicate symbol: inflate␍
          >>> defined at D:\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libz-sys-1.1.19\src\zlib\inflate.c:590␍
          >>>            liblibz_sys-79931f388a357a82.rlib(f0389296f42960e9-inflate.o)␍
          >>> defined at liblibz_rs_sys-917737c2d13c5fa2.rlib(libz_rs_sys-917737c2d13c5fa2.libz_rs_sys.1b0108f55cc9e3dd-cgu.0.rcgu.o)␍
          ␍
          rust-lld: error: duplicate symbol: inflateEnd␍
          >>> defined at D:\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libz-sys-1.1.19\src\zlib\inflate.c:1266␍
          >>>            liblibz_sys-79931f388a357a82.rlib(f0389296f42960e9-inflate.o)␍
          >>> defined at liblibz_rs_sys-917737c2d13c5fa2.rlib(libz_rs_sys-917737c2d13c5fa2.libz_rs_sys.1b0108f55cc9e3dd-cgu.0.rcgu.o)␍
          ␍
          rust-lld: error: duplicate symbol: inflateBackInit_␍
          >>> defined at D:\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libz-sys-1.1.19\src\zlib\infback.c:27␍
          >>>            liblibz_sys-79931f388a357a82.rlib(f0389296f42960e9-infback.o)␍
          >>> defined at liblibz_rs_sys-917737c2d13c5fa2.rlib(libz_rs_sys-917737c2d13c5fa2.libz_rs_sys.1b0108f55cc9e3dd-cgu.0.rcgu.o)␍
          ␍
          rust-lld: error: duplicate symbol: inflateBack␍
          >>> defined at D:\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libz-sys-1.1.19\src\zlib\infback.c:243␍
          >>>            liblibz_sys-79931f388a357a82.rlib(f0389296f42960e9-infback.o)␍
          >>> defined at liblibz_rs_sys-917737c2d13c5fa2.rlib(libz_rs_sys-917737c2d13c5fa2.libz_rs_sys.1b0108f55cc9e3dd-cgu.0.rcgu.o)␍
          ␍
          rust-lld: error: duplicate symbol: inflateBackEnd␍
          >>> defined at D:\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libz-sys-1.1.19\src\zlib\infback.c:621␍
          >>>            liblibz_sys-79931f388a357a82.rlib(f0389296f42960e9-infback.o)␍
          >>> defined at liblibz_rs_sys-917737c2d13c5fa2.rlib(libz_rs_sys-917737c2d13c5fa2.libz_rs_sys.1b0108f55cc9e3dd-cgu.0.rcgu.o)␍
          ␍
          rust-lld: error: duplicate symbol: inflateCopy␍
          >>> defined at D:\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libz-sys-1.1.19\src\zlib\inflate.c:1439␍
          >>>            liblibz_sys-79931f388a357a82.rlib(f0389296f42960e9-inflate.o)␍
          >>> defined at liblibz_rs_sys-917737c2d13c5fa2.rlib(libz_rs_sys-917737c2d13c5fa2.libz_rs_sys.1b0108f55cc9e3dd-cgu.0.rcgu.o)␍
          ␍
          rust-lld: error: duplicate symbol: inflateMark␍
          >>> defined at D:\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libz-sys-1.1.19\src\zlib\inflate.c:1510␍
          >>>            liblibz_sys-79931f388a357a82.rlib(f0389296f42960e9-inflate.o)␍
          >>> defined at liblibz_rs_sys-917737c2d13c5fa2.rlib(libz_rs_sys-917737c2d13c5fa2.libz_rs_sys.1b0108f55cc9e3dd-cgu.0.rcgu.o)␍
          ␍
          rust-lld: error: duplicate symbol: inflateSync␍
          >>> defined at D:\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libz-sys-1.1.19\src\zlib\inflate.c:1375␍
          >>>            liblibz_sys-79931f388a357a82.rlib(f0389296f42960e9-inflate.o)␍
          >>> defined at liblibz_rs_sys-917737c2d13c5fa2.rlib(libz_rs_sys-917737c2d13c5fa2.libz_rs_sys.1b0108f55cc9e3dd-cgu.0.rcgu.o)␍
          ␍
          rust-lld: error: duplicate symbol: inflateSyncPoint␍
          >>> defined at D:\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libz-sys-1.1.19\src\zlib\inflate.c:1431␍
          >>>            liblibz_sys-79931f388a357a82.rlib(f0389296f42960e9-inflate.o)␍
          >>> defined at liblibz_rs_sys-917737c2d13c5fa2.rlib(libz_rs_sys-917737c2d13c5fa2.libz_rs_sys.1b0108f55cc9e3dd-cgu.0.rcgu.o)␍
          ␍
          rust-lld: error: duplicate symbol: inflateInit_␍
          >>> defined at D:\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libz-sys-1.1.19\src\zlib\inflate.c:219␍
          >>>            liblibz_sys-79931f388a357a82.rlib(f0389296f42960e9-inflate.o)␍
          >>> defined at liblibz_rs_sys-917737c2d13c5fa2.rlib(libz_rs_sys-917737c2d13c5fa2.libz_rs_sys.1b0108f55cc9e3dd-cgu.0.rcgu.o)␍
          ␍
          rust-lld: error: duplicate symbol: inflateInit2_␍
          >>> defined at D:\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libz-sys-1.1.19\src\zlib\inflate.c:179␍
          >>>            liblibz_sys-79931f388a357a82.rlib(f0389296f42960e9-inflate.o)␍
          >>> defined at liblibz_rs_sys-917737c2d13c5fa2.rlib(libz_rs_sys-917737c2d13c5fa2.libz_rs_sys.1b0108f55cc9e3dd-cgu.0.rcgu.o)␍
          ␍
          rust-lld: error: duplicate symbol: inflatePrime␍
          >>> defined at D:\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libz-sys-1.1.19\src\zlib\inflate.c:223␍
          >>>            liblibz_sys-79931f388a357a82.rlib(f0389296f42960e9-inflate.o)␍
          >>> defined at liblibz_rs_sys-917737c2d13c5fa2.rlib(libz_rs_sys-917737c2d13c5fa2.libz_rs_sys.1b0108f55cc9e3dd-cgu.0.rcgu.o)␍
          ␍
          rust-lld: error: duplicate symbol: inflateReset␍
          >>> defined at D:\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libz-sys-1.1.19\src\zlib\inflate.c:130␍
          >>>            liblibz_sys-79931f388a357a82.rlib(f0389296f42960e9-inflate.o)␍
          >>> defined at liblibz_rs_sys-917737c2d13c5fa2.rlib(libz_rs_sys-917737c2d13c5fa2.libz_rs_sys.1b0108f55cc9e3dd-cgu.0.rcgu.o)␍
          ␍
          rust-lld: error: duplicate symbol: inflateReset2␍
          >>> defined at D:\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libz-sys-1.1.19\src\zlib\inflate.c:141␍
          >>>            liblibz_sys-79931f388a357a82.rlib(f0389296f42960e9-inflate.o)␍
          >>> defined at liblibz_rs_sys-917737c2d13c5fa2.rlib(libz_rs_sys-917737c2d13c5fa2.libz_rs_sys.1b0108f55cc9e3dd-cgu.0.rcgu.o)␍
          ␍
          rust-lld: error: duplicate symbol: inflateSetDictionary␍
          >>> defined at D:\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libz-sys-1.1.19\src\zlib\inflate.c:1299␍
          >>>            liblibz_sys-79931f388a357a82.rlib(f0389296f42960e9-inflate.o)␍
          >>> defined at liblibz_rs_sys-917737c2d13c5fa2.rlib(libz_rs_sys-917737c2d13c5fa2.libz_rs_sys.1b0108f55cc9e3dd-cgu.0.rcgu.o)␍
          ␍
          rust-lld: error: too many errors emitted, stopping now (use /errorlimit:0 to see all errors)␍


error: could not compile `hydro_deploy` (lib test) due to 1 previous error

bisect

searched nightlies: from nightly-2025-03-10 to nightly-2025-04-14
regressed nightly: nightly-2025-04-06
searched commit range: 17ffbc8...5e17a2a
regressed commit: 0e9c3e5

bisected with cargo-bisect-rustc v0.6.9

Host triple: x86_64-pc-windows-msvc
Reproduce with:

cargo bisect-rustc --start=2025-03-10 --end=2025-04-14 -- test -p hydro_deploy

cargo.lock snippet

[[package]]
name = "libssh2-sys"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee"
dependencies = [
 "cc",
 "libc",
 "libz-sys",
 "openssl-sys",
 "pkg-config",
 "vcpkg",
]

[[package]]
name = "libz-rs-sys"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "902bc563b5d65ad9bba616b490842ef0651066a1a1dc3ce1087113ffcb873c8d"
dependencies = [
 "zlib-rs",
]

[[package]]
name = "libz-sys"
version = "1.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fdc53a7799a7496ebc9fd29f31f7df80e83c9bda5299768af5f9e59eeea74647"
dependencies = [
 "cc",
 "libc",
 "pkg-config",
 "vcpkg",
]

Code

I don't have a MRE at this time, code is here: https://github.com/hydro-project/hydro/tree/lld-error-2025-04

Only building via cargo test fails, cargo build succeeds:

cargo test -p hydro_deploy

@MingweiSamuel MingweiSamuel added C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Apr 14, 2025
@rustbot rustbot added the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Apr 14, 2025
@MingweiSamuel

This comment has been minimized.

@MingweiSamuel MingweiSamuel changed the title lld regression, rust-lld: error: duplicate symbol: crc32␍ etc. on x86_64-pc-windows-msvc for tests depending on crate libz-sys-1.1.19 regression: rust-lld: error: duplicate symbol: crc32␍ etc. on x86_64-pc-windows-msvc for tests depending on crate libz-sys-1.1.19 Apr 14, 2025
@MingweiSamuel MingweiSamuel changed the title regression: rust-lld: error: duplicate symbol: crc32␍ etc. on x86_64-pc-windows-msvc for tests depending on crate libz-sys-1.1.19 regression: rust-lld: error: duplicate symbol: crc32␍ etc. on x86_64-pc-windows-msvc for tests depending on crate libz-sys Apr 14, 2025
MingweiSamuel added a commit to hydro-project/hydro that referenced this issue Apr 14, 2025
Not going past 2024-04-05 due to rustc linker regression on windows:
rust-lang/rust#139821
@jieyouxu jieyouxu added O-windows-msvc Toolchain: MSVC, Operating system: Windows regression-untriaged Untriaged performance or correctness regression. and removed I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ labels Apr 15, 2025
@rustbot rustbot added the I-prioritize Issue: Indicates that prioritization has been requested for this issue. label Apr 15, 2025
@jieyouxu jieyouxu added A-linkage Area: linking into static, shared libraries and binaries I-prioritize Issue: Indicates that prioritization has been requested for this issue. and removed I-prioritize Issue: Indicates that prioritization has been requested for this issue. labels Apr 15, 2025
@jieyouxu
Copy link
Member

I redid the bisection on windows-gnu.

searched nightlies: from nightly-2025-04-05 to nightly-2025-04-10
regressed nightly: nightly-2025-04-07
searched commit range: 5e17a2a...2fa8b11
regressed commit: 175dcc7

bisected with cargo-bisect-rustc v0.6.9

Host triple: x86_64-pc-windows-msvc
Reproduce with:

cargo bisect-rustc --end=2025-04-10 --regress=error --host=x86_64-pc-windows-gnu --target=x86_64-pc-windows-gnu -vv -- test -p hydro_deploy

@bjorn3
Copy link
Member

bjorn3 commented Apr 28, 2025

cc @folkertdev

@jieyouxu

This comment has been minimized.

@jieyouxu

This comment has been minimized.

@jieyouxu jieyouxu added T-cargo Relevant to the cargo team, which will review and decide on the PR/issue. and removed T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Apr 28, 2025
@jieyouxu

This comment has been minimized.

@bjorn3
Copy link
Member

bjorn3 commented Apr 28, 2025

The cargo bump PR doesn't seem to contain the flate2 update.

@jieyouxu

This comment has been minimized.

@bjorn3
Copy link
Member

bjorn3 commented Apr 28, 2025

I suspect the test is somehow depending on zlib C symbols that were previously exported, but are no longer so after the flate2 change

This linker error is exactly the opposite. The linker complains about duplicate definitions, not missing definitions. One of them is from libz-rs-sys, but the cargo update PR doesn't yet have libz-rs-sys in its Cargo.lock.

Ah, this is not for building cargo. This is for a project that depends on cargo as library. You may need to update to flate2 1.1.1 which is the first version using libz-rs-sys 0.5 that avoids symbol conflicts.

@jieyouxu
Copy link
Member

Ah...

@jieyouxu jieyouxu removed T-cargo Relevant to the cargo team, which will review and decide on the PR/issue. C-bug Category: This is a bug. I-prioritize Issue: Indicates that prioritization has been requested for this issue. labels Apr 28, 2025
@jieyouxu jieyouxu added C-discussion Category: Discussion or questions that doesn't represent real issues. and removed regression-untriaged Untriaged performance or correctness regression. needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. labels Apr 28, 2025
@folkertdev
Copy link
Contributor

Current cargo does have the right version of flate2:

https://github.com/rust-lang/cargo/blob/7918c7eb59614c39f1c4e27e99d557720976bdd7/Cargo.toml#L48

So I suspect this just fixed itself as things got updated?

@MingweiSamuel
Copy link
Contributor Author

MingweiSamuel commented Apr 28, 2025

I can confirm this issue is no longer happening on rust version rustc 1.88.0-nightly (10fa3c449 2025-04-26). I can reverse bisect if needed? Should the issue be closed?

@ChrisDenton
Copy link
Member

Since this is fixed and we have an explanation for how I think this can just be closed now, thanks!

It can always be re-opened if something else comes up.

@MingweiSamuel
Copy link
Contributor Author

MingweiSamuel commented Apr 29, 2025

Ok I may have jumped the gun on this, seems it still happens on the windows gh-actions runner even though it doesn't on my desktop, I'll try to make a minimal reproducer

@ChrisDenton
Copy link
Member

I'll reopen in the meantime.

@ChrisDenton ChrisDenton reopened this Apr 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-linkage Area: linking into static, shared libraries and binaries C-discussion Category: Discussion or questions that doesn't represent real issues. O-windows-msvc Toolchain: MSVC, Operating system: Windows
Projects
None yet
Development

No branches or pull requests

6 participants