[libvirt] [PATCH] virtlogd: use PRIu64 to print 64bit types

Guido Günther agx at sigxcpu.org
Thu Nov 26 18:13:40 UTC 2015


On Thu, Nov 26, 2015 at 05:52:11PM +0000, Daniel P. Berrange wrote:
> On Thu, Nov 26, 2015 at 06:46:13PM +0100, Guido Günther wrote:
> > Otherwise we fail on 32bit with:
> > 
> > CC     logging/virtlogd-log_daemon_dispatch.o
> > logging/log_daemon_dispatch.c: In function 'virLogManagerProtocolDispatchDomainReadLogFile':
> > logging/log_daemon_dispatch.c:120:9: error: format '%zu' expects argument of type 'size_t', but argument 7 has type 'uint64_t' [-Werror=format]
> > ---
> >  src/logging/log_daemon_dispatch.c | 3 ++-
> >  tests/virrotatingfiletest.c       | 4 +++-
> >  2 files changed, 5 insertions(+), 2 deletions(-)
> > 
> > diff --git a/src/logging/log_daemon_dispatch.c b/src/logging/log_daemon_dispatch.c
> > index 269255a..7391a6f 100644
> > --- a/src/logging/log_daemon_dispatch.c
> > +++ b/src/logging/log_daemon_dispatch.c
> > @@ -21,6 +21,7 @@
> >   */
> >  
> >  #include <config.h>
> > +#include <inttypes.h>
> >  
> >  #include "rpc/virnetserver.h"
> >  #include "rpc/virnetserverclient.h"
> > @@ -118,7 +119,7 @@ virLogManagerProtocolDispatchDomainReadLogFile(virNetServerPtr server ATTRIBUTE_
> >  
> >      if (args->maxlen > VIR_LOG_MANAGER_PROTOCOL_STRING_MAX) {
> >          virReportError(VIR_ERR_INTERNAL_ERROR,
> > -                       _("Requested data len %zu is larger than maximum %d"),
> > +                       _("Requested data len %"PRIu64" is larger than maximum %d"),
> 
> We don't ever use PRIu64 in libvirt - gnulib guarantees that %llu and
> %lld are always used for formatting 64bit ints.

But with %llu I get on 64bit:

make[3]: Entering directory '/var/scratch/src/libvirt/upstream/libvirt/src'
  CC       logging/virtlogd-log_daemon_dispatch.o
logging/log_daemon_dispatch.c: In function 'virLogManagerProtocolDispatchDomainReadLogFile':
logging/log_daemon_dispatch.c:120:8: error: format '%llu' expects argument of type 'long long unsigned int', but argument 7 has type 'uint64_t {aka long unsigned int}' [-Werror=format=]
         virReportError(VIR_ERR_INTERNAL_ERROR,
        ^
cc1: all warnings being treated as errors

Puzzled,
 -- Guido




More information about the libvir-list mailing list