Cyrus 2.3.13 RC1

Wesley Craig wes at umich.edu
Thu Oct 2 18:00:48 EDT 2008


On 02 Oct 2008, at 12:23, Lorenzo M. Catucci wrote:
> I'd be very happy if the perl patchlet and the update of  
> config.guess/sub
> I wrote about on may, 27 would be applied too;

Is there some reason we wouldn't move to the latest config.guess/ 
sub?  Also, can you submit a bugzilla about the perl dlopen thing?

> As for the patch we are discussing here, I found the reported bug just
> chilling, but I feared the unconditional 64-bit stuff too... The only
> problem is I don't have any old-fashioned pure 32 bit off_t system  
> handy,
> and someone else should check the patch on a real system.

Perhaps we need to have a 64-bit strategy discussion.  There doesn't  
seem to be a lot of cyrus code related to size sensitivity.  I  
personally hate the syntax:

#if SIZEOF_OFF_T == 8
     if (p < dend) scdata->index_size = strtoull(p, &p, 10);
#else
      if (p < dend) scdata->index_size = strtoul(p, &p, 10);
#endif

and:

      datalen = snprintf(data, sizeof(data),
#if SIZEOF_OFF_T == 8
		       "%u %u %ld %lu %llu %lu %u %lu %lu %u " MODSEQ_FMT,
#else
  		       "%u %u %ld %lu %lu %lu %u %lu %lu %u " MODSEQ_FMT,
#endif
  		       STATUSCACHE_VERSION, scdata->statusitems,

(Don't take it personally, I can totally see why you'd write it that  
way -- cyrus offers no hints on doing it any other way.)  I would  
typically have a header which isolated all the size sensitivity and  
write the above blocks as:

     if (p < dend) scdata->index_size = strtoofft(p, &p, 10);

and:

      datalen = snprintf(data, sizeof(data),
		       "%u %u %ld %lu %" PRIofft "d %lu %u %lu %lu %u " MODSEQ_FMT,
  		       STATUSCACHE_VERSION, scdata->statusitems,

We have a patch in bugzilla that adds a 'z' modifier specifically to  
support size_t.  But what about uid_t, off_t, pid_t.

:wes


More information about the Cyrus-devel mailing list