Swift for ARM Systems

Rpi3

There has been a lot of excitement over using Swift on ARM devices such as the Raspberry Pi and BeagleBone. Earlier this year a number of folks made tremendous progress in getting Swift 2.2 somewhat working on the Raspberry Pi 2.

As the future of Swift looks ever brighter and the language is beginning to attract more fans its clear that a renewed focus on building a functioning Swift 3.0 toolchain for ARMv7 systems would be appreciated by the community.

Now I’ll be clear: the guy to lead the technical effort isn’t me. What I can do though is help collect together all of the notes from those working on this, organize a team for collaboration, and in some small part provide a bit of hardware to help compile and test things.

What’s Being Built?

Swift 3.0 for armv7. Note that this excludes the original Raspberry Pi and any other system using an armv6 processor.

All of the repos currently being used to build are Apple’s, with one exception, and that’s llvm which uses the hpux735 repository arm branch. At the beginning of every build there is an information dump of what repositories make up the build, like this:

Repository,URL,Branch,Revision
swift,https://github.com/apple/swift.git,master,0c011c328c
llvm,https://github.com/hpux735/swift-llvm,arm,473f9137a9
clang,https://github.com/apple/swift-clang.git,stable,1e6cba3ce3
compiler-rt,https://github.com/apple/swift-compiler-rt.git,stable,a897309947
lldb,https://github.com/apple/swift-lldb.git,master,38dbc3b761
cmark,https://github.com/apple/swift-cmark.git,master,5af77f3c1d
llbuild,https://github.com/apple/swift-llbuild.git,master,437ce6ce0b
swiftpm,https://github.com/apple/swift-package-manager.git,master,2d8ded119d
swift-corelibs-xctest,https://github.com/apple/swift-corelibs-xctest.git,master,244507b687
swift-corelibs-foundation,https://github.com/apple/swift-corelibs-foundation.git,master,d2dc9f3cf9
swift-integration-tests,https://github.com/apple/swift-integration-tests.git,master,98f6c6d992
swift-corelibs-libdispatch,https://github.com/apple/swift-corelibs-libdispatch.git,master,65330e06d9

Build Status

I’ve put up a Jenkins CI server at swift-arm.ddns.net. There are two jobs at the moment:

The goal of the incremental builds is to not run a make clean prior to the build, as even with the X15 the compiles take quite some time (around 4 hours).

For now the build will be issued on demand at the direction of folks doing the development.

Issues Being Tackled

Editor’s note: This list is going to be fluid.

Get Involved

If you are interested in getting involved in helping the port of Swift to ARM devices, come join our Slack team.

3 comments

  1. John CutlerReply

    Thank You!!! I am waiting for some more ram to show up today, so I can try compiling the ubuntu 14.04 version on my debian stretch VM, but I’m really wanting to use update my BBB ARM, so this is wonderful news. Wish I could get my hands on an X-15, but can’t afford the TI kit, so will have to wait for the Beagleboard version.

  2. Joe Post authorReply

    John, you’re very welcome. A number of us are working to bring Swift to the Beaglebone, Raspberry Pi, PINE64, and more. I look forward to a day Swift is running everywhere :-)

Leave a Reply

Your email address will not be published. Required fields are marked *