Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

b2 can't find MSVC toolset for Visual Studio 2022 v17.9.0 #363

Open
3 tasks done
dimitry-unified-streaming opened this issue Feb 26, 2024 · 0 comments
Open
3 tasks done
Labels
bug Something isn't working

Comments

@dimitry-unified-streaming
Copy link
Contributor

Make sure you completed the following tasks

Environment and version details

  • Operating System+version: Windows 10
  • Compiler+version: MSVC 14.3 (from Visual Studio 2022 v17.9.0)
  • Shell: cmd.exe
  • B2 Version: B2 5.0.1 (OS=NT, jobs=8) (built from commit 3af675b)
  • B2 Configuration: Output of b2 --debug-configuration in your project.
notice: loading B2 from C:/Program Files/B2/main/.b2/build-system.jam
notice: Searching 'C:\Windows' 'C:\Users\Dim' 'C:\Users\Dim' 'C:\Program Files\B2\main\.b2\build' 'C:\Program Files\B2\main\.b2\contrib' 'C:\Program Files\B2\main\.b2\options' 'C:\Program Files\B2\main\.b2\tools' 'C:\Program Files\B2\main\.b2\util' 'C:/Program Files/B2/main/.b2' for site-config configuration file 'site-config.jam'.
notice: Configuration file 'site-config.jam' not found in 'C:\Windows' 'C:\Users\Dim' 'C:\Users\Dim' 'C:\Program Files\B2\main\.b2\build' 'C:\Program Files\B2\main\.b2\contrib' 'C:\Program Files\B2\main\.b2\options' 'C:\Program Files\B2\main\.b2\tools' 'C:\Program Files\B2\main\.b2\util' 'C:/Program Files/B2/main/.b2'.
notice: Searching 'C:\Users\Dim' 'C:\Users\Dim' 'C:\Program Files\B2\main\.b2\build' 'C:\Program Files\B2\main\.b2\contrib' 'C:\Program Files\B2\main\.b2\options' 'C:\Program Files\B2\main\.b2\tools' 'C:\Program Files\B2\main\.b2\util' 'C:/Program Files/B2/main/.b2' for user-config configuration file 'user-config.jam'.
notice: Loading user-config configuration file 'user-config.jam' from 'C:/Users/Dim'.
notice: [msvc-cfg] msvc-14.2 detected, command: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\cl.exe'
notice: will use 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\cl.exe' for msvc, condition <toolset>msvc-14.2
notice: [generate-setup-cmd] 14.29.30133 is 14.2
notice: [generate-setup-cmd] 14.29.30133 is 14.2
notice: [generate-setup-cmd] 14.29.30133 is 14.2
notice: [generate-setup-cmd] 14.29.30133 is 14.2
notice: [generate-setup-cmd] 14.29.30133 is 14.2
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>x86/<address-model>32', setup: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>/<address-model>32', setup: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>x86/<address-model>64', setup: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>/<address-model>64', setup: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>x86/<address-model>', setup: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>/<address-model>', setup: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>ia64/<address-model>64', setup: 'C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Auxiliary/Build/vcvarsall.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>ia64/<address-model>', setup: 'C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Auxiliary/Build/vcvarsall.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>arm/<address-model>32', setup: 'C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Auxiliary/Build/vcvarsall.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>arm/<address-model>64', setup: 'C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Auxiliary/Build/vcvarsall.bat'
notice: [cmdline-cfg] toolset msvc-14.3 not previously configured; attempting to auto-configure now
warning: toolset msvc initialization: can not find tool cl.exe
warning: initialized from

warning: Did not find command for MSVC toolset. If you have Visual Studio 2017 installed you will need to specify the full path to the command, set VS150COMNTOOLS for your installation, or build from the 'Visual Studio Command Prompt for VS 2017'.

