On Tue, May 16, 2017 at 10:08:08AM -0600, Shuah Khan wrote: > Fix the following compile error found on odroid-xu4: > > checks.c: In function ‘check_simple_bus_reg’: > checks.c:876:41: error: format ‘%lx’ expects argument of type > ‘long unsigned int’, but argument 4 has type > ‘uint64_t{aka long long unsigned int}’ [-Werror=format=] > snprintf(unit_addr, sizeof(unit_addr), "%lx", reg); > ^ > checks.c:876:41: error: format ‘%lx’ expects argument of type > ‘long unsigned int’, but argument 4 has type > ‘uint64_t {aka long long unsigned int}’ [-Werror=format=] > cc1: all warnings being treated as errors > Makefile:304: recipe for target 'checks.o' failed > make: *** [checks.o] Error 1 > > Signed-off-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx> The bug is real, but the fix is only correct for some platforms (just as the original would only compile for some platforms). I've adjusted to %zx which should be right for all platforms and applied. > --- > checks.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/checks.c b/checks.c > index 5adfc8f..6dfb82f 100644 > --- a/checks.c > +++ b/checks.c > @@ -873,7 +873,7 @@ static void check_simple_bus_reg(struct check *c, struct dt_info *dti, struct no > while (size--) > reg = (reg << 32) | fdt32_to_cpu(*(cells++)); > > - snprintf(unit_addr, sizeof(unit_addr), "%lx", reg); > + snprintf(unit_addr, sizeof(unit_addr), "%llx", reg); > if (!streq(unitname, unit_addr)) > FAIL(c, dti, "Node %s simple-bus unit address format error, expected \"%s\"", > node->fullpath, unit_addr); -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
Attachment:
signature.asc
Description: PGP signature