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 <[email protected]> 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
...








--
## List details at https://lists.exim.org/mailman/listinfo/exim-users
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to