"Michael S. Tsirkin" <m...@redhat.com> writes:

> On Thu, Dec 22, 2022 at 11:48:25AM +0100, Markus Armbruster wrote:
>> Bernhard Beschow <shen...@gmail.com> writes:
>> 
>> > Am 22. Dezember 2022 10:03:23 UTC schrieb Markus Armbruster 
>> > <arm...@redhat.com>:
>> >>Back in 2016, we discussed[1] rules for headers, and these were
>> >>generally liked:
>> >>
>> >>1. Have a carefully curated header that's included everywhere first.  We
>> >>   got that already thanks to Peter: osdep.h.
>> >>
>> >>2. Headers should normally include everything they need beyond osdep.h.
>> >>   If exceptions are needed for some reason, they must be documented in
>> >>   the header.  If all that's needed from a header is typedefs, put
>> >>   those into qemu/typedefs.h instead of including the header.
>> >>
>> >>3. Cyclic inclusion is forbidden.
>> >
>> > Sounds like these -- useful and sane -- rules belong in QEMU's coding 
>> > style. What about putting them there for easy reference?
>> 
>> Makes sense.  I'll see what I can do.  Thanks!
>
> It would be even better if there was e.g. a make target
> pulling in each header and making sure it's self consistent and
> no circularity. We could run it e.g. in CI.

Yes, that would be nice, but the problem I've been unable to crack is
deciding whether a header is supposed to compile target-independently or
not.  In my manual testing, I use trial and error: if it fails to
compile target-independently, compile for all targets.  This is s-l-o-w.

The other problem, of course, is coding it up in Meson.  I haven't even
tried.


Reply via email to