On Thu, Sep 26, 2024 at 06:11:17PM +0200, Miguel Ojeda wrote:
On Thu, Sep 26, 2024 at 5:56 PM Conor Dooley conor@kernel.org wrote:
Mixed builds are allowed on the c side, since we can figure out what the
I am not sure what you mean by allowed on the C side. For out-of-tree modules you mean?
No. Things like clang + ld & gas. I don't care about out of tree modules ;)
versions of each tool are. If there's a way to detect the version of libclang in use by the rust side, then I would be okay with mixed gcc + rustc builds.
If you mean the libclang used by bindgen, yes, we have such a check (warning) in scripts/rust_is_available.sh. We can also have it as a Kconfig symbol if needed.
Okay. Short term then is deny gcc + rust, longer term is allow it with the same caveats as the aforementioned mixed stuff.
Regarding rustc's LLVM version, I wanted to have a similar check in scripts/rust_is_available.sh (also a warning), but it would have been quite noisy, and if LTO is not enabled it should generally be OK. So we are adding instead a Kconfig symbol for that, which will be used for a couple things. Gary has a WIP patch for this one.
Cool, I'll check that out.
Yes, I would rather this was not applied at all. My plan was to send a patch making HAVE_RUST depend on CC_IS_CLANG, but just ain't got around to it yet, partly cos I was kinda hoping to mention this to you guys at LPC last week, but I never got the chance to talk to any rust people (or go to any rust talks either!).
To be clear, that `depends on` would need to be only for RISC-V, i.e. other architectures are "OK" with those. It is really, really experimental, as we have always warned, but some people is using it successfully, apparently.
Yes, just for riscv. The logic in our Kconfig menu is currently something like select HAVE_RUST if RUSTC_SUPPORTS_RISCV so that would just become select HAVE_RUST if RUSTC_SUPPORTS_RISCV && CC_IS_CLANG
Sure, I can add a comment there.
Thanks!
In sorta related news, is there a plan for config "options" that will allow us to detect gcc-rs or the gcc rust backend?
gccrs is way too early to even think about that. rustc_codegen_gcc, yeah, if needed, we can add a symbol for that when we start supporting the backend.
Cool, sounds good.