As versões do gcc estão vinculadas às versões do kernel?

5

Existe algum link entre as versões do gcc e a versão de um kernel? Especificamente, eu seria capaz de instalar uma versão muito antiga do gcc no kernel mais recente. Alternativamente, eu seria capaz de construir a versão mais recente do gcc em um kernel muito antigo? Existe algum problema de compatibilidade entre os dois para qualquer versão?

    
por mathematician1975 11.07.2012 / 19:16

3 respostas

8

Você pode ter problemas para compilar novos kernels com as versões muito antigas do GCC.

Além disso, não, as versões do GCC não estão vinculadas à versão do kernel do Linux:

  • Você pode executar uma versão antiga do GCC em um sistema com um novo kernel.
  • Você pode executar uma nova versão do GCC em um sistema com um kernel muito antigo. A única coisa que o impediria de fazer isso seria se sua nova versão do GCC exigir uma versão de libc que não será executada nesse kernel. Mas este não é um cenário particularmente provável.

Com isso dito, você deve tomar cuidado ao instalar um GCC mais antigo sobre um GCC mais recente , uma vez que o novo GCC pode ser necessário. Se você estiver criando o GCC você mesmo a partir do código-fonte, poderá configurar o build para instalar em seu próprio prefixo (em vez de /usr ). Se isso ainda interromper as compilações, certifique-se de que o GCC mais recente (que estava lá antes) esteja em um diretório anterior na variável de ambiente PATH do que o GCC mais antigo (instalado mais recentemente).

    
por Eliah Kagan 11.07.2012 / 19:24
2

Eu ficaria desconfiado de usar versões mais antigas do GCC em sistemas mais novos, especialmente se os executáveis da versão anterior não forem chamados gcc-1.3 (por exemplo, se neste caso a versão for 1.3), porque senão pode entrar em conflito com a versão atual usado para tudo no seu sistema Ubuntu, e quebrar coisas.

Para responder à sua pergunta, o kernel e o GCC não estão diretamente relacionados, mas é provável que o kernel tenha sido construído com a versão do GCC que você está usando (ou um pouco mais antiga).

    
por Thomas Ward 11.07.2012 / 19:21
1

Sim. Alguns novos recursos do kernel precisam que a última versão do gcc e do glibc funcionem bem. Mas não é uma restrição restrita como o kernel 3.0.2 funciona apenas com o gcc 4.2.1. É mais parecido com o kernel 3.x só funciona com o gcc 4.2.x

    
por guimaluf 11.07.2012 / 19:23