* [Qemu-devel] qemu-arm in various flavours and circumstances
@ 2004-08-07 12:37 Lennert Buytenhek
2004-08-07 13:11 ` Paul Brook
0 siblings, 1 reply; 2+ messages in thread
From: Lennert Buytenhek @ 2004-08-07 12:37 UTC (permalink / raw)
To: Paul Brook, David Woodhouse; +Cc: qemu-devel
OK, I built a number of different ARM binaries with different toolchains,
a few different versions of qemu, and ran them under a few different
circumstances.
The test
--------
I made the following 27 "Hello, world!" binaries (all static):
- hello-arm-unknown-linux-gnu-gcc-2.95.3-glibc-{2.1.3,2.2.2}
- hello-arm-unknown-linux-gnu-gcc-3.2.3-glibc-{2.2.3,2.2.5,2.3.2}
- hello-arm-unknown-linux-gnu-gcc-3.3.1-glibc-2.3.2
- hello-arm-unknown-linux-gnu-gcc-3.3-glibc-{2.2.5,2.3.2}
- hello-arm-unknown-linux-gnu-gcc-3.4.0-glibc-2.3.2
- hello-armv4eb-redhat-linux-gcc-{3.3.2,3.3.3,3.4.0}-glibc-2.3.2
- hello-armv4e-redhat-linux-gcc-{3.3.2,3.3.3,3.4.0}-glibc-2.3.2
- hello-armv5eb-redhat-linux-gcc-{3.3.2,3.3.3,3.4.0}-glibc-2.3.2
- hello-armv5e-redhat-linux-gcc-{3.3.2,3.3.3,3.4.0}-glibc-2.3.2
- hello-armv5teb-redhat-linux-gcc-{3.3.2,3.3.3,3.4.0}-glibc-2.3.2
- hello-armv5te-redhat-linux-gcc-{3.3.2,3.3.3,3.4.0}-glibc-2.3.2
And used the following versions of qemu:
- qemu 0.6.0
- qemu 20040806
- qemu 20040806 plus patch.qemu_5e, patch.qemu_rrx, patch.qemu_selfmodify
Each version of qemu was built on:
- Red Hat 7.3
- Fedora Core 2
And each invocation of "qemu-version target-binary" was done with both
'setarch i686' and without. So, 12 (3*2*2) different runs for each
target binary, 12*27=324 runs total. All runs are done on a FC2 host.
The results
-----------
bigendian:
- The bigendian binaries (armv?eb, armv?teb) always result in
"Error loading $NAME_OF_BINARY", under every version of qemu
(I didn't muck with WORDS_BIGENDIAN.)
setarch i686:
- An FC2-compiled qemu-arm, when ran on an FC2 host without setarch i686,
under each and every circumstance gives a sig11.
- An FC2-compiled qemu-arm, when ran on an FC2 host with setarch i686,
always behaves the same as a RH73-compiled qemu-arm when ran on an FC2
host. Meaning, sometimes it works, sometimes it doesn't -- see below.
When using either a RH73-compiled qemu or setarch i686:
- All arm-unknown-linux-gnu and armv4e-redhat-linux toolchains produce
binaries that work under qemu.
- There is no difference in results between qemu 0.6.0 and qemu 20040806.
- There is no difference in results between armv5e and armv5te binaries.
- All armv5(t)e binaries give a sig11 under qemu 0.6.0 and qemu 20040806,
but under qemu 20040806 plus Paul's three patches they give sig4:
"qemu: uncaught target signal 4 (Illegal instruction) - exiting"
--L
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [Qemu-devel] qemu-arm in various flavours and circumstances
2004-08-07 12:37 [Qemu-devel] qemu-arm in various flavours and circumstances Lennert Buytenhek
@ 2004-08-07 13:11 ` Paul Brook
0 siblings, 0 replies; 2+ messages in thread
From: Paul Brook @ 2004-08-07 13:11 UTC (permalink / raw)
To: qemu-devel
On Saturday 07 August 2004 13:37, Lennert Buytenhek wrote:
> OK, I built a number of different ARM binaries with different toolchains,
> a few different versions of qemu, and ran them under a few different
> circumstances.
<snip>
> The results
> -----------
> bigendian:
> - The bigendian binaries (armv?eb, armv?teb) always result in
> "Error loading $NAME_OF_BINARY", under every version of qemu
> (I didn't muck with WORDS_BIGENDIAN.)
I haven't tried big-endian binaries. I suspect you won't be able to run both
big and little endian binaries with the same version of qemu.
> setarch i686:
> - An FC2-compiled qemu-arm, when ran on an FC2 host without setarch i686,
> under each and every circumstance gives a sig11.
> - An FC2-compiled qemu-arm, when ran on an FC2 host with setarch i686,
> always behaves the same as a RH73-compiled qemu-arm when ran on an FC2
> host. Meaning, sometimes it works, sometimes it doesn't -- see below.
I suspect this is a generic qemu problem, not specific to qemu-arm.
> When using either a RH73-compiled qemu or setarch i686:
> - All arm-unknown-linux-gnu and armv4e-redhat-linux toolchains produce
> binaries that work under qemu.
> - There is no difference in results between qemu 0.6.0 and qemu 20040806.
> - There is no difference in results between armv5e and armv5te binaries.
> - All armv5(t)e binaries give a sig11 under qemu 0.6.0 and qemu 20040806,
> but under qemu 20040806 plus Paul's three patches they give sig4:
> "qemu: uncaught target signal 4 (Illegal instruction) - exiting"
armv5 support is still incomplete, even with my patches. Thumb state, and the
interworking branch instruction (bx) are still missing. I'm working on it
(slowly).
A side-effect of my armv5e patch is that more illegal/unrecognised
instructions are detected. Without the patch they are probably misinterpreted
as a nonsensical form of a different instruction.
Paul
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2004-08-07 13:15 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-08-07 12:37 [Qemu-devel] qemu-arm in various flavours and circumstances Lennert Buytenhek
2004-08-07 13:11 ` Paul Brook
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).