[dpdk-dev] 32-bit compilation & debug logs

Thomas Monjalon thomas at monjalon.net
Tue Feb 13 21:59:05 CET 2018


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.

Thanks


More information about the dev mailing list