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: