Linus Torvalds wettert gegen Compiler-Collection GCC 4.9

Auf der Mailing-Liste der Linux-Kernel-Entwickler bezeichnete der Linux-Erfinder die aktuelle Version der Compiler Collection als "kompletten Mist". Außerdem ließe ihr Zustand Arges über andere Compiler vermuten.

 –  385 Kommentare

Nachdem Entwickler auf der Mailing-Liste des Linux-Kernels über Fehlverhalten in einer Load-Balancer-Funktion für die kommende Kernel-Version 3.16 informierten, warf Linus Torvalds selbst einen genaueren Blick auf die verfügbaren Daten. Denen ließ sich entnehmen, dass der verwendete Compiler (GCC 4.9) den Fehler verursachte, was dem Linux-Vater ein nicht eben zimperliches Feedback entlockte.

Die Compiler Collection des GNU-Projekts sei in der aktuellen Version "kompletter Mist" und scheine "unreparierbar kaputt", da sie beim Spilling einige, seiner Meinung nach sehr dumme, Fehler verursache. Eine Warnung, die Finger von ihr zu lassen, sei daher angebracht.

Trotz den Vergleichen mit auf den Kopf gefallenen Faultieren half Torvalds im Anschluss aber doch, die Mängel zu beheben. Wie sich der Diskussion im Bug Report entnehmen lässt, waren die entsprechenden Stellen schon seit Version 4.5, also seit der Einführung von debug_insn, fehlerhaft. Dieser Umstand brachte Torvalds erneut zum Zweifeln, wisse man doch nicht, welche anderen Macken noch in den Compilern warteten, die dann wiederum zu Kernel-Oopses oder Korruption führen könnten. Zwar zeigte er sich erfreut über das schnelle Beheben des Problems, allerdings sei er nun sehr nervös, was den generellen Zustand von Compilern anginge.

Torvalds harscher Kritik an GCC steht unter anderem der dem Projekt im Juni verliehene Programming Languages Software Award der Special Interest Group für Programmiersprachen der Association for Computing Machinery (ACM) gegenüber. Ob Clang/LLVM ähnliche Fehlverhalten begünstigt oder der Vorfall eine Analyse des Konkurrenzprojekts diesbezüglich auslösen konnte, ist nicht bekannt. Seit dem Frühjahr dieses Jahres gibt es jedenfalls einige Neuerungen, die Grundlagen legen sollten, um den Linux Kernel auch mit Clang kompilieren zu können. (jul)