this post was submitted on 08 Apr 2025
15 points (100.0% liked)
Rust
7520 readers
1 users here now
Welcome to the Rust community! This is a place to discuss about the Rust programming language.
Wormhole
Credits
- The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
@antoyo@programming.dev
I gave this a try for the first time. Non-LTO build worked. But LTO build failed:
I don't have the time to build gcc and test. But presumably,
liblto_plugin.soshould be included withlibgccjit.so?Oh, and
clean alldoesn't work reliably. Since trying to build inreleasemode after building indebugmode thencleaning is weirdly broken.And It's not clear from the README how to build in
releasemode without runningtest --release. And the fact that all combinations of--release-sysrootand--release --sysrootand--release --release-sysrootexist doesn't help 😉Thanks for reporting this! I cannot reproduce with the following:
(it shows:
Successfully ran clean all)Could you please provide the commands you ran to get this? (It might also be easier for me to track this if you open an issue on GitHub since I don't come here often.)
Also, thanks for the suggestion for better documentation: I created an issue for this.
Yeah, apologies for not communicating the issue clearly.
And then trying to use the "release" build fails:
I will make sure to report issues directly in the future, although from account(s) not connected to this username.
The issue here is that you didn't provide
--build-sysrootto./y.sh test --release, so it cannot find thestdcrate.But running
does work. That's what gave me the impression that
clean alldoesn't actually clean everything!It does actually clean everything. You need to call
./y.sh prepareagain if you ranclean all; otherwise, it will fail to find some stuff likerustc-std-workspace-alloc.I opened an issue to improve the documentation in this regards. Thanks for testing all this: this will help me improve the documentation.
Aha! Good to know. And yes, improved documents would be of great help.
Thanks again for working on this.
The setup to be able to use LTO is non-trivial for now (I hope to be able to fix this soon so that
liblto_plugin.sois not required for the case where a linker plugin wasn't not asked by the user, which is the default).You need to have in your path the
gccbuilt with the same version aslibgccjit, which containslibexec/gcc/x86_64-pc-linux-gnu/15.0.0/liblto_plugin.so.