perl makefile race - any make experts who can help?
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:
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
installman: Can't open cpan/podlators/blib/script/pod2text: No such file or directory
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:
or my edited down version:
and note it never actually builds cpan/podlators/blib/script/pod2text.
If I go into the failed build dir, it does build it:
I tried a few variations of deleting and rebuilding files there just to show behaviour.
The makefiles from the podlators directory:
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
Are there any make experts out there who can spot the race in this