
Estou construindo o lfs-7.5.
Quando eu corro make mrproper
no 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 gcc
emcapí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 gcc
não estava vinculado às bibliotecas /tools/lib
do LFS, criei manualmente um simlink de libc.so.6
onde /lib
montei a partição LFS. Mas quando eu estava executando em/lib64
/mnt/lfs
make headers_check
6.7(depois de make mrproper
), reclamou que não encontrou libz.so
e 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.5
em Linux Mint
, onde o usuário lfs
estava presente no sudoers
arquivo. Depois de terminarcapítulo 5, novamente recebi um erro emCapítulo 6.7 make mrproper
. Então, apaguei todas as pastas $LFS
exceto $LFS/sources
e comecei do início.
Depois de terminar a 2ª passagem do gcc
, verifiquei se as bibliotecas gcc
apontavam para as abaixo $LFS/tools
ou não. Mas descobri que eles ainda estavam apontados para /usr
o sistema host.
Então, eu reconstruí desde a primeira passagem gcc
e 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 gcc
2ª vez, a saída do comando acima estava apontando para $LFS/tools/lib
.
Responder2
Consegui executar com sucesso make mrproper
os 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 chroot
entrar 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.