6.7 Cabeçalhos Linux `make mrproper` falham no lfs 7.5

6.7 Cabeçalhos Linux `make mrproper` falham no lfs 7.5

Estou construindo o lfs-7.5.

Quando eu corro make mrproperno capítulo6.7, diz:

make: gcc: comando não encontrado

e em running bash /tools/bin/gcc, diz:

bash: /tools/bin/gcc: arquivo ou diretório inexistente

Este é o mesmo problema queaqui. Até as informações fornecidas por quem fez a pergunta nos comentários são iguais às minhas.

Ele diz que fez "terceira passagem"de gccemcapítulo 5. Se fosse esse o caso, o autor do LFS teria nos indicado claramente para realizar 3 passagens. Suponho que estou cometendo um erro sutil em algum lugar, mas não consigo descobrir onde.

De acordo com o apoio dos autores do LFS, eles nos pedem para refazer tudo desde o início. Concordo com eles, mas sem saber onde o erro pode ter acontecido estaremos fadados a cometer o mesmo erro novamente (como eu). O resultado fornecido pela pessoa que fez a pergunta na pergunta de suporte do LFS corresponde ao meu. Isto é olink.

Outra pergunta sobre o mesmo assuntoaquinão rendeu nenhuma resposta.

Por favor ajude.

Aliás , quando descobri que gccnão estava vinculado às bibliotecas /tools/libdo LFS, criei manualmente um simlink de libc.so.6onde /libmontei a partição LFS. Mas quando eu estava executando em/lib64/mnt/lfsmake headers_check6.7(depois de make mrproper), reclamou que não encontrou libz.soe quando procurei em /tools/lib, não encontrei.

Responder1

Não sei se a resposta anterior que enviei écorretoou não.

Resolvi continuar fazendo LFS-7.5em Linux Mint, onde o usuário lfsestava presente no sudoersarquivo. Depois de terminarcapítulo 5, novamente recebi um erro emCapítulo 6.7 make mrproper. Então, apaguei todas as pastas $LFSexceto $LFS/sourcese comecei do início.

Depois de terminar a 2ª passagem do gcc, verifiquei se as bibliotecas gccapontavam para as abaixo $LFS/toolsou não. Mas descobri que eles ainda estavam apontados para /usro sistema host.

Então, eu reconstruí desde a primeira passagem gcce tudo ficou bem.

Então, após a segunda passagem de gcc, faça:

ldd$LFS/tools/bin/$LFS_TGT-gcc

e se a saída resultante apontar para /usr, refaça a partir da primeira passagem de gcc.

Pelo menos esse é o método que utilizei e imediatamente após refazer a 1ª passagem da gcc2ª vez, a saída do comando acima estava apontando para $LFS/tools/lib.

Responder2

Consegui executar com sucesso make mrproperos seguintes comandos. Eu realmente não sei se esta é realmente a solução para o problema acima. De qualquer forma aqui está:

Eu estava usando o Ubuntu 14.04 e crieiseusuário conforme sugerido pelo livro LFS-7.5. Mas o problema é que eu só percebi mais tarde, muito mais tarde, ao chrootentrar na partição LFS, que o usuário lfs não estava na partição LFS.sudoersarquivo.

O Ubuntu não adicionou (adiciona?) automaticamente o usuário aosudoersarquivo, provavelmente projetado pelo pessoal do Ubuntu. Esse pode ser o motivo, não tentei novamente no Ubuntu.

Fiquei desanimado e comecei a experimentar o LFS-7.5 emLinux Mint 16e adicionou automaticamente o usuário aosudoersarquivo e tudo correu bem emCapítulo 6.7durante a construção e instalaçãocabeçalhos Linux.

Responder3

Eu tive exatamente o mesmo problema. Verifiquei o vinculador dinâmico usado pelo gcc:readelf -l /tools/bin/gcc | grep interpreter e não foi/tools/lib64/ld-linux-x86-64.so.2mas/lib64/ld-linux-x86-64.so.2. Portanto, o gcc não pôde ser executado porque este arquivo não existia.
O problema veio da etapa de construção do gcc Pass2. Não coloquei a definição de CC, CXX, AR e RANLIB na mesma linha do comando configure.

eu corri

CC=$LFS_TGT-gcc
CXX=$LFS_TGT-g++
AR=$LFS_TGT-ar
RANLIB=$LFS_TGT-ranlib
../configure --prefix=/tools ...

Em vez de

CC=$LFS_TGT-gcc \
CXX=$LFS_TGT-g++ \
AR=$LFS_TGT-ar \
RANLIB=$LFS_TGT-ranlib \
../configure --prefix=/tools ...

O mesmo problema pode ser aplicado na etapa de construção do binutils pass2. Suponho que seja um problema de foco variável.

informação relacionada