From 7353f64c5bca6e7102582a1e0017c850930249c3 Mon Sep 17 00:00:00 2001 From: Nicholas Clark Date: Mon, 14 Feb 2011 20:36:36 +0000 Subject: [PATCH] Add ext/re/re.pm to the @INC set for miniperl by lib/buildcustomize.pl This avoids a build-time race condition where lib/re.pm might be read midway through the *second* copy of it (when ext/re/Makefile is being run). It also simplifies many [Mm]akefile* rules, which previously had a special case to copy it early. --- Cross/Makefile-cross-SH | 8 ++------ Makefile.SH | 10 +++------- vms/descrip_mms.template | 7 ++----- win32/Makefile | 1 - win32/makefile.mk | 1 - write_buildcustomize.pl | 1 + 6 files changed, 8 insertions(+), 20 deletions(-) diff --git a/Cross/Makefile-cross-SH b/Cross/Makefile-cross-SH index d1d2cbf..65d496a 100644 --- a/Cross/Makefile-cross-SH +++ b/Cross/Makefile-cross-SH @@ -717,7 +717,7 @@ fi $spitshell >>$Makefile <<'!NO!SUBS!' .PHONY: preplibrary -preplibrary: miniperl $(CONFIGPM) lib/lib.pm lib/re.pm $(PREPLIBRARY_LIBPERL) +preplibrary: miniperl $(CONFIGPM) lib/lib.pm $(PREPLIBRARY_LIBPERL) .PHONY: makeppport makeppport: miniperl$(EXE_EXT) $(CONFIGPM) @@ -734,10 +734,6 @@ lib/re.pm: ext/re/re.pm @-rm -f $@ cp ext/re/re.pm lib/re.pm -lib/lib.pm: miniperl $(CONFIGPM) - @-rm -f $@ - $(LDLIBPTH) ./miniperl -Ilib -MCross lib/lib_pm.PL - lib/buildcustomize.pl: $(MINIPERL_EXE) write_buildcustomize.pl $(MINIPERL) write_buildcustomize.pl >lib/buildcustomize.pl @@ -1193,7 +1189,7 @@ minitest.prep: # Can't depend on lib/Config.pm because that might be where miniperl # is crashing. -minitest: miniperl$(EXE_EXT) lib/re.pm minitest.prep +minitest: miniperl$(EXE_EXT) minitest.prep - cd t && (rm -f perl$(EXE_EXT); $(LNS) ../miniperl$(EXE_EXT) perl$(EXE_EXT)) \ && $(LDLIBPTH) ./perl TEST -minitest base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t uni/*.t >$Makefile <<'!NO!SUBS!' .PHONY: preplibrary -preplibrary: $(MINIPERL_EXE) $(CONFIGPM) lib/re.pm $(PREPLIBRARY_LIBPERL) +preplibrary: $(MINIPERL_EXE) $(CONFIGPM) $(PREPLIBRARY_LIBPERL) $(CONFIGPM_FROM_CONFIG_SH): $(CONFIGPOD) @@ -995,10 +995,6 @@ $(CONFIGPOD): config.sh $(MINIPERL_EXE) configpm Porting/Glossary lib/Config_git lib/ExtUtils/Miniperl.pm: miniperlmain.c $(MINIPERL_EXE) minimod.pl $(CONFIGPM) $(MINIPERL) minimod.pl > lib/ExtUtils/Miniperl.pm -lib/re.pm: ext/re/re.pm - @-rm -f $@ - cp ext/re/re.pm lib/re.pm - lib/buildcustomize.pl: $(MINIPERL_EXE) write_buildcustomize.pl $(MINIPERL) write_buildcustomize.pl >lib/buildcustomize.pl @@ -1273,7 +1269,7 @@ _cleaner2: rm -f lib/.exists lib/*/.exists lib/*/*/.exists rm -f h2ph.man pstruct rm -rf .config - rm -f preload lib/re.pm + rm -f preload rm -rf lib/Encode lib/Compress lib/Hash lib/re rm -rf lib/TAP lib/Module/Pluggable lib/App rm -rf lib/mro @@ -1468,7 +1464,7 @@ minitest.prep: # Can't depend on lib/Config.pm because that might be where miniperl # is crashing. -minitest: $(MINIPERL_EXE) lib/re.pm minitest.prep +minitest: $(MINIPERL_EXE) minitest.prep - cd t && (rm -f $(PERL_EXE); $(LNS) ../$(MINIPERL_EXE) $(PERL_EXE)) \ && $(RUN_PERL) TEST -minitest base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t op/*.t uni/*.t [.lib]buildcustomize.pl @@ -1522,7 +1519,7 @@ test_harness : all [.t.lib]vmsfspec.t - @[.vms]test.com "$(E)" "$(__DEBUG__)" @ $(MINIPERL) -e "print ""Ran tests"";" > [.t]rantests. -minitest : $(MINITEST_EXE) [.lib]re.pm [.lib.VMS]Filespec.pm unidatafiles.ts +minitest : $(MINITEST_EXE) [.lib.VMS]Filespec.pm unidatafiles.ts @ PERL_TEST_DRIVER == "minitest" - @[.vms]test.com "$(E)" "$(__DEBUG__)" diff --git a/win32/Makefile b/win32/Makefile index 4897a4a..e66924f 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -853,7 +853,6 @@ $(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL ..\minimod.pl if exist lib\* $(RCOPY) lib\*.* ..\lib\$(NULL) $(XCOPY) ..\*.h $(COREDIR)\*.* $(XCOPY) *.h $(COREDIR)\*.* - $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.* $(RCOPY) include $(COREDIR)\*.* -$(MINIPERL) -I..\lib $(ICWD) config_h.PL "INST_VER=$(INST_VER)" if errorlevel 1 $(MAKE) /$(MAKEFLAGS) $(CONFIGPM) diff --git a/win32/makefile.mk b/win32/makefile.mk index fcc30ac..789ecc4 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -1155,7 +1155,6 @@ $(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL ..\minimod.pl if exist lib\* $(RCOPY) lib\*.* ..\lib\$(NULL) $(XCOPY) ..\*.h $(COREDIR)\*.* $(XCOPY) *.h $(COREDIR)\*.* - $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.* $(RCOPY) include $(COREDIR)\*.* $(MINIPERL) -I..\lib $(ICWD) config_h.PL "INST_VER=$(INST_VER)" \ || $(MAKE) $(MAKEMACROS) $(CONFIGPM) $(MAKEFILE) diff --git a/write_buildcustomize.pl b/write_buildcustomize.pl index 7d75896..0508e27 100644 --- a/write_buildcustomize.pl +++ b/write_buildcustomize.pl @@ -24,6 +24,7 @@ my @toolchain = qw(cpan/AutoLoader/lib cpan/ExtUtils-MakeMaker/lib dist/ExtUtils-Manifest/lib cpan/File-Path/lib + ext/re ); # Used only in ExtUtils::Liblist::Kid::_win32_ext() -- 1.8.3.1