Skip to content

Commit 6f55b2a

Browse files
committedDec 10, 2025
The Great Migration - Merge Darwin branch
This commit starts the rebase of our lowest OS layers (the kernel, system libraries, tools, etc) to Darwin/XNU based on Apple OSS and PureDarwin. It also substantially changes both the source tree layout and the build output. Most Darwin source comes directly from the `distribution-macOS` Apple repo. /Developer - all toolchain, SDK, and related stuff /Kernel - xnu, libkmod, kernel extensions (kexts) /Libraries - system libraries like libSystem, libdispatch, Build system - The whole project now builds with CMake for better portability. See Docs/BUILDING.md. XNU - 12.x with some local modifications, in RELEASE config. Adapted _start to boot directly from UEFI in 64-bit long mode and to initialize usimple_lock debugging (usld) at startup. LLVM - 17.x. We now use Apple's fork from tag swift-6.0-release which is needed to build TAPI (TextAPI) - the library used to manage .tbd symbol files. Patched to define TARGET_OS_* macros. Linker - we're now using Apple ld64-609 with Split Segment V2 support needed to build kexts RTLD - our runtime linker will now be dyld-1066.8 ObjC - GNUstep libobjc-2 was removed. We will be switching to Apple's objc4 library for better ABI compatibility Default.xctoolchain - A new toolchain package is created with all necessary tools to build ravynOS (except for IIG) built for the host platform. This toolchain is intended to be compatible with XcodeDefault.xctoolchain. It contains: clang, ld, as, ar, lipo, dsymutil, llvm binutils, gmake, xcbuild, and so on. ravynOS.sdk - A new SDK package is created with all necessary header files, libraries, debug symbols (.dSYM bundles), extra tools, etc. This is equivalent to MacOSX.sdk and can be used as the SDKROOT for building ravynOS apps. (work in progress) libtapi was added cctools was added with ld64, libstuff, libmacho, lipo, etc mig was ported forward gmake was updated dtrace_ctf, unifdef, xar were added xcbuild was added to build xcodeproj files, with imported product and package definitions from Swift Python scripts were patched up to v3 syntax System version info is now in CMakeLists.txt and propagates to /System/Library/CoreServices/SystemVersion.plist.
1 parent bb9b06f commit 6f55b2a

Sorry, this diff is taking too long to generate.

It may be too large to display on GitHub.