Hi,
First of all, many thanks for your kind support. I have been able to setup a crossbuild chroot environment for aarch64. I can now configure and compile qemu using this environment.
Please find a minor observation inlined below and comment if necessary:
On 05/17/2013 07:16 PM, Wookey wrote:
+++ Peter Maydell [2013-05-17 11:19 +0100]:
Making qemu easily cross-compilable is on my list anyway so lets have a look. Checking the debian package I find a build-deps list as long as your arm:
Most of these are optional if you're just building QEMU from a git source tree, as you note.
But at least helpfully commented about options. Which parts of that do you need? Will 'really basic' do?
The really critical stuff is zlib and glib.
Note that nobody here is asking about "how do I compile the qemu debian package" -- just building from a source tree is all that's needed.
Right.
Ideally you'd be able to do apt-get install libglib2.0-dev:arm64 in a raring chroot (pointing at the arm64 bootstrap/port repo), but I find that there is currently version skew in libpcrecpp0 and libstdc++6
Now that raring has stopped moving it's worth updating these arm64 builds to match and give a stable build base, so I'll do that today and see if things get a bit easier, and get back to you.
OK. After I've rebuilt libstdc++6, libffi, libgcc1, libpcre3, and linux-libc-dev (but not eglibc yet) we get to an installable state.
So I followed the instructions on https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/arm64bootstrap to set up a raring chroot.
(And note that the pinning in /etc/apt/preferences.d/bootstrap is still needed until I rebuild eglibc too, which needs a profile patch updating, so I've skipped it for now)
(Stop at 'Use with sbuild' because you are not doing that, but building upstream source directly in the chroot).
If I stop here and exit the sbuild-shell environment right-away, the following package installations remain temporary. And I have to re-install them after each execution of "schroot -c raring-amd64-sbuild" command. To solve this issue, I donnot exit immediately here and continue with the following installs within the sbuild-shell environment to make these changes 'permanent'.
Then I entered the chroot with schroot -c raring-amd64-sbuild
and inside did: sudo dpkg --add-architecture arm64 sudo apt-get update sudo apt-get install libglib2.0-dev:arm64 zlib1g-dev:arm64 libpixman-1-dev:arm64 sudo apt-get install crossbuild-essential-arm64 (27MB of stuff) sudo apt-get install python ./configure --target-list=arm-softmmu --cross-prefix=aarch64-linux-gnu-
for that configure to work you need http://patchwork.ozlabs.org/patch/243412/
So that gives a cross-environment that satisfies the qemu configure.
You need other patches from that series for it to actually build, but I'll leave it to you from here :-)
thats fine ... :)
Thanks to Peter Maydell for supplying qemu runes and patches.
Complain if this doesn't get you going.
Notes:
Don't install sbuild inside the chroot - that can break things.
A couple of wiki pages have been updated in this process, but a lot more updating is needed to make this properly easy. I notce that the start page: https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/CrossbuildingQuick... doesn't really cover this case of building 'not-packaged stuff, using multiarch', and clearly it should.
And the page on 'multiarch crossbuilding' is woefully out of date.
If I was being snarky I might point out that this would already have been working and up-to-date when you wanted to use it if people hadn't insisted that this work was not wanted and I should stop. Still, it didn't take long to get going, and fortunately you don't need anything that we haven't built yet.
Wookey
Thanks again.
Best Regards, Mian M. Hamayun