Replies: 8 comments 20 replies
-
https://doc.rust-lang.org/rustc/platform-support/pc-windows-gnullvm.html should probably ping @mati865 for his opinion |
Beta Was this translation helpful? Give feedback.
-
I think that's being worked on, #13278 is related |
Beta Was this translation helpful? Give feedback.
-
UCRT64 repo is GCC/Binutils based, CLANG64 is LLVM based.
It works fine because of hacks, we have compiled multiple packages with it: https://packages.msys2.org/package/mingw-w64-clang-x86_64-rust
That is long-term goal but:
|
Beta Was this translation helpful? Give feedback.
-
From #17406 (comment)
Since the issue is a result of us "lying" to rust and turning *-pc-windows-gnu into *-pc-windows-gnullvm, I think the only reasonble "upstream" fix is for llvm-dlltool to pick up the additional options that rust is using. @mstorsjo said he was going to look at that. Once that is done, bootstrapping should be possible again, though it is still inefficient to call out to dlltool to get llvm to generate import libraries rather than just using llvm's apis to do so (which is what happens once that target check is hardcoded to false) The eventual proper fix will be switching to -gnullvm for CLANG{64,32} (CLANGARM64 already is because there is no aarch64-pc-windows-gnu yet). The reasons that has not been done yet are:
|
Beta Was this translation helpful? Give feedback.
-
I built a CLANG64 rust 1.70.0 targeting x86_64-pc-windows-gnullvm, I could upload the packages somewhere if anyone is interested in testing/playing around with it. I uploaded to a 'test' release I had on my MINGW-packages fork. the tag it's pointing at has no relation to anything, it's just a place to put the files... |
Beta Was this translation helpful? Give feedback.
-
I built x86_64-pc-windows-gnullvm variant of rust 1.77.0:
I also built an i686/CLANG32 version, but windows-rs doesn't support i686-pc-windows-gnullvm, so it will probably not be very useful |
Beta Was this translation helpful? Give feedback.
-
I made a workflow to build gnullvm rust in 3 steps. Before, CLANG32 was failing building step 2. Today, with 1.79.0, it failed trying to build bootstrap in step 3. I consider this a good sign, that things that depend on the versions of windows-targets that were broken for i686-pc-windows-gnullvm are fewer, and probably once bootstrap (or whatever transitive dependency) is updated I'll be able to build an i686-pc-windows-gnullvm rustc without special hacks. In the meantime, https://github.com/jeremyd2019/msys2-rust-gnullvm/releases/tag/1.79.0-2 has the x86_64. In future I'll try to run that workflow, which makes a new release, on rust updates, and hopefully in 1.80.0 i686 will show up there too. |
Beta Was this translation helpful? Give feedback.
-
I believe this is done now, so I'm closing this discussion. I'll archive my github repo and delete it at some point in the future |
Beta Was this translation helpful? Give feedback.
-
As there's only llvm-based toolchain in ucrt64 repo ,the target x86_64-pc-windows-gnu is not the proper one ,and it doesn't work even with package mingw-w64-clang-x86_64-gcc-compat installed.
Beta Was this translation helpful? Give feedback.
All reactions