Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-hackers by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group