Re: Some more msvc++ 8.2.4 build feedback

From: Magnus Hagander <magnus(at)hagander(dot)net>
To: Charlie Savage <cfis(at)interserv(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Some more msvc++ 8.2.4 build feedback
Date: 2007-08-30 08:07:16
Message-ID: 20070830080716.GE14845@svr2.hagander.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Aug 29, 2007 at 08:53:55PM -0600, Charlie Savage wrote:
> In addition to the encoding issues I have with the 8.2.4 MSVC++ build
> (see previous email), there are some other issues that I've run into:
>
> 1. The custom build step that generates DEF files for DLLS using a perl
> script does not work. The perl script runs, and a slew of symbol
> information is output to the MSVC++ console. And a def file is created,
> but it always empty.
>
> If you run the perl script (gendef.pl) by hand from a DOS prompt, the
> DEF file is created correctly. That of course is a bit of pain since
> you have to do it for a number of the MSVC++ projects.

Yeah, this is a known problem, and it's fixed for 8.3. Really, the msvc
build process in 8.2 has a *lot* of rough edges ;-) The code itself builds
fine, but the buildsystem needed a lot more work.

> 2. The build has hard-coded paths (as far as I can see) to zlib and
> openssl. Is there a way to a) remove them or b) change them ahead of
> time so you don't have to manually change 20+ project files?

They are set in config.pl. Change it there and re-run the mkvcbuild script
and it'll update all those places.

> 3. If you have a contrib module that is not known to the build system
> it blows up. For example, I use PostGIS. When running build.bat it
> stops at postgis (sorry, I didn't write down the error message but can
> easily get it if needed). Could unknown contrib modules just be skipped
> instead?

Uh, can you explain more what you mean? How can the pg build be affected by
postgis?

> 4. I was surprised to find out that a MSVC++ build cannot open a
> database cluster created by a MSYS build (not sure about vice versa
> since I didn't checked). When running pg_ctl start a checksum error is
> returned. Is this expected? I got around it by doing a dump from the
> MSYS database and a restore into the MSVC++ database, which worked fine.

No, it's not really expected, that should work. Are they compiled with the
same options? Compare pg_controldata output between the two clusters (using
mingw pg_controldata for the mingw install and msvc dfor the msvc install
of course)

> Hope these comments help - and thanks for providing the build scripts.
> They make it *much* easier to debug postgresql and contrib modules on
> Windows.
>
> Out of curiosity, will the MSVC++ build become the default for 8.3 on
> Windows or will it remain MSYS for a bit longer?

The binary distribution will be using the MSVC++ build for 8.3. But we'll
keep msys around and fullyi supported, of course.

//Magnus

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Magnus Hagander 2007-08-30 08:14:45 Re: initdb failed on Windows 2000
Previous Message Magnus Hagander 2007-08-30 08:05:04 Re: msvc++ build of 8.2.4 and encodings