[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: |
Michael S. Tsirkin |
Subject: |
Re: [PATCH v2 0/7] include/hw/pci include/hw/cxl: Clean up includes |
Date: |
Sat, 24 Dec 2022 06:43:41 -0500 |
On Fri, Dec 23, 2022 at 06:27:07AM +0100, Markus Armbruster wrote:
> "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.
Yes and it's annoying for developers too.
Do we want to come up with a scheme for target-dependent files?
Name them target-X or put in a target/ directory?
We could also write checkpatch rules to disallow
including target specific headers in target independent files then.
> The other problem, of course, is coding it up in Meson. I haven't even
> tried.
- [PATCH v2 5/7] include/hw/pci: Split pci_device.h off pci.h, (continued)
- [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