Software::Browser
Firefox auf allen Plattformen mit Clang gebaut
Firefox wird ab sofort in den Nightly-Versionen auf allen Plattformen mit Clang anstatt GCC gebaut.
Mozilla
Mike Hommey, bei Mozilla angestellt und bei Debian als Betreuer für Firefox zuständig, berichtet
in seinem Blog über die gerade stattfindende Umstellung von GCC auf
Clang als Compiler-Frontend. Die Windows-Version von Firefox wurde bereits vor einer Weile auf
clang-cl, den neuen Compiler des LLVM-Projekts migriert.
Die Versionen für macOS und Android wurden ebenfalls bereits mit Clang gebaut, hier wird ab sofort als Optimierung LTO (Link Time Optimization) eingeschaltet. Unter Linux kommt zusätzlich PGO (Profile-Guided Optimization) zum Einsatz, was zusätzlichen Leistungsgewinn bringt. Hommey zeigt sich überrascht vom Ausmaß des Zugewinns an Geschwindigkeit. Er konnte mit den meisten Talos-Tests unter Linux Zuwächse von über fünf Prozent beobachten, teilweise lag der Zugewinn bei bis zu 18 Prozent. Dabei hat er die Ergebnisse von Clang 6 mit denen von GCC 6.4 verglichen, beide unter Verwendung von PGO.
Ein kurzer Test mit dem kommenden Clang 7 lässt zusätzlichen Zugewinn von zwei bis fünf Prozent erwarten. Tests von GCC 6.x mit LTO zeigten Fehler beim Linken und ein Update auf GCC 7.x brach die Kompatibilität mit älteren Systemen. Das noch taufrische GCC 8.1 hielt Hommey zum Testzeitpunkt für noch zu unausgereift, um relevante Daten zu erhalten. Das bedeutet aber nicht, dass GCC nicht mehr unterstützt wird. Es laufen noch automatisierte Jobs mit GCC für einige statische Analysen, zudem wird sichergestellt, dass Builds weiterhin mit GCC 6.x erstellt werden können.
Hommey hofft, dass zur Veröffentlichung von Firefox 64 die Builds mit Clang und LTO gemacht werden können, wobei auf einigen Plattformen auch PGO verwendet werden soll. Zuvor sind aber noch viele Tests und Analysen notwendig, um sicherzustellen, dass keine Fehler vorhanden sind, die auf den ersten Blick nicht sichtbar sind.