notice: will use 'cl.exe' for msvc, condition <toolset>msvc-14.3
notice: [msvc-cfg] condition: '<toolset>msvc-14.3/<architecture>x86/<address-model>32', setup: ''
notice: [msvc-cfg] condition: '<toolset>msvc-14.3/<architecture>/<address-model>32', setup: ''
notice: [msvc-cfg] condition: '<toolset>msvc-14.3/<architecture>x86/<address-model>64', setup: ''
notice: [msvc-cfg] condition: '<toolset>msvc-14.3/<architecture>/<address-model>64', setup: ''
notice: [msvc-cfg] condition: '<toolset>msvc-14.3/<architecture>x86/<address-model>', setup: ''
notice: [msvc-cfg] condition: '<toolset>msvc-14.3/<architecture>/<address-model>', setup: ''
notice: [msvc-cfg] condition: '<toolset>msvc-14.3/<architecture>ia64/<address-model>64', setup: ''
notice: [msvc-cfg] condition: '<toolset>msvc-14.3/<architecture>ia64/<address-model>', setup: ''
notice: [msvc-cfg] condition: '<toolset>msvc-14.3/<architecture>arm/<address-model>32', setup: ''
notice: [msvc-cfg] condition: '<toolset>msvc-14.3/<architecture>arm/<address-model>64', setup: ''
notice: [cmdline-cfg] adding toolset=msvc-14.3 to the build request.

Brief problem description

After updating Microsoft Visual Studio 2022 from v17.8.5 to v17.9.0, b2 cannot detect toolset msvc-14.3 anymore, stating "Did not find command for MSVC toolset". This used to work just fine, having used this many times in the past.

Steps to reproduce the issue

  • Update Microsoft Visual Studio 2022 to v17.9.0
  • Start cmd.exe with its default environment (e.g. vcvars64.bat or devenv.bat have not been run)

Add files:

# jamfile
exe helloworld : helloworld.cpp ;
// helloworld.cpp
#include <iostream>

int main(void)
{
  std::cout << "Hello World!" << std::endl;
  return 0;
}
  • Run b2 toolset=msvc-14.3
  • Observe "Did not find command for MSVC toolset." error
  • Compile commands fail to find cl.exe

Actual behavior summary

As above. b2's msvc.jam seems to run vswhere.exe as before, and as far as I can see, vswhere.exe gives the same information as always, but something seems to have changed causing b2 to say it cannot find the MSVC toolset for toolset=msvc-14.3.

This can be worked around by running vcvars64.bat manually in the cmd.exe prompt, but this was never necessary before Visual Studio 2022 v17.9.0.

>b2 --debug-configuration toolset=msvc-14.3 address-model=64
notice: loading B2 from C:/Program Files/B2/main/.b2/build-system.jam
notice: Searching 'C:\Windows' 'C:\Users\Dim' 'C:\Users\Dim' 'C:\Program Files\B2\main\.b2\build' 'C:\Program Files\B2\main\.b2\contrib' 'C:\Program Files\B2\main\.b2\options' 'C:\Program Files\B2\main\.b2\tools' 'C:\Program Files\B2\main\.b2\util' 'C:/Program Files/B2/main/.b2' for site-config configuration file 'site-config.jam'.
notice: Configuration file 'site-config.jam' not found in 'C:\Windows' 'C:\Users\Dim' 'C:\Users\Dim' 'C:\Program Files\B2\main\.b2\build' 'C:\Program Files\B2\main\.b2\contrib' 'C:\Program Files\B2\main\.b2\options' 'C:\Program Files\B2\main\.b2\tools' 'C:\Program Files\B2\main\.b2\util' 'C:/Program Files/B2/main/.b2'.
notice: Searching 'C:\Users\Dim' 'C:\Users\Dim' 'C:\Program Files\B2\main\.b2\build' 'C:\Program Files\B2\main\.b2\contrib' 'C:\Program Files\B2\main\.b2\options' 'C:\Program Files\B2\main\.b2\tools' 'C:\Program Files\B2\main\.b2\util' 'C:/Program Files/B2/main/.b2' for user-config configuration file 'user-config.jam'.
notice: Loading user-config configuration file 'user-config.jam' from 'C:/Users/Dim'.
notice: [msvc-cfg] msvc-14.2 detected, command: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\cl.exe'
notice: will use 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\cl.exe' for msvc, condition <toolset>msvc-14.2
notice: [generate-setup-cmd] 14.29.30133 is 14.2
notice: [generate-setup-cmd] 14.29.30133 is 14.2
notice: [generate-setup-cmd] 14.29.30133 is 14.2
notice: [generate-setup-cmd] 14.29.30133 is 14.2
notice: [generate-setup-cmd] 14.29.30133 is 14.2
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>x86/<address-model>32', setup: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>/<address-model>32', setup: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>x86/<address-model>64', setup: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>/<address-model>64', setup: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>x86/<address-model>', setup: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>/<address-model>', setup: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>ia64/<address-model>64', setup: 'C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Auxiliary/Build/vcvarsall.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>ia64/<address-model>', setup: 'C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Auxiliary/Build/vcvarsall.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>arm/<address-model>32', setup: 'C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Auxiliary/Build/vcvarsall.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>arm/<address-model>64', setup: 'C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Auxiliary/Build/vcvarsall.bat'
notice: [cmdline-cfg] toolset msvc-14.3 not previously configured; attempting to auto-configure now
warning: toolset msvc initialization: can not find tool cl.exe
warning: initialized from

