[Libguestfs] [PATCH 2/2] Cast return value of be64toh to uint64_t before printing.

Matthew Booth mbooth at redhat.com
Thu Dec 6 13:42:22 UTC 2012


On 06/12/12 13:32, Richard W.M. Jones wrote:
> From: "Richard W.M. Jones" <rjones at redhat.com>
>
> With glibc 2.16-24.fc18, be64toh is a macro around __bswap_64 which is
> defined as:
>
>    unsigned long long int __bswap_64 (unsigned long long int __bsx);
>
> Unfortunately on 64 bit platforms, unsigned long long int cannot be
> printed using the expansion of PRIu64 ("%lu") resulting in about a
> dozen errors such as:
>
>    ldm.c:1129:5: error: format '%lu' expects argument of type 'long unsigned int', but argument 11 has type 'long long unsigned int' [-Werror=format]
>
> This commit corrects the problem by casting the result to uint64_t,
> although I'm fairly sure that this is really a bug in glibc.
> ---
>   src/ldm.c | 28 ++++++++++++++--------------
>   1 file changed, 14 insertions(+), 14 deletions(-)

I already have this patch locally, but it seems I forgot to push it. 
Sorry! It's pushed now.

Matt
-- 
Matthew Booth, RHCA, RHCSS
Red Hat Engineering, Virtualisation Team

GPG ID:  D33C3490
GPG FPR: 3733 612D 2D05 5458 8A8A 1600 3441 EA19 D33C 3490




More information about the Libguestfs mailing list