Date
1 - 1 of 1
perl makefile race - any make experts who can help?
Richard Purdie
Hi,
Occasionally we see perl do_install failures on the autobuilder. It looks like some kind of make race. With the last failure I saved off the build directory and have spent a lot of time staring at it but I don't understand how what the logs say happened actually happened. The build failure is here: https://autobuilder.yoctoproject.org/typhoon/#/builders/37/builds/5315/steps/11/logs/stdio and you can see it failed in do_install. The first error is; | Couldn't copy cpan/podlators/blib/script/pod2text to /home/pokybuild/yocto-worker/genericx86-64/build/build/tmp/work/core2-64-poky-linux/perl/5.34.1-r0/image/usr/bin/pod2text: No such file or directory | Couldn't chmod 755 /home/pokybuild/yocto-worker/genericx86-64/build/build/tmp/work/core2-64-poky-linux/perl/5.34.1-r0/image/usr/bin/pod2text: No such file or directory then installman: Can't open cpan/podlators/blib/script/pod2text: No such file or directory | ABORTED Looking at the build directory, cpan/podlators/blib/script/pod2text isn't there, cpan/podlators/script/pod2text is. I went digging in the compile log which didn't fail but is interesting in what it doesn't say nd the ordering. The full log: https://autobuilder.yocto.io/pub/failed-builds-data/perl-race/log.do_compile.25823 or my edited down version: https://autobuilder.yocto.io/pub/failed-builds-data/perl-race/compile-cutdown.log and note it never actually builds cpan/podlators/blib/script/pod2text. If I go into the failed build dir, it does build it: https://autobuilder.yocto.io/pub/failed-builds-data/perl-race/manual-compile.log I tried a few variations of deleting and rebuilding files there just to show behaviour. The makefiles from the podlators directory: https://autobuilder.yocto.io/pub/failed-builds-data/perl-race/Makefile https://autobuilder.yocto.io/pub/failed-builds-data/perl-race/Makefile.PL What really puzzles me is the "Manifying 2 pod documents" message *before* it then generates scripts/pod2text from scripts/pod2text.PL in the do_compile log. It appears to run the scripts/pod2text late and never runs the $(INST_SCRIPT)/pod2text at all (hence no cp message and the missing file). The Makefile has default targets of pure_all and manifypods, that message comes from manifypods but manifypods depends on pure_all. pure_all is a double colon rule and I'm on less certain ground with how those behave. Are there any make experts out there who can spot the race in this makefile? Cheers, Richard |
|