Re: CVS HEAD compile failure - Mailing list pgsql-hackers

From Tom Lane
Subject Re: CVS HEAD compile failure
Date
Msg-id 17665.1070900968@sss.pgh.pa.us
Whole thread Raw
In response to Re: CVS HEAD compile failure  (Bruce Momjian <pgman@candle.pha.pa.us>)
Responses Re: CVS HEAD compile failure  (Andrew Dunstan <andrew@dunslane.net>)
Re: CVS HEAD compile failure  (Mark Adler <madler@alumni.caltech.edu>)
List pgsql-hackers
Bruce Momjian <pgman@candle.pha.pa.us> writes:
> Andrew Dunstan wrote:
>> fresh checkout just compiled fine for me on Linux (RH8) with ssl 
>> enabled. Maybe it is your openssl installation?

> It is openssl 0.9.7c.  7.4 CVS compiles fine so I don't see how it can
> be my SSL install.

I've been able to reproduce this on one of my machines, and it's nasty.
It's a conflict between other people's headers.

/usr/local/include/zlib.h (version 1.1.4) quoth:

typedef void   (*free_func)  OF((voidpf opaque, voidpf address));

/usr/local/ssl/include/openssl/crypto.h (0.9.7c) quoth:

int CRYPTO_set_locked_mem_functions(void *(*m)(size_t), void (*free_func)(void *));

So if this version of zlib.h is included before this version of
crypto.h, things break.  Other way 'round works fine.

We can work around this by being more careful about inclusion order
of these headers.  Ultimately it would be nice if the upstream library
authors could avoid the name conflict.  I'm of the opinion that zlib
should not be typedef'ing a name as generic as "free_func", but if
they've made that part of their exported API, it might be hard for them
to change.
        regards, tom lane


pgsql-hackers by date:

Previous
From: strk
Date:
Subject: Re: ERROR: Index pg_toast_8443892_index is not a btree
Next
From: Tom Lane
Date:
Subject: Re: CVS HEAD compile failure