diff options
| author | Nitin A Kamble <nitin.a.kamble@intel.com> | 2011-03-11 10:08:01 -0800 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-03-11 15:07:33 -0800 |
| commit | 4817a48523f5da6eb5814c7aafa99cee471c2832 (patch) | |
| tree | 803cfefdb1f5f5f3fabd7309c02e210980c3f199 /meta/recipes-devtools | |
| parent | 43a2d098008eee711399b8d64594d84ae034b9bf (diff) | |
| download | poky-4817a48523f5da6eb5814c7aafa99cee471c2832.tar.gz | |
perl: another set of parallel build fixes
[YOCTO #784]
Imported more commits from the perl upstream tree
(From OE-Core rev: c3b74b0c3833541ab5e89a7f9597f1ef8a413a70)
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools')
6 files changed, 669 insertions, 24 deletions
diff --git a/meta/recipes-devtools/perl/perl-5.12.2/Makefile.SH.patch b/meta/recipes-devtools/perl/perl-5.12.2/Makefile.SH.patch index 103fe978bc..39e5fee577 100644 --- a/meta/recipes-devtools/perl/perl-5.12.2/Makefile.SH.patch +++ b/meta/recipes-devtools/perl/perl-5.12.2/Makefile.SH.patch | |||
| @@ -166,12 +166,12 @@ Index: perl-5.12.2/Makefile.SH | |||
| 166 | $(MINIPERL) $(Icwd) mkppport | 166 | $(MINIPERL) $(Icwd) mkppport |
| 167 | 167 | ||
| 168 | !NO!SUBS! | 168 | !NO!SUBS! |
| 169 | @@ -970,30 +979,30 @@ esac | 169 | @@ -970,29 +979,29 @@ esac |
| 170 | $spitshell >>$Makefile <<'!NO!SUBS!' | 170 | $spitshell >>$Makefile <<'!NO!SUBS!' |
| 171 | 171 | ||
| 172 | .PHONY: preplibrary | 172 | .PHONY: preplibrary |
| 173 | -preplibrary: $(MINIPERL_EXE) $(CONFIGPM) lib/re.pm $(PREPLIBRARY_LIBPERL) | 173 | -preplibrary: $(MINIPERL_EXE) $(CONFIGPM) $(PREPLIBRARY_LIBPERL) |
| 174 | +preplibrary: $(CONFIGPM) lib/re.pm $(PREPLIBRARY_LIBPERL) | 174 | +preplibrary: $(CONFIGPM) $(PREPLIBRARY_LIBPERL) |
| 175 | 175 | ||
| 176 | $(CONFIGPM_FROM_CONFIG_SH): $(CONFIGPOD) | 176 | $(CONFIGPM_FROM_CONFIG_SH): $(CONFIGPOD) |
| 177 | 177 | ||
| @@ -183,10 +183,6 @@ Index: perl-5.12.2/Makefile.SH | |||
| 183 | +lib/ExtUtils/Miniperl.pm: miniperlmain.c minimod.pl $(CONFIGPM) | 183 | +lib/ExtUtils/Miniperl.pm: miniperlmain.c minimod.pl $(CONFIGPM) |
| 184 | $(MINIPERL) minimod.pl > lib/ExtUtils/Miniperl.pm | 184 | $(MINIPERL) minimod.pl > lib/ExtUtils/Miniperl.pm |
| 185 | 185 | ||
| 186 | lib/re.pm: ext/re/re.pm | ||
| 187 | @-rm -f $@ | ||
| 188 | cp ext/re/re.pm lib/re.pm | ||
| 189 | |||
| 190 | -$(plextract): $(MINIPERL_EXE) $(CONFIGPM) x2p/s2p $(dynamic_ext) | 186 | -$(plextract): $(MINIPERL_EXE) $(CONFIGPM) x2p/s2p $(dynamic_ext) |
| 191 | +$(plextract): $(CONFIGPM) x2p/s2p $(dynamic_ext) | 187 | +$(plextract): $(CONFIGPM) x2p/s2p $(dynamic_ext) |
| 192 | @-rm -f $@ | 188 | @-rm -f $@ |
| @@ -196,6 +192,10 @@ Index: perl-5.12.2/Makefile.SH | |||
| 196 | +x2p/s2p: $(CONFIGPM) $(dynamic_ext) x2p/s2p.PL | 192 | +x2p/s2p: $(CONFIGPM) $(dynamic_ext) x2p/s2p.PL |
| 197 | cd x2p; $(LDLIBPTH) $(MAKE) s2p | 193 | cd x2p; $(LDLIBPTH) $(MAKE) s2p |
| 198 | 194 | ||
| 195 | -lib/buildcustomize.pl: $(MINIPERL_EXE) write_buildcustomize.pl | ||
| 196 | +lib/buildcustomize.pl: write_buildcustomize.pl | ||
| 197 | $(MINIPERL) write_buildcustomize.pl >lib/buildcustomize.pl | ||
| 198 | |||
| 199 | unidatafiles $(unidatafiles) pod/perluniprops.pod: uni.data | 199 | unidatafiles $(unidatafiles) pod/perluniprops.pod: uni.data |
| 200 | 200 | ||
| 201 | -uni.data: $(MINIPERL_EXE) $(CONFIGPM) lib/unicore/mktables $(nonxs_ext) | 201 | -uni.data: $(MINIPERL_EXE) $(CONFIGPM) lib/unicore/mktables $(nonxs_ext) |
| @@ -203,7 +203,7 @@ Index: perl-5.12.2/Makefile.SH | |||
| 203 | $(MINIPERL) $(Icwd) lib/unicore/mktables -C lib/unicore -P pod -maketest -makelist -p | 203 | $(MINIPERL) $(Icwd) lib/unicore/mktables -C lib/unicore -P pod -maketest -makelist -p |
| 204 | # Commented out so always runs, mktables looks at far more files than we | 204 | # Commented out so always runs, mktables looks at far more files than we |
| 205 | # can in this makefile to decide if needs to run or not | 205 | # can in this makefile to decide if needs to run or not |
| 206 | @@ -1002,21 +1011,21 @@ uni.data: $(MINIPERL_EXE) $(CONFIGPM) li | 206 | @@ -1001,21 +1010,21 @@ uni.data: $(MINIPERL_EXE) $(CONFIGPM) li |
| 207 | # $(PERL_EXE) and ext because buildtoc uses Text::Wrap uses re | 207 | # $(PERL_EXE) and ext because buildtoc uses Text::Wrap uses re |
| 208 | # But also this ensures that all extensions are built before we try to scan | 208 | # But also this ensures that all extensions are built before we try to scan |
| 209 | # them, which picks up Devel::PPPort's documentation. | 209 | # them, which picks up Devel::PPPort's documentation. |
| @@ -230,7 +230,7 @@ Index: perl-5.12.2/Makefile.SH | |||
| 230 | -@test ! -f extra.pods || rm -f `cat extra.pods` | 230 | -@test ! -f extra.pods || rm -f `cat extra.pods` |
| 231 | -@rm -f extra.pods | 231 | -@rm -f extra.pods |
| 232 | -@for x in `grep -l '^=[a-z]' README.* | grep -v README.vms` ; do \ | 232 | -@for x in `grep -l '^=[a-z]' README.* | grep -v README.vms` ; do \ |
| 233 | @@ -1059,11 +1068,7 @@ no-install: | 233 | @@ -1058,11 +1067,7 @@ no-install: |
| 234 | INSTALL_DEPENDENCE = all | 234 | INSTALL_DEPENDENCE = all |
| 235 | 235 | ||
| 236 | install.perl: $(INSTALL_DEPENDENCE) installperl | 236 | install.perl: $(INSTALL_DEPENDENCE) installperl |
| @@ -243,28 +243,28 @@ Index: perl-5.12.2/Makefile.SH | |||
| 243 | 243 | ||
| 244 | # XXX Experimental. Hardwired values, but useful for testing. | 244 | # XXX Experimental. Hardwired values, but useful for testing. |
| 245 | # Eventually Configure could ask for some of these values. | 245 | # Eventually Configure could ask for some of these values. |
| 246 | @@ -1160,16 +1165,16 @@ manicheck: FORCE | 246 | @@ -1159,16 +1164,16 @@ manicheck: FORCE |
| 247 | # | 247 | # |
| 248 | # DynaLoader may be needed for extensions that use Makefile.PL. | 248 | # DynaLoader may be needed for extensions that use Makefile.PL. |
| 249 | 249 | ||
| 250 | -$(DYNALOADER): $(MINIPERL_EXE) preplibrary FORCE $(nonxs_ext) | 250 | -$(DYNALOADER): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary FORCE $(nonxs_ext) |
| 251 | +$(DYNALOADER): preplibrary FORCE $(nonxs_ext) | 251 | +$(DYNALOADER): lib/buildcustomize.pl preplibrary FORCE $(nonxs_ext) |
| 252 | $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS) | 252 | $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS) |
| 253 | 253 | ||
| 254 | -d_dummy $(dynamic_ext): $(MINIPERL_EXE) preplibrary makeppport $(DYNALOADER) FORCE $(PERLEXPORT) | 254 | -d_dummy $(dynamic_ext): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE $(PERLEXPORT) |
| 255 | +d_dummy $(dynamic_ext): preplibrary makeppport $(DYNALOADER) FORCE $(PERLEXPORT) | 255 | +d_dummy $(dynamic_ext): lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE $(PERLEXPORT) |
| 256 | $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic | 256 | $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic |
| 257 | 257 | ||
| 258 | -s_dummy $(static_ext): $(MINIPERL_EXE) preplibrary makeppport $(DYNALOADER) FORCE | 258 | -s_dummy $(static_ext): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE |
| 259 | +s_dummy $(static_ext): preplibrary makeppport $(DYNALOADER) FORCE | 259 | +s_dummy $(static_ext): lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE |
| 260 | $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS) | 260 | $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS) |
| 261 | 261 | ||
| 262 | -n_dummy $(nonxs_ext): $(MINIPERL_EXE) preplibrary FORCE | 262 | -n_dummy $(nonxs_ext): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary FORCE |
| 263 | +n_dummy $(nonxs_ext): preplibrary FORCE | 263 | +n_dummy $(nonxs_ext): lib/buildcustomize.pl preplibrary FORCE |
| 264 | $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) | 264 | $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) |
| 265 | !NO!SUBS! | 265 | !NO!SUBS! |
| 266 | 266 | ||
| 267 | @@ -1367,10 +1372,10 @@ _test: | 267 | @@ -1366,10 +1371,10 @@ _test: |
| 268 | 268 | ||
| 269 | test_prep_pre: preplibrary utilities $(nonxs_ext) | 269 | test_prep_pre: preplibrary utilities $(nonxs_ext) |
| 270 | 270 | ||
| @@ -277,12 +277,12 @@ Index: perl-5.12.2/Makefile.SH | |||
| 277 | $(MINIPERL) make_ext.pl $(dynamic_ext_re) MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic | 277 | $(MINIPERL) make_ext.pl $(dynamic_ext_re) MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic |
| 278 | cd t && (rm -f $(PERL_EXE); $(LNS) ../$(PERL_EXE) $(PERL_EXE)) | 278 | cd t && (rm -f $(PERL_EXE); $(LNS) ../$(PERL_EXE) $(PERL_EXE)) |
| 279 | 279 | ||
| 280 | @@ -1461,7 +1466,7 @@ minitest.prep: | 280 | @@ -1460,7 +1465,7 @@ minitest.prep: |
| 281 | 281 | ||
| 282 | # Can't depend on lib/Config.pm because that might be where miniperl | 282 | # Can't depend on lib/Config.pm because that might be where miniperl |
| 283 | # is crashing. | 283 | # is crashing. |
| 284 | -minitest: $(MINIPERL_EXE) lib/re.pm minitest.prep | 284 | -minitest: $(MINIPERL_EXE) minitest.prep |
| 285 | +minitest: lib/re.pm minitest.prep | 285 | +minitest: minitest.prep |
| 286 | - cd t && (rm -f $(PERL_EXE); $(LNS) ../$(MINIPERL_EXE) $(PERL_EXE)) \ | 286 | - cd t && (rm -f $(PERL_EXE); $(LNS) ../$(MINIPERL_EXE) $(PERL_EXE)) \ |
| 287 | && $(RUN_PERL) TEST -minitest base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t op/*.t uni/*.t </dev/tty | 287 | && $(RUN_PERL) TEST -minitest base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t op/*.t uni/*.t </dev/tty |
| 288 | 288 | ||
diff --git a/meta/recipes-devtools/perl/perl-5.12.2/parallel_build_fix_4.patch b/meta/recipes-devtools/perl/perl-5.12.2/parallel_build_fix_4.patch new file mode 100644 index 0000000000..1a047bcc2c --- /dev/null +++ b/meta/recipes-devtools/perl/perl-5.12.2/parallel_build_fix_4.patch | |||
| @@ -0,0 +1,55 @@ | |||
| 1 | commit 43c0c913165d6abe1bc0cb45a784eb1c32c3700b | ||
| 2 | Author: Nicholas Clark <nick@ccl4.org> | ||
| 3 | Date: Mon Feb 14 09:06:42 2011 +0000 | ||
| 4 | |||
| 5 | For miniperl, use the USE_SITECUSTOMIZE feature to load the build-time @INC | ||
| 6 | |||
| 7 | For miniperl (only), always enable USE_SITECUSTOMIZE, but change it to load | ||
| 8 | a buildcustomize.pl file from $INC[0], if present. The default @INC for | ||
| 9 | miniperl is '.', so by default this does nothing. | ||
| 10 | |||
| 11 | diff --git a/perl.c b/perl.c | ||
| 12 | index 8f8565d..6bb9f46 100644 | ||
| 13 | --- a/perl.c | ||
| 14 | +++ b/perl.c | ||
| 15 | @@ -24,6 +24,10 @@ | ||
| 16 | * function of the interpreter; that can be found in perlmain.c | ||
| 17 | */ | ||
| 18 | |||
| 19 | +#ifdef PERL_IS_MINIPERL | ||
| 20 | +# define USE_SITECUSTOMIZE | ||
| 21 | +#endif | ||
| 22 | + | ||
| 23 | #include "EXTERN.h" | ||
| 24 | #define PERL_IN_PERL_C | ||
| 25 | #include "perl.h" | ||
| 26 | @@ -1973,15 +1977,26 @@ S_parse_body(pTHX_ char **env, XSINIT_t xsinit) | ||
| 27 | } | ||
| 28 | } | ||
| 29 | |||
| 30 | -#if defined(USE_SITECUSTOMIZE) && !defined(PERL_IS_MINIPERL) | ||
| 31 | +#if defined(USE_SITECUSTOMIZE) | ||
| 32 | if (!minus_f) { | ||
| 33 | - /* SITELIB_EXP is a function call on Win32. | ||
| 34 | - The games with local $! are to avoid setting errno if there is no | ||
| 35 | + /* The games with local $! are to avoid setting errno if there is no | ||
| 36 | sitecustomize script. */ | ||
| 37 | +# ifdef PERL_IS_MINIPERL | ||
| 38 | + AV *const inc = GvAV(PL_incgv); | ||
| 39 | + SV **const inc0 = inc ? av_fetch(inc, 0, FALSE) : NULL; | ||
| 40 | + | ||
| 41 | + if (inc0) { | ||
| 42 | + (void)Perl_av_create_and_unshift_one(aTHX_ &PL_preambleav, | ||
| 43 | + Perl_newSVpvf(aTHX_ | ||
| 44 | + "BEGIN { do {local $!; -f '%"SVf"/buildcustomize.pl'} && do '%"SVf"/buildcustomize.pl' }", *inc0, *inc0)); | ||
| 45 | + } | ||
| 46 | +# else | ||
| 47 | + /* SITELIB_EXP is a function call on Win32. */ | ||
| 48 | const char *const sitelib = SITELIB_EXP; | ||
| 49 | (void)Perl_av_create_and_unshift_one(aTHX_ &PL_preambleav, | ||
| 50 | Perl_newSVpvf(aTHX_ | ||
| 51 | "BEGIN { do {local $!; -f '%s/sitecustomize.pl'} && do '%s/sitecustomize.pl' }", sitelib, sitelib)); | ||
| 52 | +# endif | ||
| 53 | } | ||
| 54 | #endif | ||
| 55 | |||
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 new file mode 100644 index 0000000000..abc1922cbe --- /dev/null +++ b/meta/recipes-devtools/perl/perl-5.12.2/parallel_build_fix_5.patch | |||
| @@ -0,0 +1,428 @@ | |||
| 1 | Rebased by Nitin A Kamble <nitin.a.kamble@intel.com> on 3/11/2011 | ||
| 2 | |||
| 3 | commit 5e4c4c91bd52a48de59520d5e9b4e3478e49c613 | ||
| 4 | Author: Nicholas Clark <nick@ccl4.org> | ||
| 5 | Date: Mon Feb 14 10:14:18 2011 +0000 | ||
| 6 | |||
| 7 | Use a buildcustomize.pl to set @INC in miniperl when building extensions. | ||
| 8 | |||
| 9 | With the build tools now shipped in various subdirectories of cpan/ and dist/ | ||
| 10 | we need to add several paths to @INC when invoking MakeMaker (etc) to build | ||
| 11 | extensions. | ||
| 12 | |||
| 13 | The previous approach of using $ENV{PERL5LIB} was fragile, because: | ||
| 14 | a: It was hitting the length limit for %ENV variables on VMS | ||
| 15 | b: It was running the risk of race conditions in a parallel build - | ||
| 16 | ExtUtils::Makemaker "knows" to add -I../..lib, which puts lib at the *front* | ||
| 17 | of @INC, but if one parallel process happens to copy a module into lib/ | ||
| 18 | whilst another is searching for it, the second may get a partial read | ||
| 19 | c: Overwriting $ENV{PERL5LIB} breaks any system where any of the installed | ||
| 20 | build tools are actually implemented in Perl, if they are relying on | ||
| 21 | $ENV{PERL5LIB} for setup | ||
| 22 | |||
| 23 | This approach | ||
| 24 | |||
| 25 | a: Doesn't have %ENV length limits | ||
| 26 | b: Ensures that lib/ is last, so copy targets are always shadowing copy | ||
| 27 | sources | ||
| 28 | c: Only affects miniperl, and doesn't touch $ENV{PERL5LIB} | ||
| 29 | |||
| 30 | Approaches that turned out to have fatal flaws: | ||
| 31 | |||
| 32 | 1: Using $ENV{PERL5OPT} with a module fails because ExtUtils::MakeMaker | ||
| 33 | searches for the build perl without setting lib, and treats the error | ||
| 34 | caused by a failed -M as "not a valid perl 5 binary" | ||
| 35 | 2: Refactoring ExtUtils::MakeMaker to *not* use -I for lib, and instead rely | ||
| 36 | on $ENV{PERL5LIB} [which includes "../../lib"] fails because: | ||
| 37 | some extensions have subdirectories, and on these EU::MM correctly uses | ||
| 38 | -I../../../lib, where as $ENV{PERL5LIB} only has space for relative paths, | ||
| 39 | and only with two levels. | ||
| 40 | |||
| 41 | This approach actually takes advantage of ExtUtils::MakeMaker setting an -I | ||
| 42 | option correct for the depth of directory being built. | ||
| 43 | |||
| 44 | Index: perl-5.12.2/Cross/Makefile-cross-SH | ||
| 45 | =================================================================== | ||
| 46 | --- perl-5.12.2.orig/Cross/Makefile-cross-SH | ||
| 47 | +++ perl-5.12.2/Cross/Makefile-cross-SH | ||
| 48 | @@ -324,7 +324,7 @@ $spitshell >>$Makefile <<'!NO!SUBS!' | ||
| 49 | |||
| 50 | CONFIGPM = xlib/$(CROSS_NAME)/Config.pm | ||
| 51 | |||
| 52 | -private = preplibrary $(CONFIGPM) $(CROSS_LIB)/Config.pod | ||
| 53 | +private = preplibrary $(CONFIGPM) $(CROSS_LIB)/Config.pod lib/buildcustomize.pl | ||
| 54 | |||
| 55 | shextract = Makefile cflags config.h makeaperl makedepend \ | ||
| 56 | makedir myconfig writemain pod/Makefile | ||
| 57 | @@ -752,6 +752,9 @@ lib/lib.pm: miniperl $(CONFIGPM) | ||
| 58 | @-rm -f $@ | ||
| 59 | $(LDLIBPTH) ./miniperl -Ilib -MCross lib/lib_pm.PL | ||
| 60 | |||
| 61 | +lib/buildcustomize.pl: $(MINIPERL_EXE) write_buildcustomize.pl | ||
| 62 | + $(MINIPERL) write_buildcustomize.pl >lib/buildcustomize.pl | ||
| 63 | + | ||
| 64 | unidatafiles $(unidatafiles): uni.data | ||
| 65 | |||
| 66 | uni.data: miniperl$(EXE_EXT) $(CONFIGPM) lib/unicore/mktables | ||
| 67 | @@ -922,16 +925,16 @@ manicheck: FORCE | ||
| 68 | |||
| 69 | |||
| 70 | |||
| 71 | -$(DYNALOADER): preplibrary FORCE | ||
| 72 | +$(DYNALOADER): lib/buildcustomize.pl preplibrary FORCE | ||
| 73 | @$(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl --cross $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS) | ||
| 74 | |||
| 75 | -d_dummy $(dynamic_ext): miniperl$(EXE_EXT) preplibrary makeppport $(DYNALOADER) FORCE | ||
| 76 | +d_dummy $(dynamic_ext): miniperl$(EXE_EXT) lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE | ||
| 77 | @$(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl --cross $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic | ||
| 78 | |||
| 79 | -s_dummy $(static_ext): miniperl$(EXE_EXT) preplibrary makeppport $(DYNALOADER) FORCE | ||
| 80 | +s_dummy $(static_ext): miniperl$(EXE_EXT) lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE | ||
| 81 | @$(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl --cross $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS) | ||
| 82 | |||
| 83 | -n_dummy $(nonxs_ext): miniperl$(EXE_EXT) preplibrary $(DYNALOADER) FORCE | ||
| 84 | +n_dummy $(nonxs_ext): miniperl$(EXE_EXT) lib/buildcustomize.pl preplibrary $(DYNALOADER) FORCE | ||
| 85 | @$(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl --cross $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) | ||
| 86 | !NO!SUBS! | ||
| 87 | |||
| 88 | Index: perl-5.12.2/MANIFEST | ||
| 89 | =================================================================== | ||
| 90 | --- perl-5.12.2.orig/MANIFEST | ||
| 91 | +++ perl-5.12.2/MANIFEST | ||
| 92 | @@ -4747,6 +4747,7 @@ win32/wince.c WinCE port | ||
| 93 | win32/wince.h WinCE port | ||
| 94 | win32/wincesck.c WinCE port | ||
| 95 | writemain.SH Generate perlmain.c from miniperlmain.c+extensions | ||
| 96 | +write_buildcustomize.pl Generate lib/buildcustomize.pl | ||
| 97 | x2p/a2p.c Output of a2p.y run through byacc | ||
| 98 | x2p/a2p.h Global declarations | ||
| 99 | x2p/a2p.pod Pod for awk to perl translator | ||
| 100 | Index: perl-5.12.2/Makefile.SH | ||
| 101 | =================================================================== | ||
| 102 | --- perl-5.12.2.orig/Makefile.SH | ||
| 103 | +++ perl-5.12.2/Makefile.SH | ||
| 104 | @@ -428,7 +428,7 @@ esac | ||
| 105 | ## In the following dollars and backticks do not need the extra backslash. | ||
| 106 | $spitshell >>$Makefile <<'!NO!SUBS!' | ||
| 107 | |||
| 108 | -private = preplibrary $(CONFIGPM) $(CONFIGPOD) lib/ExtUtils/Miniperl.pm git_version.h | ||
| 109 | +private = preplibrary $(CONFIGPM) $(CONFIGPOD) lib/ExtUtils/Miniperl.pm git_version.h lib/buildcustomize.pl | ||
| 110 | |||
| 111 | # Files to be built with variable substitution before miniperl | ||
| 112 | # is available. | ||
| 113 | @@ -991,6 +991,9 @@ $(plextract): $(MINIPERL_EXE) $(CONFIGPM | ||
| 114 | x2p/s2p: $(MINIPERL_EXE) $(CONFIGPM) $(dynamic_ext) x2p/s2p.PL | ||
| 115 | cd x2p; $(LDLIBPTH) $(MAKE) s2p | ||
| 116 | |||
| 117 | +lib/buildcustomize.pl: $(MINIPERL_EXE) write_buildcustomize.pl | ||
| 118 | + $(MINIPERL) write_buildcustomize.pl >lib/buildcustomize.pl | ||
| 119 | + | ||
| 120 | unidatafiles $(unidatafiles) pod/perluniprops.pod: uni.data | ||
| 121 | |||
| 122 | uni.data: $(MINIPERL_EXE) $(CONFIGPM) lib/unicore/mktables $(nonxs_ext) | ||
| 123 | @@ -1160,16 +1163,16 @@ manicheck: FORCE | ||
| 124 | # | ||
| 125 | # DynaLoader may be needed for extensions that use Makefile.PL. | ||
| 126 | |||
| 127 | -$(DYNALOADER): $(MINIPERL_EXE) preplibrary FORCE $(nonxs_ext) | ||
| 128 | +$(DYNALOADER): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary FORCE $(nonxs_ext) | ||
| 129 | $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS) | ||
| 130 | |||
| 131 | -d_dummy $(dynamic_ext): $(MINIPERL_EXE) preplibrary makeppport $(DYNALOADER) FORCE $(PERLEXPORT) | ||
| 132 | +d_dummy $(dynamic_ext): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE $(PERLEXPORT) | ||
| 133 | $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic | ||
| 134 | |||
| 135 | -s_dummy $(static_ext): $(MINIPERL_EXE) preplibrary makeppport $(DYNALOADER) FORCE | ||
| 136 | +s_dummy $(static_ext): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE | ||
| 137 | $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS) | ||
| 138 | |||
| 139 | -n_dummy $(nonxs_ext): $(MINIPERL_EXE) preplibrary FORCE | ||
| 140 | +n_dummy $(nonxs_ext): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary FORCE | ||
| 141 | $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) | ||
| 142 | !NO!SUBS! | ||
| 143 | |||
| 144 | Index: perl-5.12.2/installperl | ||
| 145 | =================================================================== | ||
| 146 | --- perl-5.12.2.orig/installperl | ||
| 147 | +++ perl-5.12.2/installperl | ||
| 148 | @@ -714,6 +714,8 @@ sub installlib { | ||
| 149 | # ignore the test extensions | ||
| 150 | return if $dir =~ m{\bXS/(?:APItest|Typemap)\b}; | ||
| 151 | return if $name =~ m{\b(?:APItest|Typemap)\.pm$}; | ||
| 152 | + # ignore the build support code | ||
| 153 | + return if $name =~ /\bbuildcustomize\.pl$/; | ||
| 154 | # ignore the demo files | ||
| 155 | return if $dir =~ /\b(?:demos?|eg)\b/; | ||
| 156 | |||
| 157 | Index: perl-5.12.2/make_ext.pl | ||
| 158 | =================================================================== | ||
| 159 | --- perl-5.12.2.orig/make_ext.pl | ||
| 160 | +++ perl-5.12.2/make_ext.pl | ||
| 161 | @@ -4,11 +4,9 @@ use warnings; | ||
| 162 | use Config; | ||
| 163 | BEGIN { | ||
| 164 | if ($^O eq 'MSWin32') { | ||
| 165 | - unshift @INC, ('../cpan/Cwd', '../cpan/Cwd/lib'); | ||
| 166 | - require File::Spec::Functions; | ||
| 167 | + unshift @INC, '../cpan/Cwd'; | ||
| 168 | require FindExt; | ||
| 169 | - } | ||
| 170 | - else { | ||
| 171 | + } else { | ||
| 172 | unshift @INC, 'cpan/Cwd'; | ||
| 173 | } | ||
| 174 | } | ||
| 175 | @@ -18,27 +16,6 @@ my $is_Win32 = $^O eq 'MSWin32'; | ||
| 176 | my $is_VMS = $^O eq 'VMS'; | ||
| 177 | my $is_Unix = !$is_Win32 && !$is_VMS; | ||
| 178 | |||
| 179 | -# To clarify, this isn't the entire suite of modules considered "toolchain" | ||
| 180 | -# It's not even all modules needed to build ext/ | ||
| 181 | -# It's just the source paths of the (minimum complete set of) modules in ext/ | ||
| 182 | -# needed to build the nonxs modules | ||
| 183 | -# After which, all nonxs modules are in lib, which was always sufficient to | ||
| 184 | -# allow miniperl to build everything else. | ||
| 185 | - | ||
| 186 | -# This list cannot get any longer without overflowing the length limit for | ||
| 187 | -# environment variables on VMS | ||
| 188 | -my @toolchain = qw(cpan/AutoLoader/lib | ||
| 189 | - cpan/Cwd cpan/Cwd/lib | ||
| 190 | - cpan/ExtUtils-Command/lib | ||
| 191 | - dist/ExtUtils-Install/lib | ||
| 192 | - cpan/ExtUtils-MakeMaker/lib | ||
| 193 | - cpan/ExtUtils-Manifest/lib | ||
| 194 | - cpan/File-Path/lib | ||
| 195 | - ); | ||
| 196 | - | ||
| 197 | -# Used only in ExtUtils::Liblist::Kid::_win32_ext() | ||
| 198 | -push @toolchain, 'cpan/Text-ParseWords/lib' if $is_Win32; | ||
| 199 | - | ||
| 200 | my @ext_dirs = qw(cpan dist ext); | ||
| 201 | my $ext_dirs_re = '(?:' . join('|', @ext_dirs) . ')'; | ||
| 202 | |||
| 203 | @@ -295,16 +272,7 @@ sub build_extension { | ||
| 204 | $perl ||= "$up/miniperl"; | ||
| 205 | my $return_dir = $up; | ||
| 206 | my $lib_dir = "$up/lib"; | ||
| 207 | - # $lib_dir must be last, as we're copying files into it, and in a parallel | ||
| 208 | - # make there's a race condition if one process tries to open a module that | ||
| 209 | - # another process has half-written. | ||
| 210 | - my @new_inc = ((map {"$up/$_"} @toolchain), $lib_dir); | ||
| 211 | - if ($is_Win32) { | ||
| 212 | - @new_inc = map {File::Spec::Functions::rel2abs($_)} @new_inc; | ||
| 213 | - } | ||
| 214 | - $ENV{PERL5LIB} = join $Config{path_sep}, @new_inc; | ||
| 215 | $ENV{PERL_CORE} = 1; | ||
| 216 | - # warn $ENV{PERL5LIB}; | ||
| 217 | |||
| 218 | my $makefile; | ||
| 219 | if ($is_VMS) { | ||
| 220 | @@ -375,7 +343,7 @@ EOM | ||
| 221 | @cross = '-MCross'; | ||
| 222 | } | ||
| 223 | |||
| 224 | - my @args = (@cross, 'Makefile.PL'); | ||
| 225 | + my @args = ("-I$lib_dir", @cross, 'Makefile.PL'); | ||
| 226 | if ($is_VMS) { | ||
| 227 | my $libd = VMS::Filespec::vmspath($lib_dir); | ||
| 228 | push @args, "INST_LIB=$libd", "INST_ARCHLIB=$libd"; | ||
| 229 | Index: perl-5.12.2/vms/descrip_mms.template | ||
| 230 | =================================================================== | ||
| 231 | --- perl-5.12.2.orig/vms/descrip_mms.template | ||
| 232 | +++ perl-5.12.2/vms/descrip_mms.template | ||
| 233 | @@ -360,7 +360,7 @@ CRTLOPTS =,$(CRTL)/Options | ||
| 234 | unidatadirs = lib/unicore/To lib/unicore/lib | ||
| 235 | |||
| 236 | # Modules which must be installed before we can build extensions | ||
| 237 | -LIBPREREQ = $(ARCHDIR)Config.pm $(ARCHDIR)Config_heavy.pl [.lib.VMS]Filespec.pm $(ARCHDIR)vmspipe.com [.lib]re.pm | ||
| 238 | +LIBPREREQ = $(ARCHDIR)Config.pm $(ARCHDIR)Config_heavy.pl [.lib.VMS]Filespec.pm $(ARCHDIR)vmspipe.com [.lib]re.pm [.lib]buildcustomize.pl | ||
| 239 | |||
| 240 | utils1 = [.lib.pods]perldoc.com [.lib.ExtUtils]Miniperl.pm [.utils]c2ph.com [.utils]h2ph.com | ||
| 241 | utils2 = [.utils]h2xs.com [.utils]libnetcfg.com [.lib]perlbug.com [.utils]dprofpp.com | ||
| 242 | @@ -458,6 +458,9 @@ archcorefiles : $(ac) $(ARCHAUTO)time.st | ||
| 243 | [.lib]re.pm : [.ext.re]re.pm | ||
| 244 | Copy/NoConfirm/Log $(MMS$SOURCE) [.lib] | ||
| 245 | |||
| 246 | +[.lib]buildcustomize.pl : write_buildcustomize.pl $(MINIPERL_EXE) | ||
| 247 | + $(MINIPERL) write_buildcustomize.pl > [.lib]buildcustomize.pl | ||
| 248 | + | ||
| 249 | vmspipe.com : [.vms]vmspipe.com | ||
| 250 | Copy/NoConfirm/Log $(MMS$SOURCE) [] | ||
| 251 | |||
| 252 | @@ -561,7 +564,7 @@ unidatafiles.ts : $(MINIPERL_EXE) [.lib] | ||
| 253 | @ If F$Search("$(MMS$TARGET)").nes."" Then Delete/NoLog/NoConfirm $(MMS$TARGET);* | ||
| 254 | @ Copy/NoConfirm _NLA0: $(MMS$TARGET) | ||
| 255 | |||
| 256 | -DynaLoader$(O) : $(ARCHDIR)Config.pm $(MINIPERL_EXE) [.lib.VMS]Filespec.pm | ||
| 257 | +DynaLoader$(O) : [.lib]buildcustomize.pl $(ARCHDIR)Config.pm $(MINIPERL_EXE) [.lib.VMS]Filespec.pm | ||
| 258 | $(MINIPERL) make_ext.pl "MAKE=$(MMS)" "DynaLoader" | ||
| 259 | |||
| 260 | dynext : $(LIBPREREQ) $(DBG)perlshr$(E) unidatafiles.ts DynaLoader$(O) preplibrary makeppport $(MINIPERL_EXE) | ||
| 261 | @@ -1856,6 +1859,7 @@ tidy : cleanlis | ||
| 262 | - If F$Search("[.utils]*.com;-1").nes."" Then Purge/NoConfirm/Log [.utils]*.com | ||
| 263 | - If F$Search("[.x2p]*.com;-1").nes."" Then Purge/NoConfirm/Log [.x2p]*.com | ||
| 264 | - If F$Search("[.lib.pods]*.com;-1").nes."" Then Purge/NoConfirm/Log [.lib.pods]*.com | ||
| 265 | + - If F$Search("[.lib]buildcustomize.pl;-1").nes."" Then Purge/NoConfirm/Log [.lib]buildcustomize.pl | ||
| 266 | |||
| 267 | clean : tidy cleantest | ||
| 268 | - $(MINIPERL) make_ext.pl "MAKE=$(MMS)" "--all" "--target=clean" | ||
| 269 | Index: perl-5.12.2/win32/Makefile | ||
| 270 | =================================================================== | ||
| 271 | --- perl-5.12.2.orig/win32/Makefile | ||
| 272 | +++ perl-5.12.2/win32/Makefile | ||
| 273 | @@ -923,6 +923,9 @@ $(CONFIGPM) : $(MINIPERL) ..\config.sh c | ||
| 274 | -$(MINIPERL) -I..\lib $(ICWD) config_h.PL "INST_VER=$(INST_VER)" | ||
| 275 | if errorlevel 1 $(MAKE) /$(MAKEFLAGS) $(CONFIGPM) | ||
| 276 | |||
| 277 | +..\lib\buildcustomize.pl: $(MINIPERL) ..\write_buildcustomize.pl | ||
| 278 | + $(MINIPERL) -I..\lib ..\write_buildcustomize.pl .. >..\lib\buildcustomize.pl | ||
| 279 | + | ||
| 280 | $(MINIPERL) : $(MINIDIR) $(MINI_OBJ) | ||
| 281 | $(LINK32) -subsystem:console -out:$@ @<< | ||
| 282 | $(LINK_FLAGS) $(LIBFILES) $(MINI_OBJ) | ||
| 283 | @@ -1045,24 +1048,24 @@ MakePPPort: $(MINIPERL) $(CONFIGPM) Exte | ||
| 284 | #------------------------------------------------------------------------------- | ||
| 285 | # There's no direct way to mark a dependency on | ||
| 286 | # DynaLoader.pm, so this will have to do | ||
| 287 | -Extensions: ..\make_ext.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER) | ||
| 288 | +Extensions: ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER) | ||
| 289 | $(XCOPY) ..\*.h $(COREDIR)\*.* | ||
| 290 | $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --dynamic | ||
| 291 | |||
| 292 | -Extensions_reonly: ..\make_ext.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER) | ||
| 293 | +Extensions_reonly: ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER) | ||
| 294 | $(XCOPY) ..\*.h $(COREDIR)\*.* | ||
| 295 | $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --dynamic +re | ||
| 296 | |||
| 297 | -Extensions_static : ..\make_ext.pl list_static_libs.pl $(PERLDEP) $(CONFIGPM) | ||
| 298 | +Extensions_static : ..\make_ext.pl ..\lib\buildcustomize.pl list_static_libs.pl $(PERLDEP) $(CONFIGPM) | ||
| 299 | $(XCOPY) ..\*.h $(COREDIR)\*.* | ||
| 300 | $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --static | ||
| 301 | $(MINIPERL) -I..\lib list_static_libs.pl > Extensions_static | ||
| 302 | |||
| 303 | -Extensions_nonxs: ..\make_ext.pl $(PERLDEP) $(CONFIGPM) | ||
| 304 | +Extensions_nonxs: ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM) | ||
| 305 | $(XCOPY) ..\*.h $(COREDIR)\*.* | ||
| 306 | $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --nonxs | ||
| 307 | |||
| 308 | -$(DYNALOADER) : ..\make_ext.pl $(PERLDEP) $(CONFIGPM) Extensions_nonxs | ||
| 309 | +$(DYNALOADER) : ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM) Extensions_nonxs | ||
| 310 | $(XCOPY) ..\*.h $(COREDIR)\*.* | ||
| 311 | $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(EXTDIR) --dynaloader | ||
| 312 | |||
| 313 | @@ -1159,6 +1162,7 @@ distclean: realclean | ||
| 314 | -del /f $(LIBDIR)\Win32CORE.pm | ||
| 315 | -del /f $(LIBDIR)\Win32API\File.pm | ||
| 316 | -del /f $(LIBDIR)\Win32API\File\cFile.pc | ||
| 317 | + -del /f $(LIBDIR)\buildcustomize.pl | ||
| 318 | -del /f $(DISTDIR)\XSLoader\XSLoader.pm | ||
| 319 | -if exist $(LIBDIR)\App rmdir /s /q $(LIBDIR)\App | ||
| 320 | -if exist $(LIBDIR)\Archive rmdir /s /q $(LIBDIR)\Archive | ||
| 321 | Index: perl-5.12.2/win32/makefile.mk | ||
| 322 | =================================================================== | ||
| 323 | --- perl-5.12.2.orig/win32/makefile.mk | ||
| 324 | +++ perl-5.12.2/win32/makefile.mk | ||
| 325 | @@ -1215,6 +1215,10 @@ $(CONFIGPM) : $(MINIPERL) ..\config.sh c | ||
| 326 | $(MINIPERL) -I..\lib $(ICWD) config_h.PL "INST_VER=$(INST_VER)" \ | ||
| 327 | || $(MAKE) $(MAKEMACROS) $(CONFIGPM) $(MAKEFILE) | ||
| 328 | |||
| 329 | +..\lib\buildcustomize.pl: $(MINIPERL) ..\write_buildcustomize.pl | ||
| 330 | + $(MINIPERL) -I..\lib ..\write_buildcustomize.pl .. >..\lib\buildcustomize.pl | ||
| 331 | + | ||
| 332 | + | ||
| 333 | $(MINIPERL) : $(MINIDIR) $(MINI_OBJ) $(CRTIPMLIBS) | ||
| 334 | .IF "$(CCTYPE)" == "BORLAND" | ||
| 335 | if not exist $(CCLIBDIR)\PSDK\odbccp32.lib \ | ||
| 336 | @@ -1423,24 +1427,24 @@ MakePPPort: $(MINIPERL) $(CONFIGPM) Exte | ||
| 337 | #------------------------------------------------------------------------------- | ||
| 338 | # There's no direct way to mark a dependency on | ||
| 339 | # DynaLoader.pm, so this will have to do | ||
| 340 | -Extensions : ..\make_ext.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER) | ||
| 341 | +Extensions : ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER) | ||
| 342 | $(XCOPY) ..\*.h $(COREDIR)\*.* | ||
| 343 | $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --dynamic | ||
| 344 | |||
| 345 | -Extensions_reonly : ..\make_ext.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER) | ||
| 346 | +Extensions_reonly : ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM) $(DYNALOADER) | ||
| 347 | $(XCOPY) ..\*.h $(COREDIR)\*.* | ||
| 348 | $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --dynamic +re | ||
| 349 | |||
| 350 | -Extensions_static : ..\make_ext.pl list_static_libs.pl $(PERLDEP) $(CONFIGPM) | ||
| 351 | +Extensions_static : ..\make_ext.pl ..\lib\buildcustomize.pl list_static_libs.pl $(PERLDEP) $(CONFIGPM) | ||
| 352 | $(XCOPY) ..\*.h $(COREDIR)\*.* | ||
| 353 | $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --static | ||
| 354 | $(MINIPERL) -I..\lib list_static_libs.pl > Extensions_static | ||
| 355 | |||
| 356 | -Extensions_nonxs : ..\make_ext.pl $(PERLDEP) $(CONFIGPM) | ||
| 357 | +Extensions_nonxs : ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM) | ||
| 358 | $(XCOPY) ..\*.h $(COREDIR)\*.* | ||
| 359 | $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(CPANDIR) --dir=$(DISTDIR) --dir=$(EXTDIR) --nonxs | ||
| 360 | |||
| 361 | -$(DYNALOADER) : ..\make_ext.pl $(PERLDEP) $(CONFIGPM) Extensions_nonxs | ||
| 362 | +$(DYNALOADER) : ..\make_ext.pl ..\lib\buildcustomize.pl $(PERLDEP) $(CONFIGPM) Extensions_nonxs | ||
| 363 | $(XCOPY) ..\*.h $(COREDIR)\*.* | ||
| 364 | $(MINIPERL) -I..\lib ..\make_ext.pl "MAKE=$(MAKE)" --dir=$(EXTDIR) --dynaloader | ||
| 365 | |||
| 366 | @@ -1534,6 +1538,7 @@ distclean: realclean | ||
| 367 | -del /f $(LIBDIR)\Win32CORE.pm | ||
| 368 | -del /f $(LIBDIR)\Win32API\File.pm | ||
| 369 | -del /f $(LIBDIR)\Win32API\File\cFile.pc | ||
| 370 | + -del /f $(LIBDIR)\buildcustomize.pl | ||
| 371 | -del /f $(DISTDIR)\XSLoader\XSLoader.pm | ||
| 372 | -if exist $(LIBDIR)\App rmdir /s /q $(LIBDIR)\App | ||
| 373 | -if exist $(LIBDIR)\Archive rmdir /s /q $(LIBDIR)\Archive | ||
| 374 | Index: perl-5.12.2/write_buildcustomize.pl | ||
| 375 | =================================================================== | ||
| 376 | --- /dev/null | ||
| 377 | +++ perl-5.12.2/write_buildcustomize.pl | ||
| 378 | @@ -0,0 +1,50 @@ | ||
| 379 | +#!./miniperl -w | ||
| 380 | + | ||
| 381 | +use strict; | ||
| 382 | +if (@ARGV) { | ||
| 383 | + my $dir = shift; | ||
| 384 | + chdir $dir or die "Can't chdir '$dir': $!"; | ||
| 385 | + unshift @INC, 'lib'; | ||
| 386 | +} | ||
| 387 | + | ||
| 388 | +unshift @INC, ('cpan/Cwd', 'cpan/Cwd/lib'); | ||
| 389 | +require File::Spec::Functions; | ||
| 390 | + | ||
| 391 | +# To clarify, this isn't the entire suite of modules considered "toolchain" | ||
| 392 | +# It's not even all modules needed to build ext/ | ||
| 393 | +# It's just the source paths of the (minimum complete set of) modules in ext/ | ||
| 394 | +# needed to build the nonxs modules | ||
| 395 | +# After which, all nonxs modules are in lib, which was always sufficient to | ||
| 396 | +# allow miniperl to build everything else. | ||
| 397 | + | ||
| 398 | +my @toolchain = qw(cpan/AutoLoader/lib | ||
| 399 | + cpan/Cwd cpan/Cwd/lib | ||
| 400 | + cpan/ExtUtils-Command/lib | ||
| 401 | + dist/ExtUtils-Install/lib | ||
| 402 | + cpan/ExtUtils-MakeMaker/lib | ||
| 403 | + cpan/ExtUtils-Manifest/lib | ||
| 404 | + cpan/File-Path/lib | ||
| 405 | + ); | ||
| 406 | + | ||
| 407 | +# Used only in ExtUtils::Liblist::Kid::_win32_ext() | ||
| 408 | +push @toolchain, 'cpan/Text-ParseWords/lib' if $^O eq 'MSWin32'; | ||
| 409 | + | ||
| 410 | +# lib must be last, as the the toolchain modules write themselves into it | ||
| 411 | +# as they build, and it's important that @INC order ensures that the partially | ||
| 412 | +# written files are always masked by the complete versions. | ||
| 413 | + | ||
| 414 | +my $inc = join ",\n ", | ||
| 415 | + map { "q\0$_\0" } | ||
| 416 | + (map {File::Spec::Functions::rel2abs($_)} @toolchain, 'lib'), '.'; | ||
| 417 | + | ||
| 418 | +# If any of the system's build tools are written in Perl, then this module | ||
| 419 | +# may well be loaded by a much older version than we are building. So keep it | ||
| 420 | +# as backwards compatible as is easy. | ||
| 421 | +print <<"EOT"; | ||
| 422 | +#!perl | ||
| 423 | + | ||
| 424 | +# We are miniperl, building extensions | ||
| 425 | +# Reset \@INC completely, adding the directories we need, and removing the | ||
| 426 | +# installed directories (which we don't need to read, and may confuse us) | ||
| 427 | +\@INC = ($inc); | ||
| 428 | +EOT | ||
diff --git a/meta/recipes-devtools/perl/perl-5.12.2/parallel_build_fix_6.patch b/meta/recipes-devtools/perl/perl-5.12.2/parallel_build_fix_6.patch new file mode 100644 index 0000000000..0520c307db --- /dev/null +++ b/meta/recipes-devtools/perl/perl-5.12.2/parallel_build_fix_6.patch | |||
| @@ -0,0 +1,156 @@ | |||
| 1 | Rebased by Nitin A Kamble <nitin.a.kamble@intel.com> on 3/11/2011 | ||
| 2 | |||
| 3 | commit 7353f64c5bca6e7102582a1e0017c850930249c3 | ||
| 4 | Author: Nicholas Clark <nick@ccl4.org> | ||
| 5 | Date: Mon Feb 14 20:36:36 2011 +0000 | ||
| 6 | |||
| 7 | Add ext/re/re.pm to the @INC set for miniperl by lib/buildcustomize.pl | ||
| 8 | |||
| 9 | This avoids a build-time race condition where lib/re.pm might be read midway | ||
| 10 | through the *second* copy of it (when ext/re/Makefile is being run). It also | ||
| 11 | simplifies many [Mm]akefile* rules, which previously had a special case to | ||
| 12 | copy it early. | ||
| 13 | |||
| 14 | Index: perl-5.12.2/Cross/Makefile-cross-SH | ||
| 15 | =================================================================== | ||
| 16 | --- perl-5.12.2.orig/Cross/Makefile-cross-SH | ||
| 17 | +++ perl-5.12.2/Cross/Makefile-cross-SH | ||
| 18 | @@ -727,7 +727,7 @@ fi | ||
| 19 | $spitshell >>$Makefile <<'!NO!SUBS!' | ||
| 20 | |||
| 21 | .PHONY: preplibrary | ||
| 22 | -preplibrary: miniperl $(CONFIGPM) lib/lib.pm lib/re.pm $(PREPLIBRARY_LIBPERL) | ||
| 23 | +preplibrary: miniperl $(CONFIGPM) lib/lib.pm $(PREPLIBRARY_LIBPERL) | ||
| 24 | |||
| 25 | .PHONY: makeppport | ||
| 26 | makeppport: miniperl$(EXE_EXT) $(CONFIGPM) | ||
| 27 | @@ -748,10 +748,6 @@ $(plextract): miniperl $(CONFIGPM) x2p/s | ||
| 28 | @-rm -f $@ | ||
| 29 | $(LDLIBPTH) ./miniperl -I`pwd`/lib $@.PL | ||
| 30 | |||
| 31 | -lib/lib.pm: miniperl $(CONFIGPM) | ||
| 32 | - @-rm -f $@ | ||
| 33 | - $(LDLIBPTH) ./miniperl -Ilib -MCross lib/lib_pm.PL | ||
| 34 | - | ||
| 35 | lib/buildcustomize.pl: $(MINIPERL_EXE) write_buildcustomize.pl | ||
| 36 | $(MINIPERL) write_buildcustomize.pl >lib/buildcustomize.pl | ||
| 37 | |||
| 38 | @@ -1212,7 +1208,7 @@ minitest.prep: | ||
| 39 | |||
| 40 | # Can't depend on lib/Config.pm because that might be where miniperl | ||
| 41 | # is crashing. | ||
| 42 | -minitest: miniperl$(EXE_EXT) lib/re.pm minitest.prep | ||
| 43 | +minitest: miniperl$(EXE_EXT) minitest.prep | ||
| 44 | - cd t && (rm -f perl$(EXE_EXT); $(LNS) ../miniperl$(EXE_EXT) perl$(EXE_EXT)) \ | ||
| 45 | && $(LDLIBPTH) ./perl TEST -minitest base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t uni/*.t </dev/tty | ||
| 46 | |||
| 47 | Index: perl-5.12.2/Makefile.SH | ||
| 48 | =================================================================== | ||
| 49 | --- perl-5.12.2.orig/Makefile.SH | ||
| 50 | +++ perl-5.12.2/Makefile.SH | ||
| 51 | @@ -970,7 +970,7 @@ esac | ||
| 52 | $spitshell >>$Makefile <<'!NO!SUBS!' | ||
| 53 | |||
| 54 | .PHONY: preplibrary | ||
| 55 | -preplibrary: $(MINIPERL_EXE) $(CONFIGPM) lib/re.pm $(PREPLIBRARY_LIBPERL) | ||
| 56 | +preplibrary: $(MINIPERL_EXE) $(CONFIGPM) $(PREPLIBRARY_LIBPERL) | ||
| 57 | |||
| 58 | $(CONFIGPM_FROM_CONFIG_SH): $(CONFIGPOD) | ||
| 59 | |||
| 60 | @@ -980,10 +980,6 @@ $(CONFIGPOD): config.sh $(MINIPERL_EXE) | ||
| 61 | lib/ExtUtils/Miniperl.pm: miniperlmain.c $(MINIPERL_EXE) minimod.pl $(CONFIGPM) | ||
| 62 | $(MINIPERL) minimod.pl > lib/ExtUtils/Miniperl.pm | ||
| 63 | |||
| 64 | -lib/re.pm: ext/re/re.pm | ||
| 65 | - @-rm -f $@ | ||
| 66 | - cp ext/re/re.pm lib/re.pm | ||
| 67 | - | ||
| 68 | $(plextract): $(MINIPERL_EXE) $(CONFIGPM) x2p/s2p $(dynamic_ext) | ||
| 69 | @-rm -f $@ | ||
| 70 | $(MINIPERL) $@.PL | ||
| 71 | @@ -1267,7 +1263,7 @@ _cleaner2: | ||
| 72 | rm -f lib/.exists lib/*/.exists lib/*/*/.exists | ||
| 73 | rm -f h2ph.man pstruct | ||
| 74 | rm -rf .config | ||
| 75 | - rm -f preload lib/re.pm | ||
| 76 | + rm -f preload | ||
| 77 | rm -rf lib/Encode lib/Compress lib/Hash lib/re | ||
| 78 | rm -rf lib/TAP lib/Module/Pluggable lib/App | ||
| 79 | rm -rf lib/mro | ||
| 80 | @@ -1464,7 +1460,7 @@ minitest.prep: | ||
| 81 | |||
| 82 | # Can't depend on lib/Config.pm because that might be where miniperl | ||
| 83 | # is crashing. | ||
| 84 | -minitest: $(MINIPERL_EXE) lib/re.pm minitest.prep | ||
| 85 | +minitest: $(MINIPERL_EXE) minitest.prep | ||
| 86 | - cd t && (rm -f $(PERL_EXE); $(LNS) ../$(MINIPERL_EXE) $(PERL_EXE)) \ | ||
| 87 | && $(RUN_PERL) TEST -minitest base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t op/*.t uni/*.t </dev/tty | ||
| 88 | |||
| 89 | Index: perl-5.12.2/vms/descrip_mms.template | ||
| 90 | =================================================================== | ||
| 91 | --- perl-5.12.2.orig/vms/descrip_mms.template | ||
| 92 | +++ perl-5.12.2/vms/descrip_mms.template | ||
| 93 | @@ -360,7 +360,7 @@ CRTLOPTS =,$(CRTL)/Options | ||
| 94 | unidatadirs = lib/unicore/To lib/unicore/lib | ||
| 95 | |||
| 96 | # Modules which must be installed before we can build extensions | ||
| 97 | -LIBPREREQ = $(ARCHDIR)Config.pm $(ARCHDIR)Config_heavy.pl [.lib.VMS]Filespec.pm $(ARCHDIR)vmspipe.com [.lib]re.pm [.lib]buildcustomize.pl | ||
| 98 | +LIBPREREQ = $(ARCHDIR)Config.pm $(ARCHDIR)Config_heavy.pl [.lib.VMS]Filespec.pm $(ARCHDIR)vmspipe.com [.lib]buildcustomize.pl | ||
| 99 | |||
| 100 | utils1 = [.lib.pods]perldoc.com [.lib.ExtUtils]Miniperl.pm [.utils]c2ph.com [.utils]h2ph.com | ||
| 101 | utils2 = [.utils]h2xs.com [.utils]libnetcfg.com [.lib]perlbug.com [.utils]dprofpp.com | ||
| 102 | @@ -455,9 +455,6 @@ pod = $(pod0) $(pod1) $(pod2) $(pod3) $( | ||
| 103 | archcorefiles : $(ac) $(ARCHAUTO)time.stamp | ||
| 104 | @ $(NOOP) | ||
| 105 | |||
| 106 | -[.lib]re.pm : [.ext.re]re.pm | ||
| 107 | - Copy/NoConfirm/Log $(MMS$SOURCE) [.lib] | ||
| 108 | - | ||
| 109 | [.lib]buildcustomize.pl : write_buildcustomize.pl $(MINIPERL_EXE) | ||
| 110 | $(MINIPERL) write_buildcustomize.pl > [.lib]buildcustomize.pl | ||
| 111 | |||
| 112 | @@ -1487,7 +1484,7 @@ test_harness : all [.t.lib]vmsfspec.t | ||
| 113 | - @[.vms]test.com "$(E)" "$(__DEBUG__)" | ||
| 114 | @ $(MINIPERL) -e "print ""Ran tests"";" > [.t]rantests. | ||
| 115 | |||
| 116 | -minitest : $(MINITEST_EXE) [.lib]re.pm [.lib.VMS]Filespec.pm unidatafiles.ts | ||
| 117 | +minitest : $(MINITEST_EXE) [.lib.VMS]Filespec.pm unidatafiles.ts | ||
| 118 | @ PERL_TEST_DRIVER == "minitest" | ||
| 119 | - @[.vms]test.com "$(E)" "$(__DEBUG__)" | ||
| 120 | |||
| 121 | Index: perl-5.12.2/win32/Makefile | ||
| 122 | =================================================================== | ||
| 123 | --- perl-5.12.2.orig/win32/Makefile | ||
| 124 | +++ perl-5.12.2/win32/Makefile | ||
| 125 | @@ -918,7 +918,6 @@ $(CONFIGPM) : $(MINIPERL) ..\config.sh c | ||
| 126 | if exist lib\* $(RCOPY) lib\*.* ..\lib\$(NULL) | ||
| 127 | $(XCOPY) ..\*.h $(COREDIR)\*.* | ||
| 128 | $(XCOPY) *.h $(COREDIR)\*.* | ||
| 129 | - $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.* | ||
| 130 | $(RCOPY) include $(COREDIR)\*.* | ||
| 131 | -$(MINIPERL) -I..\lib $(ICWD) config_h.PL "INST_VER=$(INST_VER)" | ||
| 132 | if errorlevel 1 $(MAKE) /$(MAKEFLAGS) $(CONFIGPM) | ||
| 133 | Index: perl-5.12.2/win32/makefile.mk | ||
| 134 | =================================================================== | ||
| 135 | --- perl-5.12.2.orig/win32/makefile.mk | ||
| 136 | +++ perl-5.12.2/win32/makefile.mk | ||
| 137 | @@ -1210,7 +1210,6 @@ $(CONFIGPM) : $(MINIPERL) ..\config.sh c | ||
| 138 | if exist lib\* $(RCOPY) lib\*.* ..\lib\$(NULL) | ||
| 139 | $(XCOPY) ..\*.h $(COREDIR)\*.* | ||
| 140 | $(XCOPY) *.h $(COREDIR)\*.* | ||
| 141 | - $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.* | ||
| 142 | $(RCOPY) include $(COREDIR)\*.* | ||
| 143 | $(MINIPERL) -I..\lib $(ICWD) config_h.PL "INST_VER=$(INST_VER)" \ | ||
| 144 | || $(MAKE) $(MAKEMACROS) $(CONFIGPM) $(MAKEFILE) | ||
| 145 | Index: perl-5.12.2/write_buildcustomize.pl | ||
| 146 | =================================================================== | ||
| 147 | --- perl-5.12.2.orig/write_buildcustomize.pl | ||
| 148 | +++ perl-5.12.2/write_buildcustomize.pl | ||
| 149 | @@ -24,6 +24,7 @@ my @toolchain = qw(cpan/AutoLoader/lib | ||
| 150 | cpan/ExtUtils-MakeMaker/lib | ||
| 151 | dist/ExtUtils-Manifest/lib | ||
| 152 | cpan/File-Path/lib | ||
| 153 | + ext/re | ||
| 154 | ); | ||
| 155 | |||
| 156 | # Used only in ExtUtils::Liblist::Kid::_win32_ext() | ||
diff --git a/meta/recipes-devtools/perl/perl-native_5.12.2.bb b/meta/recipes-devtools/perl/perl-native_5.12.2.bb index cd21e9e8bd..9af7b06e08 100644 --- a/meta/recipes-devtools/perl/perl-native_5.12.2.bb +++ b/meta/recipes-devtools/perl/perl-native_5.12.2.bb | |||
| @@ -4,7 +4,7 @@ SECTION = "libs" | |||
| 4 | LICENSE = "Artistic|GPL" | 4 | LICENSE = "Artistic|GPL" |
| 5 | LIC_FILES_CHKSUM = "file://Copying;md5=2b4c6ffbcfcbdee469f02565f253d81a \ | 5 | LIC_FILES_CHKSUM = "file://Copying;md5=2b4c6ffbcfcbdee469f02565f253d81a \ |
| 6 | file://Artistic;md5=f921793d03cc6d63ec4b15e9be8fd3f8" | 6 | file://Artistic;md5=f921793d03cc6d63ec4b15e9be8fd3f8" |
| 7 | PR = "r6" | 7 | PR = "r7" |
| 8 | 8 | ||
| 9 | LIC_FILES_CHKSUM = "file://Copying;md5=2b4c6ffbcfcbdee469f02565f253d81a \ | 9 | LIC_FILES_CHKSUM = "file://Copying;md5=2b4c6ffbcfcbdee469f02565f253d81a \ |
| 10 | file://Artistic;md5=f921793d03cc6d63ec4b15e9be8fd3f8" | 10 | file://Artistic;md5=f921793d03cc6d63ec4b15e9be8fd3f8" |
| @@ -15,6 +15,9 @@ SRC_URI = "http://ftp.funet.fi/pub/CPAN/src/perl-${PV}.tar.gz \ | |||
| 15 | file://parallel_build_fix_1.patch \ | 15 | file://parallel_build_fix_1.patch \ |
| 16 | file://parallel_build_fix_2.patch \ | 16 | file://parallel_build_fix_2.patch \ |
| 17 | file://parallel_build_fix_3.patch \ | 17 | file://parallel_build_fix_3.patch \ |
| 18 | file://parallel_build_fix_4.patch \ | ||
| 19 | file://parallel_build_fix_5.patch \ | ||
| 20 | file://parallel_build_fix_6.patch \ | ||
| 18 | file://native-nopacklist.patch;patch=1 \ | 21 | file://native-nopacklist.patch;patch=1 \ |
| 19 | file://native-perlinc.patch;patch=1" | 22 | file://native-perlinc.patch;patch=1" |
| 20 | 23 | ||
diff --git a/meta/recipes-devtools/perl/perl_5.12.2.bb b/meta/recipes-devtools/perl/perl_5.12.2.bb index 18fad18c06..184e1e7c8b 100644 --- a/meta/recipes-devtools/perl/perl_5.12.2.bb +++ b/meta/recipes-devtools/perl/perl_5.12.2.bb | |||
| @@ -8,7 +8,7 @@ PRIORITY = "optional" | |||
| 8 | # We need gnugrep (for -I) | 8 | # We need gnugrep (for -I) |
| 9 | DEPENDS = "virtual/db perl-native-${PV} grep-native" | 9 | DEPENDS = "virtual/db perl-native-${PV} grep-native" |
| 10 | DEPENDS += "gdbm zlib" | 10 | DEPENDS += "gdbm zlib" |
| 11 | PR = "r2" | 11 | PR = "r3" |
| 12 | 12 | ||
| 13 | # 5.10.1 has Module::Build built-in | 13 | # 5.10.1 has Module::Build built-in |
| 14 | PROVIDES += "libmodule-build-perl" | 14 | PROVIDES += "libmodule-build-perl" |
| @@ -21,6 +21,9 @@ SRC_URI = "ftp://ftp.funet.fi/pub/CPAN/src/perl-${PV}.tar.gz \ | |||
| 21 | file://parallel_build_fix_1.patch \ | 21 | file://parallel_build_fix_1.patch \ |
| 22 | file://parallel_build_fix_2.patch \ | 22 | file://parallel_build_fix_2.patch \ |
| 23 | file://parallel_build_fix_3.patch \ | 23 | file://parallel_build_fix_3.patch \ |
| 24 | file://parallel_build_fix_4.patch \ | ||
| 25 | file://parallel_build_fix_5.patch \ | ||
| 26 | file://parallel_build_fix_6.patch \ | ||
| 24 | file://Makefile.SH.patch;patch=1 \ | 27 | file://Makefile.SH.patch;patch=1 \ |
| 25 | file://installperl.patch;patch=1 \ | 28 | file://installperl.patch;patch=1 \ |
| 26 | file://perl-dynloader.patch;patch=1 \ | 29 | file://perl-dynloader.patch;patch=1 \ |
