From: Nicholas Clark Date: Wed, 16 Sep 2009 08:03:10 +0000 (+0100) Subject: Revert 109e4020 and 2da760ce for now. Win32 needs to AutoSplit DynaLoader.pm X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=9139c7231c70a9388d718abc41e91edaf43422ec;p=p5sagit%2Fp5-mst-13.2.git Revert 109e4020 and 2da760ce for now. Win32 needs to AutoSplit DynaLoader.pm Khan! Win32 is special. It builds DynaLoader by hand, copies in DynaLoader.pm (and XSLoader.pm) to lib, and *then* runs, and relies on, the general AutoSplit to split them. It would be better if everything standardised on building DynaLoader via its Makefile.PL and MakeMaker. This reverts commit 2da760ceef1d2d90b3141bdeb239c7d7580be05a. This reverts commit 109e4020ef40828991be28fb05d9f269b4d92530. --- diff --git a/MANIFEST b/MANIFEST index 30ba2e0..ce6279c 100644 --- a/MANIFEST +++ b/MANIFEST @@ -3679,6 +3679,7 @@ NetWare/NWUtil.c NetWare port NetWare/nwutil.h NetWare port NetWare/nwvmem.h NetWare port NetWare/perllib.cpp NetWare port +NetWare/splittree.pl NetWare port NetWare/sv_nw.c NetWare port NetWare/testnlm/echo/echo.c NetWare port NetWare/testnlm/type/type.c NetWare port @@ -4617,6 +4618,7 @@ win32/perlmaince.c WinCE port win32/perl.rc WinCE port win32/pod.mak Win32 port win32/runperl.c Win32 port +win32/splittree.pl Win32 port win32/sync_ext.pl Win32 port win32/vdir.h Perl "host" virtual directory manager for CE win32/vmem.h Perl "host" memory manager for CE diff --git a/NetWare/Makefile b/NetWare/Makefile index 0696df1..9ae1c7a 100644 --- a/NetWare/Makefile +++ b/NetWare/Makefile @@ -1041,6 +1041,8 @@ $(NLM_NAME): MESSAGE HEADERS $(BLDDIR)\nul $(NLM_OBJ) $(NEWTARE_OBJ_DEP) $(NEWTA !endif ## $(LINK) $(LDFLAGS) $(BS_CFLAGS) -desc "Perl 5.6.1 for NetWare" $(NEWTARE_OBJ_DEP:.obj=.obj) $(NLM_OBJ:.obj=.obj) $(PERL_IO_OBJ_DEP:.obj=.obj) $(DLL_OBJ:.obj=.obj) $(NEWTARE_CPP_OBJ_DEP:.obj=.obj) -commandfile $*.def -o .\$(BLDDIR)\$@ $(LINK) $(LDFLAGS) -desc $(MODULE_DESC) $(NEWTARE_OBJ_DEP:.obj=.obj) $(NLM_OBJ:.obj=.obj) $(PERL_IO_OBJ_DEP:.obj=.obj) $(DLL_OBJ:.obj=.obj) $(NEWTARE_CPP_OBJ_DEP:.obj=.obj) -commandfile $*.def -o .\$(BLDDIR)\$@ + copy splittree.pl .. + $(MINIPERL) -I..\lib ..\splittree.pl "../LIB" $(AUTODIR) @echo ========Linked $@ ========== @echo======= Finished building $(BUILT). @@ -1417,7 +1419,7 @@ distclean: clean nwclean -del /f /q *.bat *.exe -del /f /q *.obj *.map *.link *.xdc *.err cd ..\netware - -del /f /q ..\config.sh dlutils.c config.h.new + -del /f /q ..\config.sh ..\splittree.pl dlutils.c config.h.new -del /f /q $(CONFIGPM) -del /f /q bin\*.bat cd $(EXTDIR) @@ -1463,6 +1465,8 @@ install_tests : nwinstall: utils installnw install_tests inst_lib : $(CONFIGPM) + copy ..\win32\splittree.pl .. + $(MINIPERL) -I..\lib ..\splittree.pl "../LIB" $(AUTODIR) $(RCOPY) ..\lib $(INST_LIB)\*.* clean : diff --git a/NetWare/splittree.pl b/NetWare/splittree.pl new file mode 100644 index 0000000..3c76daa --- /dev/null +++ b/NetWare/splittree.pl @@ -0,0 +1,24 @@ +use DirHandle; +use AutoSplit; + +sub splitthis { +my ($top,$base,$dest) = @_; +my $d = new DirHandle $base; +if (defined $d) { + while (defined($_ = $d->read)) { + next if $_ eq "."; + next if $_ eq ".."; + my $entry = "$base\\$_"; + my $entrywithouttop = $entry; + $entrywithouttop =~ s/^$top//; + if (-d $entry) {splitthis ($top,$entry,$dest);} + else { + next unless ($entry=~/pm$/i); + #print "Will run autosplit on $entry to $dest\n"; + autosplit($entry,$dest,0,1,1); + }; + }; + }; +} + +splitthis $ARGV[0],$ARGV[0],$ARGV[1]; diff --git a/win32/Makefile b/win32/Makefile index f737f52..d4eb178 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -1026,6 +1026,8 @@ $(PERLEXE): $(PERLDLL) $(CONFIGPM) $(PERLEXE_OBJ) $(PERLEXE_RES) $(EMBED_EXE_MANI) copy $(PERLEXE) $(WPERLEXE) $(MINIPERL) -I..\lib bin\exetype.pl $(WPERLEXE) WINDOWS + copy splittree.pl .. + $(MINIPERL) -I..\lib -I..\ext\Cwd ..\splittree.pl "../LIB" $(AUTODIR) $(PERLEXESTATIC): $(PERLSTATICLIB) $(CONFIGPM) $(PERLEXEST_OBJ) $(PERLEXE_RES) $(LINK32) -subsystem:console -out:$@ -stack:0x1000000 $(LINK_FLAGS) \ @@ -1222,7 +1224,7 @@ distclean: realclean perldoc perlivp dprofpp libnetcfg enc2xs piconv cpan *.bat \ xsubpp instmodsh prove ptar ptardiff cpanp-run-perl cpanp cpan2dist shasum corelist config_data -cd ..\x2p && del /f find2perl s2p psed *.bat - -del /f ..\config.sh perlmain.c dlutils.c config.h.new \ + -del /f ..\config.sh ..\splittree.pl perlmain.c dlutils.c config.h.new \ perlmainst.c -del /f $(CONFIGPM) -del /f ..\lib\Config_git.pl @@ -1253,6 +1255,8 @@ installhtml : doc $(RCOPY) $(HTMLDIR)\*.* $(INST_HTML)\*.* inst_lib : $(CONFIGPM) + copy splittree.pl .. + $(MINIPERL) -I..\lib -I..\ext\Cwd ..\splittree.pl "../LIB" $(AUTODIR) $(RCOPY) ..\lib $(INST_LIB)\*.* $(UNIDATAFILES) : $(MINIPERL) $(CONFIGPM) ..\lib\unicore\mktables Extensions_nonxs diff --git a/win32/makefile.mk b/win32/makefile.mk index 83387c7..a4dc36a 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -1346,6 +1346,8 @@ $(PERLEXE): $(PERLDLL) $(CONFIGPM) $(PERLEXE_OBJ) $(PERLEXE_RES) .ENDIF copy $(PERLEXE) $(WPERLEXE) $(MINIPERL) -I..\lib bin\exetype.pl $(WPERLEXE) WINDOWS + copy splittree.pl .. + $(MINIPERL) -I..\lib -I..\ext\Cwd ..\splittree.pl "../LIB" $(AUTODIR) $(PERLEXESTATIC): $(PERLSTATICLIB) $(CONFIGPM) $(PERLEXEST_OBJ) $(PERLEXE_RES) .IF "$(CCTYPE)" == "BORLAND" @@ -1547,7 +1549,7 @@ distclean: realclean perldoc perlivp dprofpp libnetcfg enc2xs piconv cpan *.bat \ xsubpp instmodsh prove ptar ptardiff cpanp-run-perl cpanp cpan2dist shasum corelist config_data -cd ..\x2p && del /f find2perl s2p psed *.bat - -del /f ..\config.sh perlmain.c dlutils.c config.h.new \ + -del /f ..\config.sh ..\splittree.pl perlmain.c dlutils.c config.h.new \ perlmainst.c -del /f $(CONFIGPM) -del /f ..\lib\Config_git.pl @@ -1578,6 +1580,8 @@ installhtml : doc $(RCOPY) $(HTMLDIR)\*.* $(INST_HTML)\*.* inst_lib : $(CONFIGPM) + copy splittree.pl .. + $(MINIPERL) -I..\lib -I..\ext\Cwd ..\splittree.pl "../LIB" $(AUTODIR) $(RCOPY) ..\lib $(INST_LIB)\*.* $(UNIDATAFILES) .UPDATEALL : $(MINIPERL) $(CONFIGPM) ..\lib\unicore\mktables Extensions_nonxs diff --git a/win32/splittree.pl b/win32/splittree.pl new file mode 100644 index 0000000..3c76daa --- /dev/null +++ b/win32/splittree.pl @@ -0,0 +1,24 @@ +use DirHandle; +use AutoSplit; + +sub splitthis { +my ($top,$base,$dest) = @_; +my $d = new DirHandle $base; +if (defined $d) { + while (defined($_ = $d->read)) { + next if $_ eq "."; + next if $_ eq ".."; + my $entry = "$base\\$_"; + my $entrywithouttop = $entry; + $entrywithouttop =~ s/^$top//; + if (-d $entry) {splitthis ($top,$entry,$dest);} + else { + next unless ($entry=~/pm$/i); + #print "Will run autosplit on $entry to $dest\n"; + autosplit($entry,$dest,0,1,1); + }; + }; + }; +} + +splitthis $ARGV[0],$ARGV[0],$ARGV[1];