Message ID | 20180517174718.10107-27-alex.bennee@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | fix building of tests/tcg | expand |
On 05/17/2018 02:46 PM, Alex Bennée wrote: > These only need to be built for ARM guests. > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > Reviewed-by: Thomas Huth <thuth@redhat.com> > Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > Reviewed-by: Richard Henderson <richard.henderson@linaro.org> > > --- > v2 > - do VPATH manipulation in tests/tcg/arm/Makefile.target > - merge with fix hello-arm test > v4 > - update MAINTAINERS > --- > MAINTAINERS | 1 + > tests/tcg/README | 9 --------- > tests/tcg/arm/Makefile.target | 13 +++++++++++++ > tests/tcg/arm/README | 11 +++++++++++ > tests/tcg/{ => arm}/hello-arm.c | 0 > tests/tcg/{ => arm}/test-arm-iwmmxt.s | 0 > 6 files changed, 25 insertions(+), 9 deletions(-) > create mode 100644 tests/tcg/arm/Makefile.target > create mode 100644 tests/tcg/arm/README > rename tests/tcg/{ => arm}/hello-arm.c (100%) > rename tests/tcg/{ => arm}/test-arm-iwmmxt.s (100%) > > diff --git a/MAINTAINERS b/MAINTAINERS > index 17b9fc0fbe..4e331c4db4 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -135,6 +135,7 @@ M: Peter Maydell <peter.maydell@linaro.org> > L: qemu-arm@nongnu.org > S: Maintained > F: target/arm/ > +F: tests/tcg/arm/ > F: hw/arm/ > F: hw/cpu/a*mpcore.c > F: include/hw/cpu/a*mpcore.h > diff --git a/tests/tcg/README b/tests/tcg/README > index 469504c4cb..625f2326e6 100644 > --- a/tests/tcg/README > +++ b/tests/tcg/README > @@ -5,15 +5,6 @@ or they are architecture specific. > > > > -ARM > -=== > - > -hello-arm > ---------- > - > -test-arm-iwmmxt > ---------------- > - > MIPS > ==== > > diff --git a/tests/tcg/arm/Makefile.target b/tests/tcg/arm/Makefile.target > new file mode 100644 > index 0000000000..bc6962ecc6 > --- /dev/null > +++ b/tests/tcg/arm/Makefile.target > @@ -0,0 +1,13 @@ > +# -*- Mode: makefile -*- > +# > +# ARM - included from tests/tcg/Makefile.target > +# > + > +ARM_SRC=$(SRC_PATH)/tests/tcg/arm > + > +# Set search path for all sources > +VPATH += $(ARM_SRC) > + > + > +hello-arm: CFLAGS+=-marm -ffreestanding So we are only testing the ARMv7, but linux-user provides ARMv5 and ARMv6 cpus. There are still boards shipped with those cpus, so I think QEMU will still be useful nowadays with those older archs. Can we consider add tests for them? If so, I volunteer to prepare Docker cross images :) arm-linux-user/tests$ ../qemu-arm -cpu arm926 -d in_asm,op sha1 ---------------- IN: 0x000102ec: f04f 0b00 mov.w fp, #0 OP: ld_i32 tmp5,env,$0xffffffffffffffec movi_i32 tmp6,$0x0 brcond_i32 tmp5,tmp6,lt,$L0 ---- 000102ec 00000000 00000000 movi_i32 pc,$0x102ec movi_i32 tmp5,$0x1 movi_i32 tmp6,$0x2000000 movi_i32 tmp7,$0x1 call exception_with_syndrome,$0x0,$0,env,tmp5,tmp6,tmp7 set_label $L0 exit_tb $0x563aed6cc043 qemu: uncaught target signal 4 (Illegal instruction) - core dumped Illegal instruction > +hello-arm: LDFLAGS+=-nostdlib > diff --git a/tests/tcg/arm/README b/tests/tcg/arm/README > new file mode 100644 > index 0000000000..e6307116e2 > --- /dev/null > +++ b/tests/tcg/arm/README > @@ -0,0 +1,11 @@ > +These are ARM specific guest programs > + > +hello-arm > +--------- > + > +A very simple inline assembly, write syscall based hello world > + > +test-arm-iwmmxt > +--------------- > + > +A simple test case for older iwmmxt extended ARMs > diff --git a/tests/tcg/hello-arm.c b/tests/tcg/arm/hello-arm.c > similarity index 100% > rename from tests/tcg/hello-arm.c > rename to tests/tcg/arm/hello-arm.c > diff --git a/tests/tcg/test-arm-iwmmxt.s b/tests/tcg/arm/test-arm-iwmmxt.s > similarity index 100% > rename from tests/tcg/test-arm-iwmmxt.s > rename to tests/tcg/arm/test-arm-iwmmxt.s >
Philippe Mathieu-Daudé <f4bug@amsat.org> writes: > On 05/17/2018 02:46 PM, Alex Bennée wrote: >> These only need to be built for ARM guests. >> >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> >> Reviewed-by: Thomas Huth <thuth@redhat.com> >> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> >> Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org> >> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> >> >> --- >> v2 >> - do VPATH manipulation in tests/tcg/arm/Makefile.target >> - merge with fix hello-arm test >> v4 >> - update MAINTAINERS >> --- >> MAINTAINERS | 1 + >> tests/tcg/README | 9 --------- >> tests/tcg/arm/Makefile.target | 13 +++++++++++++ >> tests/tcg/arm/README | 11 +++++++++++ >> tests/tcg/{ => arm}/hello-arm.c | 0 >> tests/tcg/{ => arm}/test-arm-iwmmxt.s | 0 >> 6 files changed, 25 insertions(+), 9 deletions(-) >> create mode 100644 tests/tcg/arm/Makefile.target >> create mode 100644 tests/tcg/arm/README >> rename tests/tcg/{ => arm}/hello-arm.c (100%) >> rename tests/tcg/{ => arm}/test-arm-iwmmxt.s (100%) >> >> diff --git a/MAINTAINERS b/MAINTAINERS >> index 17b9fc0fbe..4e331c4db4 100644 >> --- a/MAINTAINERS >> +++ b/MAINTAINERS >> @@ -135,6 +135,7 @@ M: Peter Maydell <peter.maydell@linaro.org> >> L: qemu-arm@nongnu.org >> S: Maintained >> F: target/arm/ >> +F: tests/tcg/arm/ >> F: hw/arm/ >> F: hw/cpu/a*mpcore.c >> F: include/hw/cpu/a*mpcore.h >> diff --git a/tests/tcg/README b/tests/tcg/README >> index 469504c4cb..625f2326e6 100644 >> --- a/tests/tcg/README >> +++ b/tests/tcg/README >> @@ -5,15 +5,6 @@ or they are architecture specific. >> >> >> >> -ARM >> -=== >> - >> -hello-arm >> ---------- >> - >> -test-arm-iwmmxt >> ---------------- >> - >> MIPS >> ==== >> >> diff --git a/tests/tcg/arm/Makefile.target b/tests/tcg/arm/Makefile.target >> new file mode 100644 >> index 0000000000..bc6962ecc6 >> --- /dev/null >> +++ b/tests/tcg/arm/Makefile.target >> @@ -0,0 +1,13 @@ >> +# -*- Mode: makefile -*- >> +# >> +# ARM - included from tests/tcg/Makefile.target >> +# >> + >> +ARM_SRC=$(SRC_PATH)/tests/tcg/arm >> + >> +# Set search path for all sources >> +VPATH += $(ARM_SRC) >> + >> + >> +hello-arm: CFLAGS+=-marm -ffreestanding > > So we are only testing the ARMv7, but linux-user provides ARMv5 and > ARMv6 cpus. > > There are still boards shipped with those cpus, so I think QEMU will > still be useful nowadays with those older archs. > Can we consider add tests for them? > If so, I volunteer to prepare Docker cross images :) Hmm OK but we'd a bunch of new tests and something like this: modified tests/tcg/arm/Makefile.target @@ -8,13 +8,23 @@ ARM_SRC=$(SRC_PATH)/tests/tcg/arm # Set search path for all sources VPATH += $(ARM_SRC) -ARM_TESTS=hello-arm test-arm-iwmmxt +ARM_TESTS=hello-arm hello-arm-v6 test-arm-iwmmxt TESTS += $(ARM_TESTS) fcvt hello-arm: CFLAGS+=-marm -ffreestanding hello-arm: LDFLAGS+=-nostdlib +hello-arm-v6: CFLAGS+=-march=armv6 -ffreestanding +hello-arm-v6: LDFLAGS+=-nostdlib +hello-arm-v6: hello-arm.c + $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) + +run-hello-arm-v6: hello-arm-v6 + $(call quiet-command, \ + timeout $(TIMEOUT) $(QEMU) -cpu arm926 $< > $<.out, \ + "TEST", "$< on $(TARGET_NAME)") + Of course that fails because: /home/alex/lsrc/qemu/qemu.git/tests/tcg/arm/hello-arm.c:106:1: sorry, unimplemented: Thumb-1 hard-float VFP ABI _syscall1(int,exit1,int,status); ^~~~~~~~~ I think using external tests like risu is probably better for this sort of coverage. > > arm-linux-user/tests$ ../qemu-arm -cpu arm926 -d in_asm,op sha1 > ---------------- > IN: > 0x000102ec: f04f 0b00 mov.w fp, #0 > > OP: > ld_i32 tmp5,env,$0xffffffffffffffec > movi_i32 tmp6,$0x0 > brcond_i32 tmp5,tmp6,lt,$L0 > > ---- 000102ec 00000000 00000000 > movi_i32 pc,$0x102ec > movi_i32 tmp5,$0x1 > movi_i32 tmp6,$0x2000000 > movi_i32 tmp7,$0x1 > call exception_with_syndrome,$0x0,$0,env,tmp5,tmp6,tmp7 > set_label $L0 > exit_tb $0x563aed6cc043 > > qemu: uncaught target signal 4 (Illegal instruction) - core dumped > Illegal instruction > >> +hello-arm: LDFLAGS+=-nostdlib >> diff --git a/tests/tcg/arm/README b/tests/tcg/arm/README >> new file mode 100644 >> index 0000000000..e6307116e2 >> --- /dev/null >> +++ b/tests/tcg/arm/README >> @@ -0,0 +1,11 @@ >> +These are ARM specific guest programs >> + >> +hello-arm >> +--------- >> + >> +A very simple inline assembly, write syscall based hello world >> + >> +test-arm-iwmmxt >> +--------------- >> + >> +A simple test case for older iwmmxt extended ARMs >> diff --git a/tests/tcg/hello-arm.c b/tests/tcg/arm/hello-arm.c >> similarity index 100% >> rename from tests/tcg/hello-arm.c >> rename to tests/tcg/arm/hello-arm.c >> diff --git a/tests/tcg/test-arm-iwmmxt.s b/tests/tcg/arm/test-arm-iwmmxt.s >> similarity index 100% >> rename from tests/tcg/test-arm-iwmmxt.s >> rename to tests/tcg/arm/test-arm-iwmmxt.s >> -- Alex Bennée
diff --git a/MAINTAINERS b/MAINTAINERS index 17b9fc0fbe..4e331c4db4 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -135,6 +135,7 @@ M: Peter Maydell <peter.maydell@linaro.org> L: qemu-arm@nongnu.org S: Maintained F: target/arm/ +F: tests/tcg/arm/ F: hw/arm/ F: hw/cpu/a*mpcore.c F: include/hw/cpu/a*mpcore.h diff --git a/tests/tcg/README b/tests/tcg/README index 469504c4cb..625f2326e6 100644 --- a/tests/tcg/README +++ b/tests/tcg/README @@ -5,15 +5,6 @@ or they are architecture specific. -ARM -=== - -hello-arm ---------- - -test-arm-iwmmxt ---------------- - MIPS ==== diff --git a/tests/tcg/arm/Makefile.target b/tests/tcg/arm/Makefile.target new file mode 100644 index 0000000000..bc6962ecc6 --- /dev/null +++ b/tests/tcg/arm/Makefile.target @@ -0,0 +1,13 @@ +# -*- Mode: makefile -*- +# +# ARM - included from tests/tcg/Makefile.target +# + +ARM_SRC=$(SRC_PATH)/tests/tcg/arm + +# Set search path for all sources +VPATH += $(ARM_SRC) + + +hello-arm: CFLAGS+=-marm -ffreestanding +hello-arm: LDFLAGS+=-nostdlib diff --git a/tests/tcg/arm/README b/tests/tcg/arm/README new file mode 100644 index 0000000000..e6307116e2 --- /dev/null +++ b/tests/tcg/arm/README @@ -0,0 +1,11 @@ +These are ARM specific guest programs + +hello-arm +--------- + +A very simple inline assembly, write syscall based hello world + +test-arm-iwmmxt +--------------- + +A simple test case for older iwmmxt extended ARMs diff --git a/tests/tcg/hello-arm.c b/tests/tcg/arm/hello-arm.c similarity index 100% rename from tests/tcg/hello-arm.c rename to tests/tcg/arm/hello-arm.c diff --git a/tests/tcg/test-arm-iwmmxt.s b/tests/tcg/arm/test-arm-iwmmxt.s similarity index 100% rename from tests/tcg/test-arm-iwmmxt.s rename to tests/tcg/arm/test-arm-iwmmxt.s