Boost logo

Boost-Build :

From: Edward Diener (eldiener_at_[hidden])
Date: 2019-07-24 18:54:05


On 7/24/2019 7:47 AM, Paul A Bristow via Boost-build wrote:
> I am using
>
> VS2019 version16.20 preview 4.0  (current)
>
> I:\boost\libs\hello_boost\example>b2 -v
>
> B2 Version 4.0. OS=NT.
>
>   Copyright 1993-2002 Christopher Seiwald and Perforce Software, Inc.
>
>   Copyright 2001 David Turner.
>
>   Copyright 2001-2004 David Abrahams.
>
>   Copyright 2002-2019 Rene Rivera.
>
>   Copyright 2003-2015 Vladimir Prus.
>
>   DEFAULTS: jobs = 16
>
>
> I am usinga jamfile and a .bat file that has worked before, but working
> on nearly current GIT develop.
>
> But something seems to have changed so that clang-win no longer works,
> failing at the link.
>
> I:\boost\libs\hello_boost\example>b2  -j16  toolset=clang-win-8.0.0
> address-model=64 architecture=x86 release
>
> 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'.
>
> (I have ignoredthesewarnings without trouble before).
>
> Output of the link is:
>
> Performing configuration checks
>
>     - default address-model    : 32-bit (cached)
>
>     - default architecture     : x86 (cached)
>
>     - symlinks supported       : yes (cached)
>
>     - BOOST_COMP_GNUC >= 4.3.0 : no  (cached)
>
> ...patience...
>
> ...found 2277 targets...
>
> ...updating 11 targets...
>
> clang-win.link.dll
> ..\..\..\bin.v2\libs\system\build\clang-win-8.0.0\release\address-model-64\threading-multi\boost_system-clangw8-mt-x64-1_71.dll
>
> msvc.manifest.dll
> ..\..\..\bin.v2\libs\system\build\clang-win-8.0.0\release\address-model-64\threading-multi\boost_system-clangw8-mt-x64-1_71.dll
>
> '"C:\\Program Files (x86)\\Windows Kits\\10\\bin\x64\mt.exe"' is not
> recognized as an internal or external command,
>
> operable program or batch file.
>
>         if exist
> "..\..\..\bin.v2\libs\system\build\clang-win-8.0.0\release\address-model-64\threading-multi\boost_system-clangw8-mt-x64-1_71.dll.manifest"
> (
>
>              "C:\\Program Files (x86)\\Windows
> Kits\\10\\bin\x64\mt.exe" -nologo -manifest
> "..\..\..\bin.v2\libs\system\build\clang-win-8.0.0\release\address-model-64\threading-multi\boost_system-clangw8-mt-x64-1_71.dll.manifest"
> "-outputresource:..\..\..\bin.v2\libs\system\build\clang-win-8.0.0\release\address-model-64\threading-multi\boost_system-clangw8-mt-x64-1_71.dll;2"
>
>         )
>
> ...failed msvc.manifest.dll
> ..\..\..\bin.v2\libs\system\build\clang-win-8.0.0\release\address-model-64\threading-multi\boost_system-clangw8-mt-x64-1_71.dll
> ..\..\..\bin.v2\libs\system\build\clang-win-8.0.0\release\address-model-64\threading-multi\boost_system-clangw8-mt-x64-1_71.lib...
>
> Briefly:
>
> Clang 8.0.0 compiles all OK, but fails to link missing right version of
> mt.exe
>
> "C:\\Program Files (x86)\\Windows Kits\\10\\bin\x64\mt.exe"
>
>  is missing the specification ofthe sub-folder
>
> currently\10.0.17763.0
>
>  should beusing
>
>  "C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\mt.exe"
>
> What have I done to mess this up?

My testing with clang-win shows that if the backend is the latest VS2019
release, which I have, then mt.exe is automatically found by the
clang-win.jam code so it can later be successfully executed, but if the
backend is VS2017 or less then you need to specify your own
<manifest-tool> option. My manifest tool option, because I am using
VS2017 as the backend for clang-win-8.0, is:

<manifest-tool>E:/programming/bat/mt_clangwin80.bat

where mt_clangwin80.bat is:

@echo off
call "C:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat" >nul
set PATH=C:\Utilities\LLVM\800\x32\bin;%PATH%
mt %*

The 'set PATH etc.' 3rd line, which prepends the clang-8.0 bin directory
to the PATH, may not be needed for the mt.exe comamnd but it can't hurt
things, so I left it in. This works for me. It may be that whatever
version of VS 2019 you are using isn't finding the manifest tool in the
clang-win.jam code, so you nee3d to provide it similar to what I have done.


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk