When building perl with highly parallel options (e.g. -j 32) on a machine
with many cores (e.g. 32) ocassionaly it fails with the following type
of error.
make[1]: Entering directory '.../cpan/podlators'
Can't locate Getopt/Long.pm in @INC (you may need to install the Getopt::Long module) (@INC contains: .../cpan/AutoLoader/lib .../dist/Carp/lib .../dist/PathTools .../dist/PathTools/lib .../cpan/ExtUtils-Install/lib .../cpan/ExtUtils-MakeMaker/lib .../cpan/ExtUtils-Manifest/lib .../cpan/File-Path/lib .../ext/re .../dist/Term-ReadLine/lib .../dist/Exporter/lib .../ext/File-Find/lib .../cpan/Text-Tabs/lib .../dist/constant/lib .../cpan/version/lib .../lib ../../lib .) at .../cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm line 109.
Makefile:445: recipe for target 'manifypods' failed
make[1]: *** [manifypods] Error 2
The scripts pod2man, pod2text, podchecker, podselect, and pod2usage all use
Getopt-Long and since they are all part of nonxs modules this needs to be
added here to prevent these build races.
Dan Brook <dbrook@easyspace.com>
Dan Collins <dcollinsn@gmail.com>
Dan Dascalescu <bigbang7@gmail.com>
+Dan Dedrick <ddedrick@lexmark.com>
Dan Hale <danhale@us.ibm.com>
Dan Jacobson <jidanni@jidanni.org>
Dan Kogai <dankogai@dan.co.jp>
# needed to build the nonxs modules
# After which, all nonxs modules are in lib, which was always sufficient to
# allow miniperl to build everything else.
+# Getopt::Long is here because it's used by podlators, which is one of the
+# nonxs modules.
# Term::ReadLine is not here for building but for allowing the debugger to
# run under miniperl when nothing but miniperl will build :-(.
cpan/Text-Tabs/lib
dist/constant/lib
cpan/version/lib
+ cpan/Getopt-Long/lib
);
# Text-ParseWords used only in ExtUtils::Liblist::Kid::_win32_ext()
push @toolchain, qw(
cpan/Text-ParseWords/lib
dist/ExtUtils-ParseXS/lib
- cpan/Getopt-Long/lib
cpan/parent/lib
cpan/ExtUtils-Constant/lib
) if $^O eq 'MSWin32';