On Fri, 17 Jun 2005, Patrice wrote:
> Hello,
>
> I am compiling exim on a tru64 unix
Does that still think it is OSF1? You can tell by looking at the name of
the "build" directory that Exim creates. I would expect it to start
"build-OSF1".
> I have some warnings:
>
> cc -c -O -I. -I/usr/local/include/openssl/ -I/usr/local/include exim.c
> cc: Warning: exim.c, line 3461: In this statement, the referenced type of the
> pointer value "&size" is "unsigned lo
> ng", which is not compatible with "int". (ptrmismatch)
> if (getpeername(0, (struct sockaddr *)(&inetd_sock), &size) == 0)
> -------------------------------------------------------^
> cc: Warning: exim.c, line 3469: In this statement, the referenced type of the
> pointer value "&size" is "unsigned lo
> ng", which is not compatible with "int". (ptrmismatch)
> if (getsockname(0, (struct sockaddr *)(&interface_sock), &size) == 0)
> ---------------------------------------------------------------^
>
>
> should I worry about this warnings or not ?
Almost certainly not. However, this is concerned with the definition of
the data type socklen_t. There is a macro for handling this. In the
configuration for OSF1 it reads
#define EXIM_SOCKLEN_T size_t
That is what is used for the variable "size". Take a look at the man
pages for getpeername and getsockname on your box and see what data type
is expected for the third arguments.
If it is socklen_t, it means that OSF1/tru64 has caught up with the rest
of the world. The fix would be to remove the line
#define EXIM_SOCKLEN_T size_t
from the file OS/os.h-OSF1 and then "make clean", "make", to build it
all again. (Because the default is socklen_t.) If you do this and it
works, please let me know so I can change the distributed files.
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.
Get the Exim 4 book: http://www.uit.co.uk/exim-book