Re: [exim] snapshot compilation errors w/ PCRE

Top Page
Delete this message
Reply to this message
Author: Philip Hazel
Date:  
To: John Jetmore
CC: exim-users
Subject: Re: [exim] snapshot compilation errors w/ PCRE
On Thu, 28 Jun 2007, John Jetmore wrote:

> I think 4.68-PH/13 is causing me build errors on a machine that does not
> have PCRE installed outside of the version included in exim. Compilation
> gives this error:
>
> gcc pcre_maketables.c
> In file included from pcre_maketables.c:50:
> pcre_internal.h:239:18: pcre.h: No such file or directory


Hmm. I thought I fixed that by adding an explicit -I. to each compile
step in the src/pcre/Makefile. It fixed a problem for me, but I was
hacking without thinking hard enough, perhaps.

> This patch fixes it:
> --- pcre_internal.h.dist        2007-06-28 09:05:39.000000000 -0500
> +++ pcre_internal.h     2007-06-28 09:06:37.000000000 -0500
> @@ -236,7 +236,7 @@
>   /* Include the public PCRE header and the definitions of UCP character property values. */

>
> -#include <pcre.h>
> +#include "pcre.h"
> #include "ucp.h"
>
> /* When compiling for use with the Virtual Pascal compiler, these functions
>
> ...which is all well and good except I see in the cvs diff for PH/13 that
> it had previously been "pcre.h" and was changed to <pcre.h> for 7.0->7.2.
> I assume it's an oversight, but you never know...


Somebody wanted this done when we changed over to automake for building
PCRE. However, I cannot now find the reason/reference. I must say, using
<pcre.h> does not seem right to me at all, either in Exim or in PCRE
itself.... Aha! Found the reference:

* Use #include<> instead of #include"" for pcre.h. The latter causes the
compiler to look in the same directory as the calling file (ignoring any
-I... directives, even), which is trouble if the calling file is in
$(srcdir) and pcre.h is in $(builddir). (At least this was the case in
Visual Studio.)

Don't know why I was taken in by that. It is obviously wrong, isn't it?
I think the change was made while in the throes of the 7.0->7.1
building rebuild.

I'll patch Exim, and also make the change in the next PCRE release too.
(There may indeed by a srcdir/builddir problem, but it's not right to
use <pcre.h>, which gets the installed copy, which might be wrong. If
there is a problem, it must be solved another way.)

-- 
Philip Hazel            University of Cambridge Computing Service
Get the Exim 4 book:    http://www.uit.co.uk/exim-book