On 11/11/15 20:31, Eric Sunshine wrote: > On Wed, Nov 11, 2015 at 12:47 PM, Ramsay Jones > <ramsay@xxxxxxxxxxxxxxxxxxxx> wrote: >> On 11/11/15 01:22, Eric Sunshine wrote: >>> On Tue, Nov 10, 2015 at 7:23 PM, Ramsay Jones >>> <ramsay@xxxxxxxxxxxxxxxxxxxx> wrote: >>> My machine is 64-bit, though, so perhaps it's misleading to >>> characterize this as a fix for 32-bit builds. In particular, off_t is >>> 'long long' on this machine, so it complains about the "long" format >>> specifier. >> >> ... but this seems to imply that sizeof(long) is 4 on your machine, right? >> (on x86_64 linux it's 8, which is why I hadn't noticed before). > > This code on my Mac: > > printf("sizeof(long)=%zu\n", sizeof(long)); > printf("sizeof(long long)=%zu\n", sizeof(long long)); > printf("sizeof(off_t)=%zu\n", sizeof(off_t)); > > produces: > > sizeof(long)=8 > sizeof(long long)=8 > sizeof(off_t)=8 > > The fact that 'long' and 'long long' happen to be the same size (in > this case) is immaterial. What is important is that the code is just > wrong to be using the "%l" specifier for 'long' when the actual > datatype is 'long long' (which is what 'off_t' is under-the-hood in > this case). Ah. OK, so %ld for long and %lld for long long, I suppose. Hmm, not that it matters, but I wonder what the PRId64 macro is. ;-) ATB, Ramsay Jones -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html