Login
Newsletter
Werbung

Do, 11. April 2013, 08:14

Software::Kernel

Linux-Kernel verliert Gleitkomma-Emulationscode (Update)

Die Gleitkomma-Emulation für die ARM-Chips der Generationen ARMv4 und ARMv5 wurde aus dem Linux-Kernel entfernt, da ihre Lizenz nicht mit der GPLv2 kompatibel ist. Bis ein Ersatz gefunden ist, können Benutzer solcher ARM-Systeme nicht auf den neuesten Kernel aktualisieren.

Larry Ewing

ARM-Prozessoren bis hin zur Generation ARMv6 verfügen über keine Gleitkommaeinheit und sind daher auf eine Emulation dieser Operationen in Software angewiesen. Nun hat Russell King, der Hauptverantwortliche für den ARM-Zweig des Linux-Kernels, diesen Code für die Generationen ARMv4 und ARMv5 entfernt. Wie er auf der Mailingliste erläutert, wurde er über das GPL-Violations-Projekt darauf aufmerksam des Open Source Automation Development Lab (OSADL) herausgefunden, dass die Lizenz des Emulations-Codes nicht mit der GPLv2 kompatibel ist. Der Autor des Codes, John R. Hauser, hatte den Code wohl im Jahr 2002 im Rahmen eines öffentlich finanzierten Forschungsprojektes geschrieben, wie noch heute den Datei-Headern zu entnehmen ist, und sie unter eine einfache, an BSD erinnernde Lizenz gestellt. Die Lizenz enthält anders als eine BSD-Lizenz einen Hinweis, dass der Autor nicht für eventuelle Fehler verantwortlich gemacht werden darf. Selbst diese einfache Klausel ist jedoch nach einer früheren Entscheidung der Free Software Foundation (FSF) eine »zusätzliche Einschränkung«, die nicht vereinbar ist mit Abschnitt 6 der GPLv2. Nachdem der Autor laut King nicht bereit war, die Lizenz zu ändern, wurde sein Code jetzt entfernt.

Dies hinterlässt aber eine große Lücke für die Benutzer von Prozessoren der Familien ARMv4 und ARMv5. Zu ARMv4 gehören die Prozessoren StrongARM, ARM7TDMI, ARM8, ARM9TDMI und FA526, zu ARMv5 unter anderem ARM7, ARM9, ARM10, StrongARM, Intel XScale und Marvell Feroceon. Betroffen sind beispielsweise Archos-Tablets und Smartphones von Star, darüber hinaus eine vermutlich riesige Zahl von einfacheren Mobiltelefonen und anderen Geräten. Nach Einschätzung von King sind viele Qualcomm-Chips betroffen, aber keine der OMAP-Reihe. Die ARM-Familien stellen lediglich eine Spezifikation der Architektur dar, die an Chip-Hersteller lizenziert wird. So gibt es zu jeder ARM-Familie eine Vielzahl von Kernen zahlreicher Hersteller.

Bis Abhilfe geschaffen ist, werden Benutzer betroffener Geräte auf keinen neuen Linux-Kernel aktualisieren können, da das System dann nicht mehr funktioniert. Der einfachste Fall wäre, dass der Autor einer Lizenzänderung doch noch zustimmt. Andernfalls könnte man den entfernten NWFPE-Code durch eine reanimierte Version von FASTFPE ersetzen. Dies sollte keine große Mühe machen, allerdings fehlen dem älteren Code die Unterstützung für GDB und Signal-Stack, die dann hinzugefügt werden müsste. Eine dritte Alternative wäre eine Neuimplementierung von NWFPE ohne Verwendung und am besten auch ohne Kenntnis des bisherigen Codes. Eine Lösung wird auf jeden Fall einige Wochen, wenn nicht länger, auf sich warten lassen.

Update, 10:40: Linus Torvalds hat sich anscheinend gegenüber Russell King gegen die Entfernung des Codes ausgesprochen, da er anderer Ansicht als die FSF ist, was die Kompatibilität der Lizenzen angeht.

Auch wenn die technischen Details noch etwas unklar sind, ist fraglich, ob die Entfernung überhaupt nennenswerte Auswirkungen hätte. Denn laut Steve McIntyre wird der Code nur von einem veralteten ABI namens OABI benutzt, das von glibc nicht mehr unterstützt wird. Das neuere EABI, das seit 2006 zur Verfügung steht, nutzt eine Emulation als Bibliothek außerhalb des Kernels.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung