-
-
Notifications
You must be signed in to change notification settings - Fork 115
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix gnullvm and test gnullvm with msys2 in CI #553
Conversation
38d14f3
to
46ef3c4
Compare
There is no LLVM toolchain preinstalled in GHA images. You can use https://github.com/mstorsjo/llvm-mingw or CLANG* environments from MSYS2: https://github.com/msys2/setup-msys2 |
In my tests I added the toolchain to Anyway, I can any needed tests. I'm using Corrosion for personal projects, but I'm using the artifacts from Tor Browser's build system (I'm a Tor Browser developer during daytime). |
When looking at the action logs it seems that CMake does detect clang installed under
Is there any difference between that LLVM and what |
As far as I know, the binaries provided by LLVM include only the compilers and other tools (linker, windres, etc...), they don't include any runtime and/or standard library implementation. The llvm-mingw binaries provide an LLVM toolchain plus mingw, libc++ (LLVM's C++ standard library implementation), libunwind, compiler-rt, and maybne some other runtime. |
8b7b7fb
to
21adac8
Compare
Some features will be missing when using mingw-w64 built with GCC though, like Control Flow Guard support. Also, libraries like winpthreads won't be fully compatible because of different TLS and unwinders. This should be fine for most users, but it's better to use purposely built mingw-w64 if doable. |
4532345
to
c0ef9a1
Compare
install tools from msys2, since preinstalled LLVM toolchain does not contain libunwind and co. Co-authored-by: Mateusz Mikuła <[email protected]>
c0ef9a1
to
6b4a78d
Compare
It looks like the upstream cargo fix will still take a while to hit stable, so in the meantime I'm fine with merging the quickfix I added in this branch (which copies the file out of the |
Thank you very much for working on this! |
List of problems / fixes related to gnullvm:
gnullvm
should be merged (FindRust: support gnullvm #552).implib
name forgnullvm
(FindRust: support gnullvm #552)gnullvm
. Ideally wait for cargo fix to be merged and reach stable. But perhaps we could also have a short term workaround if it is simple.-lunwind
is not found. Is the default MinGW in CI suitable?x86_64-w64-mingw32-clang
, which is not in PATH, and also not the same as our C/C++ target triple. Again, raises questions on the configuration of our test case.