> [gschafer - Tue Jun 07 00:34:04 2005]:
> 
> This is a bug report for perl from [EMAIL PROTECTED],
> generated with the help of perlbug 1.34 running under perl v5.8.0.
> 
> 
> -----------------------------------------------------------------
> [Please enter your report here]
> 
> Hi
> 
> I'm running i686-pc-linux-gnu
> 
> The build of 5.8.7 fails to build with parallel make (-j3). It craps
> out with the following error and is 100% repeatable:
> 
> cc -s -o miniperl \
>     miniperlmain.o opmini.o libperl.a -lnsl -ldl -lm -lcrypt -lutil
> -lc
> ./miniperl -w -Ilib -MExporter -e '<?>' || make minitest
> ./miniperl -Ilib configpm --heavy=lib/Config_heavy.pl configpm.tmp
> ./miniperl -Ilib configpm --heavy=lib/Config_heavy.pl configpm.tmp
> make: [extra.pods] Error 1 (ignored)
> sh mv-if-diff configpm.tmp lib/Config.pm
> sh mv-if-diff configpm.tmp lib/Config.pm
> mv: cannot stat `configpm.tmp': No such file or directory
> make: *** [lib/Config_heavy.pl] Error 1
> 
> 
> It seems the Makefile.SH changes pertaining to `CONFIGPM' are not
> parallel safe. Not sure how best to fix..
> 

The problem is that the CONFIGPM target contains two files.  While
running single threaded, one target ends up handling both.  A threaded
make, however, causes a race condition in the processing.  Both targets
want to move configpm.tmp to lib/Config.pm, but in a threaded make only
one should be able to do it.  I was also only able to reproduce this
with "make -j3", but "make -j2" should eventually the same problem to
occur.  I best solution would likely be to split up the targets, and I'm
now looking into how best to accomplish this.  

Reply via email to