In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/a4e8ab8ad81a8e9c3cfd67d6cfa22e2122a58117?hp=a5ba819fc61657341addc515e13a09c715b9597d>
- Log ----------------------------------------------------------------- commit a4e8ab8ad81a8e9c3cfd67d6cfa22e2122a58117 Author: Steve Hay <[email protected]> Date: Wed Dec 31 13:43:52 2014 +0000 Remove redundant -I..\lib arguments from some Win32 makefile command-lines Invocations of $(PERLEXE) from win32\ do not need -I..\lib since $(PERLEXE) is ..\perl.exe, which will pick up the lib\ folder in ..\ anyway. Invocations of perl.exe from t\ (which may be a copy of either perl.exe or miniperl.exe from the top-level folder) also do not need -I..\lib since they all run the harness program, which fixes up @INC with exactly that ..\lib folder in a BEGIN block anyway. M win32/Makefile M win32/makefile.mk commit 4ea01bd3b46f4943827bc62ef9c2ffc6f3bcf657 Author: Daniel Dragan <[email protected]> Date: Tue Dec 23 04:02:33 2014 -0500 make win32 harness process use tested perl binary On Unix /t/perl is a symlink to /perl and the OS knows they are the same file. On Win32 perl.exe and perl5**.dll are copied from / to /t, and the OS thinks they are 2 separate files (and they are on disk). Both Win32 and Unix use MMIO and COW/inter-process sharing for their running binaries. On Unix the symlink means the 2 perl binaries will be memory mapped to the same physical memory when running. On Win32 they won't be since they are 2 separate files. It is a waste of CPU cache/physical memory for the Win32 harness process and the child .t processes to not share the same disk file/phy mem/same binary. Previously only the XS DLLs in /lib/auto were shared between harness process and child .t processes, now perl.exe and perl5**.dll will be shared between the 2 processes. Copying /perl.exe to /t/perl.exe is from 1st commit of current Makefile in commit 68dc074516 and predates Win32 perl running harness which is from commit 137443ea0a Also fix the broken "-I.\lib" in test-notty in makefile.mk . This problem was discovered with VMMap. This patch is slightly related to [perl #114704] . M win32/Makefile M win32/makefile.mk ----------------------------------------------------------------------- Summary of changes: win32/Makefile | 23 ++++++++++++----------- win32/makefile.mk | 27 +++++++++++++-------------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/win32/Makefile b/win32/Makefile index 1e9ff22..8e700ab 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -1118,7 +1118,7 @@ Extensions_realclean: #------------------------------------------------------------------------------- doc: $(PERLEXE) ..\pod\perltoc.pod - $(PERLEXE) -I..\lib ..\installhtml --podroot=.. --htmldir=$(HTMLDIR) \ + $(PERLEXE) ..\installhtml --podroot=.. --htmldir=$(HTMLDIR) \ --podpath=pod:lib:utils --htmlroot="file://$(INST_HTML::=|)" \ --recurse @@ -1319,7 +1319,8 @@ minitest : $(MINIPERL) $(GLOBEXE) $(CONFIGPM) utils $(UNIDATAFILES) $(XCOPY) $(GLOBEXE) ..\t\$(NULL) attrib -r ..\t\*.* cd ..\t && \ - $(MINIPERL) -I..\lib harness base/*.t comp/*.t cmd/*.t io/*.t opbasic/*.t op/*.t pragma/*.t +# Note this perl.exe is miniperl + perl.exe harness base/*.t comp/*.t cmd/*.t io/*.t opbasic/*.t op/*.t pragma/*.t test-prep : all utils ../pod/perltoc.pod $(XCOPY) $(PERLEXE) ..\t\$(NULL) @@ -1329,12 +1330,12 @@ test-prep : all utils ../pod/perltoc.pod test : test-prep cd ..\t - $(PERLEXE) -I..\lib harness $(TEST_SWITCHES) $(TEST_FILES) + perl.exe harness $(TEST_SWITCHES) $(TEST_FILES) cd ..\win32 test_porting : test-prep cd ..\t - $(PERLEXE) -I..\lib harness $(TEST_SWITCHES) porting\*.t ..\lib\diagnostics.t + perl.exe harness $(TEST_SWITCHES) porting\*.t ..\lib\diagnostics.t cd ..\win32 test-reonly : reonly utils @@ -1342,7 +1343,7 @@ test-reonly : reonly utils $(XCOPY) $(PERLDLL) ..\t\$(NULL) $(XCOPY) $(GLOBEXE) ..\t\$(NULL) cd ..\t - $(PERLEXE) -I..\lib harness $(OPT) -re \bre\\/ $(EXTRA) + perl.exe harness $(OPT) -re \bre\\/ $(EXTRA) cd ..\win32 regen : @@ -1353,7 +1354,7 @@ regen : test-notty : test-prep set PERL_SKIP_TTY_TEST=1 cd ..\t - $(PERLEXE) -I..\lib harness $(TEST_SWITCHES) $(TEST_FILES) + perl.exe harness $(TEST_SWITCHES) $(TEST_FILES) cd ..\win32 _test : @@ -1361,7 +1362,7 @@ _test : $(XCOPY) $(PERLDLL) ..\t\$(NULL) $(XCOPY) $(GLOBEXE) ..\t\$(NULL) cd ..\t - $(PERLEXE) -I..\lib harness $(TEST_SWITCHES) $(TEST_FILES) + perl.exe harness $(TEST_SWITCHES) $(TEST_FILES) cd ..\win32 _clean : @@ -1402,13 +1403,13 @@ realclean : Extensions_realclean _clean # Please *don't* use this unless all tests pass. # If you want to report test failures, use "nmake nok" instead. ok: utils - $(PERLEXE) -I..\lib ..\utils\perlbug -ok -s "(UNINSTALLED)" + $(PERLEXE) ..\utils\perlbug -ok -s "(UNINSTALLED)" okfile: utils - $(PERLEXE) -I..\lib ..\utils\perlbug -ok -s "(UNINSTALLED)" -F perl.ok + $(PERLEXE) ..\utils\perlbug -ok -s "(UNINSTALLED)" -F perl.ok nok: utils - $(PERLEXE) -I..\lib ..\utils\perlbug -nok -s "(UNINSTALLED)" + $(PERLEXE) ..\utils\perlbug -nok -s "(UNINSTALLED)" nokfile: utils - $(PERLEXE) -I..\lib ..\utils\perlbug -nok -s "(UNINSTALLED)" -F perl.nok + $(PERLEXE) ..\utils\perlbug -nok -s "(UNINSTALLED)" -F perl.nok diff --git a/win32/makefile.mk b/win32/makefile.mk index 3d4224b..1c16dba 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -1399,7 +1399,7 @@ Extensions_realclean : doc: $(PERLEXE) ..\pod\perltoc.pod - $(PERLEXE) -I..\lib ..\installhtml --podroot=.. --htmldir=$(HTMLDIR) \ + $(PERLEXE) ..\installhtml --podroot=.. --htmldir=$(HTMLDIR) \ --podpath=pod:lib:utils --htmlroot="file://$(INST_HTML:s,:,|,)"\ --recurse @@ -1596,7 +1596,8 @@ minitest : $(MINIPERL) $(GLOBEXE) $(CONFIGPM) $(UNIDATAFILES) utils $(XCOPY) $(GLOBEXE) ..\t\$(NULL) attrib -r ..\t\*.* cd ..\t && \ - $(MINIPERL) -I..\lib harness base/*.t comp/*.t cmd/*.t io/*.t opbasic/*.t op/*.t pragma/*.t +# Note this perl.exe is miniperl + perl.exe harness base/*.t comp/*.t cmd/*.t io/*.t opbasic/*.t op/*.t pragma/*.t test-prep : all utils ..\pod\perltoc.pod $(XCOPY) $(PERLEXE) ..\t\$(NULL) @@ -1618,34 +1619,32 @@ test-prep : all utils ..\pod\perltoc.pod test : test-prep set PERL_STATIC_EXT=$(STATIC_EXT) && \ - cd ..\t && $(PERLEXE) -I..\lib harness $(TEST_SWITCHES) $(TEST_FILES) + cd ..\t && perl.exe harness $(TEST_SWITCHES) $(TEST_FILES) test_porting : test-prep set PERL_STATIC_EXT=$(STATIC_EXT) && \ - cd ..\t && $(PERLEXE) -I..\lib harness $(TEST_SWITCHES) porting\*.t ..\lib\diagnostics.t + cd ..\t && perl.exe harness $(TEST_SWITCHES) porting\*.t ..\lib\diagnostics.t test-reonly : reonly utils $(XCOPY) $(PERLEXE) ..\t\$(NULL) $(XCOPY) $(PERLDLL) ..\t\$(NULL) $(XCOPY) $(GLOBEXE) ..\t\$(NULL) - cd ..\t && \ - $(PERLEXE) -I..\lib harness $(OPT) -re \bpat\\/ $(EXTRA) && \ - cd ..\win32 + cd ..\t && perl.exe harness $(OPT) -re \bpat\\/ $(EXTRA) regen : - cd .. && regen.pl && cd win32 + cd .. && regen.pl test-notty : test-prep set PERL_STATIC_EXT=$(STATIC_EXT) && \ set PERL_SKIP_TTY_TEST=1 && \ - cd ..\t && $(PERLEXE) -I.\lib harness $(TEST_SWITCHES) $(TEST_FILES) + cd ..\t && perl.exe harness $(TEST_SWITCHES) $(TEST_FILES) _test : $(XCOPY) $(PERLEXE) ..\t\$(NULL) $(XCOPY) $(PERLDLL) ..\t\$(NULL) $(XCOPY) $(GLOBEXE) ..\t\$(NULL) set PERL_STATIC_EXT=$(STATIC_EXT) && \ - cd ..\t && $(PERLEXE) -I..\lib harness $(TEST_SWITCHES) $(TEST_FILES) + cd ..\t && perl.exe harness $(TEST_SWITCHES) $(TEST_FILES) _clean : -@erase miniperlmain$(o) @@ -1687,13 +1686,13 @@ realclean : Extensions_realclean _clean # Please *don't* use this unless all tests pass. # If you want to report test failures, use "dmake nok" instead. ok: utils - $(PERLEXE) -I..\lib ..\utils\perlbug -ok -s "(UNINSTALLED)" + $(PERLEXE) ..\utils\perlbug -ok -s "(UNINSTALLED)" okfile: utils - $(PERLEXE) -I..\lib ..\utils\perlbug -ok -s "(UNINSTALLED)" -F perl.ok + $(PERLEXE) ..\utils\perlbug -ok -s "(UNINSTALLED)" -F perl.ok nok: utils - $(PERLEXE) -I..\lib ..\utils\perlbug -nok -s "(UNINSTALLED)" + $(PERLEXE) ..\utils\perlbug -nok -s "(UNINSTALLED)" nokfile: utils - $(PERLEXE) -I..\lib ..\utils\perlbug -nok -s "(UNINSTALLED)" -F perl.nok + $(PERLEXE) ..\utils\perlbug -nok -s "(UNINSTALLED)" -F perl.nok -- Perl5 Master Repository