warning: Did not find command for MSVC toolset. If you have Visual Studio 2017 installed you will need to specify the full path to the command, set VS150COMNTOOLS for your installation, or build from the 'Visual Studio Command Prompt for VS 2017'.

notice: will use 'cl.exe' for msvc, condition <toolset>msvc-14.3
notice: [msvc-cfg] condition: '<toolset>msvc-14.3/<architecture>x86/<address-model>32', setup: ''
notice: [msvc-cfg] condition: '<toolset>msvc-14.3/<architecture>/<address-model>32', setup: ''
notice: [msvc-cfg] condition: '<toolset>msvc-14.3/<architecture>x86/<address-model>64', setup: ''
notice: [msvc-cfg] condition: '<toolset>msvc-14.3/<architecture>/<address-model>64', setup: ''
notice: [msvc-cfg] condition: '<toolset>msvc-14.3/<architecture>x86/<address-model>', setup: ''
notice: [msvc-cfg] condition: '<toolset>msvc-14.3/<architecture>/<address-model>', setup: ''
notice: [msvc-cfg] condition: '<toolset>msvc-14.3/<architecture>ia64/<address-model>64', setup: ''
notice: [msvc-cfg] condition: '<toolset>msvc-14.3/<architecture>ia64/<address-model>', setup: ''
notice: [msvc-cfg] condition: '<toolset>msvc-14.3/<architecture>arm/<address-model>32', setup: ''
notice: [msvc-cfg] condition: '<toolset>msvc-14.3/<architecture>arm/<address-model>64', setup: ''
...found 11 targets...
...updating 8 targets...
compile-c-c++ bin\msvc-14.3\debug\address-model-64\threading-multi\helloworld.obj
'cl' is not recognized as an internal or external command,
operable program or batch file.

     cl /Zm800 -nologo "helloworld.cpp" -c -Fo"bin\msvc-14.3\debug\address-model-64\threading-multi\helloworld.obj"     -TP /wd4675 /EHs /GR /Zc:throwingNew /Z7 /Od /Ob0 /W3 /MDd /Zc:forScope /Zc:wchar_t /Zc:inline /favor:blend

...failed compile-c-c++ bin\msvc-14.3\debug\address-model-64\threading-multi\helloworld.obj...
...skipped <pbin\msvc-14.3\debug\address-model-64\threading-multi>helloworld.exe for lack of <pbin\msvc-14.3\debug\address-model-64\threading-multi>helloworld.obj...
...skipped <pbin\msvc-14.3\debug\address-model-64\threading-multi>helloworld.pdb for lack of <pbin\msvc-14.3\debug\address-model-64\threading-multi>helloworld.obj...
...failed updating 1 target...
...skipped 2 targets...
...updated 5 targets...

