cling-win is finding wrong SDK location, and thus wrong /bin/mt.exe

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

cling-win is finding wrong SDK location, and thus wrong /bin/mt.exe

Boost - Build mailing list
cling-win is finding wrong SDK location, and thus wrong /bin/mt.exe

I have returned once again to getting clang-win on Windows 10 with MSVC to work.

It is compiling correctly but failing at the manifest generation station using mt.exe.

As far as I can diagnose, the problem is now finding the correct location of SDK.

My user-config-jam starts with

using clang-win

  : # Clang with Windows Version.

    8.0.0

  : # Location of Clang compiler .exe file(s).  clang-win MUST use clang-cl driver, not clang++.exe

     # Copied as path is "C:\LLVM\clang-800\LLVM\bin\clang-cl.exe"

     "C:/LLVM/clang-800/LLVM/bin/clang-cl.exe"

       -fuse-ld=lld  # Use lld linker https://lld.llvm.org/, not clang++ nor clang-cl.exe linker.

  : # Options.

--debug-configuration shows this

notice: [clang-win] using compiler '"C:/LLVM/clang-800/LLVM/bin/clang-cl.exe" "-fuse-ld=lld"', version '8.0.0'

notice: will use 'C:/LLVM/clang-800/LLVM/bin/clang-cl.exe' '-fuse-ld=lld' for clang-win, condition <toolset>clang-win-8.0.0

notice: [clang-win] 32: using assembler 'ml.exe'

notice: [clang-win] 32: using archiver '"C:/LLVM/clang-800/LLVM/bin\\lld-link" /lib'

notice: [clang-win] 32: using SDK path 'C:\\Program Files (x86)\\Windows Kits\\10\\bin\x86'

notice: [clang-win] 32: using manifest-tool '"C:\\Program Files (x86)\\Windows Kits\\10\\bin\x86\mt.exe"'

notice: [clang-win] 32: using resource-compiler '"C:\\Program Files (x86)\\Windows Kits\\10\\bin\x86\rc.exe"'

notice: [clang-win] 32: using mc-compiler '"C:\\Program Files (x86)\\Windows Kits\\10\\bin\x86\mc.exe"'

notice: [clang-win] 32: using idl-compiler '"C:\\Program Files (x86)\\Windows Kits\\10\\bin\x86\midl.exe"'

notice: [clang-win] 64: using assembler 'ml64.exe'

notice: [clang-win] 64: using archiver '"C:/LLVM/clang-800/LLVM/bin\\lld-link" /lib'

notice: [clang-win] 64: using SDK path 'C:\\Program Files (x86)\\Windows Kits\\10\\bin\x64'

notice: [clang-win] 64: using manifest-tool '"C:\\Program Files (x86)\\Windows Kits\\10\\bin\x64\mt.exe"'

notice: [clang-win] 64: using resource-compiler '"C:\\Program Files (x86)\\Windows Kits\\10\\bin\x64\rc.exe"'

notice: [clang-win] 64: using mc-compiler '"C:\\Program Files (x86)\\Windows Kits\\10\\bin\x64\mc.exe"'

notice: [clang-win] 64: using idl-compiler '"C:\\Program Files (x86)\\Windows Kits\\10\\bin\x64\midl.exe"'

but the correct locations are

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

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

SDK path 'C:\\Program Files (x86)\\Windows Kits\\10\\bin\\10.0.18362.0\\x86\\x86'

SDK path 'C:\\Program Files (x86)\\Windows Kits\\10\\bin\\10.0.18362.0\\x64\\x64'

And with each update the version no 10.0.18362 will change.

I sense that I should be calling vsvarsall.bat to set up SDK location?

windir=C:\WINDOWS

WindowsLibPath=C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.18362.0;C:\Program Files (x86)\Windows Kits\10\References\10.0.18362.0

WindowsSdkBinPath=C:\Program Files (x86)\Windows Kits\10\bin\

WindowsSdkDir=C:\Program Files (x86)\Windows Kits\10\

WindowsSDKLibVersion=10.0.18362.0\

WindowsSdkVerBinPath=C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\   

