Skip Menu |
Report information
Id: 73630
Status: resolved
Priority: 0/
Queue: perl5

Owner: Nobody
Requestors: illumino <pdb_ml [at] yahoo.com.au>
Cc:
AdminCc:

Operating System: (no value)
PatchStatus: HasPatch
Severity: low
Type:
Perl Version: (no value)
Fixed In: (no value)



Subject: DTrace Enabled Build Fails (missing object files) - Patch Supplied
Date: Thu, 18 Mar 2010 22:02:20 +1100
To: perlbug [...] perl.org
From: Peter Bray <pdb_ml [...] yahoo.com.au>
Download (untitled) / with headers
text/plain 6.6k
Platform : Solaris 10 Update 6 64-bit X86 with GCC 4.1.2 Greetings All, I have just tried to build perl5 from the git repo (faa13f98b5438d7d2712a2578895829787af9ff5) for Solaris with DTrace Support enabled. The build failed due to missing dependencies. It appears that the required object files are not yet built at the stage of the build where perldtrace.o is generated from perldtrace.d. I tried adding dependencies to perldtrace.o to build the required objects before perldtrace.o, but that was not successful (see below). The second approach was simply to remove those object from the list of files passed to the 'dtrace -G' command. This approach works and all test harness pass :-) Is it the absolute right way to do this? Honestly I can't be sure, dtrace does NOT seem to modify any existing object files passed to it, but take notice of the ELF CLASS of the objects passed to it, saving us passing -32 or -64 explicitly. The diff for your evaluation: ---8<--- diff --git a/Makefile.SH b/Makefile.SH index 1040b71..1742002 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -478,8 +478,8 @@ obj2 = hv$(OBJ_EXT) av$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) sv$(OBJ_EXT) pp$ obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OB mini_obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS) $(DTRACE_O) -ndt_obj = $(obj0) $(obj1) $(obj2) $(obj3) $(ARCHOBJS) -obj = $(ndt_obj) $(DTRACE_O) +ndt_obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS) +obj = $(obj0) $(ndt_obj) $(DTRACE_O) perltoc_pod_prereqs = extra.pods pod/perlapi.pod pod/perldelta.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod generated_pods = pod/perltoc.pod $(perltoc_pod_prereqs) ---8<--- Regards, Peter Bray Sydney, Australia PS: Additionally, the following may assist people trying to compile perl 5.12.0 on Solaris 10 with GCC 4.1.2 or possibly other versions of GCC. The generated header file, perldtrace.h, includes an #if _DTRACE_VERSION, which is used to determine if DTrace is available and its major version number. It gets this via '#include <unistd.h>', which gets the real definition from <sys/feature_tests.h>. Unfortunately, my version of GCC has a GCC 'fixincludes' generated version of <sys/feature_tests.h> which misses that definition. (Probably because GCC was build on S10U3 and I'm now running S10U6). Regardless, a successful compile with DTrace enabled did not produce any DTrace functionality. Adding -Accflags='-D_DTRACE_VERSION=1' to the Configure line is a temporary workaround (ok hack) which worked for me. Details for the interested ========================== % git show commit faa13f98b5438d7d2712a2578895829787af9ff5 Author: Jesse Vincent <jesse@bestpractical.com> Date: Mon Mar 15 19:00:11 2010 +0000 [Deleted irrelevant info] % PKGS_PREFIX=/pkgs/64-bit % PKGS_RELEASE=/pkgs/64-bit/release % ./Configure -des -Dcc=gcc -Dprefix=${PKGS_RELEASE}/perl-5.12.0-faa13f98b5438d7d2712a2578895829787af9ff5 -Dotherlibdirs=${PKGS_PREFIX}/lib/perl:/pkgs/lib/perl -Dlocincpth='${PKGS_PREFIX}/include' -Dloclibpth='${PKGS_PREFIX}/lib/amd64:${PKGS_PREFIX}/lib' -Doptimize='-g -O2' -Dperladmin='software@localhost' -Dcf_email='software@localhost' -Uinstallusrbinperl -Dusethreads -Duseshrplib -Dusedtrace [Deleted irrelevant info] % gmake [Deleted irrelevant info] /usr/sbin/dtrace -G -s perldtrace.d -o perldtrace.o op.o perl.o gv.o toke.o perly.o pad.o regcomp.o dump.o util.o mg.o reentr.o mro.o hv.o av.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o globals.o perlio.o perlapi.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o dtrace: failed to link script perldtrace.d: failed to open op.o: No such file or directory gmake: *** [perldtrace.o] Error 1 [ Checking files via 'ls' ] % nocorrect ls op.o perl.o gv.o toke.o perly.o pad.o regcomp.o dump.o util.o mg.o reentr.o mro.o hv.o av.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o globals.o perlio.o perlapi.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o op.o: No such file or directory perl.o: No such file or directory av.o gv.o numeric.o pp_ctl.o regcomp.o toke.o deb.o hv.o pad.o pp_hot.o regexec.o universal.o doio.o locale.o perlapi.o pp_pack.o run.o utf8.o doop.o mathoms.o perlio.o pp_sort.o scope.o util.o dump.o mg.o perly.o pp_sys.o sv.o globals.o mro.o pp.o reentr.o taint.o [ The relevant sections of the Makefile ] % ggrep -B 6 -A 1 ndt Makefile obj0 = op$(OBJ_EXT) perl$(OBJ_EXT) obj1 = $(madlyobj) $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) pad$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT) reentr$(OBJ_EXT) mro$(OBJ_EXT) obj2 = hv$(OBJ_EXT) av$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) sv$(OBJ_EXT) pp$(OBJ_EXT) scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) pp_sys$(OBJ_EXT) obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT) perlapi$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$(OBJ_EXT) locale$(OBJ_EXT) pp_pack$(OBJ_EXT) pp_sort$(OBJ_EXT) mini_obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS) $(DTRACE_O) ndt_obj = $(obj0) $(obj1) $(obj2) $(obj3) $(ARCHOBJS) obj = $(ndt_obj) $(DTRACE_O) -- $(DTRACE_H): perldtrace.d $(DTRACE) -h -s perldtrace.d -o $(DTRACE_H) mydtrace.h: $(DTRACE_H) $(DTRACE_O): perldtrace.d $(DTRACE) -G -s perldtrace.d -o $(DTRACE_O) $(ndt_obj) ATTEMPT 1: Make $(obj0) (ie op.o and perl.o) build before perldtrace.o OLD: $(DTRACE_O): perldtrace.d NEW: $(DTRACE_O): perldtrace.d $(obj0) `sh cflags "optimize='-g -O2'" op.o` -fPIC op.c CCCMD = gcc -DPERL_CORE -c -D_REENTRANT -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -m64 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV -g -O2 -Wall -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat gmake: Circular lib/Config_git.pl <- miniperl dependency dropped. LD_LIBRARY_PATH=/tmp/64-bit/perl5:/pkgs/64-bit/lib:/pkgs/64-bit/lib/amd64 ./miniperl -Ilib make_patchnum.pl /bin/sh: ./miniperl: not found gmake: *** [lib/Config_git.pl] Error 1 ATTEMPT 2: Remove $(obj0) from ndt_obj (previous changes reverted first) OLD: ndt_obj = $(obj0) $(obj1) $(obj2) $(obj3) $(ARCHOBJS) OLD: obj = $(ndt_obj) $(DTRACE_O) NEW: ndt_obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS) NEW: obj = $(obj0) $(ndt_obj) $(DTRACE_O) % gmake distclean % vi Makefile.SH # See Above % # Run 'Configure' as above % gmake # Completes successfully % gmake test # Completes successfully
Download (untitled) / with headers
text/plain 1.1k
I just ran into the same issue and checked that the proposed solution works. However, it is not ideal because it breaks build if dtrace probes are ever added to perl.c and op.c in the future. In fact, an example of such probes was already supplied by Sven Dowideit: http://fosiki.com/blog/2008/02/15/blead-perl-dtrace-probes/ A proper solution must take two factors into account: 1) when dtrace -G is first run, it must work over perlmini.o and opmini.o, as perl.o and op.o do not yet exist at that time (this problem is what the original poster's fix addresses) 2) a second pass of dtrace -G is also necessary because perl.o and op.o are apparently recreated before the main perl executable is built; during this second pass dtrace must work over perl.o and op.o rather than perlmini.o and opmini.o If either (1) or (2) is ignored and one of perl.c or op.c contains dtrace probes, then there will be complaints from the linker about undefined dtrace symbols (while building miniperl and/or building perl executable). Unfortunately, I'm not fluent enough with make to provide an elegant solution myself. Hopefully this will help put someone on the right track.
CC: David Leadbeater <dgl [...] dgl.cx>
Subject: [PATCH] [perl #73630] Build separate DTrace for miniperl
Date: Wed, 22 Dec 2010 00:57:55 +0000
To: perlbug [...] perl.org
From: dgl [...] dgl.cx
Download (untitled) / with headers
text/plain 2.2k
From: David Leadbeater <dgl@dgl.cx> As outlined in the RT ticket due to miniperl's dependencies differing to the final perl binary dtrace -G needs to be called separately for each. Build tested on Mac OS X 10.6, Solaris 11 and Scientific Linux with SystemTap from git. (Solaris is the only system I have access to where DTRACE_O actually gets defined. Neither the dtrace binary on OS X nor SystemTap's dtrace compatibility layer accept the -G option.) --- Makefile.SH | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Makefile.SH b/Makefile.SH index 9d8df27..a34416a 100755 --- a/Makefile.SH +++ b/Makefile.SH @@ -215,11 +215,13 @@ done dtrace_h='' dtrace_o='' +minidtrace_o='' case "$usedtrace" in define|true) dtrace_h='perldtrace.h' $dtrace -G -s perldtrace.d -o perldtrace.tmp >/dev/null 2>&1 \ - && rm -f perldtrace.tmp && dtrace_o='perldtrace$(OBJ_EXT)' + && rm -f perldtrace.tmp && dtrace_o='perldtrace$(OBJ_EXT)' \ + && minidtrace_o='miniperldtrace$(OBJ_EXT)' ;; esac @@ -332,6 +334,7 @@ VALGRIND=valgrind DTRACE = $dtrace DTRACE_H = $dtrace_h DTRACE_O = $dtrace_o +MINIDTRACE_O = $minidtrace_o FIRSTMAKEFILE = $firstmakefile @@ -454,7 +457,8 @@ obj1 = $(madlyobj) $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) pad$ obj2 = hv$(OBJ_EXT) av$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) sv$(OBJ_EXT) pp$(OBJ_EXT) scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) pp_sys$(OBJ_EXT) obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT) perlapi$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$(OBJ_EXT) locale$(OBJ_EXT) pp_pack$(OBJ_EXT) pp_sort$(OBJ_EXT) -mini_obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS) $(DTRACE_O) +minindt_obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS) +mini_obj = $(minindt_obj) $(MINIDTRACE_O) ndt_obj = $(obj0) $(obj1) $(obj2) $(obj3) $(ARCHOBJS) obj = $(ndt_obj) $(DTRACE_O) @@ -742,9 +746,12 @@ mydtrace.h: $(DTRACE_H) case "$dtrace_o" in ?*) $spitshell >>$Makefile <<'!NO!SUBS!' -$(DTRACE_O): perldtrace.d +$(DTRACE_O): perldtrace.d $(ndt_obj) $(DTRACE) -G -s perldtrace.d -o $(DTRACE_O) $(ndt_obj) +$(MINIDTRACE_O): perldtrace.d $(minindt_obj) + $(DTRACE) -G -s perldtrace.d -o $(MINIDTRACE_O) $(minindt_obj) + !NO!SUBS! ;; esac -- 1.7.3.3
Subject: [PATCH] DTrace Enabled Build Fails (missing object files)
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 2.5k
Seems my previous attempt didn't get Cc'd to p5p correctly. On Tue Dec 21 16:58:13 2010, dgl wrote: Show quoted text
> From: David Leadbeater <dgl@dgl.cx> > > As outlined in the RT ticket due to miniperl's dependencies differing > to > the final perl binary dtrace -G needs to be called separately for > each. > > Build tested on Mac OS X 10.6, Solaris 11 and Scientific Linux with > SystemTap from git. > > (Solaris is the only system I have access to where DTRACE_O actually > gets > defined. Neither the dtrace binary on OS X nor SystemTap's dtrace > compatibility layer accept the -G option.) > --- > Makefile.SH | 13 ++++++++++--- > 1 files changed, 10 insertions(+), 3 deletions(-) > > diff --git a/Makefile.SH b/Makefile.SH > index 9d8df27..a34416a 100755 > --- a/Makefile.SH > +++ b/Makefile.SH > @@ -215,11 +215,13 @@ done > > dtrace_h='' > dtrace_o='' > +minidtrace_o='' > case "$usedtrace" in > define|true) > dtrace_h='perldtrace.h' > $dtrace -G -s perldtrace.d -o perldtrace.tmp >/dev/null 2>&1 \ > - && rm -f perldtrace.tmp && dtrace_o='perldtrace$(OBJ_EXT)' > + && rm -f perldtrace.tmp && dtrace_o='perldtrace$(OBJ_EXT)' \ > + && minidtrace_o='miniperldtrace$(OBJ_EXT)' > ;; > esac > > @@ -332,6 +334,7 @@ VALGRIND=valgrind > DTRACE = $dtrace > DTRACE_H = $dtrace_h > DTRACE_O = $dtrace_o > +MINIDTRACE_O = $minidtrace_o > > FIRSTMAKEFILE = $firstmakefile > > @@ -454,7 +457,8 @@ obj1 = $(madlyobj) $(mallocobj) gv$(OBJ_EXT) > toke$(OBJ_EXT) perly$(OBJ_EXT) pad$ > obj2 = hv$(OBJ_EXT) av$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) > sv$(OBJ_EXT) pp$(OBJ_EXT) scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) > pp_sys$(OBJ_EXT) > obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) > taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) > perlio$(OBJ_EXT) perlapi$(OBJ_EXT) numeric$(OBJ_EXT) > mathoms$(OBJ_EXT) locale$(OBJ_EXT) pp_pack$(OBJ_EXT) > pp_sort$(OBJ_EXT) > > -mini_obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS) $(DTRACE_O) > +minindt_obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS) > +mini_obj = $(minindt_obj) $(MINIDTRACE_O) > ndt_obj = $(obj0) $(obj1) $(obj2) $(obj3) $(ARCHOBJS) > obj = $(ndt_obj) $(DTRACE_O) > > @@ -742,9 +746,12 @@ mydtrace.h: $(DTRACE_H) > case "$dtrace_o" in > ?*) > $spitshell >>$Makefile <<'!NO!SUBS!' > -$(DTRACE_O): perldtrace.d > +$(DTRACE_O): perldtrace.d $(ndt_obj) > $(DTRACE) -G -s perldtrace.d -o $(DTRACE_O) $(ndt_obj) > > +$(MINIDTRACE_O): perldtrace.d $(minindt_obj) > + $(DTRACE) -G -s perldtrace.d -o $(MINIDTRACE_O) $(minindt_obj) > + > !NO!SUBS! > ;; > esac
RT-Send-CC: dgl [...] dgl.cx, perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 2.5k
On Tue Dec 21 16:58:13 2010, dgl wrote: Show quoted text
> From: David Leadbeater <dgl@dgl.cx> > > As outlined in the RT ticket due to miniperl's dependencies differing > to > the final perl binary dtrace -G needs to be called separately for > each. > > Build tested on Mac OS X 10.6, Solaris 11 and Scientific Linux with > SystemTap from git. > > (Solaris is the only system I have access to where DTRACE_O actually > gets > defined. Neither the dtrace binary on OS X nor SystemTap's dtrace > compatibility layer accept the -G option.) > --- > Makefile.SH | 13 ++++++++++--- > 1 files changed, 10 insertions(+), 3 deletions(-) > > diff --git a/Makefile.SH b/Makefile.SH > index 9d8df27..a34416a 100755 > --- a/Makefile.SH > +++ b/Makefile.SH > @@ -215,11 +215,13 @@ done > > dtrace_h='' > dtrace_o='' > +minidtrace_o='' > case "$usedtrace" in > define|true) > dtrace_h='perldtrace.h' > $dtrace -G -s perldtrace.d -o perldtrace.tmp >/dev/null 2>&1 \ > - && rm -f perldtrace.tmp && dtrace_o='perldtrace$(OBJ_EXT)' > + && rm -f perldtrace.tmp && dtrace_o='perldtrace$(OBJ_EXT)' \ > + && minidtrace_o='miniperldtrace$(OBJ_EXT)' > ;; > esac > > @@ -332,6 +334,7 @@ VALGRIND=valgrind > DTRACE = $dtrace > DTRACE_H = $dtrace_h > DTRACE_O = $dtrace_o > +MINIDTRACE_O = $minidtrace_o > > FIRSTMAKEFILE = $firstmakefile > > @@ -454,7 +457,8 @@ obj1 = $(madlyobj) $(mallocobj) gv$(OBJ_EXT) > toke$(OBJ_EXT) perly$(OBJ_EXT) pad$ > obj2 = hv$(OBJ_EXT) av$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) > sv$(OBJ_EXT) pp$(OBJ_EXT) scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) > pp_sys$(OBJ_EXT) > obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) > taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) > perlio$(OBJ_EXT) perlapi$(OBJ_EXT) numeric$(OBJ_EXT) > mathoms$(OBJ_EXT) locale$(OBJ_EXT) pp_pack$(OBJ_EXT) > pp_sort$(OBJ_EXT) > > -mini_obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS) $(DTRACE_O) > +minindt_obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS) > +mini_obj = $(minindt_obj) $(MINIDTRACE_O) > ndt_obj = $(obj0) $(obj1) $(obj2) $(obj3) $(ARCHOBJS) > obj = $(ndt_obj) $(DTRACE_O) > > @@ -742,9 +746,12 @@ mydtrace.h: $(DTRACE_H) > case "$dtrace_o" in > ?*) > $spitshell >>$Makefile <<'!NO!SUBS!' > -$(DTRACE_O): perldtrace.d > +$(DTRACE_O): perldtrace.d $(ndt_obj) > $(DTRACE) -G -s perldtrace.d -o $(DTRACE_O) $(ndt_obj) > > +$(MINIDTRACE_O): perldtrace.d $(minindt_obj) > + $(DTRACE) -G -s perldtrace.d -o $(MINIDTRACE_O) $(minindt_obj) > + > !NO!SUBS! > ;; > esac
Thank you. Applied as 3d450a5.
Subject: Re: [perl #73630] DTrace Enabled Build Fails (missing object files) - Patch Supplied
Date: Tue, 4 Jan 2011 10:18:51 -0500
To: perl5-porters [...] perl.org
From: Ricardo Signes <perl.p5p [...] rjbs.manxome.org>
Download (untitled) / with headers
text/plain 685b
* Father Chrysostomos via RT <perlbug-comment@perl.org> [2011-01-02T17:50:49] Show quoted text
> On Tue Dec 21 16:58:13 2010, dgl wrote:
> > From: David Leadbeater <dgl@dgl.cx> > > > > As outlined in the RT ticket due to miniperl's dependencies differing to > > the final perl binary dtrace -G needs to be called separately for each. > > [ ... ]
> > Thank you. Applied as 3d450a5.
This has two votes to cherry-pick, one of them mine. With this commit, I can compile -Dusedtrace on Solaris and all tests pass. Without this commit, I cannot. If a third could please review and vote on this, it would make possible the use of a dtrace-enabled Perl on Solaris, which would be a great fix. -- rjbs
Subject: Re: [perl #73630] DTrace Enabled Build Fails (missing object files) - Patch Supplied
Date: Tue, 4 Jan 2011 11:09:24 -0500
To: perl5-porters [...] perl.org
From: Ricardo Signes <perl.p5p [...] rjbs.manxome.org>
Download (untitled) / with headers
text/plain 425b
* Ricardo Signes <perl.p5p@rjbs.manxome.org> [2011-01-04T10:18:51] Show quoted text
> This has two votes to cherry-pick, one of them mine. With this commit, I can > compile -Dusedtrace on Solaris and all tests pass. Without this commit, I > cannot. If a third could please review and vote on this, it would make > possible the use of a dtrace-enabled Perl on Solaris, which would be a great > fix.
Thanks, applied as 05571b730 -- rjbs
Download (untitled) / with headers
text/plain 203b
As the original reporter I can also verify the committed patch "WORKS FOR ME". Sorry for the delay in testing (I've been unwell). Test Platform Updated to Solaris 10 Update 9 64-bit X86 with GCC 4.1.2


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at perl.org