Re: CVS HEAD compile failure

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Re: CVS HEAD compile failure
Дата
Msg-id 3FD4BA41.8010604@dunslane.net
обсуждение исходный текст
Ответ на Re: CVS HEAD compile failure  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: CVS HEAD compile failure  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Tom Lane wrote:

>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.
>

In that case I'm confused about why this code compiles on my machine:

----------------
#include <stdio.h>
#include <zconf.h>

typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
typedef void   (*free_func)  OF((voidpf opaque, voidpf address));

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


int main()
{ return 0;
}
--------------------

Also, in compiling pg_dump/common.c, zlib.h (which has this typedef on 
my machine) *is* included before openssl/crypto.h.

Either there is something I'm not getting (quite possible ;-) ), or the 
problem lies deeper. (compiler version maybe?)

cheers

andrew




В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: CVS HEAD compile failure
Следующее
От: strk
Дата:
Сообщение: Re: ERROR: Index pg_toast_8443892_index is not a btree