qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v2 00/43] fix building of tests/tcg


From: Alex Bennée
Subject: [Qemu-devel] [PATCH v2 00/43] fix building of tests/tcg
Date: Thu, 19 Apr 2018 14:58:18 +0100

Hi,

This is the second revision of my attempt to revive the tests/tcg
directory. You can find the first iteration here:

  https://lists.gnu.org/archive/html/qemu-devel/2018-04/msg01361.html

Changes:

I've slightly re-jigged the Makefile inclusion to make
tests/tcg/Makefile very simple. All the TESTS are added by the various
sub-makes. I've also included
tests/tcg/$(TARGET_BASE_ARCH)/Makefile.target so common base
architectures can include tests. See MIPS for an example.

Missing Targets:

We still have quite a bit of test code that is not built. These are:

  * tests/tcg/mips/mip[32|64]-dsp[r]

  A bunch of system tests. Also we have no mips64 BE support.

  * tests/tcg/alpha

  Need a cross-compiler

  * tests/tcg/cris

  Needs a cross-compiler

  * tests/tcg/lm32

  Needs a cross-compiler

  * tests/tcg/openrisc

  Needs a cross-compiler

  * tests/tcg/xtensa

  Needs a cross-compiler


We should be able to build basic multiarch tests for a bunch of
additional linux-user targets. A bunch of our LE target compilers
should be able to build BE but I ran into troubles of an incomplete
glibc-dev assuming it's not needed. Apparently a newlib based
cross-compiler would fix this as it has both LE and BE headers
available.

I did start playing with crosstool-ng and Linaro's own ABE scripts but
realised this could end up a massive time sync. What would be really
helpful is if the respective maintainers could encode their EXACT
STEPS for building their cross compilers into some docker recipes.

Missing Cross Compilers:

  aarch64_be alpha armeb cris hppa m68k microblaze microblazeel mips64
  mipsn32 mipsn32el nios2 or1k ppc ppc64abi32 riscv32 riscv64 sh4
  sh4eb sparc sparc32plus sparc64 tilegx xtensa xtensaeb

Finally the end of the series has me adding Emilio's fp-test to the
per-target builds. Unfortunately although some osdep.h and softfloat.c
fiddling allows us to build in most cases I still can't build for
example an i386 fp-test on an x86_64 host using the cross compiler as
it triggers incompatibilities with config-host.h - in this case Int128
support. Currently I just hackily disable fp-test for non-64 bit
platforms.

While the later patches in the series are a bit of a WIP the earlier
patches are certainly deserving of review. Currently the un-reviewed
patches are:

  patch 0001/docker add probe command for configure.patch needs review
  patch 0002/configure add test for docker availability.patch needs review
  patch 0003/configure add support for cross cc FOO.patch needs review
  patch 0004/configure move i386_cc to cross_cc_i386.patch needs review
  patch 0005/configure allow user to specify cross cc cflags f.patch needs 
review
  patch 0006/configure set cross_cc_FOO for host compiler.patch needs review
  patch 0009/docker extend cc command to accept compiler.patch needs review
  patch 0014/tests tcg multiarch enable additional linux test .patch needs 
review
  patch 0016/docker Add fedora i386 cross image.patch needs review
  patch 0017/tests tcg enable building for i386.patch needs review
  patch 0020/tests tcg i386 fix test i386 fprem.patch needs review
  patch 0021/tests tcg i386 disable i386 version of test i386 .patch needs 
review
  patch 0022/tests tcg x86_64 add Makefile.target.patch needs review
  patch 0023/tests tcg i386 test i386 use modern vector_size a.patch needs 
review
  patch 0024/tests tcg i386 test i386 fix printf format.patch needs review
  patch 0026/tests tcg arm fix up test arm iwmmxt test.patch needs review
  patch 0027/tests tcg aarch64 add Makefile.target.patch needs review
  patch 0028/tests tcg aarch64 add fcvt test cases for AArch64.patch needs 
review
  patch 0029/tests tcg aarch64 userspace system register test.patch needs review
  patch 0031/tests tcg enable building for MIPS.patch needs review
  patch 0032/tests tcg mips include common mips hello mips.patch needs review
  patch 0035/tests tcg Makefile update to be called from Makef.patch needs 
review
  patch 0036/Makefile.target add clean guest tests targets.patch needs review
  patch 0038/osdep disable glib compat.h include with QEMU_NO_.patch needs 
