Linux-Kernel nativ auf macOS kompilieren: Eine Reise durch die Compiler-Hölle
Dieser Beitrag beschreibt die Erfahrung des Autors beim Kompilieren eines Linux-Kernels (RISC-V-Architektur) nativ auf macOS. Die Reise war voller Herausforderungen: eine veraltete make-Version, die Inkompatibilität von macOS' ld mit den Erwartungen von Linux, fehlende elf.h- und byteswap.h-Header und Versionskonflikte mit uuid_t und sed. Der Autor hat diese Probleme mit Homebrew gelöst, indem er aktualisierte Toolchains (make, llvm, lld, libelf, gnu-sed) installiert und Patches erstellt hat, um Header-Diskrepanzen und Typdefinitionskonflikte zu beheben. Der Kernel wurde erfolgreich kompiliert, wobei macOS bei vollständigen Builds schneller war als Docker, aber bei inkrementellen Builds langsamer. Der Autor kommt zu dem Schluss, dass das Beheben von Build-Problemen ein kontinuierlicher, iterativer Prozess ist, ähnlich wie Continuous Integration.