lib/Config_git.pl mustn't be built concurrently with lib/Config.pm, else there
Nicholas Clark [Tue, 10 Feb 2009 13:14:28 +0000 (13:14 +0000)]
is a race condition which loses if configpm happens to test lib/Config.pm just
at the point where lib/Config_git.pl is freshly created, but has no content, and
hence returns false. So make it an explicit dependency of lib/Config.pm

Makefile.SH

index f6dba00..799ccfb 100644 (file)
@@ -942,7 +942,7 @@ preplibrary: miniperl$(EXE_EXT) $(CONFIGPM) lib/lib.pm $(PREPLIBRARY_LIBPERL)
        $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib -MAutoSplit -MFile::Find -e 'find ({no_chdir=>1, wanted => sub {autosplit_lib_modules($$_) if /\.pm$$/}}, "lib")'
        $(MAKE) lib/re.pm
 
-$(CONFIGPM_FROM_CONFIG_SH) $(CONFIGPOD): config.sh miniperl$(EXE_EXT) configpm Porting/Glossary
+$(CONFIGPM_FROM_CONFIG_SH) $(CONFIGPOD): config.sh miniperl$(EXE_EXT) configpm Porting/Glossary lib/Config_git.pl
        $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib configpm
 
 lib/ExtUtils/Miniperl.pm: miniperlmain.c miniperl$(EXE_EXT) minimod.pl $(CONFIGPM)