review
  patch 0039/softfloat do not include glib headers.patch needs review
  patch 0040/tests add fp test a floating point test suite.patch needs review
  patch 0041/tests tcg multiarch add fp test into multiarch se.patch needs 
review

I've merged a few patches but I've kept the review tags so far. As
usual there are comments bellow the --- for any changes.


Alex Bennée (35):
  configure: add test for docker availability
  configure: add support for --cross-cc-FOO
  configure: move i386_cc to cross_cc_i386
  configure: allow user to specify --cross-cc-cflags-foo=
  configure: set cross_cc_FOO for host compiler
  docker: Add "cc" subcommand
  docker: extend "cc" command to accept compiler
  docker: allow "cc" command to run in user context
  docker: Makefile.include introduce DOCKER_SCRIPT
  tests/tcg: move architecture independent tests into subdir
  tests/tcg/multiarch: enable additional linux-test tests
  tests/tcg: move i386 specific tests into subdir
  tests/tcg: enable building for i386
  tests/tcg/i386: fix test-i386
  tests/tcg/i386: fix test-i386-fprem
  tests/tcg/i386: disable i386 version of test-i386-ssse
  tests/tcg/x86_64: add Makefile.target
  tests/tcg/i386/test-i386: use modern vector_size attributes
  tests/tcg/i386/test-i386: fix printf format
  tests/tcg: move ARM specific tests into subdir
  tests/tcg/arm: fix up test-arm-iwmmxt test
  tests/tcg/aarch64: add Makefile.target
  tests/tcg/aarch64: add fcvt test cases for AArch64
  tests/tcg/aarch64: userspace system register test
  tests/tcg: move MIPS specific tests into subdir
  tests/tcg: enable building for MIPS
  tests/tcg/mips: include common mips hello-mips
  tests/tcg: enable building for s390x
  tests/tcg: enable building for ppc64
  tests/tcg/Makefile: update to be called from Makefile.target
  Makefile.target: add (clean-)guest-tests targets
  tests/Makefile.include: add (clean-)check-tcg targets
  tests/tcg/multiarch: add fp-test into multiarch set
  tests/tcg: disable fp-test for 32 bit (HACK!)
  tests: fp-test add fcvt support (!INCOMPLETE WIP)

Emilio G. Cota (3):
  osdep: disable glib-compat.h include with QEMU_NO_GLIB
  softfloat: do not include glib headers
  tests: add fp-test, a floating point test suite

Fam Zheng (4):
  Makefile: Rename TARGET_DIRS to TARGET_LIST
  tests/tcg/multiarch: Build fix for linux-test
  docker: Add fedora-i386-cross image
  tests/tcg/i386: Build fix for hello-i386

