Description
bindgen
-- the tool we use to generate Rust bindings to the C side of the kernel -- relies on libclang
to parse C. Ideally:
-
bindgen
would support a GCC backend (requested at Support for a GCC-based backend rust-lang/rust-bindgen#1949), -
or the Clang driver would be perfectly compatible with GCC, including plugins. Unlikely, of course, but perhaps a big subset of configs may be possible to guarantee to be kept compatible nevertheless.
This is the reason why GCC builds are very experimental and some configurations may not work (e.g. GCC_PLUGIN_RANDSTRUCT
). However, we keep GCC builds working (for some example configs) in the CI to avoid diverging/regressing further, so that we are better prepared for the future when a solution might become available.
This issue is meant to keep track of any developments, news, etc. related to GCC support.