> On 27 Sep 2018, at 16.53, James <l...@xdrv.co.uk> wrote:
> 
> On 27/09/2018 13:40, Stephan Bosch wrote:
> 
>>> Address   Line  Code
>>> 00000000:       DEBUG BLOCK: 3
>>> 00000001:       EXTENSIONS [1]:
>>> 00000002:         vacation
>>> 00000004:    2: VACATION
>>> 00000007:    4:   seconds: NUM 5
>>> 00000009:         Binary is corrupt.
>>> 
>>> The line numbers differs and 86400 is read as 5.  It is like it has
>>> forgotten the size of an integer or is confused about endianness.
>>> There is something strange, like an #if that guesses wrong.  At least
>>> I have somewhere to start looking.
>>> 
>>> Thank you for checking at your end, I was worried the RC had
>>> introduced an error and your result suggests not.  RCs are for testing
>>> and I am.
>> 
>> The number is stored as a chain of bytes of which the most significant
>> bit indicates whether the next byte still belongs to the number. If this
>> bit is somehow interpreted wrong, the first byte of this number would
>> read as 5, thereby returning '5' as the result and ignoring subsequent
>> bytes (causing corruption at the next item to read).
>> 
>> Since you're using SunOS, your compiler may be doing something funky.
>> Which compiler is used anyway? Perhaps different versions for the
>> Dovecot releases that do and don't work?
> 
> It was studio cc.  gcc doesn't make it through configure and I didn't ask 
> why.  I have some other things to do but will look at this again later.  
> Thank you for the byte code explanations.  The coding at this point is hard 
> to follow with the pointers-to-functions and #defines.


Can you share a little bit more info on how did the compile (or configure even) 
fail with gcc on Solaris 11?

as I have no problems in compiling dovecot and pigeonhole on my Solaris 11.3 
system with gcc. The version that ships with my Solaris is 4.5.2.

I also have Sun Studio 12.5 installed but I have not even tried to compile 
dovecot wit that yet.

Sami

Reply via email to