|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] libxl: virtio: Fix build error for 32-bit platforms
On 15.12.2022 14:48, Anthony PERARD wrote:
> On Thu, Dec 15, 2022 at 07:01:40PM +0530, Viresh Kumar wrote:
>> The field 'base' in 'struct libxl_device_virtio' is defined as uint64,
>> while we are printing it with '%lu', which is 32bit only 32-bit
>> platforms. And so generates a error like:
>>
>> libxl_internal.h:4388:51: error: format '%lu' expects argument of type
>> 'long
>> unsigned int', but argument 3 has type 'uint64_t' {aka 'long long unsigned
>> int'} [-Werror=format=]
>>
>> Fix the same by using PRIx64 instead.
>>
>> Now that the base name is available in hexadecimal format, prefix it
>> with '0x' as well, which strtoul() also depends upon since base passed
>> is 0.
>>
>> Fixes: 43ba5202e2ee ("libxl: add support for generic virtio device")
>> Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
>> ---
>> Couldn't test on 32-bit platforms yet, but works fine for 64 bit one.
>>
>> tools/libs/light/libxl_virtio.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/tools/libs/light/libxl_virtio.c
>> b/tools/libs/light/libxl_virtio.c
>> index 6a38def2faf5..2217bda8a253 100644
>> --- a/tools/libs/light/libxl_virtio.c
>> +++ b/tools/libs/light/libxl_virtio.c
>> @@ -45,12 +45,12 @@ static int libxl__set_xenstore_virtio(libxl__gc *gc,
>> uint32_t domid,
>> const char *transport =
>> libxl_virtio_transport_to_string(virtio->transport);
>>
>> flexarray_append_pair(back, "irq", GCSPRINTF("%u", virtio->irq));
>> - flexarray_append_pair(back, "base", GCSPRINTF("%lu", virtio->base));
>> + flexarray_append_pair(back, "base", GCSPRINTF("0x%"PRIx64,
>> virtio->base));
>
> There is also PRIu64 that exist, which would be perfect to replace %u.
> Could we use that instead?
>
> I'd rather not have to think about which base is used for numbers in
> xenstore. I can't find any hexadecimal numbers in xenstore for a simple
> guest at the moment, so probably best to avoid adding one. And using
> hexadecimal isn't needed to fix the build.
Otoh an address formatted in decimal is pretty unusable to any human
(who might be inspecting xenstore for whatever reasons).
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |