Pourquoi FreeBSD utilise le GCC sous licence GPL?

11

Pourquoi FreeBSD utilise GCC comme compilateur par défaut?

J'ai l'impression qu'un pilier central de la philosophie FreeBSD est de ne pas utiliser de logiciel GNU et en particulier le code GPL.

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

Pourquoi?

JasonH
la source

Réponses:

13

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 basculement en gros sur toutes les plates-formes CPU avec les versions FreeBSD est le temps et l'intérêt des développeurs.

Quant à FreeBSD 9 - qui était sur le point d'être publié lorsque cette question a été posée pour la première fois - il a été question de faire de Clang le compilateur par défaut, mais il y avait suffisamment de problèmes pour qu'ils décident de livrer Clang aux côtés de GCC et de laisser GCC par défaut. 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 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 l'être pour un langage comme C ou C ++. La tâche devient encore plus difficile lorsque vous prenez la décision raisonnable dont le nouveau compilateur a besoin pour au moins approcher les performances et les capacités de GCC, qui a quelques décennies de développement derrière lui.

Pour cette raison, GCC 4.2 est toujours le compilateur par défaut sur FreeBSD 9.

Soit dit en passant, GCC 3.4, 4.4, 4.6, 4.7 et 4.8 sont dans l'arborescence des ports FreeBSD 9, et une version de GCC est susceptible de rester dans les ports pendant de nombreuses années à venir. Il y a beaucoup de packages logiciels - dont beaucoup sont dans les ports FreeBSD - qui ne construisent qu'avec GCC.

Warren Young
la source
1
Le compilateur doit non seulement être au moins proche des performances, mais également les extensions de langage doivent être prises en charge. Les développeurs les utilisent souvent pour une raison (ou aucune ;-))
johannes
8

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

Des objectifs du projet FreeBSD :

Ce code dans notre arborescence source qui tombe sous la licence GNU General Public License (GPL) ou Library General Public License (LGPL) est livré avec un peu plus de chaînes attachées, bien qu'au moins du côté de l'accès forcé plutôt que l'inverse habituel. En raison des complexités supplémentaires qui peuvent évoluer dans l'utilisation commerciale des logiciels GPL, nous préférons cependant les logiciels soumis sous le droit d'auteur BSD plus détendu quand c'est une option raisonnable de le faire.

Brian Cain
la source