phosek accepted this revision.
phosek added a comment.

LGTM



================
Comment at: clang/cmake/caches/Fuchsia-stage2.cmake:95
+        # and remove these libpath flags.
+        -libpath:"${LLVM_WINSYSROOT}/VC/Tools/MSVC/14.34.31933/lib/x64"
+        -libpath:"${LLVM_WINSYSROOT}/VC/Tools/MSVC/14.34.31933/atlmfc/lib/x64"
----------------
haowei wrote:
> phosek wrote:
> > phosek wrote:
> > > haowei wrote:
> > > > thakis wrote:
> > > > > You can tell cmake to invoke lld-link, which has a /winsysroot: flag.
> > > > What would be a good way to make CMake invoke lld-link (or through 
> > > > clang-cl) instead of using `cmake vs_link` in this situation?
> > > > We thought about using
> > > > 
> > > > ```
> > > > set(CMAKE_${LANG}_SIMULATE_ID "MSVC")
> > > > set(CMAKE_${LANG}_COMPILER_FRONTEND_VARIANT "GNU")
> > > > ```
> > > > 
> > > > but I don't feel great about changing variables that are not suppose to 
> > > > change. 
> > > Wouldn't CMake use `lld-link` if you set `CMAKE_LINKER=lld-link`. We 
> > > already do this in 
> > > https://github.com/llvm/llvm-project/blob/0e09bb8b143c80426c497a924ee4fa57a26af6b5/llvm/cmake/modules/LLVMExternalProjectUtils.cmake#L179
> > >  which is used by the bootstrapping build so you should be able to use 
> > > `/winsysroot:` here.
> > @haowei have tried this suggestion?
> I tried:
> 
> ```
> FAILED: 
> runtimes/runtimes-x86_64-pc-windows-msvc-stamps/runtimes-x86_64-pc-windows-msvc-configure
>  
> /mnt/nvme_sec/SRC/llvm-project/build-lldlink/runtimes/runtimes-x86_64-pc-windows-msvc-stamps/runtimes-x86_64-pc-windows-msvc-configure
>  
> cd 
> /mnt/nvme_sec/SRC/llvm-project/build-lldlink/runtimes/runtimes-x86_64-pc-windows-msvc-bins
>  && /mnt/nvme_sec/SRC/llvm-prebuilts/cmake/linux-amd64/bin/cmake \
> -DCMAKE_C_COMPILER=/mnt/nvme_sec/SRC/llvm-project/build-lldlink/./bin/clang-cl
>  \
> -DCMAKE_CXX_COMPILER=/mnt/nvme_sec/SRC/llvm-project/build-lldlink/./bin/clang-cl
>  \
> -DCMAKE_ASM_COMPILER=/mnt/nvme_sec/SRC/llvm-project/build-lldlink/./bin/clang-cl
>  \
> -DCMAKE_LINKER=/mnt/nvme_sec/SRC/llvm-project/build-lldlink/./bin/lld-link \
> ....
> 
> ```
> 
> But cmake is still using vs_link, see:
> 
> ```
> FAILED: cmTC_a05d1.exe 
>         : && /mnt/nvme_sec/SRC/llvm-prebuilts/cmake/linux-amd64/bin/cmake -E 
> vs_link_exe --intdir=CMakeFiles/cmTC_a05d1.dir 
> --rc=/mnt/nvme_sec/SRC/llvm-project/build-lldlink/./bin/llvm-rc 
> --mt=/mnt/nvme_sec/SRC/llvm-project/build-lldlink/bin/llvm-mt --manifests  -- 
> /mnt/nvme_sec/SRC/llvm-project/build-lldlink/bin/lld-link /nologo 
> CMakeFiles/cmTC_a05d1.dir/CMakeCCompilerABI.c.obj  /out:cmTC_a05d1.exe 
> /implib:cmTC_a05d1.lib /pdb:cmTC_a05d1.pdb /version:0.0 
> /vfsoverlay:/mnt/nvme_sec/SRC/WinSDK/winsdk-cipd/llvm-vfsoverlay.yaml  /debug 
> /INCREMENTAL /subsystem:console
> ```
Thanks for checking, we should investigate this further and perhaps reach out 
to CMake maintainers but that can be done separately.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D141738/new/

https://reviews.llvm.org/D141738

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to