[Qemu-devel] Re: [PATCH] vhost_net.c: v2 Fix build failure introduced by 0bfcd599e3f5c5679cc7d0165a0a1822e2f60de2
On Thu, May 27, 2010 at 12:22:29PM +0200, jes.soren...@redhat.com wrote: From: Jes Sorensen jes.soren...@redhat.com Fix build failure introduced by 0bfcd599e3f5c5679cc7d0165a0a1822e2f60de2 The format statement expects unsigned long on x86_64, but receives unsigned long long, so gcc exits with an error. Signed-off-by: Jes Sorensen jes.soren...@redhat.com I think this part of 0bfcd599e3f5c5679cc7d0165a0a1822e2f60de2 should just be reverted. We have unsigned long, it should be printed woith %ll. Casting to uint64_t just so we can print with PRIu64 seems silly. --- hw/vhost_net.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/hw/vhost_net.c b/hw/vhost_net.c index 26dae79..606aa0c 100644 --- a/hw/vhost_net.c +++ b/hw/vhost_net.c @@ -100,7 +100,7 @@ struct vhost_net *vhost_net_init(VLANClientState *backend, int devfd) } if (~net-dev.features net-dev.backend_features) { fprintf(stderr, vhost lacks feature mask % PRIu64 for backend\n, -~net-dev.features net-dev.backend_features); +(uint64_t)(~net-dev.features net-dev.backend_features)); vhost_dev_cleanup(net-dev); goto fail; } How about just (untested): vhost: fix build broken by 0bfcd599e3f5c5679cc7d0165a0a1822e2f60de2 revert over-zealous PRIu64 conversion from 0bfcd599e3f5c5679cc7d0165a0a1822e2f60de2 Signed-off-by: Michael S. Tsirkin m...@redhat.com --- Does this help? diff --git a/hw/vhost_net.c b/hw/vhost_net.c index 26dae79..2e292ee 100644 --- a/hw/vhost_net.c +++ b/hw/vhost_net.c @@ -99,7 +99,7 @@ struct vhost_net *vhost_net_init(VLANClientState *backend, int devfd) goto fail; } if (~net-dev.features net-dev.backend_features) { -fprintf(stderr, vhost lacks feature mask % PRIu64 for backend\n, +fprintf(stderr, vhost lacks feature mask %llu for backend\n, ~net-dev.features net-dev.backend_features); vhost_dev_cleanup(net-dev); goto fail;
[Qemu-devel] Re: [PATCH] vhost_net.c: v2 Fix build failure introduced by 0bfcd599e3f5c5679cc7d0165a0a1822e2f60de2
On 05/27/10 12:44, Michael S. Tsirkin wrote: On Thu, May 27, 2010 at 12:22:29PM +0200, jes.soren...@redhat.com wrote: From: Jes Sorensen jes.soren...@redhat.com Fix build failure introduced by 0bfcd599e3f5c5679cc7d0165a0a1822e2f60de2 The format statement expects unsigned long on x86_64, but receives unsigned long long, so gcc exits with an error. Signed-off-by: Jes Sorensen jes.soren...@redhat.com I think this part of 0bfcd599e3f5c5679cc7d0165a0a1822e2f60de2 should just be reverted. We have unsigned long, it should be printed woith %ll. Casting to uint64_t just so we can print with PRIu64 seems silly. That is an option too. Problem is just that unsigned long is 32 bit on 32 bit systems and Windows (even for 64 bit) so if we need more flags we need to be careful with it. Cheers, Jes
[Qemu-devel] Re: [PATCH] vhost_net.c: v2 Fix build failure introduced by 0bfcd599e3f5c5679cc7d0165a0a1822e2f60de2
On Thu, May 27, 2010 at 12:55:49PM +0200, Jes Sorensen wrote: On 05/27/10 12:44, Michael S. Tsirkin wrote: On Thu, May 27, 2010 at 12:22:29PM +0200, jes.soren...@redhat.com wrote: From: Jes Sorensen jes.soren...@redhat.com Fix build failure introduced by 0bfcd599e3f5c5679cc7d0165a0a1822e2f60de2 The format statement expects unsigned long on x86_64, but receives unsigned long long, so gcc exits with an error. Signed-off-by: Jes Sorensen jes.soren...@redhat.com I think this part of 0bfcd599e3f5c5679cc7d0165a0a1822e2f60de2 should just be reverted. We have unsigned long, it should be printed woith %ll. Casting to uint64_t just so we can print with PRIu64 seems silly. That is an option too. Problem is just that unsigned long is 32 bit on 32 bit systems and Windows (even for 64 bit) so if we need more flags we need to be careful with it. Cheers, Jes I don't understand, sorry. This field is unsigned long long, not unsigned long. %ll will print unsigned long long for any standard printf, whatever its length. -- MST
[Qemu-devel] Re: [PATCH] vhost_net.c: v2 Fix build failure introduced by 0bfcd599e3f5c5679cc7d0165a0a1822e2f60de2
On Thu, May 27, 2010 at 12:55:49PM +0200, Jes Sorensen wrote: On 05/27/10 12:44, Michael S. Tsirkin wrote: On Thu, May 27, 2010 at 12:22:29PM +0200, jes.soren...@redhat.com wrote: From: Jes Sorensen jes.soren...@redhat.com Fix build failure introduced by 0bfcd599e3f5c5679cc7d0165a0a1822e2f60de2 The format statement expects unsigned long on x86_64, but receives unsigned long long, so gcc exits with an error. Signed-off-by: Jes Sorensen jes.soren...@redhat.com I think this part of 0bfcd599e3f5c5679cc7d0165a0a1822e2f60de2 should just be reverted. We have unsigned long, it should be printed woith %ll. Casting to uint64_t just so we can print with PRIu64 seems silly. That is an option too. More importantly does this fix the problem for you? Problem is just that unsigned long is 32 bit on 32 bit systems and Windows (even for 64 bit) so if we need more flags we need to be careful with it. Cheers, Jes
[Qemu-devel] Re: [PATCH] vhost_net.c: v2 Fix build failure introduced by 0bfcd599e3f5c5679cc7d0165a0a1822e2f60de2
On 05/27/10 12:53, Michael S. Tsirkin wrote: On Thu, May 27, 2010 at 12:55:49PM +0200, Jes Sorensen wrote: On 05/27/10 12:44, Michael S. Tsirkin wrote: I think this part of 0bfcd599e3f5c5679cc7d0165a0a1822e2f60de2 should just be reverted. We have unsigned long, it should be printed woith %ll. Casting to uint64_t just so we can print with PRIu64 seems silly. That is an option too. Problem is just that unsigned long is 32 bit on 32 bit systems and Windows (even for 64 bit) so if we need more flags we need to be careful with it. Cheers, Jes I don't understand, sorry. This field is unsigned long long, not unsigned long. %ll will print unsigned long long for any standard printf, whatever its length. Ah ok, if the field is long long, then your patch should be just fine. I hadn't checked that was the case. Cheers, Jes
[Qemu-devel] Re: [PATCH] vhost_net.c: v2 Fix build failure introduced by 0bfcd599e3f5c5679cc7d0165a0a1822e2f60de2
On 05/27/10 12:54, Michael S. Tsirkin wrote: On Thu, May 27, 2010 at 12:55:49PM +0200, Jes Sorensen wrote: On 05/27/10 12:44, Michael S. Tsirkin wrote: On Thu, May 27, 2010 at 12:22:29PM +0200, jes.soren...@redhat.com wrote: From: Jes Sorensen jes.soren...@redhat.com Fix build failure introduced by 0bfcd599e3f5c5679cc7d0165a0a1822e2f60de2 The format statement expects unsigned long on x86_64, but receives unsigned long long, so gcc exits with an error. Signed-off-by: Jes Sorensen jes.soren...@redhat.com I think this part of 0bfcd599e3f5c5679cc7d0165a0a1822e2f60de2 should just be reverted. We have unsigned long, it should be printed woith %ll. Casting to uint64_t just so we can print with PRIu64 seems silly. That is an option too. More importantly does this fix the problem for you? Yes it works fine. Acked-by: Jes Sorensen jes.soren...@redhat.com