How to avoid bindgen being out of sync with cc? · Issue #2962 · rust-lang/rust-bindgen (original) (raw)
My understanding is, that it is very common to wrap a C library in a Rust *-sys
crate by using bindgen
to automatically generate Rust bindings and cc
to compile the C code.
As far as I understand it bindgen
uses libclang
to parse the C headers and cc
uses whatever compiler the user provides.
This can lead to problems, because both toolchains don't need to agree on everything. While cross compiling for thumbv6m-none-eabi
on Windows, bindgen
generated u32
for enums and cc
used u8
when possible (-fshort-enums
).
This is quite unfortunate and hard to catch. Is there a common workaround for this?
PS: If there is a better place for this issue please tell me.