On Sat, Sep 03, 2011 at 02:48:25PM +0100, Peter Maydell wrote: > Fix format string errors causing compile failure on 32 bit hosts > when spice is enabled. >
Patch looks good. Reviewed-by: Alon Levy <al...@redhat.com> > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> > --- > This fixes the easy parts of the 32 bit compile failures with > spice enabled. It leaves the following two warnings: > hw/qxl.c: In function 'interface_release_resource': > hw/qxl.c:627:46: error: cast to pointer from integer of different size > hw/qxl.c: In function 'qxl_phys2virt': > hw/qxl.c:1003:16: error: cast to pointer from integer of different size > > which appear to be making deeper "pointers are 64 bits" assumptions > that I don't know enough about the spice code to suggest fixes for. > (Throwing in (intptr_t) casts suppresses the warning but seems a > bit icky...) > > Could somebody else take a look at those, please? > Spice server doesn't work for 32 bit machines. So regardless of the fix it should not be possible to enable it for 32 bit builds. I think if it were to work then the casts you suggest would be the simplest assumption, keeping the qxl device structs the same (64 bit address fields). > hw/qxl-logger.c | 2 +- > hw/qxl.c | 8 ++++---- > 2 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/hw/qxl-logger.c b/hw/qxl-logger.c > index 74cadba..367aad1 100644 > --- a/hw/qxl-logger.c > +++ b/hw/qxl-logger.c > @@ -224,7 +224,7 @@ void qxl_log_command(PCIQXLDevice *qxl, const char *ring, > QXLCommandExt *ext) > if (!qxl->cmdlog) { > return; > } > - fprintf(stderr, "%ld qxl-%d/%s:", qemu_get_clock_ns(vm_clock), > + fprintf(stderr, "%" PRId64 " qxl-%d/%s:", qemu_get_clock_ns(vm_clock), > qxl->id, ring); > fprintf(stderr, " cmd @ 0x%" PRIx64 " %s%s", ext->cmd.data, > qxl_name(qxl_type, ext->cmd.type), > diff --git a/hw/qxl.c b/hw/qxl.c > index 45e2401..1fe0b53 100644 > --- a/hw/qxl.c > +++ b/hw/qxl.c > @@ -959,7 +959,7 @@ static void qxl_add_memslot(PCIQXLDevice *d, uint32_t > slot_id, uint64_t delta, > memslot.generation = d->rom->slot_generation = 0; > qxl_rom_set_dirty(d); > > - dprint(d, 1, "%s: slot %d: host virt 0x%" PRIx64 " - 0x%" PRIx64 "\n", > + dprint(d, 1, "%s: slot %d: host virt 0x%lx - 0x%lx\n", > __FUNCTION__, memslot.slot_id, > memslot.virt_start, memslot.virt_end); > > @@ -1090,8 +1090,8 @@ static void qxl_set_mode(PCIQXLDevice *d, int modenr, > int loadvm) > .mem = devmem + d->shadow_rom.draw_area_offset, > }; > > - dprint(d, 1, "%s: mode %d [ %d x %d @ %d bpp devmem 0x%lx ]\n", > __FUNCTION__, > - modenr, mode->x_res, mode->y_res, mode->bits, devmem); > + dprint(d, 1, "%s: mode %d [ %d x %d @ %d bpp devmem 0x%" PRIx64 " ]\n", > + __func__, modenr, mode->x_res, mode->y_res, mode->bits, devmem); > if (!loadvm) { > qxl_hard_reset(d, 0); > } > @@ -1229,7 +1229,7 @@ async_common: > break; > case QXL_IO_LOG: > if (d->guestdebug) { > - fprintf(stderr, "qxl/guest-%d: %ld: %s", d->id, > + fprintf(stderr, "qxl/guest-%d: %" PRId64 ": %s", d->id, > qemu_get_clock_ns(vm_clock), d->ram->log_buf); > } > break; > -- > 1.7.4.1 > >