Re: [Exim] warning: cast from pointer to integer of differen…

Top Page
Delete this message
Reply to this message
Author: Philip Hazel
Date:  
To: Scott
CC: exim-users
Subject: Re: [Exim] warning: cast from pointer to integer of different size
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