Re: Strange Windows problem, lock_timeout test request - Mailing list pgsql-hackers

From Craig Ringer
Subject Re: Strange Windows problem, lock_timeout test request
Date
Msg-id 5101D7F5.1050304@2ndQuadrant.com
Whole thread Raw
In response to Re: Strange Windows problem, lock_timeout test request  (Jeff Janes <jeff.janes@gmail.com>)
List pgsql-hackers
On 01/25/2013 02:44 AM, Jeff Janes wrote:
>
> What advantages does mingw have over MSVC?  Is it just that it is
> cost-free, or is it easier to use mingw than MSVC for someone used to
> building on Linux?  (mingw certainly does not seem to have the
> advantage of being fast!)
As far as I'm concerned, the only advantages of MinGW are:

- Mostly compatible with the autotools/gmake toolchain via msys; and
- Not subject to Microsoft's whims regarding zero-cost access to toolchains

I don't particularly like autotools and think that using it on Windows
is pretty ugly. We need msys anyway because our build process uses bison
and flex and at the present time there are quality native Windows ports
of these tools, but there's no fundamental reason they couldn't run
without msys.

The greater appeal is that MinGW means that we're not totally dependent
on Microsoft's whims when it comes to free access to the toolchain. They
have a spotty history there.

There was no free access to Visual Studio compilers until 2004, with the
release of vctoolkit2003 (which has now vanished). They then added
compilers to the Windows SDK starting in (IIRC) 6.0a, through to 7.1
(Windows 7 and .NET 4.5). Those compilers have been removed from the SDK
as of the Windows 8 SDK. The other way to get Microsoft compilers is
from Visual Studio. This usually expensive product was released as a
free-to-use Express version with VC Express 2005. It was a dog of a
thing that required manual registry hacking and/or environment setup and
the manual addition of an SDK to make work. VC Express 2008 provided an
integrated installer, but also removed some debugging facilities. VC
Express 2010 removed more debugging features. Then with VC 2012
Microsoft announced that there would be no 2012 Express edition and that
everybody should convert their apps to the new Metro system for which
free a toolchain would be available. They went back on that under
community pressure and released VC Express 2012, which has many of the
debugging features restored and works well - but who knows if it'll see
any further updates.

All the Visual Studio Express editions require activation to use them,
though this activation is free. Once you have an activation code it's
valid forever, but there's no guarantee the servers will remain
available to generate new codes, so you'd better keep them written down.

Microsoft don't maintain old SDKs and VC Express editions much, if at
all, so installing and using older SDKs gets more complicated over time.
Take VC Express 2010, until recently the newest edition available:

- Uninstall any Visual Studio 2010 redists that're installed, taking
note of the versions
- Install VC Express 2010
- Install VC Express 2010 SP1
- Install VC Express 2010 SP1 Compiler Pack
- Download and reinstall any newer redists that you uninstalled, so your
apps keep working.

.... and it looks like having VC Express 2010 installed might partly
break VC 2012; I'm still unsure of exactly what caused that.

We can not fix any of these problems, nor can we update the toolsets to
run on newer Windows versions. So if we support only Visual Studio,
we're extremely dependent on the uncertain future of the free Microsoft
toolchain.

For that reason, even though it's not a great build environment and on
Windows not a great compiler, MinGW support is important.

If you notice issues with the MinGW builds, please report them so
regression test coverage can be improved. Hardly anyone uses them but
like the fire department, one day if you stop supporting them you really
regret it.

-- Craig Ringer                   http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services




pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: autovacuum not prioritising for-wraparound tables
Next
From: Craig Ringer
Date:
Subject: Re: \d failing to find uppercased object names