This is a snippet from squid4:
#if (SIZEOF_LONG == 8)
error("%s| %s: ERROR: Inconsistence message length: %ld!=0\n", LogTime(), PROGRAM, buffer + len - p);
#else
error((char *) "%s| %s: ERROR: Inconsistence message length: %d!=0\n", LogTime(), PROGRAM, buffer + len - p);
#endif
On evbarm the #else leg is applicable and that yields the error:
support.h:129:38: error: format '%d' expects argument of type 'int', but
argument 5 has type 'long int' [-Werror=format=]
I am not sure why one should use %d for long - no matter of size 4 or 8.