On Fri, 20 Jan 2017 10:52:26 +0100 Thomas Huth <th...@redhat.com> wrote:
> On 20.01.2017 10:21, Cornelia Huck wrote: > > On Thu, 19 Jan 2017 18:32:44 +0000 > > Peter Maydell <peter.mayd...@linaro.org> wrote: > > > >> Hi; I'm afraid this fails to build on Windows: > >> > >> /home/petmay01/linaro/qemu-for-merges/hw/s390x/s390-pci-bus.c: In > >> function ‘s390_pci_get_iommu’: > >> /home/petmay01/linaro/qemu-for-merges/hw/s390x/s390-pci-bus.c:415:20: > >> error: cast from pointer to integer of different size > >> [-Werror=pointer-to-int-cast] > >> uint64_t key = (unsigned long)bus; > >> ^ > >> /home/petmay01/linaro/qemu-for-merges/hw/s390x/s390-pci-bus.c: In > >> function ‘s390_pci_iommu_free’: > >> /home/petmay01/linaro/qemu-for-merges/hw/s390x/s390-pci-bus.c:539:20: > >> error: cast from pointer to integer of different size > >> [-Werror=pointer-to-int-cast] > >> uint64_t key = (unsigned long)bus; > >> ^ > >> cc1: all warnings being treated as errors > >> > >> > >> You probably wanted uintptr_t. > > > > Fixed and v2 sent. > > > > I'm wondering if there is any way to catch this earlier (without > > actually building on Windows)? My mingw 4.8.2 cross-build worked fine... > > You likely got to use the 32-bit version of MinGW (or compile with -m32 > with any other version of GCC) to catch this issue, so that you get > sizeof(long) != sizeof(void *). Well, I already do that (mingw32, and I see -m32 on the command line; that already caught sizeof(uint64_t) != sizeof(void *) here.) But isn't sizeof(long) == sizeof(void *) even in the -m32 case?