ravynOS Xcode Toolchain for Linux x86-64
This package provides the core tools and libraries needed to build ravynOS applications from a Linux host system.
Quickstart
- Unpack the archive
- Put
Default.xctoolchainin/Library/Developer/Toolchains(recommended) or your preferred location - Set up your PATH to look in
<your location>/Default.xctoolchain/usr/bin
A deeper dive
Default.xctoolchain is the bundle inside ravynOS_Toolchain_Linux_x86.tar.xz. Xcode on macOS provides a very similar bundle called XcodeDefault.xctoolchain which contains all the compilers, linkers, binary object utils, and tools needed to compile stuff on macOS. (You also need the SDK which contains headers, frameworks, etc.) So, our bundle is the equivalent for compiling stuff on ravynOS, and it is intended to eventually work with Xcode when we can run that.
In the meantime, you can use it as a standalone toolkit by installing it somewhere and setting your PATH to search in <your location>/Developer/Toolchains/Default.xctoolchain/usr/bin. (Tip! Put it first in your path so it overrides other system tools!)
You don't actually need this toolkit installed when building the ravynOS repo from git. The build process will produce this bundle before it does anything else, and then use it transparently. This release is provided as a backup (in case that build fails) and as a standalone toolkit for building apps without needing to compile the whole OS. (You will also need the ravynOS SDK, or Apple's MacOSX.sdk bundle, to do that.)
What's in it?
See the MANIFEST file below for a full list.
Basically, it contains clang, LLVM, ld64 (Apple's linker), lipo, dsymutil, plutil, codesign, as, ar, mig, ranlib, otool, GNU make (as make), strip, TAPI (tools for manipulating the .tbd files Apple uses), xar, and xcodebuild. A minimal but functional iig tool exists, as does plktool, our equivalent of kextcache for creating a prelinked kernel cache.
It also contains clang's cmake modules, all of LLVMs headers and all the libraries needed by the tools above. They're all linked to search inside the bundle for their dependencies.
FAQ and Misc
Does this mean Xcode runs on Linux now??!
No. The name means this bundle is meant to be compatible with Xcode later on.
What Linux does it support?
Hopefully many. It was built on Ubuntu 22.04 LTS.