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