Hi all, and particularly Saleem, Hugh, and Han,

I've been recently trying to build the Swift compiler, runtime, and core 
libraries on Windows against the MSVC runtime from master and have been running 
into some difficulties. I've managed to get Clang and swiftc built (and I hope 
to submit pull requests over the weekend with the fixes to enable this), but 
I've been unable to get the runtime and core libraries to build and link 
correctly.

My understanding is that this is due to dllimport difficulties when linking the 
runtime into swiftCore as opposed to against any of the other supporting 
libraries, as discussed on this list a while ago [topic: swift (ABI) and 
Windows]. It seems as though changes have been made to the source pertaining to 
import/export linkage since that discussion (commit 3105c6e), but I'm not sure 
as to the impact of those changes on the Windows build.

I've attempted cross-compiling from macOS and have run into issues with 
Mac-specific invocations being passed through to lld-link (which could perhaps 
be addressed by diving into the CMake configurations for LLVM/Clang but which 
might cause issues if I want to upstream my changes). Setting CMAKE_SYSTEM_NAME 
to Windows would likely address this specific issues but raise others, as it 
appears the Swift configuration assumes that cross-compiling for Windows 
happens with CMAKE_SYSTEM_NAME unchanged from the build machine.

I've also looked into the MSVC specific instructions at 
https://github.com/tinysun212, but they seem somewhat incomplete and out of 
date; for instance, swiftRuntime doesn't seem to be built as a separate library 
anymore (although I may be mistaken that it ever was). 

As a secondary problem, there's also an open issue with regards to the Swift 
calling convention on Windows (SR-4302) that seems to be on hold; Saleem gave a 
pointer to a temporary solution but I've been unable to figure out how to 
implement it.

If any of what I've stated here is incorrect or misinformed, please let me 
know. I'm willing to do what I can to help the porting effort and possibly 
eventually Swift development as a whole; my specific aim here is that I'm 
working on a Swift application that I'd like to bring cross-platform. 
Unfortunately, I have little experience or knowledge of the Microsoft 
development stack, so I may need some specific pointers or else to leave the 
more intricate parts to more experienced minds.

Thanks,
Thomas Roughton
_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev

Reply via email to