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/perl | |
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/perl')
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 \ |