Long story short, today's upgrade included dev-lang/rust replacements that involved dev-lang/rust:stable blocker. Emerge initially included "uninstall" in its depgraph but after a failure, --keep-going=y removed it and proceeded without the uninstall -- effectively installing new dev-lang/rust versions without unmerging the old one, and causing quite a mess. Will paste the (huge) output in the next comment. Unfortunately, this is one-off case, so I won't be able to reproduce it or test any fixes.
Created attachment 908305 [details] console output
Created attachment 908390 [details] cdindgen.build.log Hello. I've stumbled upon this bug today myself. Build for cbindgen and a few other fails after a previous failed attempt at merging multiple rust version. In this attempt, rust has merged successfully, but due to previous install being kept, it now fails to resolve deps. c.f. = note: candidate #1: /usr/lib/rust/1.82.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-384f118d1e67506a.so = note: candidate #2: /usr/lib/rust/1.82.0/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-f96040c24237408e.so
*** Bug 943196 has been marked as a duplicate of this bug. ***
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=34b74faa06a90bf9d4f62ecfca746b380d60517a commit 34b74faa06a90bf9d4f62ecfca746b380d60517a Author: Matt Jolly <kangie@gentoo.org> AuthorDate: 2024-11-12 03:07:51 +0000 Commit: Matt Jolly <kangie@gentoo.org> CommitDate: 2024-11-12 09:07:42 +0000 rust.eclass: revert simplified dependency simplification The simplified dependency specification for cases where no RUST_MAX_SLOT is set is the desired end state, however the edge case where portage drops blockers with `--keep-going` has an unfortunate interaction where both packages are installed simultaneously, e.g. dev-lang/rust-1.82.0:stable and dev-lang/rust-1.82.0:1.82.0, and there's no easy way for end users to resolve that as the legacy (though masked) ebuilds will meet the simple Rust dependency. Both packages install rlibs with different hashes in them to the same path (as shown below) resulting in failures when a package attempts to link against an rlib and finds two. 1.82.0: .../x86_64-unknown-linux-gnu/lib/libunwind-fc4fe814489209c6.rlib 1.82.0-r100: .../x86_64-unknown-linux-gnu/lib/libunwind-ab65e6747cbe4a5a.rlib Bug: https://bugs.gentoo.org/943143 Bug: https://bugs.gentoo.org/943206 Signed-off-by: Matt Jolly <kangie@gentoo.org> eclass/rust.eclass | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-)