develooper Front page | perl.perl5.porters | Postings from December 2017

[perl #114798] Configure: add support of qemu

Thread Previous
From:
James E Keenan via RT
Date:
December 29, 2017 14:02
Subject:
[perl #114798] Configure: add support of qemu
Message ID:
rt-4.0.24-2435-1514556108-1295.114798-15-0@perl.org
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.perl.org:443/rt3/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)

---
via perlbug:  queue: perl5 status: open
https://rt.perl.org/Ticket/Display.html?id=114798

Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About