On Tue, Aug 23, 2022 at 15:42:38 +0100, Daniel P. Berrangé wrote:
On Tue, Aug 23, 2022 at 04:15:54PM +0200, Peter Krempa wrote:
> The most recent environment e.g. present in our Fedora Rawhide builds
> fail to build the tree with clang with the following error:
>
> ../src/util/virhostcpu.c:1291:25: error: field 'header' with variable sized
type 'struct kvm_msrs' not at the end of a struct or class is a GNU extension
[-Werror,-Wgnu-variable-sized-type-not-at-end]
> struct kvm_msrs header;
> ^
>
> The problem seems to be that clang doesn't like the new way the
> 'entries' field in struct kvm_msrs is declared.
>
> To work around the issue we can simply allocate the variable dynamically
> and use the 'entries' member as it was intended to to access the
> members.
We explicitly only support GCC and CLang, and intentionally rely on
many GNU extensions to C. CLang is trying to be helpful to people
who need fully portable C code, but we don't care about that. So
why not just turn off the warning by adding
-Wno-gnu-variable-sized-style-not-at-end
better than making our code less understandable IMHO
Well I guess mostly because the new code is actually easier to
understand than the old one :-)
Jirka