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.