We use QEMU to test programs built by the toolchain binary release for correctness. I've written up the instructions for spinning up your own at: https://wiki.linaro.org/MichaelHope/Sandbox/QEMUCrossTest
It's focused on simplicity - getting a running, SSH only Cortex-A9 up and going as soon as possible. It's not the latest, not graphical, and doesn't replace the deeper documentation at: https://wiki.linaro.org/Resources/HowTo/Qemu
-- Michael
On 26 April 2012 02:39, Michael Hope michael.hope@linaro.org wrote:
We use QEMU to test programs built by the toolchain binary release for correctness.
Is that really such a great idea? Qemu is generally less strict than actual hardware with things like alignment restrictions. This is fine for running software on a foreign architecture, which is the typical use case for emulators, and it is much faster than implementing strict checks for things no correct program should ever do.
A few years ago, Codesourcery released an ARM compiler, binaries from which immediately crashed on real hardware. They had only tested the output in Qemu, never on hardware. Since then, many bugs in Qemu have been fixed, but I would still not trust it for validating a compiler.
On 26 April 2012 13:58, Mans Rullgard mans.rullgard@linaro.org wrote:
On 26 April 2012 02:39, Michael Hope michael.hope@linaro.org wrote:
We use QEMU to test programs built by the toolchain binary release for correctness.
Is that really such a great idea? Qemu is generally less strict than actual hardware with things like alignment restrictions. This is fine for running software on a foreign architecture, which is the typical use case for emulators, and it is much faster than implementing strict checks for things no correct program should ever do.
A few years ago, Codesourcery released an ARM compiler, binaries from which immediately crashed on real hardware. They had only tested the output in Qemu, never on hardware. Since then, many bugs in Qemu have been fixed, but I would still not trust it for validating a compiler.
Agreed, but this is more of a final validation and integration test. The same source tarball has been bootstrapped and a range of tests run on real hardware. This is testing that the later binary build builds programs and the programs run.
QEMU is fine for a development test. On reflection, not for the final release test.
-- Michael
linaro-toolchain@lists.linaro.org