build error in initdb on win32

Started by Magnus Haganderover 21 years ago3 messages
#1Magnus Hagander
mha@sollentuna.net

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

#2Magnus Hagander
mha@sollentuna.net
In reply to: Magnus Hagander (#1)
Re: [pgsql-hackers-win32] 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?

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

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Magnus Hagander (#2)
Re: [pgsql-hackers-win32] build error in initdb on win32

"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