Construindo GCC dentro de um chroot a partir do código-fonte

Construindo GCC dentro de um chroot a partir do código-fonte

Em uma pergunta anterior, perguntei sobre a criação de um chroot que simule o ambiente do meu dispositivo incorporado. Foi sugerido que eu construísse a partir do código-fonte GCC e binutils primeiro dentro do meu chroot. Para tentar isso, copiei a versão do binário libc e gcc em minha máquina host para o chroot. Em seguida, escrevi um programa simples de hello world em um arquivo test.c e tentei construir em meu chroot da seguinte maneira

  phil@phil-desktop:/usr$ sudo chroot /usr/embedded_chroot1/
  bash-4.2# gcc test.c 
  gcc: error trying to exec 'cc1': execvp: No such file or directory

Não tenho muita certeza do que está acontecendo aqui com esse erro. Copiei o binário gcc e libc para meu chroot, então por que não consigo compilar? Devo copiar todos os arquivos de origem e cabeçalho do sistema para o meu chroot também? Acho que tenho um mal-entendido conceitual com todo o processo de uso de um chroot.

Responder1

A compilação do gcc tem a capacidade de se autoinicializar sem nenhum compilador existente no sistema. Você deveria ser capaz dedownloade descompacte o gcc e construa-o dentro do seu chroot sem precisar copiar nada de fora. Já faz um tempo que não faço isso, mas lembro que foi razoavelmente indolor.

Olhe para ainstruções de construção para gcc, que detalham esse processo. Você desejará construir um compilador nativo, e todas as etapas deverão ser executadas dentro do seu chroot, para que o gcc seja construído para corresponder a esse sistema.

informação relacionada