Message ID | 20190809064645.22656-10-armbru@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Tame a few "touch this, recompile the world" headers | expand |
On 8/9/19 8:46 AM, 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 <armbru@redhat.com> > --- [...] > diff --git a/hw/intc/s390_flic.c b/hw/intc/s390_flic.c > index d0be755c82..83c72ee18d 100644 > --- a/hw/intc/s390_flic.c > +++ b/hw/intc/s390_flic.c > @@ -22,6 +22,7 @@ > #include "hw/qdev.h" > #include "qapi/error.h" > #include "hw/s390x/s390-virtio-ccw.h" > +#include "migration/qemu-file-types.h" > > S390FLICStateClass *s390_get_flic_class(S390FLICState *fs) > { I am not sure this one requires it. Did you edit the incorrect file? I still get: $ make docker-run-test-build@debian-s390x-cross [...] 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); ^~~~~~~~~~~~~
Philippe Mathieu-Daudé <philmd@redhat.com> writes: > On 8/9/19 8:46 AM, 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 <armbru@redhat.com> >> --- > [...] >> diff --git a/hw/intc/s390_flic.c b/hw/intc/s390_flic.c >> index d0be755c82..83c72ee18d 100644 >> --- a/hw/intc/s390_flic.c >> +++ b/hw/intc/s390_flic.c >> @@ -22,6 +22,7 @@ >> #include "hw/qdev.h" >> #include "qapi/error.h" >> #include "hw/s390x/s390-virtio-ccw.h" >> +#include "migration/qemu-file-types.h" >> >> S390FLICStateClass *s390_get_flic_class(S390FLICState *fs) >> { > > I am not sure this one requires it. > Did you edit the incorrect file? I still get: > > $ make docker-run-test-build@debian-s390x-cross > [...] > 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); > ^~~~~~~~~~~~~ You're right. Will fix.
diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c index a59e58d937..0d8c821f37 100644 --- a/hw/acpi/piix4.c +++ b/hw/acpi/piix4.c @@ -40,6 +40,7 @@ #include "hw/acpi/memory_hotplug.h" #include "hw/acpi/acpi_dev_interface.h" #include "hw/xen/xen.h" +#include "migration/qemu-file-types.h" #include "qom/cpu.h" #include "trace.h" diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c index cbb3729158..1f40834d27 100644 --- a/hw/block/virtio-blk.c +++ b/hw/block/virtio-blk.c @@ -26,6 +26,7 @@ # include <scsi/sg.h> #endif #include "hw/virtio/virtio-bus.h" +#include "migration/qemu-file-types.h" #include "hw/virtio/virtio-access.h" /* Config size before the discard support (hide associated config fields) */ diff --git a/hw/char/virtio-serial-bus.c b/hw/char/virtio-serial-bus.c index f7a54f261b..b868e54d72 100644 --- a/hw/char/virtio-serial-bus.c +++ b/hw/char/virtio-serial-bus.c @@ -22,6 +22,7 @@ #include "qapi/error.h" #include "qemu/iov.h" #include "qemu/module.h" +#include "migration/qemu-file-types.h" #include "monitor/monitor.h" #include "qemu/error-report.h" #include "qemu/queue.h" diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c index 25d9e327fc..ed92071963 100644 --- a/hw/display/virtio-gpu.c +++ b/hw/display/virtio-gpu.c @@ -18,6 +18,7 @@ #include "trace.h" #include "sysemu/dma.h" #include "hw/virtio/virtio.h" +#include "migration/qemu-file-types.h" #include "hw/virtio/virtio-gpu.h" #include "hw/virtio/virtio-gpu-bswap.h" #include "hw/virtio/virtio-gpu-pixman.h" diff --git a/hw/intc/apic_common.c b/hw/intc/apic_common.c index e764a2bb03..7045761281 100644 --- a/hw/intc/apic_common.c +++ b/hw/intc/apic_common.c @@ -31,6 +31,7 @@ #include "sysemu/kvm.h" #include "hw/qdev.h" #include "hw/sysbus.h" +#include "migration/qemu-file-types.h" static int apic_irq_delivered; bool apic_report_tpr_access; diff --git a/hw/intc/s390_flic.c b/hw/intc/s390_flic.c index d0be755c82..83c72ee18d 100644 --- a/hw/intc/s390_flic.c +++ b/hw/intc/s390_flic.c @@ -22,6 +22,7 @@ #include "hw/qdev.h" #include "qapi/error.h" #include "hw/s390x/s390-virtio-ccw.h" +#include "migration/qemu-file-types.h" S390FLICStateClass *s390_get_flic_class(S390FLICState *fs) { diff --git a/hw/nvram/eeprom93xx.c b/hw/nvram/eeprom93xx.c index 2db3d7cce6..5fc23df1d4 100644 --- a/hw/nvram/eeprom93xx.c +++ b/hw/nvram/eeprom93xx.c @@ -38,6 +38,7 @@ #include "qemu/osdep.h" #include "hw/hw.h" #include "hw/nvram/eeprom93xx.h" +#include "migration/qemu-file-types.h" /* Debug EEPROM emulation. */ //~ #define DEBUG_EEPROM diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c index 3032f1c65f..8db0297d59 100644 --- a/hw/nvram/fw_cfg.c +++ b/hw/nvram/fw_cfg.c @@ -31,6 +31,7 @@ #include "hw/boards.h" #include "hw/nvram/fw_cfg.h" #include "hw/sysbus.h" +#include "migration/qemu-file-types.h" #include "trace.h" #include "qemu/error-report.h" #include "qemu/option.h" diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c index f3671d28b7..e5955457ab 100644 --- a/hw/pci-host/piix.c +++ b/hw/pci-host/piix.c @@ -32,6 +32,7 @@ #include "qapi/error.h" #include "qemu/range.h" #include "hw/xen/xen.h" +#include "migration/qemu-file-types.h" #include "hw/pci-host/pam.h" #include "sysemu/reset.h" #include "sysemu/sysemu.h" diff --git a/hw/pci/msix.c b/hw/pci/msix.c index d39dcf32e8..ebe804b473 100644 --- a/hw/pci/msix.c +++ b/hw/pci/msix.c @@ -20,6 +20,7 @@ #include "hw/pci/msix.h" #include "hw/pci/pci.h" #include "hw/xen/xen.h" +#include "migration/qemu-file-types.h" #include "qemu/range.h" #include "qapi/error.h" #include "trace.h" diff --git a/hw/pci/pci.c b/hw/pci/pci.c index 8076a80ab3..43a3cac138 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -29,6 +29,7 @@ #include "hw/pci/pci_bridge.h" #include "hw/pci/pci_bus.h" #include "hw/pci/pci_host.h" +#include "migration/qemu-file-types.h" #include "monitor/monitor.h" #include "net/net.h" #include "sysemu/sysemu.h" diff --git a/hw/pci/shpc.c b/hw/pci/shpc.c index 5a10c6e9a5..7f0aa28e44 100644 --- a/hw/pci/shpc.c +++ b/hw/pci/shpc.c @@ -4,6 +4,7 @@ #include "qemu/range.h" #include "qemu/error-report.h" #include "hw/pci/shpc.h" +#include "migration/qemu-file-types.h" #include "hw/pci/pci.h" #include "hw/pci/pci_bus.h" #include "hw/pci/msi.h" diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 5cade1a374..76e815ceee 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -42,6 +42,7 @@ #include "sysemu/hw_accel.h" #include "kvm_ppc.h" #include "migration/misc.h" +#include "migration/qemu-file-types.h" #include "migration/global_state.h" #include "migration/register.h" #include "mmu-hash64.h" diff --git a/hw/s390x/s390-skeys.c b/hw/s390x/s390-skeys.c index e5bd92c0c7..d4807f7777 100644 --- a/hw/s390x/s390-skeys.c +++ b/hw/s390x/s390-skeys.c @@ -18,6 +18,7 @@ #include "qapi/qmp/qdict.h" #include "qemu/error-report.h" #include "sysemu/kvm.h" +#include "migration/qemu-file-types.h" #include "migration/register.h" #define S390_SKEYS_BUFFER_SIZE (128 * KiB) /* Room for 128k storage keys */ diff --git a/hw/s390x/tod.c b/hw/s390x/tod.c index a9fca8eb0b..1bf0875afa 100644 --- a/hw/s390x/tod.c +++ b/hw/s390x/tod.c @@ -14,6 +14,7 @@ #include "qemu/error-report.h" #include "qemu/module.h" #include "sysemu/kvm.h" +#include "migration/qemu-file-types.h" #include "migration/register.h" void s390_init_tod(void) diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c index 43d3a1b029..fa537bfba3 100644 --- a/hw/s390x/virtio-ccw.c +++ b/hw/s390x/virtio-ccw.c @@ -17,6 +17,7 @@ #include "sysemu/kvm.h" #include "net/net.h" #include "hw/virtio/virtio.h" +#include "migration/qemu-file-types.h" #include "hw/virtio/virtio-net.h" #include "hw/sysbus.h" #include "qemu/bitops.h" diff --git a/hw/scsi/mptsas.c b/hw/scsi/mptsas.c index 3f94d5ab55..6d2c15a2bc 100644 --- a/hw/scsi/mptsas.c +++ b/hw/scsi/mptsas.c @@ -34,6 +34,7 @@ #include "trace.h" #include "qapi/error.h" #include "mptsas.h" +#include "migration/qemu-file-types.h" #include "mpi.h" #define NAA_LOCALLY_ASSIGNED_ID 0x3ULL diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c index fdc3a0e4e0..81fe7c3301 100644 --- a/hw/scsi/scsi-bus.c +++ b/hw/scsi/scsi-bus.c @@ -5,6 +5,7 @@ #include "qemu/module.h" #include "qemu/option.h" #include "hw/scsi/scsi.h" +#include "migration/qemu-file-types.h" #include "scsi/constants.h" #include "hw/qdev.h" #include "sysemu/block-backend.h" diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c index af3e622dc5..558fa11511 100644 --- a/hw/scsi/scsi-disk.c +++ b/hw/scsi/scsi-disk.c @@ -25,6 +25,7 @@ #include "qemu/error-report.h" #include "qemu/module.h" #include "hw/scsi/scsi.h" +#include "migration/qemu-file-types.h" #include "hw/scsi/emulation.h" #include "scsi/constants.h" #include "sysemu/sysemu.h" diff --git a/hw/scsi/scsi-generic.c b/hw/scsi/scsi-generic.c index c11a0c9a84..44430b6ea6 100644 --- a/hw/scsi/scsi-generic.c +++ b/hw/scsi/scsi-generic.c @@ -17,6 +17,7 @@ #include "qemu/error-report.h" #include "qemu/module.h" #include "hw/scsi/scsi.h" +#include "migration/qemu-file-types.h" #include "hw/scsi/emulation.h" #include "sysemu/block-backend.h" #include "trace.h" diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c index 8b9e5e2b49..a6d61aacdb 100644 --- a/hw/scsi/virtio-scsi.c +++ b/hw/scsi/virtio-scsi.c @@ -17,6 +17,7 @@ #include "qapi/error.h" #include "standard-headers/linux/virtio_ids.h" #include "hw/virtio/virtio-scsi.h" +#include "migration/qemu-file-types.h" #include "qemu/error-report.h" #include "qemu/iov.h" #include "qemu/module.h" diff --git a/hw/timer/i8254_common.c b/hw/timer/i8254_common.c index 76ca6ec444..3e980f2dee 100644 --- a/hw/timer/i8254_common.c +++ b/hw/timer/i8254_common.c @@ -30,6 +30,7 @@ #include "qemu/timer.h" #include "hw/timer/i8254.h" #include "hw/timer/i8254_internal.h" +#include "migration/qemu-file-types.h" /* val must be 0 or 1 */ void pit_set_gate(ISADevice *dev, int channel, int val) diff --git a/hw/timer/twl92230.c b/hw/timer/twl92230.c index 0ef4fc1fc1..91ae7bf203 100644 --- a/hw/timer/twl92230.c +++ b/hw/timer/twl92230.c @@ -24,6 +24,7 @@ #include "hw/hw.h" #include "qemu/timer.h" #include "hw/i2c/i2c.h" +#include "migration/qemu-file-types.h" #include "sysemu/sysemu.h" #include "ui/console.h" #include "qemu/bcd.h" diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c index 998fc6e4b0..846e60f3bb 100644 --- a/hw/usb/redirect.c +++ b/hw/usb/redirect.c @@ -41,6 +41,7 @@ #include <usbredirfilter.h> #include "hw/usb.h" +#include "migration/qemu-file-types.h" /* ERROR is defined below. Remove any previous definition. */ #undef ERROR diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c index bc899fc60e..ba1006ad96 100644 --- a/hw/virtio/vhost.c +++ b/hw/virtio/vhost.c @@ -26,6 +26,7 @@ #include "hw/virtio/virtio-bus.h" #include "hw/virtio/virtio-access.h" #include "migration/blocker.h" +#include "migration/qemu-file-types.h" #include "sysemu/dma.h" #include "trace.h" diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c index 97b7f35496..d4c0997074 100644 --- a/hw/virtio/virtio-mmio.c +++ b/hw/virtio/virtio-mmio.c @@ -23,6 +23,7 @@ #include "standard-headers/linux/virtio_mmio.h" #include "hw/sysbus.h" #include "hw/virtio/virtio.h" +#include "migration/qemu-file-types.h" #include "qemu/host-utils.h" #include "qemu/module.h" #include "sysemu/kvm.h" diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c index f6d2223e78..1117f2347b 100644 --- a/hw/virtio/virtio-pci.c +++ b/hw/virtio/virtio-pci.c @@ -19,6 +19,7 @@ #include "standard-headers/linux/virtio_pci.h" #include "hw/virtio/virtio.h" +#include "migration/qemu-file-types.h" #include "hw/pci/pci.h" #include "hw/pci/pci_bus.h" #include "qapi/error.h" diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index a94ea18a9c..79c7a910cc 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -19,6 +19,7 @@ #include "qemu/error-report.h" #include "qemu/module.h" #include "hw/virtio/virtio.h" +#include "migration/qemu-file-types.h" #include "qemu/atomic.h" #include "hw/virtio/virtio-bus.h" #include "hw/virtio/virtio-access.h" 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" 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 da1618d620..2a22470d0d 100644 --- a/include/migration/cpu.h +++ b/include/migration/cpu.h @@ -4,6 +4,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 diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c index 8a06d3171e..4bd95be9cd 100644 --- a/target/ppc/kvm.c +++ b/target/ppc/kvm.c @@ -38,6 +38,7 @@ #include "hw/ppc/spapr.h" #include "hw/ppc/spapr_cpu_core.h" #include "hw/ppc/ppc.h" +#include "migration/qemu-file-types.h" #include "sysemu/watchdog.h" #include "trace.h" #include "exec/gdbstub.h"
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 <armbru@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/intc/s390_flic.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 + 31 files changed, 30 insertions(+), 1 deletion(-)