B2 seems to seeking mt.exe at the wrong location (without the windows kits number)?

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

B2 seems to seeking mt.exe at the wrong location (without the windows kits number)?

Boost - Build mailing list
B2 seems to seeking mt.exe at the wrong location (without the windows kits number)?

I am using

VS 2019 version 16.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 using a 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 ignored these warnings 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 of the sub-folder

 currently \10.0.17763.0

 should be using

 "C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\mt.exe"

What have I done to mess this up?

Paul


Paul A. Bristow

Prizet Farmhouse

Kendal, Cumbria

LA8 8AB           UK




_______________________________________________
Unsubscribe & other changes: https://lists.boost.org/mailman/listinfo.cgi/boost-build
Reply | Threaded
Open this post in threaded view
|

Re: B2 seems to seeking mt.exe at the wrong location (without the windows kits number)?

Boost - Build mailing list
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.

_______________________________________________
Unsubscribe & other changes: https://lists.boost.org/mailman/listinfo.cgi/boost-build