Are there any i686 Linux Swift Toolchains out there?

I'm looking for an i686 linux toolchain to run on Debian 10. I saw we support armv7 and even PPC. Do we have any of these out in the wild? Or do I need to build one from scratch? Is this even supported or has it lagged behind the latest versions of swift?

Any resources would be greatly appreciated :slight_smile:

Hi, if you want to build the toolchain, look at this document swift/docs/HowToGuides/GettingStarted.md at main · apple/swift · GitHub . The document talks about utils/build-script but there is also utils/build-toolchain which produces an archive similar to what you would download from the website.

My main issue with building the toolchain myself was hitting memory limits. For some builds, I've needed to allocate total of ~120 GB of RAM/swap.

Thank you. Like you mentioned with the memory limits, I was hoping to try to cross compile a toolchain from a different machine like how I do with android toolchain. The device I would try running this is definitely a bit constrained.

I was hoping to feel the water to see if anyone else has tried this recently or if theres something available to indicate how viable it is.

I haven't tried it, so I can't help. I have read something on this forum (however I can't find the exact post), that there is an issue on linux (in general) with ABI stability of "core" libraries like Glibc etc. so I expect cross-compilation to be somewhat difficult.

as long as PPC toolchains exist, I refuse to give up hope :pray:, at least until I get around to verifying or someone sets me right here.

Potentially one could cross-compile Swift in embedded mode for any i686 platform that uses ELF object format (this would include *BSD flavors, for example), we just need to resolve a few CI issues on this PR first Enable `x86_64` and `i686` triples for embedded Swift by MaxDesiatov · Pull Request #70642 · apple/swift · GitHub

FWIW you can already do this for armv7 and arm64 with latest nightly toolchains available on Swift.org - Download Swift.

2 Likes

You can try this:
https://forums.swift.org/t/introducing-my-armhf-swift-5-9-toolchiain/69524/3