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 *). Thomas