On Thu, Mar 30, 2023 at 09:23:45AM +0100, Conor Dooley wrote: > On Tue, Mar 07, 2023 at 12:07:29PM +0100, Miguel Ojeda wrote: > > By the way, like for the Arm patch set, if you end up doing a v2, > > could you please add the `BINDGEN_TARGET_*` in `rust/Makefile` (GCC > > builds are really experimental, but since they are there anyway, it is > > best to be consistent and add it). Hmm, so I came across this commit while looking at that: https://github.com/Rust-for-Linux/linux/commit/cfc17fed52b9585e2f19e2381bfb7094561b8027a (rust: bindgen: ignore RISC-V extensions for GCC builds) I don't want to add even more workarounds for this sort of thing, especially as in this case it is outside of arch/riscv. The extension stuff when mixing compilers is such a massive pain & given this one requires Rust it's even less likely to be tested when someone comes along and adds some additional extension support that appears in -march :( I'd rather do this in the RISC-V Makefile so that it does not get forgotten. If my understanding of bindgen is correct, we don't actually need to be honest to it about what extensions the rest of the kernel is compiled with, only make sure that it is not called with arguments it does not understand? | bindgen_c_flags_patsubst1 = $(patsubst -march=rv%_zicbom,-march=rv%,$(bindgen_c_flags_patsubst2)) This one is no longer needed as of 9a5c09dd9701 ("Merge patch series "Remove toolchain dependencies for Zicbom""). | bindgen_c_flags_patsubst = $(patsubst -march=rv%_zicsr_zifencei,-march=rv%,$(bindgen_c_flags_patsubst1)) Oh and clang-17 is going to support both of these, and Nathan and I already spent a bunch of time fixing the fallout from that! It still functions correctly without having them passed, but I have heard requiring these may become the default at some point too. What's done here may end up needing to be dynamic, but that bridge can be crossed if/when we come to it. What version of GCC do I need to replicate this? I can build tip-of-tree gcc if needs be. Cheers, Conor.
Attachment:
signature.asc
Description: PGP signature