Warum Apple Silicon Softwareentwicklern Probleme machen könnte

Mac News
2
Julia

Apple lockt, was seine neuen Prozessoren angeht, mit vielen technischen Neuerungen, doch die Einbindung von GCC ist nicht mehr garantiert.

Warum Apple Silicon Softwareentwicklern Probleme machen könnte

Damit ein Apple Silicon Nutzer im Vergleich zu einem Intel Prozessor keinerlei Nachteile hat, versucht Apple, möglichst viel Software mit Silicon kompatibel zu machen. Dafür sollen das eigens konstruierte Entwicklungswerkzeug Xcode und der Compiler LLVM, der die Quellcodes übersetzt, dienen. Doch nicht alle Projekte nutzen LLVM, sondern auch die open Source Compiler Sammlung Gnu Compiler Collection (GCC). GCC jedoch wird unter einer GPLv3-Lizenz vertrieben, mit der nicht nur der kostenfreie Download, sondern auch das Einsehen und Modifizieren des Codes gestattet ist. Apple lehnt Lizenzen dieser Art prinzipiell ab - dadurch liegt ihnen nicht viel an der Kompatibilität der neuen Prozessoren mit GCC. Deshalb ist vorerst nicht nur die Nutzung einiger Programme in Gefahr, auch Softwareentwickler werden in der möglichen Verwendung von Bibliotheken, Compilern und Modulen eingeschränkt.

Warum GCC nicht kompatibel ist

Anders als LLVM unterstützt GCC die Schnittstellen zwischen den Programmen auf Maschinenebene (ABI) nicht. Dadurch lässt sich Code, der Werkzeuge aus GCC nutzt, nicht kompilieren. Betroffene Software und Projekte können auf Grund von mangelnden Alternativen häufig jedoch nicht einfach auf LLVM ausweichen.

Was für Projekte sind betroffen?

Probleme bereiten vor allem Projekte, die sich auf Fortran-Module stützen, da es hierfür in der LLVM Bibliothek bislang keinen fertiggestellten Compiler gibt. Es ist zwar ein Compiler in Arbeit, der sich Flang nennt, Hinweise auf eine Fertigstellung für den aktuellen Standart gibt es jedoch noch nicht.

Unter den betroffenen Projekten befindet sich beispielsweise die Statistikprogrammiersprache R, die für das Kompilieren von Code den Fortran-Compiler GFortran nutzt. Auch das populäre Modul Numpy, das in numerischer Programmierung häufig Einzug findet, ist betroffen. Ein weiteres Beispiel ist die Programmiersprache Julia, die für das einfache Einbinden von Fortran prädestiniert ist.

Auch Module und Projekte in C können vereinzelt betroffen sein, da es hier ebenfalls Erweiterungen gibt, die auf GCC basieren.

Die Entwicklung der Lösung

Bereits in der Vergangenheit gab es immer wieder Bemühungen, LLVM auch für Android und Linux verfügbar zu machen, sodass zumindest Projekte und Module in C größtenteils auf LLVM und damit die neuen Prozessoren abgestimmt sein sollten. Aber damit allein lässt sich das Problem leider nicht beseitigen, vielmehr braucht es hier eine technische Lösung: GCC benötigt ein so genanntes Target für ARM, mit anderen Worten, GCC muss mit der ABI der Silicon Prozessoren kompatibel sein. Zwar wird bereits das schon entwickelt, jedoch bislang nur von einem einzigen Entwickler, der seine Freizeit dazu nutzt. Apple wird sich auf Grund der ihnen missfallenden Lizenz nicht daran beteiligen, sodass nicht klar ist, wann und ob überhaupt ein neues GCC-Target erfolgreich in die Compiler Sammlung aufgenommen werden kann. Immerhin gibt es bereits erste Fortschritte, Tests mit dem Target waren vielversprechend. Doch bis es so weit ist, werden Entwickler bei der Nutzung von Apple Silicon mit Einschnitten leben müssen.

2 Kommentare

erhellend

Interessant und gut erklärt!

wow

Kann mir das jemand übersetzen oder Beispiele für den Endverbraucher nennen

Kommentieren
Als Amazon-Partner verdiene ich an qualifizierten Verkäufen.
Öffne AppTicker-News
in der AppTicker-News App
in Safari