Re: Libpq visual c++ build errors, addrinfo and sockaddr_storage redefinition error

From: "Pierre Joye" <pierre(dot)php(at)gmail(dot)com>
To: "Magnus Hagander" <magnus(at)hagander(dot)net>
Cc: pgsql-ports(at)postgresql(dot)org
Subject: Re: Libpq visual c++ build errors, addrinfo and sockaddr_storage redefinition error
Date: 2008-05-06 12:27:36
Message-ID: fe05d1540805060527s758dad50mb6c3b5b5da5d613e@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-ports

Hi Magnus,

On Tue, May 6, 2008 at 1:36 PM, Magnus Hagander <magnus(at)hagander(dot)net> wrote:
> Pierre Joye wrote:
> > hi,
> >
> > While trying to update the PHP postgresql extension to 8.3.1, I met a
> > couple of issues.
> >
> > The first was about not using kerberos, the makefile is incorrect as
> > an error will be raised when kerberos is used and no kerberos is used.
>
> First of all, what version of MSVC are you building this with? And what
> version of the Platform SDK?

We use the last SDK working with VC6 (2003/02). That's sadly a
requirement for php 5.x. We are working on supporting 2k5 and the
latest SDK for 5.3+. However VC6 support has to be kept for the 5.x
branches (at least).

> Second, is there any particular reason you need to build it yourself,
> instead of using the binaries that we ship already?

Mainly because of VC6, we had many issues in the pasts with builds not
using the exact same crt than PHP.

> And third, I'd recommend you try to build it using the "main method"
> which is using the tools in src/tools/msvc, and not the win32.mak
> method. It's much more complete. You can build "just libpq" that way as
> well.

I did not know this one, thanks! I will give it tonight.

> > The 2nd problem is about Shell32.lib, it is missing in the lib list.
> > It is required for SHGetFolderPath.
>
> That's strange, because if that was so then nobody should be able to
> build it. We should be getting the symbol from shfolder.lib.

I got an unknown symbol "SHGetFolderPath" using win32.mak.

> > The last two problems are more tricky. It is about addrinfo and
> > sockaddr. addrinfo is actually defined on windows and seems to have
> > the correct order of the structure elements (see the comment in
> > src/include/getaddrinfo.h). Removing this declaration seems to work
> > (not tested yet).
>
> Again, you seem to be doing *something* wrong here, because it builds
> perfectly fine for others. :-) Anything "unusual" about your
> environment, that you would guess?

Besides the museum piece of software that is the 2003's SDK, nothing ;)

> (And do try the "real" backend build way instead of win32.mak. Even if
> it doesn't fix your issue, it might help with showing us what actually
> is wrong)

Yes, I will definitively try the "normal" way. It will certainly fix
all the issues. I'll come back to you after my tests.

Thanks for your quick reply and the tips!

--
Pierre

http://blog.thepimp.net | http://www.libgd.org

In response to

Responses

Browse pgsql-ports by date

  From Date Subject
Next Message Magnus Hagander 2008-05-06 12:36:10 Re: Libpq visual c++ build errors, addrinfo and sockaddr_storage redefinition error
Previous Message Magnus Hagander 2008-05-06 11:36:47 Re: Libpq visual c++ build errors, addrinfo and sockaddr_storage redefinition error