Boost logo

Boost :

Subject: Re: [boost] [build] Problems with VC14 and MSPDB140.DLL (was: [testing][teeks] MSVC-14 errors about MSPDB140.DLL)
From: Vladimir Prus (vladimir.prus_at_[hidden])
Date: 2015-07-28 02:49:00


Hi Tom,

On 28-Jul-15 3:44 AM, Tom Kent wrote:

> Looking at the boost-build code, this batch file is created in
> build/src/tools/msvc.jam:744. This file will create the temp file in
> question by grabbing the output of a run of the visual studio environment
> setup routine (i.e. C:\Program Files (x86)\Microsoft Visual Studio
> 14.0\vc\vcvarsall.bat amd64). However, for the msvc-14.0 / address-model=64
> case, it seems that it is combining the 32 bit and 64 bit variables into
> one causing this issue (and other variables that shouldn't be set by the
> amd64 run, such as FrameworkVersion32 and FrameworkVersion64...just running
> the above command only sets FrameworkVersion64).
>
> Is it possible that build is running the 32 bit variable file, then running
> the 64 bit instance?

             local original-vars = [ SPLIT_BY_CHARACTERS [ SHELL set ] : "\n" ] ;
             local new-vars = [ SPLIT_BY_CHARACTERS [ SHELL "$(setup-script) $(setup-options)>nul && set" ] : "\n" ] ;
             local diff-vars = [ set.difference $(new-vars) : $(original-vars) ] ;

So we should be capturing the changes that the particular setup script does to environment; it's not obvious
why this would start to fail with VS 14 - adding

        ECHO $(diff-vars) ;

after the above lines might be illuminating. I'm installing VS 14 now, but it might take a day till
I get to debug.

- Volodya


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk