Boost logo

Boost :

Subject: Re: [boost] [release] 1.64.0 please test master snapshot
From: Jürgen Hunold (jhunold_at_[hidden])
Date: 2017-03-21 19:32:18


just tested this on develop...

Am Dienstag, 21. März 2017, 19:44:25 CET schrieb Olaf van der Spek via Boost:
> '"C:/Program Files (x86)/Microsoft Visual
> Studio/2017/Community/VC/Tools/MSVC/14.10.25017/bin/HostX86/vcvarsall.bat"'
> is not recognized as an internal or extern
> al command, operable program or batch file.

The compiler autodetection from a plain cmd shell is broken. That is line 715
of msvc.jam, current
local shell_ret = [ SHELL "$(cl_path) 14.10 -PathToCompiler" ] ;

Manually calling the helper script "cl_path.cmd" results in:

cl_path.cmd 14.10 -PathToCompiler
Join-Path : Das Argument kann nicht an den Parameter "Path" gebunden werden,
da es NULL ist.

Full output attached, unfortunately in a German shell.

git bisect on this command gives:
00c23580afdd519fa716ee32d6dba500e6b1e991 is the first bad commit

which is

commit 00c23580afdd519fa716ee32d6dba500e6b1e991
Author: Arkadiy Shapkin <arkady.shapkin_at_[hidden]>
Date: Sun Mar 19 00:59:40 2017 +0800

    Check Visual Studio 2017+ version in script
    * Fixed `build.bat` stack overflow on some machines by splitting up to
several files
    * CSharp script simplified and now will check VC++ toolset version


This seems to have gone terribly wrong. The old script before this commits
faithfully outputs the correct compiler from a plain windows command shell.



* Dipl.-Math. Jürgen Hunold  ! 
* voice: ++49 4257 300       ! Fährstraße 1
* fax  : ++49 4257 300       ! 31609 Balge/Sebbenhausen
*             ! Germany

boost\tools\build\src\tools\vc141helper>cl_path.cmd 14.10 -PathToCompiler
Join-Path : Das Argument kann nicht an den Parameter "Path" gebunden werden, da es NULL ist.
Bei E:\dev\devel\boost\tools\build\src\tools\vc141helper\GetCLPath.ps1:16 Zeichen:26
+ Add-Type -Path (Join-Path <<<< $PSScriptRoot GetVS2017Configuration.cs) | Out-Null
+ CategoryInfo : InvalidData: (:) [Join-Path], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.JoinPathCommand
ECHO ist ausgeschaltet (OFF).
Der Typ [VisualStudioConfiguration.Main] kann nicht gefunden werden: Stellen Sie sicher, dass die Assembly, die diesen Typ enthält, geladen wird.
Bei E:\dev\devel\boost\tools\build\src\tools\vc141helper\GetCLPath.ps1:17 Zeichen:45
+ $instPath = [VisualStudioConfiguration.Main] <<<< ::Query($toolsetVersion)
+ CategoryInfo : InvalidOperation: (VisualStudioConfiguration.Main:String) [], RuntimeException
+ FullyQualifiedErrorId : TypeNotFound
ECHO ist ausgeschaltet (OFF).
In einem NULL-Array kann kein Index erstellt werden.
Bei E:\dev\devel\boost\tools\build\src\tools\vc141helper\GetCLPath.ps1:30 Zeichen:27
+ Write-Output $cls[ <<<< 0].FullName
+ CategoryInfo : InvalidOperation: (0:Int32) [], RuntimeException
+ FullyQualifiedErrorId : NullArray
ECHO ist ausgeschaltet (OFF).

Boost list run by bdawes at, gregod at, cpdaniel at, john at