build error in initdb on win32
Current cvs does not compile on win32. Error is:
gcc -O2 -fno-strict-aliasing -Wall -Wmissing-prototypes
-Wmissing-declarations initdb.o win32ver.o
-L../../../src/interfaces/libpq -lpq -L../../../src/port
-L/c/openssl/lib/MingW -lpgport -lssleay32 -leay32 -lwsock32 -lm
-lws2_32 -o initdb.exe
initdb.o(.text+0xad6):initdb.c: undefined reference to
`pg_char_to_encoding'
initdb.o(.text+0xae8):initdb.c: undefined reference to
`pg_valid_server_encoding'
initdb.o(.text+0x3dc0):initdb.c: undefined reference to `pqsignal'
initdb.o(.text+0x5c76):initdb.c: undefined reference to `pqsignal'
initdb.o(.text+0x5c84):initdb.c: undefined reference to `pqsignal'
initdb.o(.text+0x5c92):initdb.c: undefined reference to `pqsignal'
initdb.o(.text+0x5ca0):initdb.c: undefined reference to `pqsignal'
initdb.o(.text+0x5cab):initdb.c: more undefined references to `pqsignal'
follow
make: *** [initdb] Error 1
I beleive this stopped working sometime the past couple of days. Ideas?
//Magnus
Current cvs does not compile on win32. Error is:
gcc -O2 -fno-strict-aliasing -Wall -Wmissing-prototypes
-Wmissing-declarations initdb.o win32ver.o
-L../../../src/interfaces/libpq -lpq -L../../../src/port
-L/c/openssl/lib/MingW -lpgport -lssleay32 -leay32 -lwsock32 -lm
-lws2_32 -o initdb.exe
initdb.o(.text+0xad6):initdb.c: undefined reference to
`pg_char_to_encoding'
initdb.o(.text+0xae8):initdb.c: undefined reference to
`pg_valid_server_encoding'
initdb.o(.text+0x3dc0):initdb.c: undefined reference to `pqsignal'
initdb.o(.text+0x5c76):initdb.c: undefined reference to `pqsignal'
initdb.o(.text+0x5c84):initdb.c: undefined reference to `pqsignal'
initdb.o(.text+0x5c92):initdb.c: undefined reference to `pqsignal'
initdb.o(.text+0x5ca0):initdb.c: undefined reference to `pqsignal'
initdb.o(.text+0x5cab):initdb.c: more undefined references to
`pqsignal'
follow
make: *** [initdb] Error 1I beleive this stopped working sometime the past couple of days. Ideas?
Not so. It came from a patch of my own :-)
The underlying problem is still there, though. initdb is pulling all
these symbols in from libpq.dll, which is clearly the wrong place to get
them... Or are they supposed to be available? If so, they should be
added to the official API, no?
(The problem occured when I tried to fix the problem "fix MinGW libpq to
export only required symbols". I have a patch that fixes this problem,
but causes these others instead)
Best way to fix this?
//Magnus
Import Notes
Resolved by subject fallback
"Magnus Hagander" <mha@sollentuna.net> writes:
The underlying problem is still there, though. initdb is pulling all
these symbols in from libpq.dll, which is clearly the wrong place to get
them... Or are they supposed to be available? If so, they should be
added to the official API, no?
"Used by our own code" does not equate to "should be part of the
official API".
(The problem occured when I tried to fix the problem "fix MinGW libpq to
export only required symbols". I have a patch that fixes this problem,
but causes these others instead)
You'd better back off a little on what you're removing. Or forget the
whole thing; I don't really agree that the above is a bug. libpq has
always had rather more visible symbols than are in the official API,
and there are probably people using some of them.
regards, tom lane