On 5/10/26 22:19, Michael S. Tsirkin wrote:
On Sun, May 10, 2026 at 10:08:49PM +0200, Cédric Le Goater wrote:
On 5/7/26 11:23, Song Gao wrote:
diff --git a/include/standard-headers/linux/virtio_ring.h 
b/include/standard-headers/linux/virtio_ring.h
index 22f6eb8ca7..7baf1968a3 100644
--- a/include/standard-headers/linux/virtio_ring.h
+++ b/include/standard-headers/linux/virtio_ring.h
@@ -31,7 +31,6 @@
    * SUCH DAMAGE.
    *
    * Copyright Rusty Russell IBM Corporation 2007. */
-#include <stdint.h>
   #include "standard-headers/linux/types.h"
   #include "standard-headers/linux/virtio_types.h"
@@ -200,7 +199,7 @@ static inline void vring_init(struct vring *vr, unsigned 
int num, void *p,
        vr->num = num;
        vr->desc = p;
        vr->avail = (struct vring_avail *)((char *)p + num * sizeof(struct 
vring_desc));
-       vr->used = (void *)(((uintptr_t)&vr->avail->ring[num] + 
sizeof(__virtio16)
+       vr->used = (void *)(((unsigned long)&vr->avail->ring[num] + 
sizeof(__virtio16)
                + align-1) & ~(align - 1));
   }

The kernel commit 3c4629b68dbe ("virtio: uapi: avoid usage of
libc types") changed this virtio header and this breaks the
build on Windows :

   https://gitlab.com/legoater/qemu/-/jobs/14297040230

A fix could be to reintroduce 'uintptr_t' (available through
osdep.h) by modifying the linux headers update script. Ideas ?

Thanks,

C.

Yea sorry ( Just add
#define VIRTIO_RING_NO_LEGACY
somewhere.



Something like :

  --- a/scripts/update-linux-headers.sh
  +++ b/scripts/update-linux-headers.sh
  @@ -104,6 +104,7 @@ cp_portable() {
           -e 's/struct ethhdr/struct eth_header/' \
           -e '/\#define _LINUX_ETHTOOL_H/a \\n\#include "net/eth.h"' \
  +        -e '/\#define _LINUX_VIRTIO_RING_H/a \\n\#define 
VIRTIO_RING_NO_LEGACY' \
           "$f" > "$to/$header";
   }


Thanks,

C.


Reply via email to