Thread: Re: [pgsql-hackers-win32] build error in initdb on win32

Re: [pgsql-hackers-win32] build error in initdb on win32

From
"Magnus Hagander"
Date:
>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

Re: [pgsql-hackers-win32] build error in initdb on win32

From
Tom Lane
Date:
"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