From: "Alex Bennée" <alex.bennee@linaro.org>
To: qemu-devel@nongnu.org
Cc: edgar.iglesias@gmail.com, michael@walle.cc, aurelien@aurel32.net,
amarkovic@wavecomp.com, shorne@gmail.com, jcmvbkbc@gmail.com,
"Alex Bennée" <alex.bennee@linaro.org>
Subject: [Qemu-devel] [RFC PATCH 00/13] Enabling tcg/tests for xtensa, mips and cris
Date: Mon, 10 Dec 2018 15:28:16 +0000 [thread overview]
Message-ID: <20181210152829.29271-1-alex.bennee@linaro.org> (raw)
Hi,
This is very much a work in progress but I'm posting it in the hope of
getting some feedback from the architecture maintainers.
When I originally enabled tcg tests I only enabled linux-user tests for
architectures that had easily available compilers. I also skipped over a
bunch of the tests that were already in the tree but didn't build.
Enabling the building of system tests is actually fairly simple. The
patch introduces the concept of Makefile.softmmu-target so we can keep
the build rules nicely separated from that of linux-user targets.
I've enabled system builds for xtensa, cris and mips64. However they all
have some niggles that need sorting out.
Xtensa
The tests all build and run manually but for some reason running under
make break. I think this is something to do with the monitor being
involved in the semihosting output.
MIPS
The existing mips tests are split between 32 bit which are linux-user
tests. I've enabled a chunk of these but adding the mips32r2 aran into
problems with make which I haven't yet figured out despite having
targets in different build directories. The mipsr5900 build is limited
by the fact that upstream GCC doesn't seem to support the build type.
The 64 bit mips tests are system tests and are built for the
mips64el-softmmu target. Getting them to build has been more problematic
possibly because there is a bunch of target flags I don't understand.
For example why does FLAGS define have -march=mips64r2 for the mip64-dsp
target?
I could do with some guidance from the MIPS guys here about the right
toolchain and build options.
CRIS
Again I've gotten these building. I had to skip a bunch of tests because
it seems the upstream cris compiler:
cris-linux-gnu-gcc (GCC) 7.2.1 20170915 (Red Hat Cross 7.2.1-1)
Can't build all the cris tests because it doesn't support all the
versions of the architecture. Secondly I'm not sure how these tests are
meant to be invoked within QEMU. They originally come from the binutils
simulator (SIM) and are split into ctst (linux-user) and tst (simulator)
tests. As we can only build system tests with the cris cross compiler
I've stuck to those but I'm unsure how they are meant to be invoked.
I actually started down this road to add Stefan's microbit tests to the
build. You can see this commit:
[https://github.com/stsquad/qemu/commit/727e106204e867cc42dc8fa44f84b013c7f7fcb7]
For how easy it was to add. As this is an RFC I've included all the
aspirational work in progress for our more esoteric architectures so
maintainers can have a play. The next iteration of the series will only
include working patches ;-)
Alex Bennée (12):
tests/tcg: add softmmu awareness to Makefile
tests: enable tcg tests for softmmu
tests/tcg: add QEMU_OPT option for test runner
tests/tcg/mips: enable mips32-dsp/mips32-dspr2/mipsr5900 linux-user
(WIP)
tests/tcg/mips: enable mips64 system tests (WIP)
tests/tcg/xtensa: enable system tests
tests/docker: add fedora-cris-cross compilers
tests/tcg: split cris tests into system and user mode
tests/tcg/cris: cleanup sys.c
tests/tcg/cris: comment out the ccs test
tests/tcg/cris: align mul operations
tests/tcg: enable cris system tests
Philippe Mathieu-Daudé (1):
tests/docker: add debian-xtensa-cross image
Makefile.target | 2 -
tests/Makefile.include | 7 +-
tests/docker/Makefile.include | 1 +
.../dockerfiles/debian-xtensa-cross.docker | 31 ++
.../dockerfiles/fedora-cris-cross.docker | 8 +
tests/tcg/Makefile | 21 +-
tests/tcg/Makefile.include | 2 +-
tests/tcg/cris/Makefile | 168 ---------
tests/tcg/cris/Makefile.include | 6 +
tests/tcg/cris/Makefile.softmmu-target | 50 +++
tests/tcg/cris/sys.c | 59 ---
tests/tcg/cris/{ => system}/check_addcv17.s | 0
tests/tcg/cris/{ => system}/check_addi.s | 0
tests/tcg/cris/{ => system}/check_addiv32.s | 0
tests/tcg/cris/{ => system}/check_addm.s | 0
tests/tcg/cris/{ => system}/check_addq.s | 0
tests/tcg/cris/{ => system}/check_addr.s | 0
tests/tcg/cris/{ => system}/check_addxc.s | 0
tests/tcg/cris/{ => system}/check_addxm.s | 0
tests/tcg/cris/{ => system}/check_addxr.s | 0
tests/tcg/cris/{ => system}/check_andc.s | 0
tests/tcg/cris/{ => system}/check_andm.s | 0
tests/tcg/cris/{ => system}/check_andq.s | 0
tests/tcg/cris/{ => system}/check_andr.s | 0
tests/tcg/cris/{ => system}/check_asr.s | 0
tests/tcg/cris/{ => system}/check_ba.s | 0
tests/tcg/cris/{ => system}/check_bas.s | 0
tests/tcg/cris/{ => system}/check_bcc.s | 0
tests/tcg/cris/{ => system}/check_boundc.s | 0
tests/tcg/cris/{ => system}/check_boundr.s | 0
tests/tcg/cris/{ => system}/check_btst.s | 14 +-
tests/tcg/cris/{ => system}/check_clearfv32.s | 0
tests/tcg/cris/{ => system}/check_clrjmp1.s | 0
tests/tcg/cris/{ => system}/check_cmp-2.s | 0
tests/tcg/cris/{ => system}/check_cmpc.s | 0
tests/tcg/cris/{ => system}/check_cmpm.s | 0
tests/tcg/cris/{ => system}/check_cmpq.s | 0
tests/tcg/cris/{ => system}/check_cmpr.s | 0
tests/tcg/cris/{ => system}/check_cmpxc.s | 0
tests/tcg/cris/{ => system}/check_cmpxm.s | 0
tests/tcg/cris/{ => system}/check_dstep.s | 0
tests/tcg/cris/{ => system}/check_jsr.s | 0
tests/tcg/cris/{ => system}/check_lapc.s | 0
tests/tcg/cris/{ => system}/check_lsl.s | 0
tests/tcg/cris/{ => system}/check_lsr.s | 0
tests/tcg/cris/{ => system}/check_mcp.s | 0
tests/tcg/cris/{ => system}/check_movdelsr1.s | 0
tests/tcg/cris/{ => system}/check_movecr.s | 0
tests/tcg/cris/{ => system}/check_movei.s | 0
tests/tcg/cris/{ => system}/check_movemr.s | 0
tests/tcg/cris/{ => system}/check_movemrv32.s | 0
tests/tcg/cris/{ => system}/check_mover.s | 0
tests/tcg/cris/{ => system}/check_moverm.s | 0
tests/tcg/cris/{ => system}/check_movmp.s | 0
tests/tcg/cris/{ => system}/check_movpmv32.s | 0
tests/tcg/cris/{ => system}/check_movpr.s | 0
tests/tcg/cris/{ => system}/check_movprv32.s | 0
tests/tcg/cris/{ => system}/check_movscr.s | 0
tests/tcg/cris/{ => system}/check_movsm.s | 0
tests/tcg/cris/{ => system}/check_movsr.s | 0
tests/tcg/cris/{ => system}/check_movucr.s | 0
tests/tcg/cris/{ => system}/check_movum.s | 0
tests/tcg/cris/{ => system}/check_movur.s | 0
tests/tcg/cris/{ => system}/check_mulv32.s | 0
tests/tcg/cris/{ => system}/check_mulx.s | 11 +
tests/tcg/cris/{ => system}/check_neg.s | 0
tests/tcg/cris/{ => system}/check_not.s | 0
tests/tcg/cris/{ => system}/check_orc.s | 0
tests/tcg/cris/{ => system}/check_orm.s | 0
tests/tcg/cris/{ => system}/check_orq.s | 0
tests/tcg/cris/{ => system}/check_orr.s | 0
tests/tcg/cris/{ => system}/check_ret.s | 0
tests/tcg/cris/{ => system}/check_scc.s | 0
tests/tcg/cris/{ => system}/check_subc.s | 0
tests/tcg/cris/{ => system}/check_subm.s | 0
tests/tcg/cris/{ => system}/check_subq.s | 0
tests/tcg/cris/{ => system}/check_subr.s | 0
tests/tcg/cris/{ => system}/check_xarith.s | 0
tests/tcg/cris/{ => system}/crt.s | 0
tests/tcg/cris/system/sys.c | 59 +++
tests/tcg/cris/{ => system}/testutils.inc | 0
tests/tcg/cris/{ => user}/check_abs.c | 0
tests/tcg/cris/{ => user}/check_addc.c | 0
tests/tcg/cris/{ => user}/check_addcm.c | 0
tests/tcg/cris/{ => user}/check_addo.c | 0
tests/tcg/cris/{ => user}/check_addoq.c | 0
tests/tcg/cris/{ => user}/check_bound.c | 0
tests/tcg/cris/{ => user}/check_ftag.c | 0
.../{ => user}/check_glibc_kernelversion.c | 0
tests/tcg/cris/{ => user}/check_hello.c | 0
tests/tcg/cris/{ => user}/check_int64.c | 0
tests/tcg/cris/{ => user}/check_lz.c | 0
tests/tcg/cris/{ => user}/check_mapbrk.c | 0
tests/tcg/cris/{ => user}/check_mmap1.c | 0
tests/tcg/cris/{ => user}/check_mmap2.c | 0
tests/tcg/cris/{ => user}/check_mmap3.c | 0
tests/tcg/cris/{ => user}/check_moveq.c | 0
tests/tcg/cris/{ => user}/check_openpf1.c | 0
tests/tcg/cris/{ => user}/check_openpf2.c | 0
tests/tcg/cris/{ => user}/check_openpf3.c | 0
tests/tcg/cris/{ => user}/check_openpf5.c | 0
tests/tcg/cris/{ => user}/check_settls1.c | 0
tests/tcg/cris/{ => user}/check_sigalrm.c | 0
tests/tcg/cris/{ => user}/check_stat1.c | 0
tests/tcg/cris/{ => user}/check_stat2.c | 0
tests/tcg/cris/{ => user}/check_stat3.c | 0
tests/tcg/cris/{ => user}/check_stat4.c | 0
tests/tcg/cris/{ => user}/check_swap.c | 0
tests/tcg/cris/{ => user}/check_time2.c | 0
tests/tcg/cris/{ => user}/crisutils.h | 0
tests/tcg/cris/{ => user}/sys.h | 0
tests/tcg/mips/Makefile.softmmu-target | 20 ++
tests/tcg/mips/Makefile.target | 15 +-
tests/tcg/mips/mips32-dsp/Makefile | 166 ++-------
tests/tcg/mips/mips32-dspr2/Makefile | 83 +----
tests/tcg/mips/mips64-dsp/Makefile | 336 +++---------------
tests/tcg/mips/mipsr5900/Makefile | 40 +--
tests/tcg/xtensa/Makefile | 93 -----
tests/tcg/xtensa/Makefile.include | 7 +
tests/tcg/xtensa/Makefile.softmmu-target | 43 +++
120 files changed, 385 insertions(+), 857 deletions(-)
create mode 100644 tests/docker/dockerfiles/debian-xtensa-cross.docker
create mode 100644 tests/docker/dockerfiles/fedora-cris-cross.docker
delete mode 100644 tests/tcg/cris/Makefile
create mode 100644 tests/tcg/cris/Makefile.include
create mode 100644 tests/tcg/cris/Makefile.softmmu-target
delete mode 100644 tests/tcg/cris/sys.c
rename tests/tcg/cris/{ => system}/check_addcv17.s (100%)
rename tests/tcg/cris/{ => system}/check_addi.s (100%)
rename tests/tcg/cris/{ => system}/check_addiv32.s (100%)
rename tests/tcg/cris/{ => system}/check_addm.s (100%)
rename tests/tcg/cris/{ => system}/check_addq.s (100%)
rename tests/tcg/cris/{ => system}/check_addr.s (100%)
rename tests/tcg/cris/{ => system}/check_addxc.s (100%)
rename tests/tcg/cris/{ => system}/check_addxm.s (100%)
rename tests/tcg/cris/{ => system}/check_addxr.s (100%)
rename tests/tcg/cris/{ => system}/check_andc.s (100%)
rename tests/tcg/cris/{ => system}/check_andm.s (100%)
rename tests/tcg/cris/{ => system}/check_andq.s (100%)
rename tests/tcg/cris/{ => system}/check_andr.s (100%)
rename tests/tcg/cris/{ => system}/check_asr.s (100%)
rename tests/tcg/cris/{ => system}/check_ba.s (100%)
rename tests/tcg/cris/{ => system}/check_bas.s (100%)
rename tests/tcg/cris/{ => system}/check_bcc.s (100%)
rename tests/tcg/cris/{ => system}/check_boundc.s (100%)
rename tests/tcg/cris/{ => system}/check_boundr.s (100%)
rename tests/tcg/cris/{ => system}/check_btst.s (89%)
rename tests/tcg/cris/{ => system}/check_clearfv32.s (100%)
rename tests/tcg/cris/{ => system}/check_clrjmp1.s (100%)
rename tests/tcg/cris/{ => system}/check_cmp-2.s (100%)
rename tests/tcg/cris/{ => system}/check_cmpc.s (100%)
rename tests/tcg/cris/{ => system}/check_cmpm.s (100%)
rename tests/tcg/cris/{ => system}/check_cmpq.s (100%)
rename tests/tcg/cris/{ => system}/check_cmpr.s (100%)
rename tests/tcg/cris/{ => system}/check_cmpxc.s (100%)
rename tests/tcg/cris/{ => system}/check_cmpxm.s (100%)
rename tests/tcg/cris/{ => system}/check_dstep.s (100%)
rename tests/tcg/cris/{ => system}/check_jsr.s (100%)
rename tests/tcg/cris/{ => system}/check_lapc.s (100%)
rename tests/tcg/cris/{ => system}/check_lsl.s (100%)
rename tests/tcg/cris/{ => system}/check_lsr.s (100%)
rename tests/tcg/cris/{ => system}/check_mcp.s (100%)
rename tests/tcg/cris/{ => system}/check_movdelsr1.s (100%)
rename tests/tcg/cris/{ => system}/check_movecr.s (100%)
rename tests/tcg/cris/{ => system}/check_movei.s (100%)
rename tests/tcg/cris/{ => system}/check_movemr.s (100%)
rename tests/tcg/cris/{ => system}/check_movemrv32.s (100%)
rename tests/tcg/cris/{ => system}/check_mover.s (100%)
rename tests/tcg/cris/{ => system}/check_moverm.s (100%)
rename tests/tcg/cris/{ => system}/check_movmp.s (100%)
rename tests/tcg/cris/{ => system}/check_movpmv32.s (100%)
rename tests/tcg/cris/{ => system}/check_movpr.s (100%)
rename tests/tcg/cris/{ => system}/check_movprv32.s (100%)
rename tests/tcg/cris/{ => system}/check_movscr.s (100%)
rename tests/tcg/cris/{ => system}/check_movsm.s (100%)
rename tests/tcg/cris/{ => system}/check_movsr.s (100%)
rename tests/tcg/cris/{ => system}/check_movucr.s (100%)
rename tests/tcg/cris/{ => system}/check_movum.s (100%)
rename tests/tcg/cris/{ => system}/check_movur.s (100%)
rename tests/tcg/cris/{ => system}/check_mulv32.s (100%)
rename tests/tcg/cris/{ => system}/check_mulx.s (98%)
rename tests/tcg/cris/{ => system}/check_neg.s (100%)
rename tests/tcg/cris/{ => system}/check_not.s (100%)
rename tests/tcg/cris/{ => system}/check_orc.s (100%)
rename tests/tcg/cris/{ => system}/check_orm.s (100%)
rename tests/tcg/cris/{ => system}/check_orq.s (100%)
rename tests/tcg/cris/{ => system}/check_orr.s (100%)
rename tests/tcg/cris/{ => system}/check_ret.s (100%)
rename tests/tcg/cris/{ => system}/check_scc.s (100%)
rename tests/tcg/cris/{ => system}/check_subc.s (100%)
rename tests/tcg/cris/{ => system}/check_subm.s (100%)
rename tests/tcg/cris/{ => system}/check_subq.s (100%)
rename tests/tcg/cris/{ => system}/check_subr.s (100%)
rename tests/tcg/cris/{ => system}/check_xarith.s (100%)
rename tests/tcg/cris/{ => system}/crt.s (100%)
create mode 100644 tests/tcg/cris/system/sys.c
rename tests/tcg/cris/{ => system}/testutils.inc (100%)
rename tests/tcg/cris/{ => user}/check_abs.c (100%)
rename tests/tcg/cris/{ => user}/check_addc.c (100%)
rename tests/tcg/cris/{ => user}/check_addcm.c (100%)
rename tests/tcg/cris/{ => user}/check_addo.c (100%)
rename tests/tcg/cris/{ => user}/check_addoq.c (100%)
rename tests/tcg/cris/{ => user}/check_bound.c (100%)
rename tests/tcg/cris/{ => user}/check_ftag.c (100%)
rename tests/tcg/cris/{ => user}/check_glibc_kernelversion.c (100%)
rename tests/tcg/cris/{ => user}/check_hello.c (100%)
rename tests/tcg/cris/{ => user}/check_int64.c (100%)
rename tests/tcg/cris/{ => user}/check_lz.c (100%)
rename tests/tcg/cris/{ => user}/check_mapbrk.c (100%)
rename tests/tcg/cris/{ => user}/check_mmap1.c (100%)
rename tests/tcg/cris/{ => user}/check_mmap2.c (100%)
rename tests/tcg/cris/{ => user}/check_mmap3.c (100%)
rename tests/tcg/cris/{ => user}/check_moveq.c (100%)
rename tests/tcg/cris/{ => user}/check_openpf1.c (100%)
rename tests/tcg/cris/{ => user}/check_openpf2.c (100%)
rename tests/tcg/cris/{ => user}/check_openpf3.c (100%)
rename tests/tcg/cris/{ => user}/check_openpf5.c (100%)
rename tests/tcg/cris/{ => user}/check_settls1.c (100%)
rename tests/tcg/cris/{ => user}/check_sigalrm.c (100%)
rename tests/tcg/cris/{ => user}/check_stat1.c (100%)
rename tests/tcg/cris/{ => user}/check_stat2.c (100%)
rename tests/tcg/cris/{ => user}/check_stat3.c (100%)
rename tests/tcg/cris/{ => user}/check_stat4.c (100%)
rename tests/tcg/cris/{ => user}/check_swap.c (100%)
rename tests/tcg/cris/{ => user}/check_time2.c (100%)
rename tests/tcg/cris/{ => user}/crisutils.h (100%)
rename tests/tcg/cris/{ => user}/sys.h (100%)
create mode 100644 tests/tcg/mips/Makefile.softmmu-target
delete mode 100644 tests/tcg/xtensa/Makefile
create mode 100644 tests/tcg/xtensa/Makefile.include
create mode 100644 tests/tcg/xtensa/Makefile.softmmu-target
--
2.17.1
next reply other threads:[~2018-12-10 15:28 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-10 15:28 Alex Bennée [this message]
2018-12-10 15:28 ` [Qemu-devel] [RFC PATCH 01/13] tests/tcg: add softmmu awareness to Makefile Alex Bennée
2018-12-11 13:38 ` Richard Henderson
2018-12-10 15:28 ` [Qemu-devel] [RFC PATCH 02/13] tests: enable tcg tests for softmmu Alex Bennée
2018-12-11 13:39 ` Richard Henderson
2018-12-10 15:28 ` [Qemu-devel] [RFC PATCH 03/13] tests/tcg: add QEMU_OPT option for test runner Alex Bennée
2018-12-11 13:39 ` Richard Henderson
2018-12-10 15:28 ` [Qemu-devel] [RFC PATCH 04/13] tests/tcg/mips: enable mips32-dsp/mips32-dspr2/mipsr5900 linux-user (WIP) Alex Bennée
2018-12-11 9:54 ` Aleksandar Markovic
2018-12-11 10:16 ` Aleksandar Markovic
2018-12-11 12:17 ` Alex Bennée
2018-12-11 13:45 ` Richard Henderson
2018-12-19 14:39 ` Aleksandar Markovic
2018-12-19 16:03 ` Alex Bennée
2018-12-27 11:22 ` Aleksandar Markovic
2018-12-28 10:28 ` Alex Bennée
2018-12-28 17:32 ` Aleksandar Markovic
2018-12-10 15:28 ` [Qemu-devel] [RFC PATCH 05/13] tests/tcg/mips: enable mips64 system tests (WIP) Alex Bennée
2018-12-27 18:40 ` Aleksandar Markovic
2018-12-27 18:42 ` Aleksandar Markovic
2018-12-10 15:28 ` [Qemu-devel] [RFC PATCH 06/13] tests/docker: add debian-xtensa-cross image Alex Bennée
2018-12-10 15:28 ` [Qemu-devel] [RFC PATCH 07/13] tests/tcg/xtensa: enable system tests Alex Bennée
2018-12-11 0:25 ` Max Filippov
2018-12-11 11:58 ` Alex Bennée
2018-12-11 12:32 ` Max Filippov
2018-12-10 15:28 ` [Qemu-devel] [RFC PATCH 08/13] tests/docker: add fedora-cris-cross compilers Alex Bennée
2018-12-10 15:28 ` [Qemu-devel] [RFC PATCH 09/13] tests/tcg: split cris tests into system and user mode Alex Bennée
2018-12-11 17:47 ` Alex Bennée
2018-12-10 15:28 ` [Qemu-devel] [RFC PATCH 10/13] tests/tcg/cris: cleanup sys.c Alex Bennée
2018-12-10 15:28 ` [Qemu-devel] [RFC PATCH 11/13] tests/tcg/cris: comment out the ccs test Alex Bennée
2019-01-04 14:00 ` Edgar E. Iglesias
2018-12-10 15:28 ` [Qemu-devel] [RFC PATCH 12/13] tests/tcg/cris: align mul operations Alex Bennée
2018-12-10 15:28 ` [Qemu-devel] [RFC PATCH 13/13] tests/tcg: enable cris system tests Alex Bennée
2019-01-04 13:58 ` [Qemu-devel] [RFC PATCH 00/13] Enabling tcg/tests for xtensa, mips and cris Edgar E. Iglesias
2019-01-04 14:03 ` Edgar E. Iglesias
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181210152829.29271-1-alex.bennee@linaro.org \
--to=alex.bennee@linaro.org \
--cc=amarkovic@wavecomp.com \
--cc=aurelien@aurel32.net \
--cc=edgar.iglesias@gmail.com \
--cc=jcmvbkbc@gmail.com \
--cc=michael@walle.cc \
--cc=qemu-devel@nongnu.org \
--cc=shorne@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).