Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 948027 - dev-lang/rust-1.84.0 fails to build with lto+bfd
Summary: dev-lang/rust-1.84.0 fails to build with lto+bfd
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal normal
Assignee: Randy Barlow
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-01-13 09:07 UTC by Sven B.
Modified: 2025-02-10 03:48 UTC (History)
5 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
rust-1.84.0 build log (build.log.xz,485.29 KB, application/x-xz)
2025-01-13 09:07 UTC, Sven B.
Details
emerge info (einto.txt,7.67 KB, text/plain)
2025-01-13 09:07 UTC, Sven B.
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Sven B. 2025-01-13 09:07:03 UTC
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
Comment 1 Sven B. 2025-01-13 09:07:31 UTC
Created attachment 916420 [details]
emerge info
Comment 2 Sven B. 2025-01-16 22:05:47 UTC
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.
Comment 3 Zhixu Liu 2025-02-07 13:52:06 UTC
same problem today, build success after remore USE="lto"
Comment 4 Zhixu Liu 2025-02-09 16:43:40 UTC
(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
Comment 5 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-02-10 03:01:07 UTC
bfd can't work with Clang LTO (at least without using hacky plugin or maybe not at all). I'm surprised it ever worked.
Comment 6 Zhixu Liu 2025-02-10 03:31:42 UTC
(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?
Comment 7 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-02-10 03:48:24 UTC
I think the configuration is invalid... it'll definitely fail on other packages too.