Re: Visual Studio 2012 RC

From: Noah Misch <noah(at)leadboat(dot)com>
To: Craig Ringer <craig(at)2ndQuadrant(dot)com>
Cc: Andrew Dunstan <andrew(at)dunslane(dot)net>, Brar Piening <brar(at)gmx(dot)de>, Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>, Magnus Hagander <magnus(at)hagander(dot)net>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Visual Studio 2012 RC
Date: 2013-01-24 01:38:25
Message-ID: 20130124013825.GA29954@tornado.leadboat.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi Craig,

Thanks for testing.

On Wed, Jan 23, 2013 at 02:55:55PM +0800, Craig Ringer wrote:
> When building a tree with your patch applied using VS 2012 Express via a
> command line environment set up with:
>
> "c:\program files (x86)\Microsoft Visual Studio
> 11.0\VC\vcvarsall.bat" x86

Likewise.

> which is the same as the "32-bit build tools" Start menu entry, the
> build fails with:
>
>
> C:\Program Files
> (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets(518,5):
> error MSB8008: Specified platform toolset (v110) is not installed or
> invalid. Please make sure that a supported PlatformToolset value is
> selected.
> [c:\pg\postgresql\sdk8.0_cl17_vs11.0\x86\Release\vs2012\postgres.vcxproj]
>
>
> In case it's relevant, the Microsoft SDK for Windows 8 is installed on
> this machine and appears to have been detected, as WindowsSdkDir has
> been set to C:\Program Files (x86)\Windows Kits\8.0\ .

My WindowsSdkDir was the same. I had not manually installed the SDK; I
suppose it was installed as part of Visual Studio Express 2012 for Windows
Desktop. I tried manually installing Windows SDK 8.59.29750, and the build
still worked fine.

> I haven't explicitly set PlatformToolset in the environment.
>
> The machine also has Visual Studio 2010 Express SP1 and the Microsoft
> Windows SDK 7.1 with VS SP1 and VS SP1 compiler update on it. All work fine.
>
> "where msbuild" reports:
>
> c:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe
> c:\Windows\Microsoft.NET\Framework64\v3.5\MSBuild.exe

Mine are found in Framework, not Framework64:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe

If I prepend Framework64 to my path, the build does fail, albeit not the same
way your build fails:

d:\cygwin\home\nm\src\pg\postgresql\postgres.vcxproj(16,3): error MSB4019: The imported project "d:\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

> and "msbuild" reports:
>
> Microsoft (R) Build Engine version 4.0.30319.17929
> [Microsoft .NET Framework, version 4.0.30319.17929]
> Copyright (C) Microsoft Corporation. All rights reserved.

Identical:

Microsoft (R) Build Engine version 4.0.30319.17929
[Microsoft .NET Framework, version 4.0.30319.17929]
Copyright (C) Microsoft Corporation. All rights reserved.

> "cl" reports:
>
> Microsoft (R) C/C++ Optimizing Compiler Version 17.00.50727.1 for x86
> Copyright (C) Microsoft Corporation. All rights reserved.
>
> usage: cl [ option... ] filename... [ /link linkoption... ]

Identical:

Microsoft (R) C/C++ Optimizing Compiler Version 17.00.50727.1 for x86
Copyright (C) Microsoft Corporation. All rights reserved.

> The host is a 64-bit Windows 7 machine.

Windows Server 2008 R2, 64-bit, SP1

> How have you been testing VS2012 builds? In what environment?

The most notable difference is that I have no pre-VS2012 Microsoft compilers
installed and no SDKs installed by my explicit action. I suggest assessing
how the Framework64 directories get into your path and trying without them.

nm

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Noah Misch 2013-01-24 02:12:05 Re: patch submission: truncate trailing nulls from heap rows to reduce the size of the null bitmap [Review]
Previous Message Joshua D. Drake 2013-01-24 01:21:00 Re: logical changeset generation v4 - Heikki's thoughts about the patch state