qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 0/7] include/hw/pci include/hw/cxl: Clean up includes


From: Bernhard Beschow
Subject: Re: [PATCH v2 0/7] include/hw/pci include/hw/cxl: Clean up includes
Date: Fri, 23 Dec 2022 10:33:17 +0000


Am 23. Dezember 2022 05:27:07 UTC schrieb Markus Armbruster <armbru@redhat.com>:
>"Michael S. Tsirkin" <mst@redhat.com> writes:
>
>> On Thu, Dec 22, 2022 at 11:48:25AM +0100, Markus Armbruster wrote:
>>> Bernhard Beschow <shentey@gmail.com> writes:
>>> 
>>> > Am 22. Dezember 2022 10:03:23 UTC schrieb Markus Armbruster 
>>> > <armbru@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.

There is https://include-what-you-use.org which is a Clang-based tool. Maybe 
that works?

Best regards,
Bernhard



reply via email to

[Prev in Thread] Current Thread [Next in Thread]