Thomas Huth <th...@redhat.com> writes: > On 18/11/2020 15.30, Peter Maydell wrote: >> On Wed, 18 Nov 2020 at 14:24, Markus Armbruster <arm...@redhat.com> wrote: >>> >>> Philippe Mathieu-Daudé <phi...@redhat.com> writes: >>> >>>> On 11/18/20 10:03 AM, Thomas Huth wrote: >>>>> Both headers, sysbus.h and module.h, are not required to compile this >>>>> file. >>> >>> module.h is: it defines type_init(). >> >>>>> #include "qemu/timer.h" >>>>> #include "hw/watchdog/wdt_diag288.h" >>>>> #include "migration/vmstate.h" >>>>> #include "qemu/log.h" >>>>> -#include "qemu/module.h" >>>> >>>> Cc'ing Markus because of: >> >>>> Include qemu/module.h where needed, drop it from qemu-common.h >>> >>> If it still compiles and links, it must get it via some other header. >> >> Yes: wdt_diag288.c -> include/hw/watchdog/wdt_diag288.h -> >> include/qom/object.h -> include/qemu/module.h > > So what's now our expectation here? Should every file that uses type_init() > also include module.h ? That's IMHO not very intuitive... > Or are we fine that type_init() is provided by qom/object.h which needs to > be pulled in by every device sooner or later anyway?
I think it's okay to rely on indirect inclusion.