Re: [exim] Compiling errors with 4.80.1

Αρχική Σελίδα
Delete this message
Reply to this message
Συντάκτης: Griffiths Martyn (LCSS)
Ημερομηνία:  
Προς: 'pdp@exim.org'
Υ/ο: 'exim-users@exim.org'
Αντικείμενο: Re: [exim] Compiling errors with 4.80.1
Hi Phil

That worked a treat. Added the specified line to os.h-FreeBSD and hey presto.

Many thanks
Martyn

-----Original Message-----
From: Phil Pennock [mailto:pdp@exim.org]
Sent: 27 October 2012 00:57
To: Griffiths Martyn (LCSS)
Cc: 'exim-users@???'
Subject: Re: [exim] Compiling errors with 4.80.1

On 2012-10-26 at 14:00 +0000, Griffiths Martyn (LCSS) wrote:
> I'm am trying to compile the latest version of Exim (4.80.1) and am
> getting the error below on compilation.
>
> Version 4.77 builds fine on the system (FreeBSD 6.1 - yes I know :-)
> but I cannot build (with the same Makefile/eximon.conf) either 4.80 or
> 4.80.1. We have no fancy requirements in the Makefile; it's a fairly
> basic config.


This complaint is about the change introduced in 4.80 to let us continue to build on NetBSD, with their changed DNS resolver library. There's no guaranteed portable API for resolver state, it seems that res_state has not been declared on your OS in the headers pulled in by this point.

It's normally in /usr/include/resolv.h :
typedef struct __res_state *res_state

If you look in the OS/ directory, the HP-UX and OpenBSD versions of os.h both make this same typedef, and that's enough to repair things. I'm reluctant to change the FreeBSD definition, simply because this does work on any version of FreeBSD still getting security updates from the FreeBSD project, while adding it might conflict with future changes in the OS (eg, if they start pulling in the NetBSD resolver changes).

-Phil