Warum verwendet FreeBSD die GPL-lizenzierte GCC?

11

Warum verwendet FreeBSD GCC als Standard-Compiler?

Ich habe den Eindruck , dass ein Kern Säule der FreeBSD - Philosophie ist nicht jede GNU Software zu verwenden und insbesondere Code GPL.

GCC, sowohl GNU als auch GPL, wird mit FreeBSD ausgeliefert.

Warum?

JasonH
quelle

Antworten:

13

FreeBSD 10 verwendet den BSD-lizenzierten Clang-Compiler anstelle von GCC für 32- und 64-Bit-Intel x86-Systeme. Das einzige, was einen Wholesale-Wechsel auf allen CPU-Plattformen verhindert, auf denen FreeBSD veröffentlicht wird, ist die Zeit und das Interesse der Entwickler.

Wie für FreeBSD 9 - das war nur etwa freigegeben werden , wenn diese Frage zuerst gestellt wurde - es war die Rede über die Herstellung Clang die Standard - Compiler, aber es gab genug Probleme damit , dass sie Clang neben GCC Schiff entschieden, und lassen Sie GCC den Standard für diese Version.

Der Grund, warum FreeBSD vor Jahren nicht versucht hat, auf einen Nicht-GPL-Compiler umzusteigen oder vielleicht sogar einen eigenen zu erstellen, ist einfach: Es ist schwierig.

Jeder CS-Student kann einen Compiler schreiben - es kann sogar eine Kursanforderung sein -, aber es ist schwierig , einen guten Compiler zu schreiben . Das Schreiben eines guten Compilers ist noch schwieriger, wenn es für eine Sprache wie C oder C ++ erforderlich ist. Die Aufgabe wird noch schwieriger, wenn Sie die vernünftige Entscheidung treffen, dass sich der neue Compiler mindestens der Leistung und Leistungsfähigkeit von GCC annähern muss , das über ein paar Jahrzehnte Entwicklungsarbeit verfügt.

Aus diesem Grund ist GCC 4.2 immer noch der Standard-Compiler unter FreeBSD 9.

GCC 3.4, 4.4, 4.6, 4.7 und 4.8 befinden sich übrigens im FreeBSD 9-Ports-Tree, und einige Versionen von GCC werden wahrscheinlich noch viele Jahre in Ports verbleiben. Es gibt eine Menge Softwarepakete - viele davon in FreeBSD-Ports -, die nur mit GCC erstellt werden.

Warren Young
quelle
1
Der Compiler muss nicht nur mindestens leistungsnah sein, sondern es müssen auch Spracherweiterungen unterstützt werden. Entwickler verwenden diese oft aus irgendeinem Grund (oder gar nicht ;-))
Johannes
8

Es ist wahrscheinlich aus der Not heraus. Bis vor kurzem gab es wahrscheinlich nur wenige BSD-lizenzierte C-Compiler, die nicht annähernd gleichwertig waren gcc.

Aus den FreeBSD-Projektzielen :

Der Code in unserem Quelltextbaum, der unter die GNU General Public License (GPL) oder Library General Public License (LGPL) fällt, wird mit etwas mehr angehängten Zeichenketten geliefert, allerdings zumindest auf der Seite des erzwungenen Zugriffs und nicht auf der anderen Seite. Aufgrund der zusätzlichen Komplexität, die sich bei der kommerziellen Verwendung von GPL-Software ergeben kann, bevorzugen wir jedoch Software, die unter dem lockeren BSD-Urheberrecht eingereicht wird, wenn dies eine vernünftige Option ist.

Brian Cain
quelle