Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1TxGkP-0007Mp-2m for pgsql-hackers@arkaria.postgresql.org; Mon, 21 Jan 2013 12:45:09 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.72) (envelope-from ) id 1TxGkO-0003Td-Jz for pgsql-hackers@arkaria.postgresql.org; Mon, 21 Jan 2013 12:45:08 +0000 Received: from makus.postgresql.org ([98.129.198.125]) by malur.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1TxGkN-0003TU-6I for pgsql-hackers@postgresql.org; Mon, 21 Jan 2013 12:45:07 +0000 Received: from relay3-d.mail.gandi.net ([217.70.183.195]) by makus.postgresql.org with esmtp (Exim 4.72) (envelope-from ) id 1TxGkK-0008Le-RT for pgsql-hackers@postgresql.org; Mon, 21 Jan 2013 12:45:06 +0000 X-Originating-IP: 217.70.178.151 Received: from mfilter23-d.gandi.net (mfilter23-d.gandi.net [217.70.178.151]) by relay3-d.mail.gandi.net (Postfix) with ESMTP id 08C7FA80C0; Mon, 21 Jan 2013 13:44:53 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at mfilter23-d.gandi.net Received: from relay3-d.mail.gandi.net ([217.70.183.195]) by mfilter23-d.gandi.net (mfilter23-d.gandi.net [10.0.15.180]) (amavisd-new, port 10024) with ESMTP id YrLQSPDOo5-h; Mon, 21 Jan 2013 13:44:51 +0100 (CET) X-Originating-IP: 98.27.58.255 Received: from [192.168.10.146] (cpe-098-027-058-255.nc.res.rr.com [98.27.58.255]) (Authenticated sender: adsend@dunslane.net) by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id 39907A80DF; Mon, 21 Jan 2013 13:44:50 +0100 (CET) Message-ID: <50FD3840.8010700@dunslane.net> Date: Mon, 21 Jan 2013 07:44:48 -0500 From: Andrew Dunstan User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120827 Thunderbird/15.0 MIME-Version: 1.0 To: Craig Ringer CC: Noah Misch , Brar Piening , Heikki Linnakangas , Magnus Hagander , pgsql-hackers Subject: Re: Visual Studio 2012 RC References: <4FCA84F6.5090706@gmx.de> <4FD3F553.9060105@gmx.de> <4FEB0D39.6080108@enterprisedb.com> <50526BA6.3030103@gmx.de> <20121002011201.GC30396@tornado.leadboat.com> <507B2B0A.2030506@gmx.de> <20121015115351.GC4627@tornado.leadboat.com> <20130101025421.GA17763@tornado.leadboat.com> <50FD0B35.3020503@2ndQuadrant.com> In-Reply-To: <50FD0B35.3020503@2ndQuadrant.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org On 01/21/2013 04:32 AM, Craig Ringer wrote: > On 01/01/2013 10:54 AM, Noah Misch wrote: >> On Mon, Oct 15, 2012 at 07:53:51AM -0400, Noah Misch wrote: >>> The only matter still requiring attention is a fix for IsoLocaleName(). >> Following off-list coordination with Brar, I went about finishing up this >> patch. The above problem proved deeper than expected. For Windows Vista, >> Microsoft made RFC 4646 tags the preferred way to denote a locale in Windows. >> Microsoft calls them "locale names". Starting with Visual Studio 2012, >> setlocale() accepts locale names in addition to all the things it previously >> accepted. One can now use things like "initdb --locale=zh-CN" and "CREATE >> DATABASE foo LC_CTYPE = 'pl'". This meant updating win32_langinfo() and >> find_matching_ts_config() to handle the new formats. In passing, I fixed an >> unchecked malloc() in win32_langinfo(). >> >> In addition to expanding the set of valid locale inputs, VS2012 changes the >> (undocumented) content of _locale_t to hold locale names where it previously >> held locale identifiers. I taught IsoLocaleName() to handle the new material. >> I also sought to improve the comments on IsoLocaleName(); its significance was >> not previously clear to me. This thread has some background: >> http://archives.postgresql.org/message-id/4964B45E.5080003@hagander.net >> >> Though I'm not entirely sanguine about digging into the officially-opaque >> _locale_t, we have been doing it that way for several years. None of the >> alternatives are clearly-satisfying. In particular, I found no good way to >> look up the code page corresponding to a locale name on pre-Vista systems. >> The CRT itself handles this by translating locale names to locale identifiers >> using a lookup table. The Gnulib "localename" and "setlocale" modules are >> also interesting studies on the topic. >> >> In previous reviews, I missed the need to update pgwin32_putenv(). The >> addition of VS2010 support had also missed it, so this catches up. That >> function has other problems, but I will hold them for another patch. >> >> Tester warning: if you currently have some form of VS2010 installed, including >> the compilers of Windows SDK 7.1, beware of this problem: >> http://stackoverflow.com/questions/10888391/link-fatal-error-lnk1123-failure-during-conversion-to-coff-file-invalid-or-c > FYI, you can properly fix this without uninstalling anything, giving > you a system with a working VS 2012 as well as working SDK 7.1 / VS > 2010 SP1 32-bit and 64-bit compilers. > > Install the tools in the following order: > > * VS Express 2010: > http://www.microsoft.com/visualstudio/eng/products/visual-studio-2010-express > * Windows SDK 7.1 > * VS 2010 SP1: > http://www.microsoft.com/en-au/download/details.aspx?id=23691 > * VS 2010 SP1 Compiler Update: > http://www.microsoft.com/en-au/download/details.aspx?id=4422 > * VS Express 2012 > > Note that SDK 7.1 and VS 2010 will fail to install if you have a newer > version of the Visual c++ 2010 runtime installed. Newer programs often > install this for you. As a workaround, you must uninstall the newer > runtime, install Visual Studio, the SDK, and service pack, then > reinstall the newer runtime to get the programs that require it to > work again. > > I've written more about both of these in the TROUBLESHOOTING section > of https://github.com/2ndQuadrant/pg_build_win/blob/master/README.md > That's useful information, which should perhaps be put somewhere more obvious for people to find, like the wiki. I realise you're doing a lot of stuff, but you seem to be ahead of just about everyone (including me and I suspect Magnus) on this, so maybe you could take a peek at this patch? cheers andrew -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers