[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] linux-headers: Fix type cast warning for 64 bit
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH] linux-headers: Fix type cast warning for 64 bit MinGW-w64 |
Date: |
Tue, 8 Sep 2015 20:15:50 +0100 |
On 8 September 2015 at 20:11, Stefan Weil <address@hidden> wrote:
> Type casts from pointers to unsigned long don't work on 64 bit Windows
> because both types have different size.
>
> Compiler warning:
>
> include/standard-headers/linux/virtio_ring.h:146:23:
> warning: cast from pointer to integer of different size
> [-Wpointer-to-int-cast]
> vr->used = (void *)(((unsigned long)&vr->avail->ring[num] + ...
> ^
>
> Signed-off-by: Stefan Weil <address@hidden>
> ---
>
> This is a modification of a Linux header file,
> something we usually try to avoid.
>
> I did not succeed in removing this header from compilations
> for Windows (which would have been the best solution).
No, this header is supposed to work everywhere (that's why
it's in standard-headers/ rather than linux-headers),
because virtio devices must work everywhere. We need to
improve the process which creates it from the kernel header
by automatedly fixing up non-portable constructs
(which is handled by scripts/update-linux-headers.sh).
Some extra seddery in cp_virtio() is probably required.
thanks
-- PMM