Hi all,

There is a very common pattern with build failures in DPDK.
When compiling in 32-bit mode, there are some mismatches between
printf format "%lu" / "%lx" and the size of the data being 64-bit.
In 32-bit mode, a long is 32 bits long :)
That's why "%lx" must be replaced by "%" PRIx64.

        long     -> %lx
        uint64_t -> %PRIx64

Most of the times, using %l is wrong (except when printing a long).
So next time you write %l, please think "I am probably wrong".

For the existing codebase, please grep "%l".
There are probably some remaining wrong "%l" which are not detected
when compiling, because the code is in debug functions never enabled.
Note that debug code should be tested but there can be some forgotten
code paths.


Reply via email to