Skip to content

Incremental occasionally causes link failures (in particular when build process is interrupted) #81280

Open

Description

@jyn514

I tried this code: b717882

I expected to see this happen: It compiles successfully.

Instead, this happened:

  = note: /usr/bin/ld: /tmp/rustc7n3dgo/librustc_typeck-c1c702f6c0ed082b.rlib(rustc_typeck-c1c702f6c0ed082b.1f6gvdzw1xg6y56.rcgu.o): relocation R_X86_64_PC32 against undefined hidden symbol `anon.e321930b0bae74a5b269c2d224f94109.135.llvm.15012941867981504210' can not be used when making a shared object
          /usr/bin/ld: /tmp/rustc7n3dgo/librustc_typeck-c1c702f6c0ed082b.rlib(rustc_typeck-c1c702f6c0ed082b.2kv783dkfz4eig4n.rcgu.o): relocation R_X86_64_PC32 against undefined hidden symbol `_ZN4core3ops8function6FnOnce9call_once17hb43433e1ee944fe7E.llvm.14317370391725333118' can not be used when making a shared object
          /usr/bin/ld: /tmp/rustc7n3dgo/librustc_typeck-c1c702f6c0ed082b.rlib(rustc_typeck-c1c702f6c0ed082b.3cqtg0ebrql2rd8.rcgu.o): relocation R_X86_64_PC32 against undefined hidden symbol `anon.eae49e7385ecc193ec1fcf539c5141a9.100.llvm.5499732698529515802' can not be used when making a shared object
          /usr/bin/ld: /tmp/rustc7n3dgo/librustc_middle-83b74242a7255742.rlib(rustc_middle-83b74242a7255742.29ntjh109p85p91e.rcgu.o): relocation R_X86_64_PC32 against undefined hidden symbol `anon.712e2f39c61ddadde64034dfaf0f738c.199.llvm.18382006748427464360' can not be used when making a shared object
          /usr/bin/ld: /tmp/rustc7n3dgo/librustc_middle-83b74242a7255742.rlib(rustc_middle-83b74242a7255742.38uvgcbj494cplao.rcgu.o): relocation R_X86_64_PC32 against undefined hidden symbol `anon.712e2f39c61ddadde64034dfaf0f738c.199.llvm.18382006748427464360' can not be used when making a shared object
          /usr/bin/ld: /tmp/rustc7n3dgo/librustc_middle-83b74242a7255742.rlib(rustc_middle-83b74242a7255742.3hr9th0q5c43xr2a.rcgu.o): relocation R_X86_64_PC32 against undefined hidden symbol `anon.82495b045438102480b0340cffb3c8e7.100.llvm.17830998827333553218' can not be used when making a shared object
          /usr/bin/ld: /tmp/rustc7n3dgo/librustc_middle-83b74242a7255742.rlib(rustc_middle-83b74242a7255742.44bsww8uk85mfq3a.rcgu.o): relocation R_X86_64_PC32 against undefined hidden symbol `anon.712e2f39c61ddadde64034dfaf0f738c.199.llvm.18382006748427464360' can not be used when making a shared object
          /usr/bin/ld: /tmp/rustc7n3dgo/librustc_middle-83b74242a7255742.rlib(rustc_middle-83b74242a7255742.4iywqxra088mgqr5.rcgu.o): relocation R_X86_64_PC32 against undefined hidden symbol `anon.712e2f39c61ddadde64034dfaf0f738c.389.llvm.18382006748427464360' can not be used when making a shared object
          /usr/bin/ld: /tmp/rustc7n3dgo/librustc_middle-83b74242a7255742.rlib(rustc_middle-83b74242a7255742.4s1s3wicvbdoxsru.rcgu.o): relocation R_X86_64_PC32 against undefined hidden symbol `anon.f6101ecacd895ad87283c593f614ce01.72.llvm.3245620587429400994' can not be used when making a shared object
          /usr/bin/ld: /tmp/rustc7n3dgo/librustc_middle-83b74242a7255742.rlib(rustc_middle-83b74242a7255742.5fsy1y6w5w7prvy9.rcgu.o): relocation R_X86_64_PC32 against undefined hidden symbol `anon.712e2f39c61ddadde64034dfaf0f738c.199.llvm.18382006748427464360' can not be used when making a shared object
          /usr/bin/ld: /tmp/rustc7n3dgo/librustc_middle-83b74242a7255742.rlib(rustc_middle-83b74242a7255742.zjtxsb10gpjb46g.rcgu.o): relocation R_X86_64_PC32 against undefined hidden symbol `anon.82495b045438102480b0340cffb3c8e7.100.llvm.17830998827333553218' can not be used when making a shared object
          /usr/bin/ld: final link failed: nonrepresentable section on output
          clang: error: linker command failed with exit code 1 (use -v to see invocation)

Meta

rustc --version:

rustc 1.50.0-beta.1 (05b602367 2020-12-29)

cc @Aaron1011 , I think you were looking into something similar a while back.

Activity

  1. added
    A-linkageArea: linking into static, shared libraries and binaries
    T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.
    A-incr-compArea: Incremental compilation
    C-bugCategory: This is a bug.
    A-contributor-roadblockArea: Makes things more difficult for new or seasoned contributors to Rust
    on Jan 22, 2021
  2. petrochenkov commented on Dec 24, 2021

    @petrochenkov
    Contributor

    Just got this error while linking rustc_driver with incremental enabled (not for the first time).

      = note: ld.lld: error: undefined symbol: anon.91c2f56426c5022640e519f02889d07d.8.llvm.746630307250149404
              >>> referenced by C:\msys64\home\we\rust\library\core\src/option.rs:0
              >>>               librustc_resolve-fac19ceb16326411.rlib(rustc_resolve-fac19ceb16326411.1brnvk2mjzqx5b9n.rcgu.o):(rustc_resolve::macros::registered_idents)
              >>> referenced by C:\msys64\home\we\rust\library\alloc\src\vec/mod.rs:425
              >>>               librustc_resolve-fac19ceb16326411.rlib(rustc_resolve-fac19ceb16326411.2u8t3u4aqh8idzl4.rcgu.o):(<rustc_resolve::late::lifetimes::LifetimeContext>::with::<<rustc_resolve::late::lifetimes::LifetimeContext>::visit_fn_like_elision::{closure#9}>)
              >>> referenced by C:\msys64\home\we\rust\library\alloc\src\vec/mod.rs:425
              >>>               librustc_resolve-fac19ceb16326411.rlib(rustc_resolve-fac19ceb16326411.2u8t3u4aqh8idzl4.rcgu.o):(<rustc_resolve::late::lifetimes::LifetimeContext>::with::<<rustc_resolve::late::lifetimes::LifetimeContext>::visit_segment_args::{closure#6}>)
              >>> referenced 30 more times
    
              ld.lld: error: undefined symbol: anon.91c2f56426c5022640e519f02889d07d.9.llvm.746630307250149404
              >>> referenced by C:\msys64\home\we\rust\library\alloc\src\vec/mod.rs:425
              >>>               librustc_resolve-fac19ceb16326411.rlib(rustc_resolve-fac19ceb16326411.2u8t3u4aqh8idzl4.rcgu.o):(<rustc_resolve::late::lifetimes::LifetimeContext>::with::<<rustc_resolve::late::lifetimes::LifetimeContext>::visit_fn_like_elision::{closure#9}>)
              >>> referenced by C:\msys64\home\we\rust\library\alloc\src\vec/mod.rs:425
              >>>               librustc_resolve-fac19ceb16326411.rlib(rustc_resolve-fac19ceb16326411.2u8t3u4aqh8idzl4.rcgu.o):(<rustc_resolve::late::lifetimes::LifetimeContext>::with::<<rustc_resolve::late::lifetimes::LifetimeContext>::visit_segment_args::{closure#6}>)
              >>> referenced by C:\msys64\home\we\rust\library\alloc\src\vec/mod.rs:425
              >>>               librustc_resolve-fac19ceb16326411.rlib(rustc_resolve-fac19ceb16326411.2u8t3u4aqh8idzl4.rcgu.o):(<rustc_resolve::late::lifetimes::LifetimeContext>::with::<<rustc_resolve::late::lifetimes::LifetimeContext>::visit_segment_args::{closure#7}>)
              >>> referenced 30 more times
    
              ld.lld: error: undefined symbol: core::ptr::drop_in_place::<rustc_span::FileName> (.llvm.1438190246702246187)
              >>> referenced by C:\msys64\home\we\rust\library\core\src\ptr/mod.rs:188
              >>>               librustc_resolve-fac19ceb16326411.rlib(rustc_resolve-fac19ceb16326411.3bc39m1okvl6wof.rcgu.o):(<&mut <rustc_resolve::Resolver>::check_unused::{closure#0} as core::ops::function::FnMut<(&rustc_span::span_encoding::Span,)>>::call_mut)
              >>> referenced by C:\msys64\home\we\rust\library\core\src\ptr/mod.rs:0
              >>>               librustc_resolve-fac19ceb16326411.rlib(rustc_resolve-fac19ceb16326411.3bc39m1okvl6wof.rcgu.o):(<&mut <rustc_resolve::Resolver>::check_unused::{closure#0} as core::ops::function::FnMut<(&rustc_span::span_encoding::Span,)>>::call_mut)
              >>> referenced by C:\msys64\home\we\rust\library\core\src\ptr/mod.rs:188
              >>>               librustc_resolve-fac19ceb16326411.rlib(rustc_resolve-fac19ceb16326411.4391tludo7n7dv8i.rcgu.o):(core::ptr::drop_in_place::<rustc_span::SpanSnippetError>)
              >>> referenced 9 more times
    
              ld.lld: error: undefined symbol: core::ptr::drop_in_place::<(rustc_span::FileName, rustc_span::BytePos)> (.llvm.1438190246702246187)
              >>> referenced by C:\msys64\home\we\rust\library\core\src\ptr/mod.rs:188
              >>>               librustc_resolve-fac19ceb16326411.rlib(rustc_resolve-fac19ceb16326411.3bc39m1okvl6wof.rcgu.o):(<&mut <rustc_resolve::Resolver>::check_unused::{closure#0} as core::ops::function::FnMut<(&rustc_span::span_encoding::Span,)>>::call_mut)
              >>> referenced by C:\msys64\home\we\rust\library\core\src\ptr/mod.rs:188
              >>>               librustc_resolve-fac19ceb16326411.rlib(rustc_resolve-fac19ceb16326411.4391tludo7n7dv8i.rcgu.o):(core::ptr::drop_in_place::<rustc_span::SpanSnippetError>)
              >>> referenced by C:\msys64\home\we\rust\library\core\src\ptr/mod.rs:188
              >>>               librustc_resolve-fac19ceb16326411.rlib(rustc_resolve-fac19ceb16326411.5327cotcw21h0vj4.rcgu.o):(core::ptr::drop_in_place::<core::result::Result<alloc::string::String, rustc_span::SpanSnippetError>>)
              >>> referenced 2 more times
              collect2.exe: error: ld returned 1 exit status
    
  3. petrochenkov commented on Dec 24, 2021

    @petrochenkov
    Contributor
  4. petrochenkov commented on Dec 24, 2021

    @petrochenkov
    Contributor

    Again:

      = note: ld.lld: error: undefined symbol: anon.26f7d47336e30322871c53dc21221119.123.llvm.9120153389878088914
              >>> referenced by compiler\rustc_codegen_llvm\src/declare.rs:123
              >>>               librustc_codegen_llvm-d0298bfe4a8d31a6.rlib(rustc_codegen_llvm-d0298bfe4a8d31a6.4tgytcm0fnpf9ska.rcgu.o):(rustc_codegen_ssa::base::maybe_create_entry_wrapper::<rustc_codegen_llvm::builder::Builder>)
              >>> referenced by compiler\rustc_codegen_llvm\src/declare.rs:76
              >>>               librustc_codegen_llvm-d0298bfe4a8d31a6.rlib(rustc_codegen_llvm-d0298bfe4a8d31a6.4tgytcm0fnpf9ska.rcgu.o):(rustc_codegen_ssa::base::maybe_create_entry_wrapper::<rustc_codegen_llvm::builder::Builder>)
    
              ld.lld: error: undefined symbol: <core::iter::adapters::map::Map<core::ops::range::Range<usize>, <rustc_metadata::rmeta::Lazy<[rustc_ast::ast::Attribute], usize>>::decode<(rustc_metadata::creader::CrateMetadataRef, &rustc_session::session::Session)>::{closure#0}> as core::iter::traits::iterator::Iterator>::try_fold::<(), core::iter::traits::iterator::Iterator::find::check<rustc_ast::ast::Attribute, <rustc_resolve::Resolver>::legacy_const_generic_args::{closure#0}::{closure#0}>::{closure#0}, core::ops::control_flow::ControlFlow<rustc_ast::ast::Attribute>>
              >>> referenced by C:\msys64\home\we\rust\library\core\src\iter\traits/iterator.rs:2463
              >>>               librustc_resolve-fac19ceb16326411.rlib(rustc_resolve-fac19ceb16326411.38k7y9bat2xg6222.rcgu.o):(<rustc_resolve::Resolver>::legacy_const_generic_args::{closure#0})
    
              ld.lld: error: undefined symbol: core::ptr::drop_in_place::<alloc::boxed::Box<rustc_ast::ast::Expr>> (.llvm.12350409468421822947)
              >>> referenced by C:\msys64\home\we\rust\library\core\src\ptr/mod.rs:0
              >>>               librustc_codegen_ssa-d1f61af6eec07775.rlib(rustc_codegen_ssa-d1f61af6eec07775.tftlaxklz1dark3.rcgu.o):(core::ptr::drop_in_place::<rustc_ast::ast::ExprKind>)
              collect2.exe: error: ld returned 1 exit status
    
    
    error: could not compile `rustc_driver` due to previous error
    
  5. RalfJung commented on Feb 6, 2023

    @RalfJung
    Member

    This is particularly likely to happen when the build process is interrupted, e.g. via Ctrl-C

  6. changed the title [-]Incremental occasionally causes link failures[/-] [+]Incremental occasionally causes link failures (in particular when build process is interrupted)[/+] on Feb 6, 2023
  7. RalfJung commented on Nov 28, 2023

    @RalfJung
    Member

    I'm running into the Ctrl-C issue fairly regularly. It's quite frustrating when a simple ./x.py fmt is blocked on a long-running build job but one can't cancel the build job since that poisons the cache in really hard to fix ways... and the chances of getting a poisoned cache when doing Ctrl-C while rustc is being built are very high.

    Cc @rust-lang/wg-incr-comp is there anything that can be done to make rustc be "Ctrl-C safe", or least not as blatantly "Ctrl-C unsafe" as it is today?

  8. michaelwoerister commented on Nov 28, 2023

    @michaelwoerister
    Member

    We could start to collect some data on what the root cause might be:

    • Does the interruption have to happen while the linker is running for this to occur?
    • Does this only happen when optimizations & ThinLTO are enabled?
  9. RalfJung commented on Nov 28, 2023

    @RalfJung
    Member

    Does the interruption have to happen while the linker is running for this to occur?

    When does the linker run?

    I have this occur regularly when I interrupt while half a dozen rustc_ crates are still being built. I think the linker only runs once at the end for the main rustc binary? If that is the case, then the answer to this question is "no".

  10. michaelwoerister commented on Dec 4, 2023

    @michaelwoerister
    Member

    Yes, that sounds right.

    Incr. comp. protects itself against cache corruption by writing everything to a temporary session directory and only when things have reached a valid state, it will "commit" that directory, so it will be used by subsequent compilation sessions. One cause for the problem might be that rustc declares the state to be valid too early, e.g. while LLVM or rustc itself are still in the process of writing files to disk. Or that the interruption is not recognized as a failure and a half-written object file or LLVM bitcode file is cached.

    I'm wondering if we can narrow down where exactly the interruption needs to happen for this to occur.

  11. saethlin commented on Sep 21, 2024

    @saethlin
    Member

    Are people still running into this? I'm trying to reproduce it and no luck yet.

  12. Steveplays28 commented on Nov 9, 2024

    @Steveplays28

    I'm running into this issue consistently on rustc 1.84.0-nightly (b91a3a056 2024-11-07), I can reproduce it using cargo watch -x 'run'.
    My project is a Bevy v0.14 project with the following .cargo/config.toml:

    [target.x86_64-unknown-linux-gnu]
    linker = "clang"
    rustflags = [
    	"-Clink-arg=-fuse-ld=/usr/bin/mold",
    	"-Zshare-generics=y",
    	"-Zthreads=0",
    ]
    
    [target.x86_64-apple-darwin]
    rustflags = ["-Zshare-generics=y", "-Zthreads=0"]
    
    [target.aarch64-apple-darwin]
    rustflags = ["-Zshare-generics=y", "-Zthreads=0"]
    
    [target.x86_64-pc-windows-msvc]
    linker = "rust-lld.exe"
    
    [alias]
    ci = "run --package ci --"

    The note below the error:

    note: rust-lld: error: undefined symbol: anon.943fccffe3bb9e72564e62487959bf2b.4.llvm.861820981140804743␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc\src\vec\spec_from_iter_nested.rs:62␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.3k4lyzcfsw3ol3dbx5o7bixv7.rcgu.o):(_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter_nested..SpecFromIterNested$LT$T$C$I$GT$$GT$::from_iter::hf6d67dfa0f06f7b1)␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc\src\vec\mod.rs:3551␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.3k4lyzcfsw3ol3dbx5o7bixv7.rcgu.o):(alloc::vec::Vec$LT$T$C$A$GT$::extend_trusted::h0fa532119f7f92bd)␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc\src\vec\spec_extend.rs:29␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.3k4lyzcfsw3ol3dbx5o7bixv7.rcgu.o):(_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$alloc..vec..spec_extend..SpecExtend$LT$T$C$I$GT$$GT$::spec_extend::hf85c8b52d6efdc12)␍
              ␍
              rust-lld: error: undefined symbol: anon.19abbfa39b4f89eafddd7ac73b765301.9.llvm.1621929927735906967␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc\src\sync.rs:1886␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.8i9visw8wjnrz5mhhla7i8vot.rcgu.o):(alloc::sync::Arc$LT$T$C$A$GT$::drop_slow::h263f3e75f4486f02)␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc\src\sync.rs:1886␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.8i9visw8wjnrz5mhhla7i8vot.rcgu.o):(alloc::sync::Arc$LT$T$C$A$GT$::drop_slow::h2b34f191adfa394e)␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc\src\sync.rs:1886␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.8i9visw8wjnrz5mhhla7i8vot.rcgu.o):(alloc::sync::Arc$LT$T$C$A$GT$::drop_slow::h44e7b2d28f76cb18)␍
              >>> referenced 17 more times␍
              ␍
              rust-lld: error: undefined symbol: anon.19abbfa39b4f89eafddd7ac73b765301.27.llvm.1621929927735906967␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc\src\sync.rs:1885␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.8i9visw8wjnrz5mhhla7i8vot.rcgu.o):(alloc::sync::Arc$LT$T$C$A$GT$::drop_slow::h9cefb366b6b1cdc1)␍
              ␍
              rust-lld: error: undefined symbol: core::ptr::drop_in_place$LT$alloc..boxed..Box$LT$dyn$u20$bevy_ecs..schedule..executor..SystemExecutor$GT$$GT$::h4e8e775c12e8fdf3 (.llvm.1621929927735906967)␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:521␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.5nr10ruw2io88th7gqjo7ppys.rcgu.o):(core::ptr::drop_in_place$LT$$LP$bevy_ecs..intern..Interned$LT$dyn$u20$bevy_ecs..schedule..set..ScheduleLabel$GT$$C$bevy_ecs..schedule..schedule..Schedule$RP$$GT$::h03195623338b0eda)␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\ptr\mod.rs:521␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.5nr10ruw2io88th7gqjo7ppys.rcgu.o):(?dtor$4@?0?_ZN4core3ptr150drop_in_place$LT$$LP$bevy_ecs..intern..Interned$LT$dyn$u20$bevy_ecs..schedule..set..ScheduleLabel$GT$$C$bevy_ecs..schedule..schedule..Schedule$RP$$GT$17h03195623338b0edaE@4HA)␍
              ␍
              rust-lld: error: undefined symbol: core::ptr::drop_in_place$LT$crossbeam_channel..waker..Waker$GT$::h52f219e6a748c332 (.llvm.1621929927735906967)␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\crossbeam-channel-0.5.13\src\counter.rs:72␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.5t01dp0jcdgiwsh1gv9feo4gn.rcgu.o):(crossbeam_channel::counter::Sender$LT$C$GT$::release::h023bbb3c29a75da8)␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\crossbeam-channel-0.5.13\src\counter.rs:72␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.5t01dp0jcdgiwsh1gv9feo4gn.rcgu.o):(crossbeam_channel::counter::Sender$LT$C$GT$::release::h023bbb3c29a75da8)␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\crossbeam-channel-0.5.13\src\counter.rs:72␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.5t01dp0jcdgiwsh1gv9feo4gn.rcgu.o):(?dtor$8@?0?_ZN17crossbeam_channel7counter15Sender$LT$C$GT$7release17h023bbb3c29a75da8E@4HA)␍
              >>> referenced 32 more times␍
              ␍
              rust-lld: error: undefined symbol: anon.19abbfa39b4f89eafddd7ac73b765301.30.llvm.1621929927735906967␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\crossbeam-channel-0.5.13\src\counter.rs:72␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.5t01dp0jcdgiwsh1gv9feo4gn.rcgu.o):(crossbeam_channel::counter::Sender$LT$C$GT$::release::h5dcff8e198f9ff35)␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\crossbeam-channel-0.5.13\src\counter.rs:72␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.5t01dp0jcdgiwsh1gv9feo4gn.rcgu.o):(crossbeam_channel::counter::Sender$LT$C$GT$::release::h97dcde64118519b6)␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\crossbeam-channel-0.5.13\src\counter.rs:72␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.5t01dp0jcdgiwsh1gv9feo4gn.rcgu.o):(crossbeam_channel::counter::Sender$LT$C$GT$::release::h9b726762ec6a8f4a)␍
              >>> referenced 4 more times␍
              ␍
              rust-lld: error: undefined symbol: anon.19abbfa39b4f89eafddd7ac73b765301.31.llvm.1621929927735906967␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\crossbeam-channel-0.5.13\src\counter.rs:72␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.5t01dp0jcdgiwsh1gv9feo4gn.rcgu.o):(crossbeam_channel::counter::Sender$LT$C$GT$::release::h5dcff8e198f9ff35)␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\crossbeam-channel-0.5.13\src\counter.rs:72␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.5t01dp0jcdgiwsh1gv9feo4gn.rcgu.o):(crossbeam_channel::counter::Sender$LT$C$GT$::release::h97dcde64118519b6)␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\crossbeam-channel-0.5.13\src\counter.rs:72␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.5t01dp0jcdgiwsh1gv9feo4gn.rcgu.o):(crossbeam_channel::counter::Sender$LT$C$GT$::release::h9b726762ec6a8f4a)␍
              >>> referenced 4 more times␍
              ␍
              rust-lld: error: undefined symbol: core::ptr::drop_in_place$LT$crossbeam_channel..waker..SyncWaker$GT$::h49fb35caeb9aa26f (.llvm.1621929927735906967)␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\crossbeam-channel-0.5.13\src\counter.rs:72␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.5t01dp0jcdgiwsh1gv9feo4gn.rcgu.o):(?dtor$15@?0?_ZN17crossbeam_channel7counter15Sender$LT$C$GT$7release17h5dcff8e198f9ff35E@4HA)␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\crossbeam-channel-0.5.13\src\counter.rs:72␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.5t01dp0jcdgiwsh1gv9feo4gn.rcgu.o):(?dtor$15@?0?_ZN17crossbeam_channel7counter15Sender$LT$C$GT$7release17h97dcde64118519b6E@4HA)␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\crossbeam-channel-0.5.13\src\counter.rs:72␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.5t01dp0jcdgiwsh1gv9feo4gn.rcgu.o):(?dtor$15@?0?_ZN17crossbeam_channel7counter15Sender$LT$C$GT$7release17h9b726762ec6a8f4aE@4HA)␍
              >>> referenced 4 more times␍
              ␍
              rust-lld: error: undefined symbol: anon.c8dcd6e2a94e9ad72caa5b9f5bdbbd16.73.llvm.2061661368713964738␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\bevy_render-0.14.2\src\render_resource\bind_group.rs:311␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.1wheyolieg3oayrdy9rt46d7s.rcgu.o):(bevy_render::render_resource::bind_group::AsBindGroup::as_bind_group::hfeb88b04875f1465)␍
              ␍
              rust-lld: error: undefined symbol: core::ptr::drop_in_place$LT$alloc..boxed..Box$LT$dyn$u20$core..any..Any$u2b$core..marker..Sync$u2b$core..marker..Send$GT$$GT$::h57909d9758e272e9 (.llvm.1621929927735906967)␍
              >>> referenced by D:\Repos\voxel_project\src\renderers\ray_tracer\node.rs:107␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.0sw5y1qzgxe19x7jvzcplqq05.rcgu.o):(_$LT$voxel_project..renderers..ray_tracer..node..RayTracerNode$u20$as$u20$bevy_render..render_graph..node..Node$GT$::run::h5a5d343d2e90115e)␍
              >>> referenced by D:\Repos\voxel_project\src\renderers\ray_tracer\node.rs:107␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.0sw5y1qzgxe19x7jvzcplqq05.rcgu.o):(?dtor$120@?0?_ZN115_$LT$voxel_project..renderers..ray_tracer..node..RayTracerNode$u20$as$u20$bevy_render..render_graph..node..Node$GT$3run17h5a5d343d2e90115eE@4HA)␍
              ␍
              rust-lld: error: undefined symbol: core::ptr::drop_in_place$LT$async_executor..Executor..spawn_inner$LT$$LP$$RP$$C$bevy_asset..server..AssetServer..load_with_meta_transform$LT$bevy_render..render_resource..shader..Shader$C$$LP$$RP$$C$$RF$str$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$::h61e343aef7e4dd31 (.llvm.1621929927735906967)␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\async-task-4.7.1\src\raw.rs:447␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.c271bs07aj7b1oyvonedja8h8.rcgu.o):(async_task::raw::RawTask$LT$F$C$T$C$S$C$M$GT$::drop_future::h1b8be430d6a984c7)␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\async-task-4.7.1\src\raw.rs:498␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.c271bs07aj7b1oyvonedja8h8.rcgu.o):($ehgcr_10_36)␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\async-task-4.7.1\src\raw.rs:628␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.c271bs07aj7b1oyvonedja8h8.rcgu.o):($ehgcr_10_36)␍
              >>> referenced 1 more times␍
              ␍
              rust-lld: error: undefined symbol: _$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$::drop::h2324b20dae25d31b (.llvm.1621929927735906967)␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\async-task-4.7.1\src\raw.rs:447␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.c271bs07aj7b1oyvonedja8h8.rcgu.o):(?dtor$5@?0?_ZN10async_task3raw28RawTask$LT$F$C$T$C$S$C$M$GT$11drop_future17h1b8be430d6a984c7E@4HA)␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\async-task-4.7.1\src\raw.rs:498␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.c271bs07aj7b1oyvonedja8h8.rcgu.o):(?dtor$24@?0?_ZN10async_task3raw28RawTask$LT$F$C$T$C$S$C$M$GT$3run17h98fabd5ac38b2f3dE@4HA)␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.cargo\registry\src\index.crates.io-6f17d22bba15001f\async-task-4.7.1\src\raw.rs:566␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.c271bs07aj7b1oyvonedja8h8.rcgu.o):(?dtor$48@?0?_ZN10async_task3raw28RawTask$LT$F$C$T$C$S$C$M$GT$3run17h98fabd5ac38b2f3dE@4HA)␍
              >>> referenced 1 more times␍
              ␍
              rust-lld: error: undefined symbol: anon.19abbfa39b4f89eafddd7ac73b765301.4.llvm.1621929927735906967␍
              >>> referenced by C:\ProgramData\scoop\persist\rustup\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\slice\sort\shared\smallsort.rs:576␍
              >>>               libvoxel_project-6ff1bb4d769cfe22.rlib(voxel_project-6ff1bb4d769cfe22.eh897xgfliomu6k2zhxuuq3m4.rcgu.o):(core::slice::sort::shared::smallsort::insert_tail::h8d3362240683c465)␍
    
  13. jangler commented on Dec 22, 2024

    @jangler

    I have this issue regularly using rustc 1.82.0. I used to think I had to do a cargo clean when I encountered it, but now it seems like I can just cargo run again and it works? For me it's usually at random rather than due to an interrupted build.

    Edit: encountered again after an interrupt; had to cargo clean.

  14. ActuallyHappening commented on Jan 23, 2025

    @ActuallyHappening

    Getting very similar errors on nightly cargo 1.86.0-nightly (045bf21b3 2025-01-17)

  15. saethlin commented on Jan 23, 2025

    @saethlin
    Member

    It's well-established now that this problem is still ongoing. What would help is someone providing a way to reproduce these problems on-demand, even if involves waiting a few minutes for a script to run compiling a big project in a loop and randomly interrupting it. Anything that can reproduce this cascade of linker errors on-demand within like an hour would be a great step forward.

  16. johanhelsing commented on Sep 9, 2025

    @johanhelsing

    This usually happens within 10-20 minutes for me if I develop Bevy projects with "cargo watch -cx run". So if someone else wants to try to reproduce, maybe:

    cargo install cargo-watch
    git checkout https://github.com/bevyengine/bevy
    cd bevy
    cargo watch -cx "run --example hello_world"
    <-- make changes, scripted or manual for a while -->
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-contributor-roadblockArea: Makes things more difficult for new or seasoned contributors to RustA-incr-compArea: Incremental compilationA-linkageArea: linking into static, shared libraries and binariesC-bugCategory: This is a bug.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions