[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 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. ~Andrew _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |