diff options
Diffstat (limited to 'meta/recipes-devtools/perl/perl-5.12.2/parallel_build_fix_5.patch')
-rw-r--r-- | meta/recipes-devtools/perl/perl-5.12.2/parallel_build_fix_5.patch | 430 |
1 files changed, 0 insertions, 430 deletions
diff --git a/meta/recipes-devtools/perl/perl-5.12.2/parallel_build_fix_5.patch b/meta/recipes-devtools/perl/perl-5.12.2/parallel_build_fix_5.patch deleted file mode 100644 index 70f7104..0000000 --- a/meta/recipes-devtools/perl/perl-5.12.2/parallel_build_fix_5.patch +++ /dev/null @@ -1,430 +0,0 @@ -Upstream-Status:Inappropriate [Backport] - -Rebased by Nitin A Kamble <nitin.a.kamble@intel.com> on 3/11/2011 - -commit 5e4c4c91bd52a48de59520d5e9b4e3478e49c613 -Author: Nicholas Clark <nick@ccl4.org> -Date: Mon Feb 14 10:14:18 2011 +0000 - - Use a buildcustomize.pl to set @INC in miniperl when building extensions. - - With the build tools now shipped in various subdirectories of cpan/ and dist/ - we need to add several paths to @INC when invoking MakeMaker (etc) to build - extensions. - - The previous approach of using $ENV{PERL5LIB} was fragile, because: - a: It was hitting the length limit for %ENV variables on VMS - b: It was running the risk of race conditions in a parallel build - - ExtUtils::Makemaker "knows" to add -I../..lib, which puts lib at the *front* - of @INC, but if one parallel process happens to copy a module into lib/ - whilst another is searching for it, the second may get a partial read - c: Overwriting $ENV{PERL5LIB} breaks any system where any of the installed - build tools are actually implemented in Perl, if they are relying on - $ENV{PERL5LIB} for setup - - This approach - - a: Doesn't have %ENV length limits - b: Ensures that lib/ is last, so copy targets are always shadowing copy - sources - c: Only affects miniperl, and doesn't touch $ENV{PERL5LIB} - - Approaches that turned out to have fatal flaws: - - 1: Using $ENV{PERL5OPT} with a module fails because ExtUtils::MakeMaker - searches for the build perl without setting lib, and treats the error - caused by a failed -M as "not a valid perl 5 binary" - 2: Refactoring ExtUtils::MakeMaker to *not* use -I for lib, and instead rely - on $ENV{PERL5LIB} [which includes "../../lib"] fails because: - some extensions have subdirectories, and on these EU::MM correctly uses - -I../../../lib, where as $ENV{PERL5LIB} only has space for relative paths, - and only with two levels. - - This approach actually takes advantage of ExtUtils::MakeMaker setting an -I - option correct for the depth of directory being built. - -Index: perl-5.12.2/Cross/Makefile-cross-SH -=================================================================== ---- perl-5.12.2.orig/Cross/Makefile-cross-SH -+++ perl-5.12.2/Cross/Makefile-cross-SH -@@ -324,7 +324,7 @@ $spitshell >>$Makefile <<'!NO!SUBS!' - - CONFIGPM = xlib/$(CROSS_NAME)/Config.pm - --private = preplibrary $(CONFIGPM) $(CROSS_LIB)/Config.pod -+private = preplibrary $(CONFIGPM) $(CROSS_LIB)/Config.pod lib/buildcustomize.pl - - shextract = Makefile cflags config.h makeaperl makedepend \ - makedir myconfig writemain pod/Makefile -@@ -752,6 +752,9 @@ 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 -+ - unidatafiles $(unidatafiles): uni.data - - uni.data: miniperl$(EXE_EXT) $(CONFIGPM) lib/unicore/mktables -@@ -922,16 +925,16 @@ manicheck: FORCE - - - --$(DYNALOADER): preplibrary FORCE -+$(DYNALOADER): lib/buildcustomize.pl preplibrary FORCE - @$(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl --cross $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS) - --d_dummy $(dynamic_ext): miniperl$(EXE_EXT) preplibrary makeppport $(DYNALOADER) FORCE -+d_dummy $(dynamic_ext): miniperl$(EXE_EXT) lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE - @$(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl --cross $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic - --s_dummy $(static_ext): miniperl$(EXE_EXT) preplibrary makeppport $(DYNALOADER) FORCE -+s_dummy $(static_ext): miniperl$(EXE_EXT) lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE - @$(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl --cross $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS) - --n_dummy $(nonxs_ext): miniperl$(EXE_EXT) preplibrary $(DYNALOADER) FORCE -+n_dummy $(nonxs_ext): miniperl$(EXE_EXT) lib/buildcustomize.pl preplibrary $(DYNALOADER) FORCE - @$(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl --cross $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) - !NO!SUBS! - -Index: perl-5.12.2/MANIFEST -=================================================================== ---- perl-5.12.2.orig/MANIFEST -+++ perl-5.12.2/MANIFEST -@@ -4747,6 +4747,7 @@ win32/wince.c WinCE port - win32/wince.h WinCE port - win32/wincesck.c WinCE port - writemain.SH Generate perlmain.c from miniperlmain.c+extensions -+write_buildcustomize.pl Generate lib/buildcustomize.pl - x2p/a2p.c Output of a2p.y run through byacc - x2p/a2p.h Global declarations - x2p/a2p.pod Pod for awk to perl translator -Index: perl-5.12.2/Makefile.SH -=================================================================== ---- perl-5.12.2.orig/Makefile.SH -+++ perl-5.12.2/Makefile.SH -@@ -428,7 +428,7 @@ esac - ## In the following dollars and backticks do not need the extra backslash. - $spitshell >>$Makefile <<'!NO!SUBS!' - --private = preplibrary $(CONFIGPM) $(CONFIGPOD) lib/ExtUtils/Miniperl.pm git_version.h -+private = preplibrary $(CONFIGPM) $(CONFIGPOD) lib/ExtUtils/Miniperl.pm git_version.h lib/buildcustomize.pl - - # Files to be built with variable substitution before miniperl - # is available. -@@ -991,6 +991,9 @@ $(plextract): $(MINIPERL_EXE) $(CONFIGPM - x2p/s2p: $(MINIPERL_EXE) $(CONFIGPM) $(dynamic_ext) x2p/s2p.PL - cd x2p; $(LDLIBPTH) $(MAKE) s2p - -+lib/buildcustomize.pl: $(MINIPERL_EXE) write_buildcustomize.pl -+ $(MINIPERL) write_buildcustomize.pl >lib/buildcustomize.pl -+ - unidatafiles $(unidatafiles) pod/perluniprops.pod: uni.data - - uni.data: $(MINIPERL_EXE) $(CONFIGPM) lib/unicore/mktables $(nonxs_ext) -@@ -1160,16 +1163,16 @@ manicheck: FORCE - # - # DynaLoader may be needed for extensions that use Makefile.PL. - --$(DYNALOADER): $(MINIPERL_EXE) preplibrary FORCE $(nonxs_ext) -+$(DYNALOADER): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary FORCE $(nonxs_ext) - $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS) - --d_dummy $(dynamic_ext): $(MINIPERL_EXE) preplibrary makeppport $(DYNALOADER) FORCE $(PERLEXPORT) -+d_dummy $(dynamic_ext): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE $(PERLEXPORT) - $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic - --s_dummy $(static_ext): $(MINIPERL_EXE) preplibrary makeppport $(DYNALOADER) FORCE -+s_dummy $(static_ext): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE - $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS) - --n_dummy $(nonxs_ext): $(MINIPERL_EXE) preplibrary FORCE -+n_dummy $(nonxs_ext): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary FORCE - $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) - !NO!SUBS! - -Index: perl-5.12.2/installperl -=================================================================== ---- perl-5.12.2.orig/installperl -+++ perl-5.12.2/installperl -@@ -714,6 +714,8 @@ sub installlib { - # ignore the test extensions - return if $dir =~ m{\bXS/(?:APItest|Typemap)\b}; - return if $name =~ m{\b(?:APItest|Typemap)\.pm$}; -+ # ignore the build support code -+ return if $name =~ /\bbuildcustomize\.pl$/; - # ignore the demo files - return if $dir =~ /\b(?:demos?|eg)\b/; - -Index: perl-5.12.2/make_ext.pl -=================================================================== ---- perl-5.12.2.orig/make_ext.pl -+++ perl-5.12.2/make_ext.pl -@@ -4,11 +4,9 @@ use warnings; - use Config; - BEGIN { - if ($^O eq 'MSWin32') { -- unshift @INC, ('../cpan/Cwd', '../cpan/Cwd/lib'); -- require File::Spec::Functions; -+ unshift @INC, '../cpan/Cwd'; - require FindExt; -- } -- else { -+ } else { - unshift @INC, 'cpan/Cwd'; - } - } -@@ -18,27 +16,6 @@ my $is_Win32 = $^O eq 'MSWin32'; - my $is_VMS = $^O eq 'VMS'; - my $is_Unix = !$is_Win32 && !$is_VMS; - --# To clarify, this isn't the entire suite of modules considered "toolchain" --# It's not even all modules needed to build ext/ --# It's just the source paths of the (minimum complete set of) modules in ext/ --# needed to build the nonxs modules --# After which, all nonxs modules are in lib, which was always sufficient to --# allow miniperl to build everything else. -- --# This list cannot get any longer without overflowing the length limit for --# environment variables on VMS --my @toolchain = qw(cpan/AutoLoader/lib -- cpan/Cwd cpan/Cwd/lib -- cpan/ExtUtils-Command/lib -- dist/ExtUtils-Install/lib -- cpan/ExtUtils-MakeMaker/lib -- cpan/ExtUtils-Manifest/lib -- cpan/File-Path/lib -- ); -- --# Used only in ExtUtils::Liblist::Kid::_win32_ext() --push @toolchain, 'cpan/Text-ParseWords/lib' if $is_Win32; -- - my @ext_dirs = qw(cpan dist ext); - my $ext_dirs_re = '(?:' . join('|', @ext_dirs) . ')'; - -@@ -295,16 +272,7 @@ sub build_extension { - $perl ||= "$up/miniperl"; - my $return_dir = $up; - my $lib_dir = "$up/lib"; -- # $lib_dir must be last, as we're copying files into it, and in a parallel -- # make there's a race condition if one process tries to open a module that -- # another process has half-written. -- my @new_inc = ((map {"$up/$_"} @toolchain), $lib_dir); -- if ($is_Win32) { -- @new_inc = map {File::Spec::Functions::rel2abs($_)} @new_inc; -- } -- $ENV{PERL5LIB} = join $Config{path_sep}, @new_inc; - $ENV{PERL_CORE} = 1; -- # warn $ENV{PERL5LIB}; - - my $makefile; - if ($is_VMS) { -@@ -375,7 +343,7 @@ EOM - @cross = '-MCross'; - } - -- my @args = (@cross, 'Makefile.PL'); -+ my @args = ("-I$lib_dir", @cross, 'Makefile.PL'); - if ($is_VMS) { - my $libd = VMS::Filespec::vmspath($lib_dir); - push @args, "INST_LIB=$libd", "INST_ARCHLIB=$libd"; -Index: perl-5.12.2/vms/descrip_mms.template -=================================================================== ---- perl-5.12.2.orig/vms/descrip_mms.template -+++ perl-5.12.2/vms/descrip_mms.template -@@ -360,7 +360,7 @@ CRTLOPTS =,$(CRTL)/Options - unidatadirs = lib/unicore/To lib/unicore/lib - - # Modules which must be installed before we can build extensions --LIBPREREQ = $(ARCHDIR)Config.pm $(ARCHDIR)Config_heavy.pl [.lib.VMS]Filespec.pm $(ARCHDIR)vmspipe.com [.lib]re.pm -+LIBPREREQ = $(ARCHDIR)Config.pm $(ARCHDIR)Config_heavy.pl [.lib.VMS]Filespec.pm $(ARCHDIR)vmspipe.com [.lib]re.pm [.lib]buildcustomize.pl - - utils1 = [.lib.pods]perldoc.com [.lib.ExtUtils]Miniperl.pm [.utils]c2ph.com [.utils]h2ph.com - utils2 = [.utils]h2xs.com [.utils]libnetcfg.com [.lib]perlbug.com [.utils]dprofpp.com -@@ -458,6 +458,9 @@ archcorefiles : $(ac) $(ARCHAUTO)time.st - [.lib]re.pm : [.ext.re]re.pm - Copy/NoConfirm/Log $(MMS$SOURCE) [.lib] - -+[.lib]buildcustomize.pl : write_buildcustomize.pl $(MINIPERL_EXE) -+ $(MINIPERL) write_buildcustomize.pl > [.lib]buildcustomize.pl -+ - vmspipe.com : [.vms]vmspipe.com - Copy/NoConfirm/Log $(MMS$SOURCE) [] - -@@ -561,7 +564,7 @@ unidatafiles.ts : $(MINIPERL_EXE) [.lib] - @ If F$Search("$(MMS$TARGET)").nes."" Then Delete/NoLog/NoConfirm $(MMS$TARGET);* - @ Copy/NoConfirm _NLA0: $(MMS$TARGET) - --DynaLoader$(O) : $(ARCHDIR)Config.pm $(MINIPERL_EXE) [.lib.VMS]Filespec.pm -+DynaLoader$(O) : [.lib]buildcustomize.pl $(ARCHDIR)Config.pm $(MINIPERL_EXE) [.lib.VMS]Filespec.pm - $(MINIPERL) make_ext.pl "MAKE=$(MMS)" "DynaLoader" - - dynext : $(LIBPREREQ) $(DBG)perlshr$(E) unidatafiles.ts DynaLoader$(O) preplibrary makeppport $(MINIPERL_EXE) -@@ -1856,6 +1859,7 @@ tidy : cleanlis - - If F$Search("[.utils]*.com;-1").nes."" Then Purge/NoConfirm/Log [.utils]*.com - - If F$Search("[.x2p]*.com;-1").nes."" Then Purge/NoConfirm/Log [.x2p]*.com - - If F$Search("[.lib.pods]*.com;-1").nes."" Then Purge/NoConfirm/Log [.lib.pods]*.com -+ - If F$Search("[.lib]buildcustomize.pl;-1").nes."" Then Purge/NoConfirm/Log [.lib]buildcustomize.pl - - clean : tidy cleantest - - $(MINIPERL) make_ext.pl "MAKE=$(MMS)" "--all" "--target=clean" -Index: perl-5.12.2/win32/Makefile -=================================================================== ---- perl-5.12.2.orig/win32/Makefile -+++ perl-5.12.2/win32/Makefile -@@ -923,6 +923,9 @@ $(CONFIGPM) : $(MINIPERL) ..\config.sh c - -$(MINIPERL) -I..\lib $(ICWD) config_h.PL "INST_VER=$(INST_VER)" - if errorlevel 1 $(MAKE) /$(MAKEFLAGS) $(CONFIGPM) - -+..\lib\buildcustomize.pl: $(MINIPERL) ..\write_buildcustomize.pl -+ $(MINIPERL) -I..\lib ..\write_buildcustomize.pl .. >..\lib\buildcustomize.pl -+ - $(MINIPERL) : $(MINIDIR) $(MINI_OBJ) - $(LINK32) -subsystem:console -out:$@ @<< - $(LINK_FLAGS) $(LIBFILES) $(MINI_OBJ) -@@ -1045,24 +1048,24 @@ MakePPPort: $(MINIPERL) $(CONFIGPM) Exte - #------------------------------------------------------------------------------- - # There's no direct way to mark a dependency on - # DynaLoader.pm, so this will have to do --Extensions: ..\make_ext.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER) -+Extensions: ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER) - $(XCOPY) ..\*.h $(COREDIR)\*.* - $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --dynamic - --Extensions_reonly: ..\make_ext.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER) -+Extensions_reonly: ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER) - $(XCOPY) ..\*.h $(COREDIR)\*.* - $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --dynamic +re - --Extensions_static : ..\make_ext.pl list_static_libs.pl $(PERLDEP) $(CONFIGPM) -+Extensions_static : ..\make_ext.pl ..\lib\buildcustomize.pl list_static_libs.pl $(PERLDEP) $(CONFIGPM) - $(XCOPY) ..\*.h $(COREDIR)\*.* - $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --static - $(MINIPERL) -I..\lib list_static_libs.pl > Extensions_static - --Extensions_nonxs: ..\make_ext.pl $(PERLDEP) $(CONFIGPM) -+Extensions_nonxs: ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM) - $(XCOPY) ..\*.h $(COREDIR)\*.* - $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --nonxs - --$(DYNALOADER) : ..\make_ext.pl $(PERLDEP) $(CONFIGPM) Extensions_nonxs -+$(DYNALOADER) : ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM) Extensions_nonxs - $(XCOPY) ..\*.h $(COREDIR)\*.* - $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(EXTDIR) --dynaloader - -@@ -1159,6 +1162,7 @@ distclean: realclean - -del /f $(LIBDIR)\Win32CORE.pm - -del /f $(LIBDIR)\Win32API\File.pm - -del /f $(LIBDIR)\Win32API\File\cFile.pc -+ -del /f $(LIBDIR)\buildcustomize.pl - -del /f $(DISTDIR)\XSLoader\XSLoader.pm - -if exist $(LIBDIR)\App rmdir /s /q $(LIBDIR)\App - -if exist $(LIBDIR)\Archive rmdir /s /q $(LIBDIR)\Archive -Index: perl-5.12.2/win32/makefile.mk -=================================================================== ---- perl-5.12.2.orig/win32/makefile.mk -+++ perl-5.12.2/win32/makefile.mk -@@ -1215,6 +1215,10 @@ $(CONFIGPM) : $(MINIPERL) ..\config.sh c - $(MINIPERL) -I..\lib $(ICWD) config_h.PL "INST_VER=$(INST_VER)" \ - || $(MAKE) $(MAKEMACROS) $(CONFIGPM) $(MAKEFILE) - -+..\lib\buildcustomize.pl: $(MINIPERL) ..\write_buildcustomize.pl -+ $(MINIPERL) -I..\lib ..\write_buildcustomize.pl .. >..\lib\buildcustomize.pl -+ -+ - $(MINIPERL) : $(MINIDIR) $(MINI_OBJ) $(CRTIPMLIBS) - .IF "$(CCTYPE)" == "BORLAND" - if not exist $(CCLIBDIR)\PSDK\odbccp32.lib \ -@@ -1423,24 +1427,24 @@ MakePPPort: $(MINIPERL) $(CONFIGPM) Exte - #------------------------------------------------------------------------------- - # There's no direct way to mark a dependency on - # DynaLoader.pm, so this will have to do --Extensions : ..\make_ext.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER) -+Extensions : ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER) - $(XCOPY) ..\*.h $(COREDIR)\*.* - $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --dynamic - --Extensions_reonly : ..\make_ext.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER) -+Extensions_reonly : ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER) - $(XCOPY) ..\*.h $(COREDIR)\*.* - $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --dynamic +re - --Extensions_static : ..\make_ext.pl list_static_libs.pl $(PERLDEP) $(CONFIGPM) -+Extensions_static : ..\make_ext.pl ..\lib\buildcustomize.pl list_static_libs.pl $(PERLDEP) $(CONFIGPM) - $(XCOPY) ..\*.h $(COREDIR)\*.* - $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --static - $(MINIPERL) -I..\lib list_static_libs.pl > Extensions_static - --Extensions_nonxs : ..\make_ext.pl $(PERLDEP) $(CONFIGPM) -+Extensions_nonxs : ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM) - $(XCOPY) ..\*.h $(COREDIR)\*.* - $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --nonxs - --$(DYNALOADER) : ..\make_ext.pl $(PERLDEP) $(CONFIGPM) Extensions_nonxs -+$(DYNALOADER) : ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM) Extensions_nonxs - $(XCOPY) ..\*.h $(COREDIR)\*.* - $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(EXTDIR) --dynaloader - -@@ -1534,6 +1538,7 @@ distclean: realclean - -del /f $(LIBDIR)\Win32CORE.pm - -del /f $(LIBDIR)\Win32API\File.pm - -del /f $(LIBDIR)\Win32API\File\cFile.pc -+ -del /f $(LIBDIR)\buildcustomize.pl - -del /f $(DISTDIR)\XSLoader\XSLoader.pm - -if exist $(LIBDIR)\App rmdir /s /q $(LIBDIR)\App - -if exist $(LIBDIR)\Archive rmdir /s /q $(LIBDIR)\Archive -Index: perl-5.12.2/write_buildcustomize.pl -=================================================================== ---- /dev/null -+++ perl-5.12.2/write_buildcustomize.pl -@@ -0,0 +1,50 @@ -+#!./miniperl -w -+ -+use strict; -+if (@ARGV) { -+ my $dir = shift; -+ chdir $dir or die "Can't chdir '$dir': $!"; -+ unshift @INC, 'lib'; -+} -+ -+unshift @INC, ('cpan/Cwd', 'cpan/Cwd/lib'); -+require File::Spec::Functions; -+ -+# To clarify, this isn't the entire suite of modules considered "toolchain" -+# It's not even all modules needed to build ext/ -+# It's just the source paths of the (minimum complete set of) modules in ext/ -+# needed to build the nonxs modules -+# After which, all nonxs modules are in lib, which was always sufficient to -+# allow miniperl to build everything else. -+ -+my @toolchain = qw(cpan/AutoLoader/lib -+ cpan/Cwd cpan/Cwd/lib -+ cpan/ExtUtils-Command/lib -+ dist/ExtUtils-Install/lib -+ cpan/ExtUtils-MakeMaker/lib -+ cpan/ExtUtils-Manifest/lib -+ cpan/File-Path/lib -+ ); -+ -+# Used only in ExtUtils::Liblist::Kid::_win32_ext() -+push @toolchain, 'cpan/Text-ParseWords/lib' if $^O eq 'MSWin32'; -+ -+# lib must be last, as the the toolchain modules write themselves into it -+# as they build, and it's important that @INC order ensures that the partially -+# written files are always masked by the complete versions. -+ -+my $inc = join ",\n ", -+ map { "q\0$_\0" } -+ (map {File::Spec::Functions::rel2abs($_)} @toolchain, 'lib'), '.'; -+ -+# If any of the system's build tools are written in Perl, then this module -+# may well be loaded by a much older version than we are building. So keep it -+# as backwards compatible as is easy. -+print <<"EOT"; -+#!perl -+ -+# We are miniperl, building extensions -+# Reset \@INC completely, adding the directories we need, and removing the -+# installed directories (which we don't need to read, and may confuse us) -+\@INC = ($inc); -+EOT |