| 17 Dec 2024 |
Tristan Ross | In reply to @reckenrode:matrix.org Could this toolchain stuff be used with Windows? MinGW LLVM is a thing. There’s one project I want to package (dxmt) that requires it. Theoretically, it just requires updating where the compiler gets set inside the stdenv and updating the lib to adjust defaults. | 17:25:41 |
Tristan Ross | It might work already as is | 17:26:09 |
Randy Eckenrode | In reply to @k900:0upti.me We have a mingw gcc toolchain The project uses this toolchain for the Windows parts, which is all LLVM: https://github.com/mstorsjo/llvm-mingw | 17:28:15 |
Randy Eckenrode | It’s also apparently the only way to target aarch64-windows because with a free toolchain. | 17:28:44 |
Randy Eckenrode | * | 17:29:03 |
Randy Eckenrode | * | 17:29:12 |
Randy Eckenrode | dxmt doesn’t (yet?) support aarch64-windows, but it could be of interest to nixpkgs in the future. | 17:29:44 |
Tristan Ross | To probably do windows, we might need to add a mingw toolchain option which then you can just switch out the compiler option. | 17:30:35 |
K900 | And it can't use any other toolchain? | 17:30:37 |
Randy Eckenrode | No. | 17:33:44 |
Randy Eckenrode | Upstream is explicitly using LLVM probably because it is targeting Wine on Darwin. | 17:34:41 |
Randy Eckenrode | I may be able to use the ucrt MinGW’s llvmPackages.libcxxStdenv, but libc++ was failing to build. That was before the bump. I haven’t tried since LLVM 19 was made the default. | 17:36:37 |
Randy Eckenrode | * I may be able to use the ucrt MinGW’s libcxxStdenv, but libc++ was failing to build. That was before the bump. I haven’t tried since LLVM 19 was made the default. | 17:36:55 |
Randy Eckenrode | * I may be able to use the ucrt MinGW’s libcxxStdenv, but libc++ failed to build. That was before the bump. I haven’t tried since LLVM 19 was made the default. | 17:37:09 |
Randy Eckenrode | https://github.com/3Shain/dxmt | 17:37:40 |
Randy Eckenrode | The project pins the same LLVM on both platforms. Hopefully it works with a newer version of LLVM. It builds a Metal-forwarding DLL it calls into from the Windows side. | 17:38:50 |
Tristan Ross | In reply to @reckenrode:matrix.org Upstream is explicitly using LLVM probably because it is targeting Wine on Darwin. I wonder if the same would work on Linux. | 17:46:22 |
Tristan Ross | It might be we have to sort of just try and see how things go | 17:47:02 |
Tristan Ross | Also, last night I added asserts to prevent people from using the deprecated use* attributes. | 17:47:38 |
Tristan Ross | I think the new attributes PR is good unless anyone has objections before I merge it. | 17:48:55 |
Randy Eckenrode | Any impacts on bootstrapping? | 17:49:42 |
Tristan Ross | None | 17:49:49 |
Tristan Ross | At least right now | 17:49:57 |
Tristan Ross | My future goal is this sort of serves as preliminary work on LLVM bootstrapping on Linux. | 17:50:27 |
Tristan Ross | But it doesn't really have an effect on anything right now. | 17:50:50 |
Randy Eckenrode | I would like to fix bintools to be LLVM on Darwin in a separate PR. Darwin mostly doesn’t use Apple’s bintools and hasn’t for a while. | 17:51:16 |
Tristan Ross | Ah, yeah that can be done. | 17:51:41 |
Tristan Ross | I could do that in the PR which is the next step: making linker work as expected | 17:52:07 |
Randy Eckenrode | I was looking at doing that for the LLVM bootstrap, but adding Darwin checks everywhere was ugly. It also seemingly can’t use lld. | 17:52:44 |
Randy Eckenrode | In reply to @rosscomputerguy:matrix.org I could do that in the PR which is the next step: making linker work as expected I’m not sure the LLVM changes would be right in that case. Is linker meant to be independent of bintools? | 17:54:15 |