On Sun, 21 Dec 2003, Scott wrote:
> I am getting -- warning: cast from pointer to integer of different size
> when compiling Exim and the monitor program on an AMD64. Mandrake Corp. 2.1
> x86_64
> This is with Exim v4.30.
This is probably not a problem.
> I also had to modify the OS/Makefile-Linux so it could find the X11 libs.
>
> From:
> XLFLAGS=-L$(X11)/lib
> X11_LD_LIB=$(X11)/lib
> To:
> XLFLAGS=-L$(X11)/lib64
> X11_LD_LIB=$(X11)/lib64
That is clearly not something that can be done for the general Linux
Makefile.
What you *should* have done is to put those lines in your Local/Makefile
file instead of modifying OS/Makefile-Linux. Then when you compile the
next release of Exim, all you need to do is copy your Local/Makefile.
[error messages snipped]
I'll take a more detailed look at all these when I get a chance. I know
from previous checks that some compilers are too clever for their own
good. For instance:
> filter.c: In function `interpret_commands':
> filter.c:1900: warning: cast from pointer to integer of different size
That line is
mode = (int)(commands->args[1]);
There's an explicit cast ("(int)") in that statement which says "I know
what I'm doing here, copying this into an int", but the compiler still
complains. I do not know of any way of stopping this, short of using a
union instead of (void *) to hold "data of unspecified type". The
annoyance with a union is that you then have to enumerate all the
different types.
> How reliable will Exim be with these warnings?
I think it will be no less reliable than without them.
Philip
--
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