Re: [exim] Exim 4.87 RC7 uploaded

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Mike Tubby
Date: 2016-04-02 07:59 -000
À: exim-users
Sujet: Re: [exim] Exim 4.87 RC7 uploaded
Right,

I've spent a couple of CPU cycles on this... according to Stack Exchange
there 's a "%z" modifier for format that is supported in C99 onwards
that gives the correct results for size_t on both 32-bit and 64-bit
platforms:

http://stackoverflow.com/questions/2524611/how-can-one-print-a-size-t-variable-portably-using-the-printf-family

Mike


On 01/04/2016 22:16, Mike Tubby wrote:
> Exim 4.87-RC7 doesn't compile clean on:
>
>     Ubuntu 14.04 LTS 32-bit

>
> we have several 'format' errors - possibly as a result of "unisgned
> int" being loosly constrained and able to be 64-bit on 64-bit machines
> but actually being 32-bit on this platform?
>
> I've not looked at the code in question but the error messages appear
> to suggest that we need to use size_t or an appropriate cast ...
>
> Mike
>
>
>
> gcc readconf.c
> readconf.c: In function ‘read_macro_assignment’:
> readconf.c:585:7: warning: format ‘%lu’ expects argument of type ‘long 
> unsigned int’, but argument 4 has type ‘unsigned int’ [-Wformat=]
>        "macro name too long (maximum is " SIZE_T_FMT " characters)", 
> sizeof(name) - 1);
>        ^
> gcc receive.c
> gcc retry.c
> gcc rewrite.c
> gcc rfc2047.c
> gcc route.c
> gcc search.c
> gcc sieve.c
> gcc smtp_in.c
> gcc smtp_out.c
> gcc spool_in.c
> gcc spool_out.c
> gcc std-crypto.c
> gcc store.c
> gcc string.c
> string.c: In function ‘string_sprintf’:
> string.c:722:5: warning: format ‘%lu’ expects argument of type ‘long 
> unsigned int’, but argument 4 has type ‘unsigned int’ [-Wformat=]
>      sizeof(buffer), format, buffer);
>      ^
> gcc tls.c
> gcc tod.c
> gcc transport.c
> gcc tree.c

>
>
>
>
>
>
>
>
>
>
> On 01/04/2016 22:01, Odhiambo Washington wrote:
>> On 1 April 2016 at 22:46, Jeremy Harris <jgh@???> wrote:
>>
>>> On 01/04/16 20:17, Odhiambo Washington wrote:
>>>> [wash@gw ~/Tools/Exim]$ git clone git://git.exim.org/exim-src.git
>>>> Cloning into exim-src...
>>>> fatal: remote error: access denied or repository not exported:
>>>> /exim-src.git
>>>
>>> git clone git://git.exim.org/exim.git
>>>
>>>
>> Thank you.
>>
>> It's almost clean now, with one exception:
>>
>> ...
>> gcc cdb.c
>> cdb.c: In function 'cdb_find':
>> cdb.c:301: warning: passing argument 1 of 'cdb_hash' discards qualifiers
>> from pointer target type
>> gcc dbmdb.c
>> ...
>>
>>
>>
>>
>
>