Closed p5pRT closed 6 years ago
my goal is the cross-compiling of Perl with Buildroot\, see http://www.nntp.perl.org/group/perl.perl5.porters/2012/09/msg191592.html my last patch against Buildroot is http://patchwork.ozlabs.org/patch/182554/ (the recipe is in package/perl/perl.mk)
So\, Configure needs a support of qemu (user mode).
Find below 3 patches against blead
From 42abf7caea008ee7dc8a876d88e3dd4d7de3cc16 Mon Sep 17 00:00:00 2001 From: Francois Perrad \francois\.perrad@​gadz\.org Date: Tue\, 4 Sep 2012 16:26:09 +0200 Subject: [PATCH 1/3] add qemu support
$targetrun contains something like : qemu-arm\, qemu-i386\, qemu-ppc\, qemu-x86_64 $qemulib is a path Signed-off-by: Francois Perrad \francois\.perrad@​gadz\.org --- Configure | 8 ++++++++ 1 file changed\, 8 insertions(+)
1.7.9.5
From f686dacad60a327728141efa38dee1614a875368 Mon Sep 17 00:00:00 2001 From: Francois Perrad \francois\.perrad@​gadz\.org Date: Tue\, 4 Sep 2012 16:27:48 +0200 Subject: [PATCH 2/3] fix when cross-devel
$run must be used
Signed-off-by: Francois Perrad \francois\.perrad@​gadz\.org --- Configure | 2 +- 1 file changed\, 1 insertion(+)\, 1 deletion(-)
1.7.9.5
From fc0278276b992191dd4d81a55a64f5b3b6922812 Mon Sep 17 00:00:00 2001 From: Francois Perrad \francois\.perrad@​gadz\.org Date: Tue\, 4 Sep 2012 16:45:30 +0200 Subject: [PATCH 3/3] add a default for targethost when qemu
targethost is mandatory with a ssh connection\, but useless with qemu
Signed-off-by: Francois Perrad \francois\.perrad@​gadz\.org --- Configure | 3 +++ 1 file changed\, 3 insertions(+)
On Sat\, 08 Sep 2012 23:51:50 -0700\, Francois PERRAD (via RT) \perlbug\-followup@​perl\.org wrote:
# New Ticket Created by Francois PERRAD # Please include the string: [perl #114798] # in the subject line of all future correspondence about this issue. # \<URL: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=114798 >
This is a bug report for perl from francois.perrad@gadz.org\, generated with the help of perlbug 1.39 running under perl 5.14.2.
----------------------------------------------------------------- [Please describe your issue here] my goal is the cross-compiling of Perl with Buildroot\, see http://www.nntp.perl.org/group/perl.perl5.porters/2012/09/msg191592.html my last patch against Buildroot is http://patchwork.ozlabs.org/patch/182554/ (the recipe is in package/perl/perl.mk)
So\, Configure needs a support of qemu (user mode).
I'd like to hear jess' comments on this
Find below 3 patches against blead
From 42abf7caea008ee7dc8a876d88e3dd4d7de3cc16 Mon Sep 17 00:00:00 2001 From: Francois Perrad \francois\.perrad@​gadz\.org Date: Tue\, 4 Sep 2012 16:26:09 +0200 Subject: [PATCH 1/3] add qemu support
$targetrun contains something like : qemu-arm\, qemu-i386\, qemu-ppc\, qemu-x86_64 $qemulib is a path Signed-off-by: Francois Perrad \francois\.perrad@​gadz\.org --- Configure | 8 ++++++++ 1 file changed\, 8 insertions(+)
diff --git a/Configure b/Configure index a1ba981..c78cf77 100755 --- a/Configure +++ b/Configure @@ -2911\,6 +2911\,14 @@ fi $targetrun -l $targetuser $targethost "cd \$cwd && ./\$exe \$@" EOF ;; + qemu*) + to=: + from=: + cat >$run \<\<EOF +#!/bin/sh +$targetrun -L $qemulib "\$@" +EOF + ;; *) echo "Unknown targetrun '$targetrun'" >&4 exit 1 ;;
-- H.Merijn Brand http://tux.nl Perl Monger http://amsterdam.pm.org/ using perl5.00307 .. 5.14 porting perl5 on HP-UX\, AIX\, and openSUSE http://mirrors.develooper.com/hpux/ http://www.test-smoke.org/ http://qa.perl.org http://www.goldmark.org/jeff/stupid-disclaimers/
The RT System itself - Status changed from 'new' to 'open'
Hi\,
I assume from your patches that you're just running a local compile\, rather than the scp/ssh dance that the cross-compiling defaults to?
On Sat Sep 08 23:51:49 2012\, fperrad wrote:
my goal is the cross-compiling of Perl with Buildroot\, see http://www.nntp.perl.org/group/perl.perl5.porters/2012/09/msg191592.html my last patch against Buildroot is http://patchwork.ozlabs.org/patch/182554/ (the recipe is in package/perl/perl.mk)
So\, Configure needs a support of qemu (user mode).
Find below 3 patches against blead
From 42abf7caea008ee7dc8a876d88e3dd4d7de3cc16 Mon Sep 17 00:00:00 2001 From: Francois Perrad \francois\.perrad@​gadz\.org Date: Tue\, 4 Sep 2012 16:26:09 +0200 Subject: [PATCH 1/3] add qemu support
$targetrun contains something like : qemu-arm\, qemu-i386\, qemu-ppc\, qemu-x86_64 $qemulib is a path Signed-off-by: Francois Perrad \francois\.perrad@​gadz\.org --- Configure | 8 ++++++++ 1 file changed\, 8 insertions(+)
diff --git a/Configure b/Configure index a1ba981..c78cf77 100755 --- a/Configure +++ b/Configure @@ -2911\,6 +2911\,14 @@ fi $targetrun -l $targetuser $targethost "cd \$cwd && ./\$exe \$@" EOF ;; + qemu*) + to=: + from=: + cat >$run \<\<EOF +#!/bin/sh +$targetrun -L $qemulib "\$@" +EOF + ;; *) echo "Unknown targetrun '$targetrun'" >&4 exit 1 ;;
Silly reply-whatsit only lists one patch.
The only question I'd have is what is $qemulib? Can an existing variable be used for it? The part that uses $qemulib should first test if it has been set\, and complain if not (preferably with a hint about what its for)
The rest seems quite sane to me.
Jes
On Fri Oct 19 04:52:03 2012\, JROBINSON wrote:
Hi\,
I assume from your patches that you're just running a local compile\, rather than the scp/ssh dance that the cross-compiling defaults to?
Yes\, I do real cross-compilation\, not remote-compilation :)
On Sat Sep 08 23:51:49 2012\, fperrad wrote:
my goal is the cross-compiling of Perl with Buildroot\, see http://www.nntp.perl.org/group/perl.perl5.porters/2012/09/msg191592.html my last patch against Buildroot is http://patchwork.ozlabs.org/patch/182554/ (the recipe is in package/perl/perl.mk)
So\, Configure needs a support of qemu (user mode).
Find below 3 patches against blead
From 42abf7caea008ee7dc8a876d88e3dd4d7de3cc16 Mon Sep 17 00:00:00 2001 From: Francois Perrad \francois\.perrad@​gadz\.org Date: Tue\, 4 Sep 2012 16:26:09 +0200 Subject: [PATCH 1/3] add qemu support
$targetrun contains something like : qemu-arm\, qemu-i386\, qemu-ppc\, qemu-x86_64 $qemulib is a path Signed-off-by: Francois Perrad \francois\.perrad@​gadz\.org --- Configure | 8 ++++++++ 1 file changed\, 8 insertions(+)
diff --git a/Configure b/Configure index a1ba981..c78cf77 100755 --- a/Configure +++ b/Configure @@ -2911\,6 +2911\,14 @@ fi $targetrun -l $targetuser $targethost "cd \$cwd && ./\$exe \$@" EOF ;; + qemu*) + to=: + from=: + cat >$run \<\<EOF +#!/bin/sh +$targetrun -L $qemulib "\$@" +EOF + ;; *) echo "Unknown targetrun '$targetrun'" >&4 exit 1 ;;
Silly reply-whatsit only lists one patch.
The only question I'd have is what is $qemulib? Can an existing variable be used for it? The part that uses $qemulib should first test if it has been set\, and complain if not (preferably with a hint about what its for)
The rest seems quite sane to me.
My needs have changed a bit. My use cases are now : $ ./Configure -Dusecrosscompile -Dtargetrun="qemu-arm -L path/to/cross-libs" ... $ ./Configure -Dusecrosscompile -Dtargetrun="/my/home/built/qemu-arm" ...
So\, I refactor my 3 patches without $qemulib. See them in attachment.
Fran�ois
Jes
Gah\, perlbug didn't notify me on updates\, I've now added myself to the watchers list.
I'm just looking at this part myself. I think what I'd like to do is: a) Add a way to cross-compile\, but skip the whole "run stuff on another host" altogether\, instead of changing parts of it. I'll probably have a go at this by splitting the "figure out your compiler" part from the "run on another host" part. IMO one could want to run on another host even if not cross-compiling..
b) Allow you to just provide your own value of "run"\, or for a hints file to override it.
I'm not quite sure I understand what your patch for run=`basename ... ` line is doing\, given you then have a qemu section that ignores it?
On Fri Oct 19 11:51:31 2012\, fperrad wrote:
On Fri Oct 19 04:52:03 2012\, JROBINSON wrote:
Hi\,
I assume from your patches that you're just running a local compile\, rather than the scp/ssh dance that the cross-compiling defaults to?
Yes\, I do real cross-compilation\, not remote-compilation :)
On Sat Sep 08 23:51:49 2012\, fperrad wrote:
my goal is the cross-compiling of Perl with Buildroot\, see http://www.nntp.perl.org/group/perl.perl5.porters/2012/09/ msg191592.html my last patch against Buildroot is http://patchwork.ozlabs.org/patch/182554/ (the recipe is in package/perl/perl.mk)
So\, Configure needs a support of qemu (user mode).
Find below 3 patches against blead
From 42abf7caea008ee7dc8a876d88e3dd4d7de3cc16 Mon Sep 17 00:00:00 2001 From: Francois Perrad \francois\.perrad@​gadz\.org Date: Tue\, 4 Sep 2012 16:26:09 +0200 Subject: [PATCH 1/3] add qemu support
$targetrun contains something like : qemu-arm\, qemu-i386\, qemu- ppc\, qemu-x86_64 $qemulib is a path Signed-off-by: Francois Perrad \francois\.perrad@​gadz\.org --- Configure | 8 ++++++++ 1 file changed\, 8 insertions(+)
diff --git a/Configure b/Configure index a1ba981..c78cf77 100755 --- a/Configure +++ b/Configure @@ -2911\,6 +2911\,14 @@ fi $targetrun -l $targetuser $targethost "cd \$cwd && ./\$exe \$@" EOF ;; + qemu*) + to=: + from=: + cat >$run \<\<EOF +#!/bin/sh +$targetrun -L $qemulib "\$@" +EOF + ;; *) echo "Unknown targetrun '$targetrun'" >&4 exit 1 ;;
Silly reply-whatsit only lists one patch.
The only question I'd have is what is $qemulib? Can an existing variable be used for it? The part that uses $qemulib should first test if it has been set\, and complain if not (preferably with a hint about what its for)
The rest seems quite sane to me.
My needs have changed a bit. My use cases are now : $ ./Configure -Dusecrosscompile -Dtargetrun="qemu-arm -L path/to/cross-libs" ... $ ./Configure -Dusecrosscompile -Dtargetrun="/my/home/built/qemu- arm" ...
So\, I refactor my 3 patches without $qemulib. See them in attachment.
Fran�ois
Jes
On Sun\, Sep 9\, 2012 at 3:51 AM\, Francois PERRAD \perlbug\-followup@​perl\.orgwrote:
# New Ticket Created by Francois PERRAD # Please include the string: [perl #114798] # in the subject line of all future correspondence about this issue. # \<URL: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=114798 >
This is a bug report for perl from francois.perrad@gadz.org\, generated with the help of perlbug 1.39 running under perl 5.14.2.
----------------------------------------------------------------- [Please describe your issue here] my goal is the cross-compiling of Perl with Buildroot\, see http://www.nntp.perl.org/group/perl.perl5.porters/2012/09/msg191592.html my last patch against Buildroot is http://patchwork.ozlabs.org/patch/182554/ (the recipe is in package/perl/perl.mk)
So\, Configure needs a support of qemu (user mode).
Find below 3 patches against blead
From 42abf7caea008ee7dc8a876d88e3dd4d7de3cc16 Mon Sep 17 00:00:00 2001 From: Francois Perrad \francois\.perrad@​gadz\.org Date: Tue\, 4 Sep 2012 16:26:09 +0200 Subject: [PATCH 1/3] add qemu support
$targetrun contains something like : qemu-arm\, qemu-i386\, qemu-ppc\, qemu-x86_64 $qemulib is a path Signed-off-by: Francois Perrad \francois\.perrad@​gadz\.org --- Configure | 8 ++++++++ 1 file changed\, 8 insertions(+)
diff --git a/Configure b/Configure index a1ba981..c78cf77 100755 --- a/Configure +++ b/Configure @@ -2911\,6 +2911\,14 @@ fi $targetrun -l $targetuser $targethost "cd \$cwd && ./\$exe \$@" EOF ;; + qemu*) + to=: + from=: + cat >$run \<\<EOF +#!/bin/sh +$targetrun -L $qemulib "\$@" +EOF + ;; *) echo "Unknown targetrun '$targetrun'" >&4 exit 1 ;; -- 1.7.9.5
From f686dacad60a327728141efa38dee1614a875368 Mon Sep 17 00:00:00 2001 From: Francois Perrad \francois\.perrad@​gadz\.org Date: Tue\, 4 Sep 2012 16:27:48 +0200 Subject: [PATCH 2/3] fix when cross-devel
$run must be used
Signed-off-by: Francois Perrad \francois\.perrad@​gadz\.org --- Configure | 2 +- 1 file changed\, 1 insertion(+)\, 1 deletion(-)
diff --git a/Configure b/Configure index c78cf77..6cc87af 100755 --- a/Configure +++ b/Configure @@ -5059\,7 +5059\,7 @@ checkccflag='check=$1; flag=$2; callback=$3; echo " "; echo "Checking if your compiler accepts $flag" 2>&1; echo "int main(void) { return 0; }" > gcctest.c; -if $cc -O2 $flag -o gcctest gcctest.c 2>gcctest.out && ./gcctest; then +if $cc -O2 $flag -o gcctest gcctest.c 2>gcctest.out && $run ./gcctest; then echo "Yes\, it does." 2>&1; if $test -s gcctest.out ; then echo "But your platform does not like it:"; -- 1.7.9.5
From fc0278276b992191dd4d81a55a64f5b3b6922812 Mon Sep 17 00:00:00 2001 From: Francois Perrad \francois\.perrad@​gadz\.org Date: Tue\, 4 Sep 2012 16:45:30 +0200 Subject: [PATCH 3/3] add a default for targethost when qemu
targethost is mandatory with a ssh connection\, but useless with qemu
Signed-off-by: Francois Perrad \francois\.perrad@​gadz\.org --- Configure | 3 +++ 1 file changed\, 3 insertions(+)
diff --git a/Configure b/Configure index 6cc87af..ff81233 100755 --- a/Configure +++ b/Configure @@ -2840\,6 +2840\,9 @@ $define|true|[yY]*) ;; *) echo "Using usrinc $usrinc." >&4 ;; esac + case "$targetrun" in + qemu*) targethost=dummy ;; + esac case "$targethost" in '') echo "Targethost not defined." >&4; croak=y ;; *) echo "Using targethost $targethost." >&4 -- 1.7.9.5
Jumpstarting this ticket. Francois recently chimed in on another thread & updated the patch[0]\, so I applied it locally and gave it a try. With some tweaking I was able to build a perl on my amd64 Linux box that runs on a raspberry pi without needing to access the target system in any way; additionally\, with some manual hacks 'make test' for that perl managed to run in its entirely\, *locally*\, which is huge. So I think that there's quite a bit of worth in pursuing this.
That being said\, I had a couple of problems along the way. First\, for me the current $run dies with 'FATAL: kernel too old'. Some googling lead me to discover that I could pass qemu the kernel version with the -r switch\, ala qemu-arm -r 3.11\, and that solved the problem\, so to the very least\, a way of passing options to qemu is needed. Additionally\, $run needs to be able to handle -cwd and -env\, so locally it looks like this for me:
cat >$run \<\<EOF #!/bin/sh env='' case "\$1" in -cwd) shift cwd=\$1 shift ;; esac case "\$1" in -env) shift env=\$1 shift ;; esac case "\$cwd" in '') ;; *) cd \$cwd ;; esac \$env $targetrun $qemuoptions -L $sysroot "\$@" EOF
With $qemuoptions being something like "-r 3.11".
Moving on\, I too am unsure about the `basename ...` line. The intent seems to be that $run end up as run-qemu-arm when Configure is called with either -Dtargetrun=/foo/bar/qemu-arm or -Dtargetrun='qemu-arm -r 3.11'. The latter seems like the wrong way to go about it; for the former\, we currently assume that whatever targetrun is\, it'll be in PATH; if we're going to start accepting fulls paths to binaries in targetrun\, the other options should be fixed as well.
For 'make test'\, I had to basically replace ./perl with a script that called ./original-perl through $run\, but I also had to make it load a compat module that removed 'original-' from $^X. Which is just nasty.
Unrelated to this patch but in a similar vein\, yesterday I pushed a branch that allows cross-compiling from Linux to Win32\, either through ssh or wine[1]. The wine bits are unsurprisingly pretty similar to this.
[0] https://github.com/fperrad/br/blob/perl-castaway/package/perl/perl-configure-qemu.patch [1] http://perl5.git.perl.org/perl.git/shortlog/refs/heads/hugmeir/cross-compile-win32
2014-01-31 Brian Fraser \fraserbn@​gmail\.com:
On Sun\, Sep 9\, 2012 at 3:51 AM\, Francois PERRAD \perlbug\-followup@​perl\.org wrote:
# New Ticket Created by Francois PERRAD # Please include the string: [perl #114798] # in the subject line of all future correspondence about this issue. # \<URL: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=114798 >
Jumpstarting this ticket. Francois recently chimed in on another thread & updated the patch[0]\, so I applied it locally and gave it a try. With some tweaking I was able to build a perl on my amd64 Linux box that runs on a raspberry pi without needing to access the target system in any way; additionally\, with some manual hacks 'make test' for that perl managed to run in its entirely\, *locally*\, which is huge. So I think that there's quite a bit of worth in pursuing this.
The use of Qemu has some limitations : 1) Qemu is not available for all CPU architecture 2) qemu-i386 is buggy\, I filled this ticket https://bugs.launchpad.net/qemu/+bug/1076445 with a minimal test case which doesn't depend on Perl configure/build.
For testing purpose\, I copy the whole build tree on the target (Buildroot linux)\, and run $ cd t $ ln -s ../perl perl $ ./perl harness
François
That being said\, I had a couple of problems along the way. First\, for me the current $run dies with 'FATAL: kernel too old'. Some googling lead me to discover that I could pass qemu the kernel version with the -r switch\, ala qemu-arm -r 3.11\, and that solved the problem\, so to the very least\, a way of passing options to qemu is needed. Additionally\, $run needs to be able to handle -cwd and -env\, so locally it looks like this for me:
cat >$run \<\<EOF
#!/bin/sh env='' case "\$1" in -cwd) shift cwd=\$1 shift ;; esac case "\$1" in -env) shift env=\$1 shift ;; esac case "\$cwd" in '') ;; *) cd \$cwd ;; esac \$env $targetrun $qemuoptions -L $sysroot "\$@" EOF
With $qemuoptions being something like "-r 3.11".
Moving on\, I too am unsure about the `basename ...` line. The intent seems to be that $run end up as run-qemu-arm when Configure is called with either -Dtargetrun=/foo/bar/qemu-arm or -Dtargetrun='qemu-arm -r 3.11'. The latter seems like the wrong way to go about it; for the former\, we currently assume that whatever targetrun is\, it'll be in PATH; if we're going to start accepting fulls paths to binaries in targetrun\, the other options should be fixed as well.
For 'make test'\, I had to basically replace ./perl with a script that called ./original-perl through $run\, but I also had to make it load a compat module that removed 'original-' from $^X. Which is just nasty.
Unrelated to this patch but in a similar vein\, yesterday I pushed a branch that allows cross-compiling from Linux to Win32\, either through ssh or wine[1]. The wine bits are unsurprisingly pretty similar to this.
[0] https://github.com/fperrad/br/blob/perl-castaway/package/perl/perl-configure-qemu.patch [1] http://perl5.git.perl.org/perl.git/shortlog/refs/heads/hugmeir/cross-compile-win32
On Sat\, 01 Feb 2014 13:51:09 GMT\, fperrad wrote:
2014-01-31 Brian Fraser \fraserbn@​gmail\.com:
On Sun\, Sep 9\, 2012 at 3:51 AM\, Francois PERRAD \<perlbug- followup@perl.org> wrote:
# New Ticket Created by Francois PERRAD # Please include the string: [perl #114798] # in the subject line of all future correspondence about this issue. # \<URL: https://rt-archive.perl.org/perl5/Ticket/Display.html?id=114798 >
Jumpstarting this ticket. Francois recently chimed in on another thread & updated the patch[0]\, so I applied it locally and gave it a try. With some tweaking I was able to build a perl on my amd64 Linux box that runs on a raspberry pi without needing to access the target system in any way; additionally\, with some manual hacks 'make test' for that perl managed to run in its entirely\, *locally*\, which is huge. So I think that there's quite a bit of worth in pursuing this.
The use of Qemu has some limitations : 1) Qemu is not available for all CPU architecture 2) qemu-i386 is buggy\, I filled this ticket https://bugs.launchpad.net/qemu/+bug/1076445 with a minimal test case which doesn't depend on Perl configure/build.
For testing purpose\, I copy the whole build tree on the target (Buildroot linux)\, and run $ cd t $ ln -s ../perl perl $ ./perl harness
François
That being said\, I had a couple of problems along the way. First\, for me the current $run dies with 'FATAL: kernel too old'. Some googling lead me to discover that I could pass qemu the kernel version with the -r switch\, ala qemu-arm -r 3.11\, and that solved the problem\, so to the very least\, a way of passing options to qemu is needed. Additionally\, $run needs to be able to handle -cwd and -env\, so locally it looks like this for me:
cat >$run \<\<EOF #!/bin/sh env='' case "\$1" in -cwd) shift cwd=\$1 shift ;; esac case "\$1" in -env) shift env=\$1 shift ;; esac case "\$cwd" in '') ;; *) cd \$cwd ;; esac \$env $targetrun $qemuoptions -L $sysroot "\$@" EOF
With $qemuoptions being something like "-r 3.11".
Moving on\, I too am unsure about the `basename ...` line. The intent seems to be that $run end up as run-qemu-arm when Configure is called with either -Dtargetrun=/foo/bar/qemu-arm or -Dtargetrun='qemu-arm -r 3.11'. The latter seems like the wrong way to go about it; for the former\, we currently assume that whatever targetrun is\, it'll be in PATH; if we're going to start accepting fulls paths to binaries in targetrun\, the other options should be fixed as well.
For 'make test'\, I had to basically replace ./perl with a script that called ./original-perl through $run\, but I also had to make it load a compat module that removed 'original-' from $^X. Which is just nasty.
Unrelated to this patch but in a similar vein\, yesterday I pushed a branch that allows cross-compiling from Linux to Win32\, either through ssh or wine[1]. The wine bits are unsurprisingly pretty similar to this.
[0] https://github.com/fperrad/br/blob/perl-castaway/package/perl/perl- configure-qemu.patch [1] http://perl5.git.perl.org/perl.git/shortlog/refs/heads/hugmeir/cross- compile-win32
François\, are you still attempting this work for Buildroot? Do you still need modifications to Perl 5's Configure?
Thank you very much.
-- James E Keenan (jkeenan@cpan.org)
François\, are you still attempting this work for Buildroot? Do you still need modifications to Perl 5's Configure?
Thank you very much.
No. In Buildroot\, the goal (cross-compilation of Perl) was achieved with \https://arsv.github.io/perl-cross/.
François
On Fri\, 29 Dec 2017 17:49:35 GMT\, fperrad wrote:
François\, are you still attempting this work for Buildroot? Do you still need modifications to Perl 5's Configure?
Thank you very much.
No. In Buildroot\, the goal (cross-compilation of Perl) was achieved with \https://arsv.github.io/perl-cross/.
François
Thanks for your quick response. Closing this ticket.
-- James E Keenan (jkeenan@cpan.org)
@jkeenan - Status changed from 'open' to 'resolved'
Migrated from rt.perl.org#114798 (status was 'resolved')
Searchable as RT114798$