web-dev-qa-db-fra.com

Les versions de gcc sont-elles liées aux versions du noyau?

Existe-t-il un lien entre les versions de gcc et la version d'un noyau? Plus précisément, pourrais-je installer une très ancienne version de gcc sur le dernier noyau. Sinon, pourrais-je construire la dernière version de gcc sur un très vieux noyau? Existe-t-il des problèmes de compatibilité entre les deux pour n’importe quelle version?

5
mathematician1975

Vous pourriez avoir des difficultés à compiler de nouveaux noyaux avec de très anciennes versions de GCC.

De plus, les versions de GCC ne sont pas liées à la version du noyau Linux:

  • Vous pouvez exécuter une ancienne version de GCC sur un système doté d'un nouveau noyau.
  • Vous pouvez exécuter une nouvelle version de GCC sur un système avec un très vieux noyau. La seule chose qui vous empêcherait de faire cela serait si votre nouvelle version de GCC nécessite une version de libc qui ne fonctionnera pas sur ce noyau. Mais ce n'est pas un scénario particulièrement probable.

Cela dit, vous devriez faire attention à installer un ancien GCC sur un GCC plus récent , car le nouveau GCC peut être nécessaire . Si vous construisez vous-même GCC à partir des sources, vous pouvez configurer la construction pour qu'elle installe dans son propre préfixe (plutôt que /usr). Si cela ne fonctionne toujours pas, assurez-vous que le nouveau GCC (qui était là auparavant) est déjà dans un répertoire de la variable d'environnement PATH autre que l'ancien GCC (que vous avez récemment installé).

9
Eliah Kagan

Je me méfierais d'utiliser des versions plus anciennes de GCC sur des systèmes plus récents, en particulier si les exécutables de cette version ne s'appelaient pas gcc-1.3 (par exemple, si dans ce cas, la version est la 1.3), car sinon elle pourrait entrer en conflit avec la version actuelle utilisée. sur votre système Ubuntu, et casser des choses.

Pour répondre à votre question cependant, le noyau et GCC ne sont pas directement liés, mais il est probable que le noyau était construit avec la version de GCC que vous utilisez (ou légèrement plus ancienne).

2
Thomas Ward

Oui. Certaines nouvelles fonctionnalités du noyau ont besoin de la dernière version de gcc et de glibc pour fonctionner correctement. Mais ce n'est pas une contrainte restreinte telle que le noyau 3.0.2 ne fonctionne qu'avec gcc 4.2.1. Cela ressemble plus au noyau 3.x ne fonctionne qu'avec gcc 4.2.x

1
guimaluf