Expected behavior summary

In the past, b2 toolset=msvc-14.3 would automatically find Visual Studio 2022 binaries via vswhere.exe, and would write out bin\standalone\msvc\msvc-14.3\address-model-64\msvc-setup.bat containing the necessary environment variables. This no longer works.

Note that b2 toolset=msvc-14.2 still works fine:

>b2 --debug-configuration toolset=msvc-14.2 address-model=64
notice: loading B2 from C:/Program Files/B2/main/.b2/build-system.jam
notice: Searching 'C:\Windows' 'C:\Users\Dim' 'C:\Users\Dim' 'C:\Program Files\B2\main\.b2\build' 'C:\Program Files\B2\main\.b2\contrib' 'C:\Program Files\B2\main\.b2\options' 'C:\Program Files\B2\main\.b2\tools' 'C:\Program Files\B2\main\.b2\util' 'C:/Program Files/B2/main/.b2' for site-config configuration file 'site-config.jam'.
notice: Configuration file 'site-config.jam' not found in 'C:\Windows' 'C:\Users\Dim' 'C:\Users\Dim' 'C:\Program Files\B2\main\.b2\build' 'C:\Program Files\B2\main\.b2\contrib' 'C:\Program Files\B2\main\.b2\options' 'C:\Program Files\B2\main\.b2\tools' 'C:\Program Files\B2\main\.b2\util' 'C:/Program Files/B2/main/.b2'.
notice: Searching 'C:\Users\Dim' 'C:\Users\Dim' 'C:\Program Files\B2\main\.b2\build' 'C:\Program Files\B2\main\.b2\contrib' 'C:\Program Files\B2\main\.b2\options' 'C:\Program Files\B2\main\.b2\tools' 'C:\Program Files\B2\main\.b2\util' 'C:/Program Files/B2/main/.b2' for user-config configuration file 'user-config.jam'.
notice: Loading user-config configuration file 'user-config.jam' from 'C:/Users/Dim'.
notice: [msvc-cfg] msvc-14.2 detected, command: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\cl.exe'
notice: will use 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\cl.exe' for msvc, condition <toolset>msvc-14.2
notice: [generate-setup-cmd] 14.29.30133 is 14.2
notice: [generate-setup-cmd] 14.29.30133 is 14.2
notice: [generate-setup-cmd] 14.29.30133 is 14.2
notice: [generate-setup-cmd] 14.29.30133 is 14.2
notice: [generate-setup-cmd] 14.29.30133 is 14.2
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>x86/<address-model>32', setup: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>/<address-model>32', setup: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>x86/<address-model>64', setup: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>/<address-model>64', setup: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>x86/<address-model>', setup: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>/<address-model>', setup: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>ia64/<address-model>64', setup: 'C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Auxiliary/Build/vcvarsall.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>ia64/<address-model>', setup: 'C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Auxiliary/Build/vcvarsall.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>arm/<address-model>32', setup: 'C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Auxiliary/Build/vcvarsall.bat'
notice: [msvc-cfg] condition: '<toolset>msvc-14.2/<architecture>arm/<address-model>64', setup: 'C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Auxiliary/Build/vcvarsall.bat'
...found 19 targets...
...updating 13 targets...
msvc.write-setup-script bin\standalone\msvc\msvc-14.2\address-model-64\msvc-setup.bat
compile-c-c++ bin\msvc-14.2\debug\address-model-64\threading-multi\helloworld.obj
helloworld.cpp
msvc.link bin\msvc-14.2\debug\address-model-64\threading-multi\helloworld.exe
...updated 14 targets...
@dimitry-unified-streaming dimitry-unified-streaming added the bug Something isn't working label Feb 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant