Construir Perl é uma piada interna ou deveria exigir tantas invocações `make`?

Construir Perl é uma piada interna ou deveria exigir tantas invocações `make`?

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+zisso 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 jobscomandos fge bgpara 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 ]; dofosse 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 makeque é, 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 /toolsdiretório, vou chamar isso um sucesso.

informação relacionada