On 14.09.2011 08:23, Steve wrote:
The following bug has been logged online: Bug reference: 6203 Logged by: Steve Email address: argon...@yandex.ru PostgreSQL version: 9.1.0 Operating system: Windows XP SP3 x32 Description: Building libpq with Visual Studio 9.0 error Details: When I'm trying to build libpq client library with Visual Studio 9.0 (as described in documentation section 16.2, I mean executing "nmake /f win32.mak" in command string), linking step gives me this error: "link.exe @C:\DOCUME~1\Admin\LOCALS~1\Temp\nm36.tmp Creating library .\Release\libpqdll.lib and object .\Release\libpqdll.exp libpq.lib(chklocale.obj) : error LNK2019: unresolved external symbol _pgwin32_setlocale referenced in function _pg_get_encoding_from_locale .\Release\libpq.dll : fatal error LNK1120: 1 unresolved externals"
libpq needs to link in win32setlocale.c, but that was neglected in that makefile used for stand-alone libpq builds. To be honest, I didn't even know you can build libpq that way until now. I just committed a fix for that, you can pull the latest sources from the git repository. The patch I committed is also attached, if you want to just apply it to your current 9.1.0 sources.
Thanks for the report! -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com
commit 09e98a3e170ecdeb25a0e1afe81bdbeeeaf21f48 Author: Heikki Linnakangas <heikki.linnakan...@iki.fi> Date: Wed Sep 14 17:57:32 2011 +0300 Teach the makefile used to build stand-alone libpq on Windows that libpq needs win32setlocale.c now. The cygwin and MSVC build scripts were changed earlier, but this was neglected. This should fix bug report #6203 by Steve. diff --git a/src/interfaces/libpq/win32.mak b/src/interfaces/libpq/win32.mak index fd778d0..70a741a 100644 --- a/src/interfaces/libpq/win32.mak +++ b/src/interfaces/libpq/win32.mak @@ -87,8 +87,8 @@ CLEAN : -@erase "$(INTDIR)\inet_aton.obj" -@erase "$(INTDIR)\crypt.obj" -@erase "$(INTDIR)\noblock.obj" - -@erase "$(INTDIR)\chklocale.obj" - -@erase "$(INTDIR)\inet_net_ntop.obj" + -@erase "$(INTDIR)\chklocale.obj" + -@erase "$(INTDIR)\inet_net_ntop.obj" -@erase "$(INTDIR)\md5.obj" -@erase "$(INTDIR)\ip.obj" -@erase "$(INTDIR)\fe-auth.obj" @@ -114,6 +114,7 @@ CLEAN : -@erase "$(INTDIR)\pgsleep.obj" -@erase "$(INTDIR)\open.obj" -@erase "$(INTDIR)\win32error.obj" + -@erase "$(INTDIR)\win32setlocale.obj" -@erase "$(OUTDIR)\$(OUTFILENAME).lib" -@erase "$(OUTDIR)\$(OUTFILENAME)dll.lib" -@erase "$(OUTDIR)\libpq.res" @@ -159,6 +160,7 @@ LIB32_OBJS= \ "$(INTDIR)\pgsleep.obj" \ "$(INTDIR)\open.obj" \ "$(INTDIR)\win32error.obj" \ + "$(INTDIR)\win32setlocale.obj" \ "$(INTDIR)\pthread-win32.obj" @@ -330,6 +332,11 @@ LINK32_OBJS= \ $(CPP_PROJ) /I"." ..\..\port\win32error.c << +"$(INTDIR)\win32setlocale.obj" : ..\..\port\win32setlocale.c + $(CPP) @<< + $(CPP_PROJ) /I"." ..\..\port\win32setlocale.c +<< + .c{$(CPP_OBJS)}.obj: $(CPP) $(CPP_PROJ) $<
-- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs