[PATCH] D30991: [Driver] Fix cross compiling with Visual Studio 2017

Zachary Turner via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Mar 16 11:19:08 PDT 2017


zturner added a comment.

In https://reviews.llvm.org/D30991#702966, @zturner wrote:

> In https://reviews.llvm.org/D30991#702965, @thakis wrote:
>
> > When you say "cross-compiling", you mean targeting Windows while running on non-Windows, right? How do dlls get loaded there at all?
> >
> > Also, when does clang invoke link.exe? Normally on Windows the linker is invoked directly, no through the compiler driver. Are you using clang.exe instead of clang-cl.exe?
>
>
> I think he means "targeting x86 using an x64 toolchain", but yes, some clarification would be helpful.  Also, which DLLs (specifically) are we talking about?


A quick side-by-side comparison of two directories shows that the following files are missing from the x64_x86 cross compiler folder but are present in the x64_x64 folder:

atlprov.dll
CppCoreCheck.dll
d3dcompiler_47.dll
EspXEngine.dll
ExperimentalCppCoreCheck.dll
LocalESPC.dll
msobj140.dll
mspdb140.dll
mspdbcore.dll
mspdbst.dll
mspft140.dll
msvcdis140.dll
pgort140.dll

I then set up a cross compilation build environment using vcvarsall and the first two entries of my path are (in order):

  C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.10.25017\bin\HostX64\x86
  C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.10.25017\bin\HostX64\x64

So it looks like this matches up with what he's saying.


https://reviews.llvm.org/D30991





More information about the cfe-commits mailing list