WindowsSDKVersion=10.0.18362.0\

WindowsSDK_ExecutablePath_x64=C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\

WindowsSDK_ExecutablePath_x86=C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\

(I have tried running from a VS cmd.exe and that looks more promising but has trouble with linking).

I could tolerate updating this by hand as a stopgap measure to get going, but it would be nice to get find the SDK right location working.

I note an option /MANIFEST added by Peter Dimov but an unclear what it does and where I should put it.  (I don’t use the manifest info).

Suggestions most welcome.

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: cling-win is finding wrong SDK location, and thus wrong /bin/mt.exe

Boost - Build mailing list
On 8/23/2019 1:14 PM, Paul A Bristow via Boost-build wrote:

> I have returned once again to getting clang-winon Windows 10 with MSVCto
> work.
>
> It is compiling correctly but failing at the manifest generation station
> using mt.exe.
>
> As far as I can diagnose, the problem is now finding the correct
> location of SDK.
>
> My user-config-jam starts with
>
> using clang-win
>
>    : # Clang with Windows Version.
>
>      8.0.0
>
>    : # Location of Clang compiler .exe file(s).  clang-win MUST use
> clang-cl driver, not clang++.exe
>
>       # Copied as path is "C:\LLVM\clang-800\LLVM\bin\clang-cl.exe"
>
>       "C:/LLVM/clang-800/LLVM/bin/clang-cl.exe"
>
>         -fuse-ld=lld  # Use lld linker https://lld.llvm.org/, not
> clang++ nor clang-cl.exe linker.
>
>    : # Options.
>
> …
>
> --debug-configuration shows this
>
> notice: [clang-win] using compiler
> '"C:/LLVM/clang-800/LLVM/bin/clang-cl.exe" "-fuse-ld=lld"', version '8.0.0'
>
> notice: will use 'C:/LLVM/clang-800/LLVM/bin/clang-cl.exe'
> '-fuse-ld=lld' for clang-win, condition <toolset>clang-win-8.0.0
>
> notice: [clang-win] 32: using assembler 'ml.exe'
>
> notice: [clang-win] 32: using archiver
> '"C:/LLVM/clang-800/LLVM/bin\\lld-link" /lib'
>
> notice: [clang-win] 32: using SDK path 'C:\\Program Files (x86)\\Windows
> Kits\\10\\bin\x86'
>
> notice: [clang-win] 32: using manifest-tool '"C:\\Program Files
> (x86)\\Windows Kits\\10\\bin\x86\mt.exe"'
>
> notice: [clang-win] 32: using resource-compiler '"C:\\Program Files
> (x86)\\Windows Kits\\10\\bin\x86\rc.exe"'
>
> notice: [clang-win] 32: using mc-compiler '"C:\\Program Files
> (x86)\\Windows Kits\\10\\bin\x86\mc.exe"'
>
> notice: [clang-win] 32: using idl-compiler '"C:\\Program Files
> (x86)\\Windows Kits\\10\\bin\x86\midl.exe"'
>
> notice: [clang-win] 64: using assembler 'ml64.exe'
>
> notice: [clang-win] 64: using archiver
> '"C:/LLVM/clang-800/LLVM/bin\\lld-link" /lib'
>
> notice: [clang-win] 64: using SDK path 'C:\\Program Files (x86)\\Windows
> Kits\\10\\bin\x64'
>
> notice: [clang-win] 64: using manifest-tool '"C:\\Program Files
> (x86)\\Windows Kits\\10\\bin\x64\mt.exe"'
>
> notice: [clang-win] 64: using resource-compiler '"C:\\Program Files
> (x86)\\Windows Kits\\10\\bin\x64\rc.exe"'
>
> notice: [clang-win] 64: using mc-compiler '"C:\\Program Files
> (x86)\\Windows Kits\\10\\bin\x64\mc.exe"'
>
> notice: [clang-win] 64: using idl-compiler '"C:\\Program Files
> (x86)\\Windows Kits\\10\\bin\x64\midl.exe"'
>
> but the correct locations are
>
> "C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64\mt.exe"
>
> "C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x86\mt.exe"
>
> SDK path 'C:\\Program Files (x86)\\Windows
> Kits\\10\\bin\\10.0.18362.0\\x86\\x86'
>
> SDK path 'C:\\Program Files (x86)\\Windows
> Kits\\10\\bin\\10.0.18362.0\\x64\\x64'
>
> And with each update the version no10.0.18362will change.
>
> I sense that I should be calling vsvarsall.bat to set upSDK location?
>
> windir=C:\WINDOWS
>
> WindowsLibPath=C:\Program Files (x86)\Windows
> Kits\10\UnionMetadata\10.0.18362.0;C:\Program Files (x86)\Windows
> Kits\10\References\10.0.18362.0
>
> WindowsSdkBinPath=C:\Program Files (x86)\Windows Kits\10\bin\
>
> WindowsSdkDir=C:\Program Files (x86)\Windows Kits\10\
>
> WindowsSDKLibVersion=10.0.18362.0\
>
> WindowsSdkVerBinPath=C:\Program Files (x86)\Windows
> Kits\10\bin\10.0.18362.0\
>
> WindowsSDKVersion=10.0.18362.0\
>
> WindowsSDK_ExecutablePath_x64=C:\Program Files (x86)\Microsoft
> SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\
>
> WindowsSDK_ExecutablePath_x86=C:\Program Files (x86)\Microsoft
> SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\
>
> (I have tried running from a VS cmd.exe and that looks more promising
> but has trouble with linking).
>
> I could tolerate updating this by hand as a stopgap measure to get
> going, but it would be nice to getfindthe SDKrightlocationworking.
>
> I note an option /MANIFEST added by Peter Dimov but an unclear what it
> does and where I should put it.  (I don’t use the manifest info).
>
> Suggestions most welcome.

