On Mar 11, 2010, at 11:04 AM, Dan Poirier wrote:

> On Wed, 10 Mar 2010 17:50 -0600, "William A. Rowe Jr."
> <wr...@rowe-clan.net> wrote:
>> On 3/10/2010 4:45 PM, Hyrum K. Wright wrote:
>>> 
>>> Digging deeper, it appears to be an error in apr_vformatter() when parsing 
>>> the format '%lld'.  I'm running the tests on Mac OS X where APR_OFF_FMT_T 
>>> is defined as lld, so this format occurs frequently.  Consequently, I'm 
>>> also seeing a failure in testfmt at line 63, where the parser is attempting 
>>> to parse APR_OFF_FMT_T, but failing.  Can anybody else replicate this bug?
>> 
>> Yes, this function isn't maintained on Mac OS/X.  Which is something
>> of a surprise, given the number of Mac fans around here!
>> 
>> The defintions are very clear, %d must handle an (int) sized object,
>> %ld must handle a (long) sized object, and %lld must handle any
>> long long int sized object.  Patches welcome.
> 
> I'm finding the results autoconf comes up with on Mac OS X 10.6
> confusing.  E.g.:
> 
> #define SIZEOF_OFF_T 8
> 
> and sizeof(APR_INT64_T) is 8 by definition
> 
> but
> 
> #define APR_INT64_T_FMT "ld"
> #define APR_OFF_T_FMT "lld"
> 
> so if INT64_T and OFF_T are the same size, why are they ending up with
> different format strings?

That confused me, too.  Doing some archaeological digging, it appears that Jim 
made that change in r809745.  There's even a note in configure.in that on 
darwin 'long long' == 'long'.  I do not know the rational.

-Hyrum

Reply via email to