msvc and vista fun

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: msvc and vista fun
Date: 2007-06-24 17:23:12
Message-ID: 467EA880.9020104@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-patches


I am still very unhappy about the way the MSVC builds work. Although we
have managed to make it sort of work with the buildfarm script, it is
distinctly fragile. Last night, for example, I had a build failure due
to a badly installed zlib. The error state didn't come back to the
buildfarm script, which carried on merrily to the check stage, which
also naturally failed, but also didn't manage to give back an error
state to the buildfarm script, and finally got a failure at the install
stage. That means that we simply can't rely on this build system to give
us accurate state on the buildfarm - we might have had a code breakage
but it won't always tell us that.

Part of the problem, it seems to me, is that this build system is a
hodge-podge of Perl programs and Windows shell scripts. In at least one
case we call perl to write a dynamically generated .bat file which we
then execute. Since the perl is pretty much indispensable (or at least
would need replacing by an engine of similar capability), I think we
should make the whole thing a perl suite with some very minimal .bat
wrappers if necessary.

On a somewhat related note, I have had spectacular lack of success in
getting either MSVC or MinGW builds to work on Vista - so much so that I
have currently abandoned my attempts on that platform and I resorted to
resuscitating an old XP box for testing. Following some advice from
Magnus, I added ACLs to the build root for both an admin and a non-admin
user (cacls buildroot /E /T /G AdminUser:C and similarly for a non-admin
user) . I can build as the admin user but when I come to run initdb it
fails, complaining that it can't find the postgres executable. If I then
switch to the non-admin user, it can run initdb just fine. However, that
user can't build, because it gets a mysterious failure from mt.exe.
MinGW is even worse - it says it can't run gcc because it can't run
cc1.exe (IIRC), so it fails at the configure stage! All of this has cost
me quite a few hours in the last week, with very little to show for it.

Perhaps someone would like to tell me how I can remedy these problems.
More importantly, this should be in an FAQ or some such. Also, I would
like to know if we have really tested out on Vista the privilege
surrendering code that is is supposed to work in Windows. It looks to me
like it might not be working.

If we can make progress on these issues then I'll be happy. If not, I
think we need to look carefully at what we say we can support, and what
we declare to be still experimental.

cheers

andrew

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Dave Page 2007-06-24 18:59:12 Re: msvc and vista fun
Previous Message Andrew Dunstan 2007-06-24 16:30:30 Re: Bugtraq: Having Fun With PostgreSQL

Browse pgsql-patches by date

  From Date Subject
Next Message Dave Page 2007-06-24 18:59:12 Re: msvc and vista fun
Previous Message Simon Riggs 2007-06-24 09:47:59 Re: Load Distributed Checkpoints, take 3