On 8/7/19 2:25 PM, Philippe Mathieu-Daudé wrote: > On 8/6/19 5:14 PM, Markus Armbruster wrote: >> In my "build everything" tree, changing migration/qemu-file-types.h >> triggers a recompile of some 2600 out of 6600 objects (not counting >> tests and objects that don't depend on qemu/osdep.h). >> >> The culprit is again hw/hw.h, which supposedly includes it for >> convenience. >> >> Include migration/qemu-file-types.h only where it's needed. Touching >> it now recompiles less than 200 objects. >> >> Signed-off-by: Markus Armbruster <arm...@redhat.com> >> --- >> hw/acpi/piix4.c | 1 + >> hw/block/virtio-blk.c | 1 + >> hw/char/virtio-serial-bus.c | 1 + >> hw/display/virtio-gpu.c | 1 + >> hw/intc/apic_common.c | 1 + >> hw/nvram/eeprom93xx.c | 1 + >> hw/nvram/fw_cfg.c | 1 + >> hw/pci-host/piix.c | 1 + >> hw/pci/msix.c | 1 + >> hw/pci/pci.c | 1 + >> hw/pci/shpc.c | 1 + >> hw/ppc/spapr.c | 1 + >> hw/s390x/s390-skeys.c | 1 + >> hw/s390x/tod.c | 1 + >> hw/s390x/virtio-ccw.c | 1 + >> hw/scsi/mptsas.c | 1 + >> hw/scsi/scsi-bus.c | 1 + >> hw/scsi/scsi-disk.c | 1 + >> hw/scsi/scsi-generic.c | 1 + >> hw/scsi/virtio-scsi.c | 1 + >> hw/timer/i8254_common.c | 1 + >> hw/timer/twl92230.c | 1 + >> hw/usb/redirect.c | 1 + >> hw/virtio/vhost.c | 1 + >> hw/virtio/virtio-mmio.c | 1 + >> hw/virtio/virtio-pci.c | 1 + >> hw/virtio/virtio.c | 1 + >> include/hw/hw.h | 1 - >> include/migration/cpu.h | 1 + >> target/ppc/kvm.c | 1 + >> 30 files changed, 29 insertions(+), 1 deletion(-) > [...] >> diff --git a/include/hw/hw.h b/include/hw/hw.h >> index a4fb2390e8..b399627cbe 100644 >> --- a/include/hw/hw.h >> +++ b/include/hw/hw.h >> @@ -11,7 +11,6 @@ >> #include "exec/memory.h" >> #include "hw/irq.h" >> #include "migration/vmstate.h" >> -#include "migration/qemu-file-types.h" > > Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> > Tested-by: Philippe Mathieu-Daudé <phi...@redhat.com>
Oops another miss: hw/intc/s390_flic_kvm.c: In function 'kvm_flic_save': hw/intc/s390_flic_kvm.c:395:9: error: implicit declaration of function 'qemu_put_be64' [-Werror=implicit-function-declaration] qemu_put_be64(f, FLIC_FAILED); ^~~~~~~~~~~~~ >> void QEMU_NORETURN hw_error(const char *fmt, ...) GCC_FMT_ATTR(1, 2); >> >> diff --git a/include/migration/cpu.h b/include/migration/cpu.h >> index 8424f1631a..21c4fc9eab 100644 >> --- a/include/migration/cpu.h >> +++ b/include/migration/cpu.h >> @@ -3,6 +3,7 @@ >> #define MIGRATION_CPU_H >> >> #include "exec/cpu-defs.h" >> +#include "migration/qemu-file-types.h" >> >> #if TARGET_LONG_BITS == 64 >> #define qemu_put_betl qemu_put_be64