Here is my user-config setup for clang-win-8.0 for x64:

using clang-win : 8.0 :
  "C:/programming/bat/cp64_clangwin80.bat" :
  <compileflags>-fmsc-version=1922
  <manifest-tool>"C:/programming/bat/mt64_clangwin80.bat"
  <assembler-64>"C:/programming/bat/as64_clangwin80.bat"
  <archiver>"C:/programming/bat/ar64_clangwin80.bat"
  ;

C:/programming/bat/cp64_clangwin80.bat

call clangwin80_64_path.bat
clang-cl %*

C:/programming/bat/mt64_clangwin80.bat

call clangwin80_64_path.bat
mt %*

C:/programming/bat/as64_clangwin80.bat

call clangwin80_64_path.bat
ml64 %*

C:/programming/bat/ar64_clangwin80.bat

call clangwin80_64_path.bat
lib %*

clangwin80_64_path.bat ( in my PATH )

call "C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" >nul
set PATH=C:\Utilities\LLVM\801\x64\bin;%PATH%

Output from clang-win.init:

notice: [clang-win] using compiler
'"E:/programming/bat/cp64_clangwin80.bat"', version '8.0'
notice: [clang-win] 32: using assembler '"C:\\Program Files
(x86)\\Microsoft Visual
Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.22.27905\\bin\\HostX64\\x86\ml.exe"'
notice: [clang-win] 32: using archiver
'E:/programming/bat/ar64_clangwin80.bat'
notice: [clang-win] 32: using manifest-tool
'E:/programming/bat/mt64_clangwin80.bat'
notice: [clang-win] 32: using resource-compiler 'rc.exe'
notice: [clang-win] 32: using mc-compiler 'mc.exe'
notice: [clang-win] 32: using idl-compiler 'midl.exe'
notice: [clang-win] 64: using assembler
'E:/programming/bat/as64_clangwin80.bat'
notice: [clang-win] 64: using archiver
'E:/programming/bat/ar64_clangwin80.bat'
notice: [clang-win] 64: using manifest-tool
'E:/programming/bat/mt64_clangwin80.bat'
notice: [clang-win] 64: using resource-compiler 'rc.exe'
notice: [clang-win] 64: using mc-compiler 'mc.exe'
notice: [clang-win] 64: using idl-compiler 'midl.exe'

I am using the latest clang-win.jam file on the 'develop' branch. I hope
this helps.

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