
Portanto, estou construindo o Perl versão 5.18.2 a partir do código-fonte em um processador ARMv7 agora, um Krait no Snapdragon S4, e não tenho certeza de quanto suporte existe para tal arquitetura. A propósito, estou tentando construir um sistema LFS. Acontece que há dois dias estou preso em Perl. Tentei diferentes usuários, como root, com CFLAGS, sem CFLAGS, versões fonte Debian 5.16 e 5.18 e sempre fiquei preso em uma determinada etapa de construção.
Então, desta última vez, decidi prestar atenção naquela mensagem que diz:
==> Your Makefile has been rebuilt. <==
==> Please rerun the make command. <==
ou algo assim.
Então fiz um pequeno for loop...
RET=$?; for i in `seq 10`; do if [ ! $RET -eq 0 ]; then echo " \
RETURN ${i} == ${RET} \
" && make; RET=$?; fi; done
... comecei com a sequência 3, e com certeza depois de cada umapareceestar progredindo ao longo da construção. Ou seja, ele falha em uma etapa diferente e quando verifico o log vejo que a última etapa falhou e vejo a mesma mensagem:
==> Your Makefile has been rebuilt. <==
==> Please rerun the make command. <==
Dei uma olhada nas instruções de construção no CPAN e não vi nenhuma referência ou nada indicando que eu deveria passar por isso, então isso levanta a questão.
Isso é algum tipo de piada interna ou estou fazendo algo terrivelmente errado?
Responder1
Ok, então acho que a mensagem estava me dizendo para fazer a coisa certa, embora pareça inviável sentar-se diante do prompt e digitar make mais de 50 vezes (pode ter sido mais de 100 vezes), então escrevi este pequeno loop while antes Fui para a cama:
RET=$?; while [ ! $RET -eq 0 ]; do echo " \
RETURN == ${RET} \
"; make; RET=$?; done
E deixe correr. Fiz Ctrl+z
isso para interromper o trabalho enquanto dormia e depois voltava fg 1
à tona hoje à tarde 1 porque era o único trabalho que eu tinha, pode ser diferente para outra pessoa, pesquise os jobs
comandos fg
e bg
para mais informações.
Eu percebo que pode ter sido um loop infinito, mas eu sempre poderia ter matado isso com Ctrl-c
. Parece que sempre retornou 2, então talvez o teste while [ $RET -eq 2 ]; do
fosse mais ideal.
Para minha surpresa, terminou com um retorno de 0 com esta mensagem:
make[1]: Leaving directory '/home/lfs/sources/perl/perl-5.18.2/x2p'
Everything is up to date. Type 'make test' to run test suite.
Então agora vou continuar com o Linux From Scratch. Parece que talvez ao configurar uma compilação do zero, quaisquer makefiles presentes no sistema precisem ser reconstruídos, então vou dizer que esse foi um comportamento normal, o repetitivo make
que é, e que nem tudo é compilado como o "padrão" GNU programas.
Espero que isso ajude alguém no futuro.
Atualizar:
Este é o resultado do conjunto de testes:
Failed 10 tests out of 2247, 99.55% okay.
../cpan/CPANPLUS/t/03_CPANPLUS-Internals-Source.t
../cpan/Socket/t/socketpair.t
../cpan/Sys-Syslog/t/syslog.t
../cpan/Time-HiRes/t/alarm.t
../cpan/Time-HiRes/t/clock.t
../cpan/Time-HiRes/t/usleep.t
../dist/ExtUtils-Command/t/cp.t
op/alarm.t
op/sigdispatch.t
op/sleep.t
99,55% de sucesso, nada mal.
Como isso é para as ferramentas temporárias criadas no capítulo 5 do "Linux From Scratch" e eles dizem que o conjunto de testes não é necessário e que eu só preciso copiar algumas das bibliotecas para o /tools
diretório, vou chamar isso um sucesso.