Peter Maydell (1):
  docker: add "probe" command for configure

 Makefile                                      |   20 +-
 Makefile.target                               |    5 +
 configure                                     |  111 +-
 fpu/softfloat.c                               |    4 +
 include/qemu/osdep.h                          |    2 +
 scripts/create_config                         |    2 +-
 tests/Makefile.include                        |   24 +-
 tests/docker/Makefile.include                 |   10 +-
 tests/docker/docker.py                        |   49 +
 .../dockerfiles/fedora-i386-cross.docker      |   14 +
 tests/fp/.gitignore                           |    3 +
 tests/fp/Makefile                             |   34 +
 tests/fp/fp-test.c                            | 1582 +++++++++++++++++
 tests/fp/qemu/regression-tests.fptest         |    7 +
 tests/tcg/Makefile                            |  184 +-
 tests/tcg/Makefile.include                    |   76 +
 tests/tcg/README                              |   69 +-
 tests/tcg/aarch64/Makefile.target             |   13 +
 tests/tcg/aarch64/fcvt.c                      |  260 +++
 tests/tcg/aarch64/fcvt.out                    | 1305 ++++++++++++++
 tests/tcg/aarch64/sysregs.c                   |   14 +
 tests/tcg/arm/Makefile.target                 |   20 +
 tests/tcg/arm/README                          |   11 +
 tests/tcg/{ => arm}/hello-arm.c               |    0
 .../test-arm-iwmmxt.S}                        |    0
 tests/tcg/i386/Makefile.include               |    9 +
 tests/tcg/i386/Makefile.target                |   30 +
 tests/tcg/i386/README                         |   38 +
 tests/tcg/{ => i386}/hello-i386.c             |    1 +
 tests/tcg/{ => i386}/pi_10.com                |  Bin
 tests/tcg/{ => i386}/runcom.c                 |    0
 tests/tcg/{ => i386}/test-i386-code16.S       |    0
 tests/tcg/{ => i386}/test-i386-fprem.c        |   12 +-
 tests/tcg/{ => i386}/test-i386-muldiv.h       |    0
 tests/tcg/{ => i386}/test-i386-shift.h        |    0
 tests/tcg/{ => i386}/test-i386-ssse3.c        |    0
 tests/tcg/{ => i386}/test-i386-vm86.S         |    0
 tests/tcg/{ => i386}/test-i386.c              |    7 +-
 tests/tcg/{ => i386}/test-i386.h              |    0
 tests/tcg/mips/Makefile.include               |   17 +
 tests/tcg/mips/Makefile.target                |   19 +
 tests/tcg/mips/README                         |    7 +
 tests/tcg/{ => mips}/hello-mips.c             |    0
 tests/tcg/multiarch/Makefile.target           |   50 +
 tests/tcg/multiarch/README                    |    1 +
 tests/tcg/{ => multiarch}/linux-test.c        |   82 +-
 tests/tcg/{ => multiarch}/sha1.c              |    0
 tests/tcg/{ => multiarch}/test-mmap.c         |    0
 tests/tcg/{ => multiarch}/testthread.c        |    0
 tests/tcg/ppc64le/Makefile.include            |    2 +
 tests/tcg/s390x/Makefile.include              |    2 +
 tests/tcg/test_path.c                         |  157 --
 tests/tcg/x86_64/Makefile.target              |   15 +
 53 files changed, 3814 insertions(+), 454 deletions(-)
 create mode 100644 tests/docker/dockerfiles/fedora-i386-cross.docker
 create mode 100644 tests/fp/.gitignore
 create mode 100644 tests/fp/Makefile
 create mode 100644 tests/fp/fp-test.c
 create mode 100644 tests/fp/qemu/regression-tests.fptest
 create mode 100644 tests/tcg/Makefile.include
 create mode 100644 tests/tcg/aarch64/Makefile.target
 create mode 100644 tests/tcg/aarch64/fcvt.c
 create mode 100644 tests/tcg/aarch64/fcvt.out
 create mode 100644 tests/tcg/aarch64/sysregs.c
 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/{test-arm-iwmmxt.s => arm/test-arm-iwmmxt.S} (100%)
 create mode 100644 tests/tcg/i386/Makefile.include
 create mode 100644 tests/tcg/i386/Makefile.target
 create mode 100644 tests/tcg/i386/README
 rename tests/tcg/{ => i386}/hello-i386.c (96%)
 rename tests/tcg/{ => i386}/pi_10.com (100%)
 rename tests/tcg/{ => i386}/runcom.c (100%)
 rename tests/tcg/{ => i386}/test-i386-code16.S (100%)
 rename tests/tcg/{ => i386}/test-i386-fprem.c (97%)
 rename tests/tcg/{ => i386}/test-i386-muldiv.h (100%)
 rename tests/tcg/{ => i386}/test-i386-shift.h (100%)
 rename tests/tcg/{ => i386}/test-i386-ssse3.c (100%)
 rename tests/tcg/{ => i386}/test-i386-vm86.S (100%)
 rename tests/tcg/{ => i386}/test-i386.c (99%)
 rename tests/tcg/{ => i386}/test-i386.h (100%)
 create mode 100644 tests/tcg/mips/Makefile.include
 create mode 100644 tests/tcg/mips/Makefile.target
 create mode 100644 tests/tcg/mips/README
 rename tests/tcg/{ => mips}/hello-mips.c (100%)
 create mode 100644 tests/tcg/multiarch/Makefile.target
 create mode 100644 tests/tcg/multiarch/README
 rename tests/tcg/{ => multiarch}/linux-test.c (89%)
 rename tests/tcg/{ => multiarch}/sha1.c (100%)
 rename tests/tcg/{ => multiarch}/test-mmap.c (100%)
 rename tests/tcg/{ => multiarch}/testthread.c (100%)
 create mode 100644 tests/tcg/ppc64le/Makefile.include
 create mode 100644 tests/tcg/s390x/Makefile.include
 delete mode 100644 tests/tcg/test_path.c
 create mode 100644 tests/tcg/x86_64/Makefile.target

-- 
2.17.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]