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
|
Список | 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 по дате отправления: