Created attachment 916419 [details] rust-1.84.0 build log 1.84.0 fails to build, 1.83.0-r1 builds fine. = note: /usr/bin/x86_64-pc-linux-gnu-ld.bfd: /var/tmp/portage/dev-lang/rust-1.84.0/temp/rustco5smjh/librustc_codegen_llvm-66164a4ba99020e3.rlib: error adding symbols: file format not recognized clang-19: error: linker command failed with exit code 1 (use -v to see invocation) (...) ------------- error: could not compile `rustc_driver` (lib) due to 1 previous error
Created attachment 916420 [details] emerge info
ok, seems to be an lto+bfd issue. According to e.g. https://github.com/rust-lang/rust/issues/54971 this happens quite frequently. Using lld as in the referenced bug fixed the issue.
same problem today, build success after remore USE="lto"
(In reply to Zhixu Liu from comment #3) > same problem today, build success after remore USE="lto" updated: use profile default/linux/amd64/23.0/hardened CC=gcc CXX=g++ USE="lto" emerge -Ov1e =rust-1.84.1 success CC=clang CXX=clang++ USE="lto" emerge -Ov1e =rust-1.84.1 failed IIRC, I'm always use the later for emerge, never failed, seemes the failed start from 1.84.0
bfd can't work with Clang LTO (at least without using hacky plugin or maybe not at all). I'm surprised it ever worked.
(In reply to Sam James from comment #5) > bfd can't work with Clang LTO (at least without using hacky plugin or maybe > not at all). I'm surprised it ever worked. hmm, it works for me until 1.84, :( so we should handle this in ebuild too, i think?
I think the configuration is invalid... it'll definitely fail on other packages too.