Skip to content

Releases: CSCIX65G/SwiftCrossCompilers

5.6.1

13 Jun 14:30
f011c6e

Choose a tag to compare

Adds support for Swift 5.6.1 on arm64 and amd64

5.5.2 Release

02 Jan 14:50
5.5.2
565bfc7

Choose a tag to compare

Adds support for swift 5.5.2 on armv8 and amd64

What's Changed

New Contributors

Full Changelog: 5.4.2...5.5.2

5.4.2 release

15 Sep 01:34
5.4.2
bd14164

Choose a tag to compare

Prepping all platforms for 5.4.2 release

Update to Swift 5.3.3, drop support for 32-bit platforms

22 Feb 01:16

Choose a tag to compare

This release brings the cross compilers up to Swift 5.3.3. The build scripts should now accept configurations for versions forward from 5.2. (Sorry it took so long). Since the release of 5.2 it has been impossible to build 32-bit swift for the arm-v7 and arm-v6 platforms, so for this release the 32-bit versions have been dropped. Sorry about that too. Ubuntu 18.02 bionic is the still the basis for the included swift runtimes. With 5.4 support I plan to transition to Ubuntu 20.04.

The arm64 x-compiler will build executables which, when linked with the included runtime libs, will run on either Raspberry Pi 3 or 4 or Apple M1 devices running docker. The two source projects included here demonstrate building for those environments.

The amd64 x-compiler will build executables which, when linked with the included runtime libs, will run on either x86-64 devices running Linux or on Apple Intel devices running docker. The two source projects included here demonstrate building for those environments.

Note that the intended use case of both packages is to generate SCRATCH docker images which can be run on their respective target. You don't have to base your docker image on SCRATCH, but if you don't you will need to base on an Ubuntu Bionic image and make sure that the Swift runtime libs included in this package are ahead of the native packages in the linker search path.

You may want to check out the companion project to this one ( https://github.com/CSCIX65G/swift-remote-debug.git ) for example Docker build files which build working Swift docker images.

If none of that sounds familiar, x-compiling may not be for you.

Cross Compilers for Swift 5.1.1

30 Sep 19:47

Choose a tag to compare

Release Notes:

This release contains installer packages for MacOS cross compilers of the Swift 5.1.1 release. There is a separate installer package for the following architectures:

  • arm64 - for Raspberry Pi 3, 3+, 4 running 64-bit OSes.
  • armv7 - for Pi 2, 3, 3+, 4 running 32-bit OSes such as Raspbian
  • armv7-raspbian - for Pi 2, 3, 3+, 4 running directly under Raspbian
  • armv6 - Pi 0 and 1 running 32-bit OSes such as Raspbian.
  • amd64 - for Intel architecture devices running Linux.

Each distribution includes: a toolchain, an SDK, a destination file and a collection of libs used at runtime. X-compiled applications are best run under Docker, but judicious setting of the LD_LIBRARY_PATH variable to point at the correct runtime can also work.

See the main page for more details.

Example usage:

cd helloworld
swift build --destination /Library/Developer/Destinations/arm64-5.1.0-RELEASE.json
swift build --destination /Library/Developer/Destinations/amd64-5.1.0-RELEASE.json
swift build --destination /Library/Developer/Destinations/armv7-5.1.0-RELEASE.json
/Library/Developer/Toolchains/armhf-5.1.1-RELEASE_armv6.xctoolchain/usr/bin/swift build --destination /Library/Developer/Destinations/armv6-5.1.1-RELEASE.json

Associated Ubuntu 18.04 runtimes for each architecture can be found in /Library/Developer/Runtimes after installation. The runtimes are the easiest way to construct distro-less docker containers for deploying to your Pi or cloud installation.

Note that this release includes the mosquitto MQTT developer packages. This is not strictly necessary for compiling but has been added for convenience because many R/Pi IoT projects (in particular the maintainer's :) ) require an MQTT client.

NB, this release includes a Mac OS/X toolchain: swift-5.1.1-osx-armv6.pkg. This has one patch to the swift package manager to include an armv6 target for generation of binaries using the armv6 instruction set. You do not need to download this package as it is incorporated in the armv6 cross-compiler: Swift-arm6-5.1.pkg during x-compiler build. It is here solely to allow others to build the x-compiler without having to apply the patch and rebuild a macosx toolchain themselves.

You do need to make sure you use that particular version of the swift toolchain when compiling your Pi Zero/1 code. i.e. do NOT just say swift build --destination /Library/Developer/Destinations/armv6-5.1.1-RELEASE.json as that will pick up the standard xcode version of swift which does not include support for emitting armv6 objects. You should instead use the swift command from the x-compiler toolchain as shown above.

Cross compilers for Swift 5.0 Release

11 May 00:26

Choose a tag to compare

This release contains cross compiler installer packages for the Swift 5.0 release for the following architectures:

  1. arm64
  2. armv7
  3. armv6
  4. amd64

arm64 is for Raspberry Pi 3, 3+ running 64-bit OSes. armv7 is for Pi 2, 3, 3+ running 32-bit OSes such as Raspbian, armv6 is Pi 0 and 1 running 32-bit OSes such as Raspbian. amd64 is for Intel architecture devices running Linux. Each distribution includes: a toolchain, an SDK, a destination file and a collection of libs used at runtime. X-compiled applications are best run under Docker, but judicious setting of the LD_LIBRARY_PATH variable to correctly point at the correct runtime can also work. See the main page for more details.

Example usage:

cd helloworld
swift build --destination /Library/Developer/Destinations/arm64-5.0-RELEASE.json
swift build --destination /Library/Developer/Destinations/amd64-5.0-RELEASE.json
swift build --destination /Library/Developer/Destinations/armv7-5.0-RELEASE.json
swift build --destination /Library/Developer/Destinations/armv6-5.0-RELEASE.json

Associated runtimes for each can be found in /Library/Developer/Runtimes after installation.

NB, this release includes a Mac OS/X toolchain: swift-5.0-armv6-osx.pkg. This has one patch to the swift package manager to include an armv6 target for generation of binaries using the armv6 instruction set. You do not need to download this package as it is incorporated in the armv6 cross-compiler: Swift-arm6-5.0.pkg during x-compiler build. It is here solely to allow others to build the x-compiler without having to apply the patch and rebuild a macosx toolchain themselves.