I'd expect %lld to be handled like %ld if -DWANT_PRINTF_LONG_LONG is not defined, but it's handled like %d. This makes a lot of a difference in case sizeof (long long) == sizeof (long) > sizeof (int). How about this patch? Ok to install?