[swift-dev] Support for arm-linux cross-compilation

Dmitri Gribenko gribozavr at gmail.com
Fri Dec 4 15:27:22 CST 2015

On Fri, Dec 4, 2015 at 1:04 PM, Cody Krieger <cody at krieger.io> wrote:
> Hi there,
> I'm interested in getting Swift cross-compiling to arm(v7)-linux. (For my specific use case, I actually need to be able to cross-compile for arm-linux from a *Darwin* host. A little strange, I know.)
> In digging through the build scripts and CMake listfiles, I discovered that cross-compilation is not supported in a way that is sufficiently generic to support my use case; it's all pretty special-cased around Darwin => iOS (or derivative) cross-compilation.
> I can't imagine more than, like, three people want to do Darwin => arm-linux cross-compilation, so adding support for that specific combination upstream seems pretty useless—but if the build scripts supported cross-compilation in a fairly generic fashion, I imagine that's something that more people would be happy to see.
> Given that it seems like a non-trivial amount of build script/CMake work is needed to support cross-compilation in a generic way, I'm curious if there is even a remote desire to see that land in the tree. If so, I'd be more than happy to spearhead or otherwise assist with that effort.

Hi Cody,

I think making our cross-compilation more general is a very good
direction.  That will involve more complexity in the build scripts,
true, but I think that is necessary complexity for a successful
compiler project.

I don't think cross-compiling to arm-linux from OS X would be a rare
thing in Swift community, if it was supported "out of the box".

However, build-script-impl as a shell script has surpassed a
comfortable size a long time ago -- it is over 2K lines now.  If
someone would take on porting it to a language that scales better for
larger programs and is easily available on our targets (python?), it
would be really awesome.


(j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/

More information about the swift-dev mailing list