summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/perl
diff options
context:
space:
mode:
authorNitin A Kamble <nitin.a.kamble@intel.com>2011-03-11 10:08:01 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-03-11 15:07:33 -0800
commit4817a48523f5da6eb5814c7aafa99cee471c2832 (patch)
tree803cfefdb1f5f5f3fabd7309c02e210980c3f199 /meta/recipes-devtools/perl
parent43a2d098008eee711399b8d64594d84ae034b9bf (diff)
downloadpoky-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')
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.2/Makefile.SH.patch44
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.2/parallel_build_fix_4.patch55
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.2/parallel_build_fix_5.patch428
-rw-r--r--meta/recipes-devtools/perl/perl-5.12.2/parallel_build_fix_6.patch156
-rw-r--r--meta/recipes-devtools/perl/perl-native_5.12.2.bb5
-rw-r--r--meta/recipes-devtools/perl/perl_5.12.2.bb5
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 @@
1commit 43c0c913165d6abe1bc0cb45a784eb1c32c3700b
2Author: Nicholas Clark <nick@ccl4.org>
3Date: 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
11diff --git a/perl.c b/perl.c
12index 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 @@
1Rebased by Nitin A Kamble <nitin.a.kamble@intel.com> on 3/11/2011
2
3commit 5e4c4c91bd52a48de59520d5e9b4e3478e49c613
4Author: Nicholas Clark <nick@ccl4.org>
5Date: 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
44Index: 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
88Index: 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
100Index: 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
144Index: 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
157Index: 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";
229Index: 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"
269Index: 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
321Index: 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
374Index: 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 @@
1Rebased by Nitin A Kamble <nitin.a.kamble@intel.com> on 3/11/2011
2
3commit 7353f64c5bca6e7102582a1e0017c850930249c3
4Author: Nicholas Clark <nick@ccl4.org>
5Date: 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
14Index: 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
47Index: 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
89Index: 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
121Index: 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)
133Index: 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)
145Index: 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"
4LICENSE = "Artistic|GPL" 4LICENSE = "Artistic|GPL"
5LIC_FILES_CHKSUM = "file://Copying;md5=2b4c6ffbcfcbdee469f02565f253d81a \ 5LIC_FILES_CHKSUM = "file://Copying;md5=2b4c6ffbcfcbdee469f02565f253d81a \
6 file://Artistic;md5=f921793d03cc6d63ec4b15e9be8fd3f8" 6 file://Artistic;md5=f921793d03cc6d63ec4b15e9be8fd3f8"
7PR = "r6" 7PR = "r7"
8 8
9LIC_FILES_CHKSUM = "file://Copying;md5=2b4c6ffbcfcbdee469f02565f253d81a \ 9LIC_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)
9DEPENDS = "virtual/db perl-native-${PV} grep-native" 9DEPENDS = "virtual/db perl-native-${PV} grep-native"
10DEPENDS += "gdbm zlib" 10DEPENDS += "gdbm zlib"
11PR = "r2" 11PR = "r3"
12 12
13# 5.10.1 has Module::Build built-in 13# 5.10.1 has Module::Build built-in
14PROVIDES += "libmodule-build-perl" 14PROVIDES += "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 \