Message ID | 20170117085645.4267-1-cornelia.huck@de.ibm.com |
---|---|
State | New |
Headers | show |
On 17 January 2017 at 08:56, Cornelia Huck <cornelia.huck@de.ibm.com> wrote: > The following changes since commit 2ccede18bd24fce5db83fef3674563a1f256717b: > > Merge remote-tracking branch 'remotes/vivier/tags/m68k-for-2.9-pull-request' into staging (2017-01-16 12:41:35 +0000) > > are available in the git repository at: > > git://github.com/cohuck/qemu tags/s390x-20170117 > > for you to fetch changes up to 5fd04a2b92bf81f39da63fba9e5ae563a8b929ae: > > virtio-ccw: fix ring sizing (2017-01-16 16:23:27 +0100) > > ---------------------------------------------------------------- > First set of s390x patches for 2.9: > - rework of the zpci code, giving us proper multibus support > - introduction of the 2.9 machine > - fixes and improvements > > ---------------------------------------------------------------- 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. thanks -- PMM
On Thu, 19 Jan 2017 18:32:44 +0000 Peter Maydell <peter.maydell@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...
On 20.01.2017 10:21, Cornelia Huck wrote: > On Thu, 19 Jan 2017 18:32:44 +0000 > Peter Maydell <peter.maydell@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
On 20.01.2017 10:52, Thomas Huth wrote: > On 20.01.2017 10:21, Cornelia Huck wrote: >> On Thu, 19 Jan 2017 18:32:44 +0000 >> Peter Maydell <peter.maydell@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 *). ... or was it the other way round? ... use the 64-bit version of MinGW? ... that likely makes more sense... sorry, it's been a while that I used MinGW for the last time. Thomas
On Fri, 20 Jan 2017 10:52:26 +0100 Thomas Huth <thuth@redhat.com> wrote: > On 20.01.2017 10:21, Cornelia Huck wrote: > > On Thu, 19 Jan 2017 18:32:44 +0000 > > Peter Maydell <peter.maydell@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?
On 20.01.2017 11:00, Cornelia Huck wrote: > On Fri, 20 Jan 2017 10:52:26 +0100 > Thomas Huth <thuth@redhat.com> wrote: > >> On 20.01.2017 10:21, Cornelia Huck wrote: >>> On Thu, 19 Jan 2017 18:32:44 +0000 >>> Peter Maydell <peter.maydell@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? Yes, sorry, my bad, it's the 64-bit version of MinGW where sizeof(long) is different to sizeof(void *), see https://sourceforge.net/p/mingw-w64/bugs/58/ for example. Thomas
On Fri, 20 Jan 2017 11:04:29 +0100 Thomas Huth <thuth@redhat.com> wrote: > On 20.01.2017 11:00, Cornelia Huck wrote: > > On Fri, 20 Jan 2017 10:52:26 +0100 > > Thomas Huth <thuth@redhat.com> wrote: > > > >> On 20.01.2017 10:21, Cornelia Huck wrote: > >>> On Thu, 19 Jan 2017 18:32:44 +0000 > >>> Peter Maydell <peter.maydell@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? > > Yes, sorry, my bad, it's the 64-bit version of MinGW where sizeof(long) > is different to sizeof(void *), see > https://sourceforge.net/p/mingw-w64/bugs/58/ for example. Ah, that makes sense. Thanks!