[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
- [PATCH v2 3/7] include/hw/cxl: Include hw/cxl/*.h where needed, (continued)
- [PATCH v2 3/7] include/hw/cxl: Include hw/cxl/*.h where needed, Markus Armbruster, 2022/12/22
- [PATCH v2 5/7] include/hw/pci: Split pci_device.h off pci.h, Markus Armbruster, 2022/12/22
- [PATCH v2 4/7] include/hw/pci: Clean up a few things checkpatch.pl would flag, Markus Armbruster, 2022/12/22
- [PATCH v2 1/7] include/hw/pci: Break inclusion loop pci_bridge.h and cxl.h, Markus Armbruster, 2022/12/22
- [PATCH v2 2/7] include/hw/cxl: Move typedef PXBDev to cxl.h, and put it to use, Markus Armbruster, 2022/12/22
- [PATCH v2 7/7] include/hw/cxl: Break inclusion loop cxl_pci.h and cxl_cdat_h, Markus Armbruster, 2022/12/22
- Re: [PATCH v2 0/7] include/hw/pci include/hw/cxl: Clean up includes, Bernhard Beschow, 2022/12/22