Pourquoi FreeBSD utilise-t-il le GCC sous licence GPL?

Pourquoi FreeBSD utilise-t-il GCC comme compilateur par défaut?

J'ai l'printing qu'un des piliers de la philosophie de FreeBSD est de ne pas utiliser de logiciel GNU et en particulier de code GPL.

Pourtant, GCC qui est à la fois GNU et GPL est livré avec FreeBSD.

Pourquoi?

FreeBSD 10 utilisera le compilateur Clang sous licence BSD au lieu de GCC pour les systèmes Intel x86 32 et 64 bits. La seule chose qui empêche un commutateur de gros sur toutes les plates-forms CPU que FreeBSD lance est le time et l'intérêt des développeurs.

En ce qui concerne FreeBSD 9 – qui était sur le point d'être publié lorsque cette question a été posée – on parlait de faire de Clang le compilateur par défaut, mais il y avait assez de problèmes pour que Clang soit livré avec GCC pour cette version.

Quant à savoir pourquoi FreeBSD n'a pas essayé de passer à un compilateur non-GPL des années auparavant, ou peut-être même de créer le leur, la raison est simple: c'est difficile.

Tout étudiant en CS de premier cycle peut écrire un compilateur – cela peut même être une exigence de cours – mais écrire un bon compilateur est difficile. Écrire un bon compilateur est encore plus difficile quand il doit être pour un langage comme C ou C ++. La tâche devient encore plus difficile lorsque vous prenez la décision raisonnable que le nouveau compilateur doit au less aborder la performance et la capacité de GCC, qui a quelques décennies de développement derrière elle.

A cause de cela, GCC 4.2 est toujours le compilateur par défaut sur FreeBSD 9.

GCC 3.4, 4.4, 4.6, 4.7 et 4.8 sont dans l'arborescence FreeBSD 9 Ports, d'ailleurs, et une version de GCC est susceptible de restr dans les ports pendant de nombreuses années à venir. Il y a beaucoup de logiciels disponibles – dont beaucoup sont dans les ports FreeBSD – qui ne sont construits qu'avec GCC.

C'est probablement par nécessité. Jusqu'à récemment, les compilateurs C sous licence BSD étaient probablement peu nombreux ou ne se rapprochaient pas de la parité des fonctionnalités avec gcc .

Des objectives du projet FreeBSD :

Ce code dans notre arborescence des sources qui relève de la licence publique générale (GPL) ou de la licence publique générale (LGPL) de la GNU s'accompagne d'un peu plus de liens, du less du côté de l'access forcé plutôt que du contraire habituel. En raison des complexités supplémentaires qui peuvent évoluer dans l'utilisation commerciale du logiciel GPL, nous préférons toutefois les logiciels soumis sous le droit d'auteur BSD plus détendu lorsqu'il s'agit d'une option raisonnable.