[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] ARM32 - build-issues with xen/arm: vpl011: Add a new vuart node in the xenstore
On 13 October 2017 at 00:34, Andrew Cooper <andrew.cooper3@xxxxxxxxxx> wrote: > On 12/10/17 19:54, Bhupinder Thakur wrote: >> On 5 October 2017 at 15:07, Wei Liu <wei.liu2@xxxxxxxxxx> wrote: >>> On Wed, Oct 04, 2017 at 09:58:32PM -0400, Konrad Rzeszutek Wilk wrote: >>>> I get this when compiling under ARM32 (Ubuntu 15.04, >>>> gcc (Ubuntu/Linaro 4.9.2-10ubuntu13) 4.9.2): >>>> >>>> libxl_console.c: In function ‘libxl__device_vuart_add’: >>>> libxl_console.c:379:5: error: format ‘%lu’ expects argument of type ‘long >>>> unsigned int’, but argument 3 has type ‘xen_pfn_t’ [-Werror=format=] >>>> flexarray_append(ro_front, GCSPRINTF("%lu", state->vuart_gfn)); >>>> ^ >>>> ; >>> My Wheezy 32bit chroot didn't catch this, sigh. >>> >>> Does the following patch work? >>> >>> From ae531197382bf0bc003606a9712075bdd22cfc24 Mon Sep 17 00:00:00 2001 >>> From: Wei Liu <wei.liu2@xxxxxxxxxx> >>> Date: Thu, 5 Oct 2017 10:35:28 +0100 >>> Subject: [PATCH] libxl: use correct type modifier for vuart_gfn >>> MIME-Version: 1.0 >>> Content-Type: text/plain; charset=UTF-8 >>> Content-Transfer-Encoding: 8bit >>> >>> Fixes compilation error like: >>> >>> libxl_console.c: In function ‘libxl__device_vuart_add’: >>> libxl_console.c:379:5: error: format ‘%lu’ expects argument of type ‘long >>> unsigned int’, but argument 3 has type ‘xen_pfn_t’ [-Werror=format=] >>> flexarray_append(ro_front, GCSPRINTF("%lu", state->vuart_gfn)); >>> >>> Reported-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> >>> Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx> >>> --- >>> tools/libxl/libxl_console.c | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/tools/libxl/libxl_console.c b/tools/libxl/libxl_console.c >>> index 13ecf128e2..c05dc28b99 100644 >>> --- a/tools/libxl/libxl_console.c >>> +++ b/tools/libxl/libxl_console.c >>> @@ -376,7 +376,7 @@ int libxl__device_vuart_add(libxl__gc *gc, uint32_t >>> domid, >>> flexarray_append(ro_front, "port"); >>> flexarray_append(ro_front, GCSPRINTF("%"PRIu32, state->vuart_port)); >>> flexarray_append(ro_front, "ring-ref"); >>> - flexarray_append(ro_front, GCSPRINTF("%lu", state->vuart_gfn)); >>> + flexarray_append(ro_front, GCSPRINTF("%"PRI_xen_pfn, >>> state->vuart_gfn)); >> Unfortunately, this is causing an issue as PRI_xen_pfn formats the >> value as a hexadecimal value but xenconsole later reads it as a >> decimal value and tries to map it, which fails and therefore vuart >> console initialization fails. >> >> Earlier, I verified only 32-bit compilation but did not test the >> change. It was a miss from my side. I have tested now with the format >> string changed to PRIu64 and the vuart console is working fine. > > That however, would break x86. > > andrewcoop@andrewcoop:/local/xen.git/xen$ git grep 'define PRI_xen_pfn' -- :/ > include/public/arch-arm.h:276:#define PRI_xen_pfn PRIx64 > include/public/arch-x86/xen.h:77:#define PRI_xen_pfn "lx" > > The best way to fix this is to introduce a new define for both > architectures which is PRIu64 and "lu" as appropriate. > > Suggestions: > > PRI_xen_pfn_dec > PRIu_xen_pfn > > Neither are great, but the latter does follow the PRI nomenclature. Thanks. I will introduce this new format specifier. Regards, Bhupinder _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |