On Thu, Mar 08, 2007 at 10:10:28AM -0500, Tom Lane wrote:
> Magnus Hagander <[EMAIL PROTECTED]> writes:
> > So I suggest the following simple patch.. Any objections?
> 
> One wonders if we need DllMain() at all any more.  We certainly don't
> need that switch statement ...

Indeed. Looking even more into it (sheesh, I really didn't do my
homework here), libpqdll.c isn't even *compiled* on mingw. Or on the new
MSVC build. It's only compiled on the old msvc build. Given that, we can
probably just delete the file.


> Also, isn't the WSACleanup() in freePGconn in the wrong place?  Seems
> like it shouldn't be done until after we've closed the socket.  I'd
> be inclined to put it at the bottom of the routine.

Certainly looks wrong. It's interesting how this could have worked
*before*. That's a clear indication that it really doesn't appear to
matter much what we do here :S

The patch would then look something like this, and a remove of
libpqdll.c.

//Magnus

Index: bcc32.mak
===================================================================
RCS file: /projects/cvsroot/pgsql/src/interfaces/libpq/bcc32.mak,v
retrieving revision 1.26
diff -c -r1.26 bcc32.mak
*** bcc32.mak   11 Jan 2007 02:42:31 -0000      1.26
--- bcc32.mak   8 Mar 2007 15:23:17 -0000
***************
*** 93,99 ****
        [EMAIL PROTECTED] "$(INTDIR)\fe-secure.obj"
        [EMAIL PROTECTED] "$(INTDIR)\pqexpbuffer.obj"
        [EMAIL PROTECTED] "$(INTDIR)\pqsignal.obj"
-       [EMAIL PROTECTED] "$(OUTDIR)\libpqdll.obj"
        [EMAIL PROTECTED] "$(OUTDIR)\win32.obj"
        [EMAIL PROTECTED] "$(INTDIR)\wchar.obj"
        [EMAIL PROTECTED] "$(INTDIR)\encnames.obj"
--- 93,98 ----
***************
*** 155,168 ****

  LINK32=ilink32.exe
  LINK32_FLAGS = -Gn -L$(BCB)\lib;$(INTDIR); -x -Tpd -v
- LINK32_OBJS= "$(INTDIR)\libpqdll.obj"

  # @<< is a Response file, http://www.opussoftware.com/tutorial/TutMakefile.htm

! "$(OUTDIR)\blibpq.dll": "$(OUTDIR)\blibpq.lib" $(LINK32_OBJS) 
"$(INTDIR)\libpq.res" blibpqdll.def
        $(LINK32) @<<
        $(LINK32_FLAGS) +
!       c0d32.obj $(LINK32_OBJS), +
        $@,, +
        "$(OUTDIR)\blibpq.lib" import32.lib cw32mt.lib, +
        blibpqdll.def,"$(INTDIR)\libpq.res"
--- 154,166 ----

  LINK32=ilink32.exe
  LINK32_FLAGS = -Gn -L$(BCB)\lib;$(INTDIR); -x -Tpd -v

  # @<< is a Response file, http://www.opussoftware.com/tutorial/TutMakefile.htm

! "$(OUTDIR)\blibpq.dll": "$(OUTDIR)\blibpq.lib" "$(INTDIR)\libpq.res" 
blibpqdll.def
        $(LINK32) @<<
        $(LINK32_FLAGS) +
!       c0d32.obj , +
        $@,, +
        "$(OUTDIR)\blibpq.lib" import32.lib cw32mt.lib, +
        blibpqdll.def,"$(INTDIR)\libpq.res"
Index: fe-connect.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v
retrieving revision 1.344
diff -c -r1.344 fe-connect.c
*** fe-connect.c        20 Feb 2007 15:20:51 -0000      1.344
--- fe-connect.c        8 Mar 2007 15:16:58 -0000
***************
*** 1840,1848 ****
  #ifdef WIN32

        /*
!        * Make sure socket support is up and running. Even though this is done 
in
!        * libpqdll.c, that is only for MSVC and BCC builds and doesn't work for
!        * static builds at all, so we have to do it in the main code too.
         */
        WSADATA         wsaData;

--- 1840,1846 ----
  #ifdef WIN32

        /*
!        * Make sure socket support is up and running.
         */
        WSADATA         wsaData;

***************
*** 1918,1927 ****
        PGnotify   *notify;
        pgParameterStatus *pstatus;

- #ifdef WIN32
-       WSACleanup();
- #endif
-
        if (!conn)
                return;

--- 1916,1921 ----
***************
*** 1986,1991 ****
--- 1980,1989 ----
        termPQExpBuffer(&conn->errorMessage);
        termPQExpBuffer(&conn->workBuffer);
        free(conn);
+
+ #ifdef WIN32
+       WSACleanup();
+ #endif
  }

  /*
Index: win32.mak
===================================================================
RCS file: /projects/cvsroot/pgsql/src/interfaces/libpq/win32.mak,v
retrieving revision 1.43
diff -c -r1.43 win32.mak
*** win32.mak   11 Jan 2007 02:42:31 -0000      1.43
--- win32.mak   8 Mar 2007 15:22:29 -0000
***************
*** 63,69 ****
        [EMAIL PROTECTED] "$(INTDIR)\fe-secure.obj"
        [EMAIL PROTECTED] "$(INTDIR)\pqexpbuffer.obj"
        [EMAIL PROTECTED] "$(INTDIR)\pqsignal.obj"
-       [EMAIL PROTECTED] "$(OUTDIR)\libpqdll.obj"
        [EMAIL PROTECTED] "$(OUTDIR)\win32.obj"
        [EMAIL PROTECTED] "$(INTDIR)\wchar.obj"
        [EMAIL PROTECTED] "$(INTDIR)\encnames.obj"
--- 63,68 ----
***************
*** 143,149 ****
   /pdb:"$(OUTDIR)\libpqdll.pdb" /machine:I386 
/out:"$(OUTDIR)\$(OUTFILENAME).dll"\
   /implib:"$(OUTDIR)\$(OUTFILENAME)dll.lib"  /def:$(OUTFILENAME)dll.def
  LINK32_OBJS= \
-       "$(INTDIR)\libpqdll.obj" \
        "$(OUTDIR)\$(OUTFILENAME).lib" \
        "$(OUTDIR)\libpq.res"

--- 142,147 ----
***************
*** 159,165 ****
        $(RSC) $(RSC_PROJ) libpq.rc


! "$(OUTDIR)\$(OUTFILENAME).dll" : "$(OUTDIR)" "$(OUTDIR)\libpqdll.obj" 
"$(INTDIR)\libpqdll.obj" "$(INTDIR)\libpq.res"
        $(LINK32) @<<
        $(LINK32_FLAGS) $(LINK32_OBJS)
  <<
--- 157,163 ----
        $(RSC) $(RSC_PROJ) libpq.rc


! "$(OUTDIR)\$(OUTFILENAME).dll" : "$(OUTDIR)" "$(INTDIR)\libpq.res"
        $(LINK32) @<<
        $(LINK32_FLAGS) $(LINK32_OBJS)
  <<
---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to