Magnus Hagander <mag...@hagander.net> writes:
> On 22 jun 2009, at 18.05, Tom Lane <t...@sss.pgh.pa.us> wrote:
>> I'm also a bit concerned about wrapping a struct
>> field inside such an #if, as that's likely to cause hard-to-debug
>> problems if two compilations read libpq-int.h with different #define
>> environments.

> Since it's a pointer we could just declare it as void, no? Or even #if  
> between void and "real" pointer. Wouldn't that be safe?

Yeah, on reflection I think it'd be safe to do

#if (SSLEAY_VERSION_NUMBER >= 0x00907000L) && !defined(OPENSSL_NO_ENGINE)
        ENGINE          *ptr;
#else
        /* dummy field to keep struct the same if OpenSSL version changes */
        void            *ptr;
#endif

(probably that #if should get wrapped up in an additional #define
instead of being duplicated in several places...)

> (we already have a similar issue with the whole #ifdef use_ssl, don't  
> we? But having one isn't an excuse to create another of course…)

That's controlled by an entry in pg_config.h, though, and won't change
if someone happens to update their openssl install and then recompile
only parts of libpq.

                        regards, tom lane

-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to