Issue |
58318
|
Summary |
Usage of cross compiled libc++ for windows
|
Labels |
new issue
|
Assignees |
|
Reporter |
4e4o
|
I am trying to build simple 'hello world' example with libc++ for windows on linux host. At first i successfully cross-compile latest clang,lld from master branch. `Used sdk: msvc 2017 14.16.27023 sdk and win kit 10.0.17763.0.` Then i successfully compile libcxx with new clang, compilation flags:
```
-DLLVM_ENABLE_RUNTIMES=libcxx \
-DLIBCXX_ENABLE_SHARED=OFF \
-DLIBCXX_ENABLE_STATIC=ON \
-DLIBCXX_INCLUDE_BENCHMARKS=OFF \
-DLIBCXX_ENABLE_RTTI=OFF \
-G Ninja
```
Cross-compilation of trivial 'hello world' with clang + msvc sdk + win kit works fine. I am using this compiler flags to append system headers:
```
-imsvc "\"${MSVC_INCLUDE}\""
-imsvc "\"${WINSDK_INCLUDE}/ucrt\""
-imsvc "\"${WINSDK_INCLUDE}/shared\""
-imsvc "\"${WINSDK_INCLUDE}/um\""
-imsvc "\"${WINSDK_INCLUDE}/winrt\""
```
And now i want to replace usage of msvc c++ library by libc++. MSVC_INCLUDE directory contains c++ headers and also vcruntime.h header. If i replace it with libc++ header directory then compilation fails with error:
```
In file included from ../src/hello-world.cpp:1:
In file included from /home/computer/workspace/libc++_win_install/include/c++/v1/cstdio:101:
In file included from /home/computer/workspace/libc++_win_install/include/c++/v1/stdio.h:107:
In file included from /mnt/disk2/workspace/coding/example/clang-win-toolchain/../win_libs/win/program files/windows kits/10/include/10.0.17763.0/ucrt/stdio.h:12:
/mnt/disk2/workspace/coding/example/clang-win-toolchain/../win_libs/win/program files/windows kits/10/include/10.0.17763.0/ucrt/corecrt.h(10,10): fatal error: 'vcruntime.h' file not found
#include <vcruntime.h>
^~~~~~~~~~~~~
1 error generated.
ninja: build stopped: subcommand failed.
```
It seems that libc++ depends on ucrt, it is ok, but, ucrt depends on vcruntime.h header which located inside msvc c++ directory headers. Maybe i am doing something wrong, how to correctly replace msvc c++ with libc++ ?
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs