Thread: ecpg build now breaks mingw

ecpg build now breaks mingw

From
Andrew Dunstan
Date:
dllwrap  -o libecpg.dll --dllname libecpg.dll  --def libecpgdll.def execute.o typename.o descriptor.o data.o error.o
prepare.omemory.o connect.o misc.o path.o strlcpy.o snprintf.o -L../pgtypeslib -L../../../../src/interfaces/libpq
-L../../../../src/port-L/mingw/lib -lpgtypes -lpq -lm -lshfolder 
 
path.o(.text+0x741): In function `get_progname':
C:/msys/1.0/local/pgbuildfarm/buildroot/HEAD/pgsql.836/src/interfaces/ecpg/ecpglib/path.c:413: undefined reference to
`pg_strcasecmp'
c:\MinGW\bin\dllwrap.exe: c:\MinGW\bin\gcc exited with status 1

I presume that this symbol was previously exported by the pgtypes lib but now we have an explicit exports list is no
longer.

Is it just a matter of adding a line to the exports.txt file?

cheers

andrew




Re: ecpg build now breaks mingw

From
Tom Lane
Date:
Andrew Dunstan <andrew@dunslane.net> writes:
> dllwrap  -o libecpg.dll --dllname libecpg.dll  --def libecpgdll.def execute.o typename.o descriptor.o data.o error.o
prepare.omemory.o connect.o misc.o path.o strlcpy.o snprintf.o -L../pgtypeslib -L../../../../src/interfaces/libpq
-L../../../../src/port-L/mingw/lib -lpgtypes -lpq -lm -lshfolder 
 
> path.o(.text+0x741): In function `get_progname':
> C:/msys/1.0/local/pgbuildfarm/buildroot/HEAD/pgsql.836/src/interfaces/ecpg/ecpglib/path.c:413: undefined reference to
`pg_strcasecmp'

I just fixed that.

> I presume that this symbol was previously exported by the pgtypes lib but now we have an explicit exports list is no
longer.
> Is it just a matter of adding a line to the exports.txt file?

Well, that would be the solution if we intended to make pg_strcasecmp
part of libpgtype's official API, but that doesn't seem like a good plan
at all.  Instead, the right thing is for ecpglib to pull its own copy
from src/port/.

BTW, it looks like this dependency exists only on Cygwin/Win32, not
other platforms, which is no doubt why we didn't see it before.
        regards, tom lane