Messages in this thread | | | Date | Wed, 16 Aug 2023 20:45:12 -0700 | From | Kees Cook <> | Subject | Re: [PATCH] rust: fix bindgen build error with fstrict-flex-arrays |
| |
On Tue, Aug 15, 2023 at 02:06:36PM +0200, Miguel Ojeda wrote: > On Tue, Aug 15, 2023 at 8:54 AM Andrea Righi <andrea.righi@canonical.com> wrote: > > > > Commit df8fc4e934c1 ("kbuild: Enable -fstrict-flex-arrays=3") enabled > > '-fstrict-flex-arrays=3' globally, but bindgen does not recognized this > > It may be more accurate to say libclang here (bindgen forwards the options). > > Also, df8fc4e934c1 did it so only conditionally (if the C compiler > supports it). This explains what you are seeing: if I am right, you > are compiling with a modern enough GCC, which enables the option, but > with an old enough Clang. > > > compiler option, triggering the following build error: > > > > error: unknown argument: '-fstrict-flex-arrays=3', err: true > > This should only be true with libclang < 16, since Clang 16 > implemented the option, right? > > In fact, Clang 15 seems to work too -- it seems the compiler does not > error if the option is not within [0,3] (unlike GCC). > > Kees: this should only affect `__builtin_object_size` and not `sizeof`, right?
That's correct. It would affect __builtin_object_size, __builtin_dynamic_object_size, and -fsantize=bounds instrumentation.
-- Kees Cook
| |