Construindo o GCC dentro de um chroot da fonte

3

Em uma pergunta anterior, perguntei sobre a criação de um chroot que simula meu ambiente de dispositivo incorporado. Foi sugerido que eu construa a partir do GCC de origem e binutils primeiro dentro do meu chroot. Para tentar isso eu copiei a versão do binário libc e gcc na minha máquina host para o chroot. Eu então escrevi um programa hello world simples para um arquivo test.c e tentei construir meu chroot da seguinte forma

  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 sei muito bem o que está acontecendo aqui com esse erro. Eu copiei o bcc e o libc do gcc para o meu chroot, então por que não consigo compilar? Devo copiar todos os arquivos de fonte e cabeçalho do sistema para o meu chroot também? Eu acho que tenho um mal-entendido conceitual com todo o processo de usar um chroot.

    
por mathematician1975 16.07.2012 / 16:03

1 resposta

3

O gcc build tem a capacidade de auto-inicialização sem qualquer compilador existente no sistema. Você deve conseguir fazer o download e descompactar o gcc, e compilá-lo dentro do seu chroot sem ter que copiar nada de fora . Já faz um tempo desde que fiz isso, mas lembro que era razoavelmente indolor.

Veja as instruções de criação do gcc , que detalham esse processo. Você vai querer construir um compilador nativo, e todas as etapas devem ser executadas dentro do seu chroot, para que o gcc seja construído para corresponder a esse sistema.

    
por 16.07.2012 / 16:51