mbox series

[v3,00/46] fix building of tests/tcg

Message ID 20180424152405.10304-1-alex.bennee@linaro.org
Headers show
Series fix building of tests/tcg | expand

Message

Alex Bennée April 24, 2018, 3:23 p.m. UTC
Hi,

This is starting to shape up pretty nicely. I was able to add a whole
bunch of additional architectures thanks to cross compilers in Debian
Sid which are there to support the Debian "ports". These may not be
around for ever, most "ports" are on the way out, but they will be the
last thing to drop out of the Sid repo. Maybe when Debian stops
caring (and no other distro does) maybe we should to?

However compiling big-endian targets continues to be a massive pain as
even if compilers support switching endianess with flags you are
usually let down by a partial set of headers or the linker not being
able to link against wrong-endian crt.o or libgcc files. Ultimately
any guests that are not supported by any distro are probably going to
be stuck with bare metal or hand crafted tests like in
tests/tcg/alpha.

The final patch (tests/tcg: override runners for broken tests)
suppresses a bunch of tests that fail on different guest setups. This
was to allow me to test "make check-tcg" could make it all the way
through. I'm sure some of them are bugs that need fixing so it would
be cool if maintainers could look through and see if there are any
easy wins.

Major Changes:
  - check-tcg now runs the tests (c.f build-tcg/clean-tcg)
  - clean use of quiet-command for CROSS-BUILD/RUN-TESTS and TEST
  - bunch of additional targets (alpha, hppa, m68k, sh4, sparc64, mips64)
  - review comments and tags
  - dropped fp-test and additional aarch64 tests for now

As usual detailed notes are bellow the --- in the commit messages.

Currently un-reviewed:

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 0014/tests tcg multiarch enable additional linux test .patch needs review
patch 0015/tests tcg multiarch move most output to stdout.patch needs review
patch 0017/docker Add fedora i386 cross image.patch needs review
patch 0018/tests tcg enable building for i386.patch needs review
patch 0021/tests tcg i386 fix test i386 fprem.patch needs review
patch 0022/tests tcg i386 disable i386 version of test i386 .patch needs review
patch 0023/tests tcg x86_64 add Makefile.target.patch needs review
patch 0025/tests tcg i386 test i386 fix printf format.patch needs review
patch 0027/tests tcg arm fix up test arm iwmmxt test.patch needs review
patch 0028/tests tcg aarch64 add Makefile.target.patch needs review
patch 0029/tests tcg aarch64 add fcvt test cases for AArch64.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 enable building for Alpha.patch needs review
patch 0036/tests tcg alpha add Alpha specific tests.patch needs review
patch 0037/tests tcg alpha fix warnings about write.patch needs review
patch 0038/tests tcg enable building for HPPA.patch needs review
patch 0039/tests tcg enable building for m68k.patch needs review
patch 0040/tests tcg enable building for sh4.patch needs review
patch 0041/tests tcg enable building for sparc64.patch needs review
patch 0042/tests tcg enable building for mips64.patch needs review
patch 0043/tests tcg Makefile update to be called from Makef.patch needs review
patch 0044/Makefile.target add clean guest tests targets.patch needs review
patch 0046/tests tcg override runners for broken tests UPSTR.patch needs review


Alex Bennée (41):
  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/multiarch: move most output to stdout
  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: 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: enable building for Alpha
  tests/tcg/alpha: add Alpha specific tests
  tests/tcg/alpha: fix warnings about write()
  tests/tcg: enable building for HPPA
  tests/tcg: enable building for m68k
  tests/tcg: enable building for sh4
  tests/tcg: enable building for sparc64
  tests/tcg: enable building for mips64
  tests/tcg/Makefile: update to be called from Makefile.target
  Makefile.target: add (clean-)guest-tests targets
  tests/Makefile.include: add [build|clean|check]-tcg targets
  tests/tcg: override runners for broken tests (!UPSTREAM)

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                                     |  136 +-
 scripts/create_config                         |    2 +-
 tests/Makefile.include                        |   28 +-
 tests/docker/Makefile.include                 |   16 +-
 tests/docker/docker.py                        |   49 +
 .../dockerfiles/debian-alpha-cross.docker     |   12 +
 .../dockerfiles/debian-cross-build.docker     |   36 +
 .../dockerfiles/debian-hppa-cross.docker      |   12 +
 .../dockerfiles/debian-m68k-cross.docker      |   12 +
 .../dockerfiles/debian-mips64-cross.docker    |   12 +
 .../dockerfiles/debian-sh4-cross.docker       |   12 +
 tests/docker/dockerfiles/debian-sid.docker    |   23 +
 .../dockerfiles/debian-sparc64-cross.docker   |   12 +
 .../dockerfiles/fedora-i386-cross.docker      |   14 +
 tests/tcg/Makefile                            |  193 +--
 tests/tcg/Makefile.include                    |   86 ++
 tests/tcg/README                              |   69 +-
 tests/tcg/aarch64/Makefile.target             |   13 +
 tests/tcg/aarch64/fcvt.c                      |  260 ++++
 tests/tcg/aarch64/fcvt.out                    | 1305 +++++++++++++++++
 tests/tcg/alpha/Makefile                      |   35 -
 tests/tcg/alpha/Makefile.include              |    2 +
 tests/tcg/alpha/Makefile.target               |   36 +
 tests/tcg/alpha/{crt.s => crt.S}              |    0
 tests/tcg/alpha/hello-alpha.c                 |    2 +
 tests/tcg/alpha/test-cond.c                   |    1 +
 tests/tcg/alpha/test-ovf.c                    |    2 +
 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/hppa/Makefile.include               |    2 +
 tests/tcg/hppa/Makefile.target                |   10 +
 tests/tcg/i386/Makefile.include               |    9 +
 tests/tcg/i386/Makefile.target                |   52 +
 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/m68k/Makefile.include               |    2 +
 tests/tcg/m68k/Makefile.target                |   11 +
 tests/tcg/mips/Makefile.include               |   20 +
 tests/tcg/mips/Makefile.target                |   29 +
 tests/tcg/mips/README                         |    7 +
 tests/tcg/{ => mips}/hello-mips.c             |    0
 tests/tcg/multiarch/Makefile.target           |   29 +
 tests/tcg/multiarch/README                    |    1 +
 tests/tcg/{ => multiarch}/linux-test.c        |   93 +-
 tests/tcg/{ => multiarch}/sha1.c              |    0
 tests/tcg/{ => multiarch}/test-mmap.c         |   38 +-
 tests/tcg/{ => multiarch}/testthread.c        |    0
 tests/tcg/ppc64le/Makefile.include            |    2 +
 tests/tcg/s390x/Makefile.include              |    2 +
 tests/tcg/s390x/Makefile.target               |    6 +
 tests/tcg/sh4/Makefile.include                |    4 +
 tests/tcg/sh4/Makefile.target                 |    6 +
 tests/tcg/sparc64/Makefile.include            |    2 +
 tests/tcg/sparc64/Makefile.target             |    8 +
 tests/tcg/test_path.c                         |  157 --
 tests/tcg/x86_64/Makefile.target              |   15 +
 70 files changed, 2495 insertions(+), 504 deletions(-)
 create mode 100644 tests/docker/dockerfiles/debian-alpha-cross.docker
 create mode 100644 tests/docker/dockerfiles/debian-cross-build.docker
 create mode 100644 tests/docker/dockerfiles/debian-hppa-cross.docker
 create mode 100644 tests/docker/dockerfiles/debian-m68k-cross.docker
 create mode 100644 tests/docker/dockerfiles/debian-mips64-cross.docker
 create mode 100644 tests/docker/dockerfiles/debian-sh4-cross.docker
 create mode 100644 tests/docker/dockerfiles/debian-sid.docker
 create mode 100644 tests/docker/dockerfiles/debian-sparc64-cross.docker
 create mode 100644 tests/docker/dockerfiles/fedora-i386-cross.docker
 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
 delete mode 100644 tests/tcg/alpha/Makefile
 create mode 100644 tests/tcg/alpha/Makefile.include
 create mode 100644 tests/tcg/alpha/Makefile.target
 rename tests/tcg/alpha/{crt.s => crt.S} (100%)
 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/hppa/Makefile.include
 create mode 100644 tests/tcg/hppa/Makefile.target
 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/m68k/Makefile.include
 create mode 100644 tests/tcg/m68k/Makefile.target
 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 (87%)
 rename tests/tcg/{ => multiarch}/sha1.c (100%)
 rename tests/tcg/{ => multiarch}/test-mmap.c (94%)
 rename tests/tcg/{ => multiarch}/testthread.c (100%)
 create mode 100644 tests/tcg/ppc64le/Makefile.include
 create mode 100644 tests/tcg/s390x/Makefile.include
 create mode 100644 tests/tcg/s390x/Makefile.target
 create mode 100644 tests/tcg/sh4/Makefile.include
 create mode 100644 tests/tcg/sh4/Makefile.target
 create mode 100644 tests/tcg/sparc64/Makefile.include
 create mode 100644 tests/tcg/sparc64/Makefile.target
 delete mode 100644 tests/tcg/test_path.c
 create mode 100644 tests/tcg/x86_64/Makefile.target

-- 
2.17.0

Comments

no-reply@patchew.org April 24, 2018, 4:58 p.m. UTC | #1
Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Message-id: 20180424152405.10304-1-alex.bennee@linaro.org
Subject: [Qemu-devel] [PATCH v3 00/46] fix building of tests/tcg

=== TEST SCRIPT BEGIN ===
#!/bin/bash

BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0

git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram

commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
    echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
    if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
        failed=1
        echo
    fi
    n=$((n+1))
done

exit $failed
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 * [new tag]               patchew/20180424152405.10304-1-alex.bennee@linaro.org -> patchew/20180424152405.10304-1-alex.bennee@linaro.org
Switched to a new branch 'test'
ff876b3ed2 tests/tcg: override runners for broken tests (!UPSTREAM)
45dafe5224 tests/Makefile.include: add [build|clean|check]-tcg targets
bd27be19a8 Makefile.target: add (clean-)guest-tests targets
cec6f937da tests/tcg/Makefile: update to be called from Makefile.target
67fe064c30 tests/tcg: enable building for mips64
3baf3c795e tests/tcg: enable building for sparc64
ab08564ecf tests/tcg: enable building for sh4
15d108f077 tests/tcg: enable building for m68k
8a42b8e70c tests/tcg: enable building for HPPA
4481298d23 tests/tcg/alpha: fix warnings about write()
d8eac0851c tests/tcg/alpha: add Alpha specific tests
de7f346110 tests/tcg: enable building for Alpha
1bbaaf0ea5 tests/tcg: enable building for ppc64
272347cf05 tests/tcg: enable building for s390x
759cb1da53 tests/tcg/mips: include common mips hello-mips
8808039b55 tests/tcg: enable building for MIPS
1c496b7264 tests/tcg: move MIPS specific tests into subdir
9f41829c5b tests/tcg/aarch64: add fcvt test cases for AArch64
a567adc375 tests/tcg/aarch64: add Makefile.target
aba36f4232 tests/tcg/arm: fix up test-arm-iwmmxt test
2607ac3ef8 tests/tcg: move ARM specific tests into subdir
4e1168cef4 tests/tcg/i386/test-i386: fix printf format
ae1eebb683 tests/tcg/i386/test-i386: use modern vector_size attributes
163409da89 tests/tcg/x86_64: add Makefile.target
f4916925ae tests/tcg/i386: disable i386 version of test-i386-ssse
5366eee797 tests/tcg/i386: fix test-i386-fprem
ee864a5517 tests/tcg/i386: fix test-i386
1fcf9f7e22 tests/tcg/i386: Build fix for hello-i386
c62ad0105a tests/tcg: enable building for i386
08440c24e8 docker: Add fedora-i386-cross image
7f3f03647d tests/tcg: move i386 specific tests into subdir
c71c9d8d20 tests/tcg/multiarch: move most output to stdout
945092fc3f tests/tcg/multiarch: enable additional linux-test tests
01814df5f5 tests/tcg/multiarch: Build fix for linux-test
709eb7201d tests/tcg: move architecture independent tests into subdir
4d12ac26c0 docker: Makefile.include introduce DOCKER_SCRIPT
a2790883a1 docker: allow "cc" command to run in user context
25e49baf0a docker: extend "cc" command to accept compiler
4e7d4ee7a2 docker: Add "cc" subcommand
1a895c1c6c Makefile: Rename TARGET_DIRS to TARGET_LIST
aa6bbbf1be configure: set cross_cc_FOO for host compiler
33f6f01ee9 configure: allow user to specify --cross-cc-cflags-foo=
2a07647761 configure: move i386_cc to cross_cc_i386
7af0f78d24 configure: add support for --cross-cc-FOO
a55d00f935 configure: add test for docker availability
ed713feee4 docker: add "probe" command for configure

=== OUTPUT BEGIN ===
Checking PATCH 1/46: docker: add "probe" command for configure...
Checking PATCH 2/46: configure: add test for docker availability...
Checking PATCH 3/46: configure: add support for --cross-cc-FOO...
Checking PATCH 4/46: configure: move i386_cc to cross_cc_i386...
Checking PATCH 5/46: configure: allow user to specify --cross-cc-cflags-foo=...
Checking PATCH 6/46: configure: set cross_cc_FOO for host compiler...
Checking PATCH 7/46: Makefile: Rename TARGET_DIRS to TARGET_LIST...
Checking PATCH 8/46: docker: Add "cc" subcommand...
Checking PATCH 9/46: docker: extend "cc" command to accept compiler...
Checking PATCH 10/46: docker: allow "cc" command to run in user context...
Checking PATCH 11/46: docker: Makefile.include introduce DOCKER_SCRIPT...
Checking PATCH 12/46: tests/tcg: move architecture independent tests into subdir...
Checking PATCH 13/46: tests/tcg/multiarch: Build fix for linux-test...
ERROR: if this code is redundant consider removing it
#153: FILE: tests/tcg/multiarch/linux-test.c:323:
+#if 0

total: 1 errors, 0 warnings, 185 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 14/46: tests/tcg/multiarch: enable additional linux-test tests...
Checking PATCH 15/46: tests/tcg/multiarch: move most output to stdout...
ERROR: code indent should never use tabs
#24: FILE: tests/tcg/multiarch/test-mmap.c:60:
+^Ifprintf (stdout, "%s", __func__);$

ERROR: space prohibited between function name and open parenthesis '('
#24: FILE: tests/tcg/multiarch/test-mmap.c:60:
+	fprintf (stdout, "%s", __func__);

ERROR: code indent should never use tabs
#33: FILE: tests/tcg/multiarch/test-mmap.c:109:
+^Ifprintf (stdout, " passed\n");$

ERROR: space prohibited between function name and open parenthesis '('
#33: FILE: tests/tcg/multiarch/test-mmap.c:109:
+	fprintf (stdout, " passed\n");

ERROR: code indent should never use tabs
#42: FILE: tests/tcg/multiarch/test-mmap.c:118:
+^Ifprintf (stdout, "%s", __func__);$

ERROR: space prohibited between function name and open parenthesis '('
#42: FILE: tests/tcg/multiarch/test-mmap.c:118:
+	fprintf (stdout, "%s", __func__);

ERROR: code indent should never use tabs
#51: FILE: tests/tcg/multiarch/test-mmap.c:133:
+^Ifprintf (stdout, " passed\n");$

ERROR: space prohibited between function name and open parenthesis '('
#51: FILE: tests/tcg/multiarch/test-mmap.c:133:
+	fprintf (stdout, " passed\n");

ERROR: code indent should never use tabs
#60: FILE: tests/tcg/multiarch/test-mmap.c:144:
+^Ifprintf (stdout, "%s", __func__);$

ERROR: space prohibited between function name and open parenthesis '('
#60: FILE: tests/tcg/multiarch/test-mmap.c:144:
+	fprintf (stdout, "%s", __func__);

ERROR: code indent should never use tabs
#69: FILE: tests/tcg/multiarch/test-mmap.c:183:
+^Ifprintf (stdout, " passed\n");$

ERROR: space prohibited between function name and open parenthesis '('
#69: FILE: tests/tcg/multiarch/test-mmap.c:183:
+	fprintf (stdout, " passed\n");

ERROR: code indent should never use tabs
#78: FILE: tests/tcg/multiarch/test-mmap.c:197:
+^Ifprintf (stdout, "%s addr=%p", __func__, addr);$

ERROR: space prohibited between function name and open parenthesis '('
#78: FILE: tests/tcg/multiarch/test-mmap.c:197:
+	fprintf (stdout, "%s addr=%p", __func__, addr);

ERROR: code indent should never use tabs
#87: FILE: tests/tcg/multiarch/test-mmap.c:215:
+^Ifprintf (stdout, " passed\n");$

ERROR: space prohibited between function name and open parenthesis '('
#87: FILE: tests/tcg/multiarch/test-mmap.c:215:
+	fprintf (stdout, " passed\n");

ERROR: code indent should never use tabs
#97: FILE: tests/tcg/multiarch/test-mmap.c:228:
+^Ifprintf (stdout, "%s addr=%p", __func__, addr);$

ERROR: space prohibited between function name and open parenthesis '('
#97: FILE: tests/tcg/multiarch/test-mmap.c:228:
+	fprintf (stdout, "%s addr=%p", __func__, addr);

ERROR: code indent should never use tabs
#98: FILE: tests/tcg/multiarch/test-mmap.c:229:
+^Ifprintf (stdout, "FIXME: QEMU fails to track pages used by the host.");$

ERROR: space prohibited between function name and open parenthesis '('
#98: FILE: tests/tcg/multiarch/test-mmap.c:229:
+	fprintf (stdout, "FIXME: QEMU fails to track pages used by the host.");

ERROR: code indent should never use tabs
#107: FILE: tests/tcg/multiarch/test-mmap.c:246:
+^Ifprintf (stdout, " passed\n");$

ERROR: space prohibited between function name and open parenthesis '('
#107: FILE: tests/tcg/multiarch/test-mmap.c:246:
+	fprintf (stdout, " passed\n");

ERROR: code indent should never use tabs
#116: FILE: tests/tcg/multiarch/test-mmap.c:255:
+^Ifprintf (stdout, "%s", __func__);$

ERROR: space prohibited between function name and open parenthesis '('
#116: FILE: tests/tcg/multiarch/test-mmap.c:255:
+	fprintf (stdout, "%s", __func__);

ERROR: code indent should never use tabs
#125: FILE: tests/tcg/multiarch/test-mmap.c:297:
+^Ifprintf (stdout, " passed\n");$

ERROR: space prohibited between function name and open parenthesis '('
#125: FILE: tests/tcg/multiarch/test-mmap.c:297:
+	fprintf (stdout, " passed\n");

ERROR: code indent should never use tabs
#134: FILE: tests/tcg/multiarch/test-mmap.c:307:
+^Ifprintf (stdout, "%s", __func__);$

ERROR: space prohibited between function name and open parenthesis '('
#134: FILE: tests/tcg/multiarch/test-mmap.c:307:
+	fprintf (stdout, "%s", __func__);

ERROR: code indent should never use tabs
#143: FILE: tests/tcg/multiarch/test-mmap.c:330:
+^Ifprintf (stdout, " passed\n");$

ERROR: space prohibited between function name and open parenthesis '('
#143: FILE: tests/tcg/multiarch/test-mmap.c:330:
+	fprintf (stdout, " passed\n");

ERROR: code indent should never use tabs
#152: FILE: tests/tcg/multiarch/test-mmap.c:346:
+^Ifprintf (stdout, "%s addr=%p", __func__, (void *)addr);$

ERROR: space prohibited between function name and open parenthesis '('
#152: FILE: tests/tcg/multiarch/test-mmap.c:346:
+	fprintf (stdout, "%s addr=%p", __func__, (void *)addr);

ERROR: code indent should never use tabs
#161: FILE: tests/tcg/multiarch/test-mmap.c:374:
+^Ifprintf (stdout, " passed\n");$

ERROR: space prohibited between function name and open parenthesis '('
#161: FILE: tests/tcg/multiarch/test-mmap.c:374:
+	fprintf (stdout, " passed\n");

ERROR: code indent should never use tabs
#170: FILE: tests/tcg/multiarch/test-mmap.c:387:
+^Ifprintf (stdout, "%s addr=%p", __func__, (void *)addr);$

ERROR: space prohibited between function name and open parenthesis '('
#170: FILE: tests/tcg/multiarch/test-mmap.c:387:
+	fprintf (stdout, "%s addr=%p", __func__, (void *)addr);

ERROR: code indent should never use tabs
#179: FILE: tests/tcg/multiarch/test-mmap.c:429:
+^Ifprintf (stdout, " passed\n");$

ERROR: space prohibited between function name and open parenthesis '('
#179: FILE: tests/tcg/multiarch/test-mmap.c:429:
+	fprintf (stdout, " passed\n");

total: 38 errors, 0 warnings, 146 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 16/46: tests/tcg: move i386 specific tests into subdir...
Checking PATCH 17/46: docker: Add fedora-i386-cross image...
Checking PATCH 18/46: tests/tcg: enable building for i386...
Checking PATCH 19/46: tests/tcg/i386: Build fix for hello-i386...
ERROR: externs should be avoided in .c files
#21: FILE: tests/tcg/i386/hello-i386.c:23:
+void _start(void);

total: 1 errors, 0 warnings, 7 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 20/46: tests/tcg/i386: fix test-i386...
Checking PATCH 21/46: tests/tcg/i386: fix test-i386-fprem...
Checking PATCH 22/46: tests/tcg/i386: disable i386 version of test-i386-ssse...
Checking PATCH 23/46: tests/tcg/x86_64: add Makefile.target...
Checking PATCH 24/46: tests/tcg/i386/test-i386: use modern vector_size attributes...
Checking PATCH 25/46: tests/tcg/i386/test-i386: fix printf format...
Checking PATCH 26/46: tests/tcg: move ARM specific tests into subdir...
Checking PATCH 27/46: tests/tcg/arm: fix up test-arm-iwmmxt test...
Checking PATCH 28/46: tests/tcg/aarch64: add Makefile.target...
Checking PATCH 29/46: tests/tcg/aarch64: add fcvt test cases for AArch64...
ERROR: space prohibited before open square bracket '['
#281: FILE: tests/tcg/aarch64/fcvt.c:244:
+        : /* no output */ : [flags] "n" (1 << 26) : "x1" );

ERROR: space prohibited before that close parenthesis ')'
#281: FILE: tests/tcg/aarch64/fcvt.c:244:
+        : /* no output */ : [flags] "n" (1 << 26) : "x1" );

total: 2 errors, 0 warnings, 1587 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 30/46: tests/tcg: move MIPS specific tests into subdir...
Checking PATCH 31/46: tests/tcg: enable building for MIPS...
Checking PATCH 32/46: tests/tcg/mips: include common mips hello-mips...
Checking PATCH 33/46: tests/tcg: enable building for s390x...
Checking PATCH 34/46: tests/tcg: enable building for ppc64...
Checking PATCH 35/46: tests/tcg: enable building for Alpha...
Checking PATCH 36/46: tests/tcg/alpha: add Alpha specific tests...
Checking PATCH 37/46: tests/tcg/alpha: fix warnings about write()...
ERROR: externs should be avoided in .c files
#20: FILE: tests/tcg/alpha/hello-alpha.c:1:
+void write(int, char*, int);

ERROR: externs should be avoided in .c files
#30: FILE: tests/tcg/alpha/test-cond.c:1:
+void write(int, char*, int);

ERROR: externs should be avoided in .c files
#39: FILE: tests/tcg/alpha/test-ovf.c:1:
+void write(int, char*, int);

total: 3 errors, 0 warnings, 14 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 38/46: tests/tcg: enable building for HPPA...
Checking PATCH 39/46: tests/tcg: enable building for m68k...
Checking PATCH 40/46: tests/tcg: enable building for sh4...
Checking PATCH 41/46: tests/tcg: enable building for sparc64...
Checking PATCH 42/46: tests/tcg: enable building for mips64...
Checking PATCH 43/46: tests/tcg/Makefile: update to be called from Makefile.target...
Checking PATCH 44/46: Makefile.target: add (clean-)guest-tests targets...
Checking PATCH 45/46: tests/Makefile.include: add [build|clean|check]-tcg targets...
Checking PATCH 46/46: tests/tcg: override runners for broken tests (!UPSTREAM)...
=== OUTPUT END ===

Test command exited with code: 1


---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Philippe Mathieu-Daudé April 25, 2018, 1:25 a.m. UTC | #2
> This is starting to shape up pretty nicely. I was able to add a whole

> bunch of additional architectures thanks to cross compilers in Debian

> Sid which are there to support the Debian "ports". These may not be

> around for ever, most "ports" are on the way out, but they will be the

> last thing to drop out of the Sid repo. Maybe when Debian stops

> caring (and no other distro does) maybe we should to?


I *think* working with Sid is not recommended as very unstable and not
reproducible. A reproducible way is to use the Debian Snapshot Archive
(http://snapshot.debian.org/) eventually using package specific version
and holding packages at this version.

I found an example in the following post:
https://blog.sleeplessbeastie.eu/2017/07/17/how-to-install-packages-using-repository-snapshot/

(I Cc'ed Debian experts who might have a better idea).


For stable releases, this shouldn't be a problem since End of Life
Debian versions stay on archive.debian.org; as for Docker images:

https://hub.docker.com/r/debian/eol/

> However compiling big-endian targets continues to be a massive pain as

> even if compilers support switching endianess with flags you are

> usually let down by a partial set of headers or the linker not being

> able to link against wrong-endian crt.o or libgcc files. Ultimately


¯\_(ツ)_/¯ https://bugs.launchpad.net/gcc-arm-embedded/+bug/1718206

> any guests that are not supported by any distro are probably going to

> be stuck with bare metal or hand crafted tests like in

> tests/tcg/alpha.

> 

> The final patch (tests/tcg: override runners for broken tests)

> suppresses a bunch of tests that fail on different guest setups. This

> was to allow me to test "make check-tcg" could make it all the way

> through. I'm sure some of them are bugs that need fixing so it would

> be cool if maintainers could look through and see if there are any

> easy wins.

> 

> Major Changes:

>   - check-tcg now runs the tests (c.f build-tcg/clean-tcg)

>   - clean use of quiet-command for CROSS-BUILD/RUN-TESTS and TEST

>   - bunch of additional targets (alpha, hppa, m68k, sh4, sparc64, mips64)

>   - review comments and tags

>   - dropped fp-test and additional aarch64 tests for now

> 

> As usual detailed notes are bellow the --- in the commit messages.

> 

> Currently un-reviewed:

> 

> 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 0014/tests tcg multiarch enable additional linux test .patch needs review

> patch 0015/tests tcg multiarch move most output to stdout.patch needs review

> patch 0017/docker Add fedora i386 cross image.patch needs review

> patch 0018/tests tcg enable building for i386.patch needs review

> patch 0021/tests tcg i386 fix test i386 fprem.patch needs review

> patch 0022/tests tcg i386 disable i386 version of test i386 .patch needs review

> patch 0023/tests tcg x86_64 add Makefile.target.patch needs review

> patch 0025/tests tcg i386 test i386 fix printf format.patch needs review

> patch 0027/tests tcg arm fix up test arm iwmmxt test.patch needs review

> patch 0028/tests tcg aarch64 add Makefile.target.patch needs review

> patch 0029/tests tcg aarch64 add fcvt test cases for AArch64.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 enable building for Alpha.patch needs review

> patch 0036/tests tcg alpha add Alpha specific tests.patch needs review

> patch 0037/tests tcg alpha fix warnings about write.patch needs review

> patch 0038/tests tcg enable building for HPPA.patch needs review

> patch 0039/tests tcg enable building for m68k.patch needs review

> patch 0040/tests tcg enable building for sh4.patch needs review

> patch 0041/tests tcg enable building for sparc64.patch needs review

> patch 0042/tests tcg enable building for mips64.patch needs review

> patch 0043/tests tcg Makefile update to be called from Makef.patch needs review

> patch 0044/Makefile.target add clean guest tests targets.patch needs review

> patch 0046/tests tcg override runners for broken tests UPSTR.patch needs review

> 

> 

> Alex Bennée (41):

>   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/multiarch: move most output to stdout

>   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: 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: enable building for Alpha

>   tests/tcg/alpha: add Alpha specific tests

>   tests/tcg/alpha: fix warnings about write()

>   tests/tcg: enable building for HPPA

>   tests/tcg: enable building for m68k

>   tests/tcg: enable building for sh4

>   tests/tcg: enable building for sparc64

>   tests/tcg: enable building for mips64

>   tests/tcg/Makefile: update to be called from Makefile.target

>   Makefile.target: add (clean-)guest-tests targets

>   tests/Makefile.include: add [build|clean|check]-tcg targets

>   tests/tcg: override runners for broken tests (!UPSTREAM)

> 

> 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                                     |  136 +-

>  scripts/create_config                         |    2 +-

>  tests/Makefile.include                        |   28 +-

>  tests/docker/Makefile.include                 |   16 +-

>  tests/docker/docker.py                        |   49 +

>  .../dockerfiles/debian-alpha-cross.docker     |   12 +

>  .../dockerfiles/debian-cross-build.docker     |   36 +

>  .../dockerfiles/debian-hppa-cross.docker      |   12 +

>  .../dockerfiles/debian-m68k-cross.docker      |   12 +

>  .../dockerfiles/debian-mips64-cross.docker    |   12 +

>  .../dockerfiles/debian-sh4-cross.docker       |   12 +

>  tests/docker/dockerfiles/debian-sid.docker    |   23 +

>  .../dockerfiles/debian-sparc64-cross.docker   |   12 +

>  .../dockerfiles/fedora-i386-cross.docker      |   14 +

>  tests/tcg/Makefile                            |  193 +--

>  tests/tcg/Makefile.include                    |   86 ++

>  tests/tcg/README                              |   69 +-

>  tests/tcg/aarch64/Makefile.target             |   13 +

>  tests/tcg/aarch64/fcvt.c                      |  260 ++++

>  tests/tcg/aarch64/fcvt.out                    | 1305 +++++++++++++++++

>  tests/tcg/alpha/Makefile                      |   35 -

>  tests/tcg/alpha/Makefile.include              |    2 +

>  tests/tcg/alpha/Makefile.target               |   36 +

>  tests/tcg/alpha/{crt.s => crt.S}              |    0

>  tests/tcg/alpha/hello-alpha.c                 |    2 +

>  tests/tcg/alpha/test-cond.c                   |    1 +

>  tests/tcg/alpha/test-ovf.c                    |    2 +

>  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/hppa/Makefile.include               |    2 +

>  tests/tcg/hppa/Makefile.target                |   10 +

>  tests/tcg/i386/Makefile.include               |    9 +

>  tests/tcg/i386/Makefile.target                |   52 +

>  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/m68k/Makefile.include               |    2 +

>  tests/tcg/m68k/Makefile.target                |   11 +

>  tests/tcg/mips/Makefile.include               |   20 +

>  tests/tcg/mips/Makefile.target                |   29 +

>  tests/tcg/mips/README                         |    7 +

>  tests/tcg/{ => mips}/hello-mips.c             |    0

>  tests/tcg/multiarch/Makefile.target           |   29 +

>  tests/tcg/multiarch/README                    |    1 +

>  tests/tcg/{ => multiarch}/linux-test.c        |   93 +-

>  tests/tcg/{ => multiarch}/sha1.c              |    0

>  tests/tcg/{ => multiarch}/test-mmap.c         |   38 +-

>  tests/tcg/{ => multiarch}/testthread.c        |    0

>  tests/tcg/ppc64le/Makefile.include            |    2 +

>  tests/tcg/s390x/Makefile.include              |    2 +

>  tests/tcg/s390x/Makefile.target               |    6 +

>  tests/tcg/sh4/Makefile.include                |    4 +

>  tests/tcg/sh4/Makefile.target                 |    6 +

>  tests/tcg/sparc64/Makefile.include            |    2 +

>  tests/tcg/sparc64/Makefile.target             |    8 +

>  tests/tcg/test_path.c                         |  157 --

>  tests/tcg/x86_64/Makefile.target              |   15 +

>  70 files changed, 2495 insertions(+), 504 deletions(-)

>  create mode 100644 tests/docker/dockerfiles/debian-alpha-cross.docker

>  create mode 100644 tests/docker/dockerfiles/debian-cross-build.docker

>  create mode 100644 tests/docker/dockerfiles/debian-hppa-cross.docker

>  create mode 100644 tests/docker/dockerfiles/debian-m68k-cross.docker

>  create mode 100644 tests/docker/dockerfiles/debian-mips64-cross.docker

>  create mode 100644 tests/docker/dockerfiles/debian-sh4-cross.docker

>  create mode 100644 tests/docker/dockerfiles/debian-sid.docker

>  create mode 100644 tests/docker/dockerfiles/debian-sparc64-cross.docker

>  create mode 100644 tests/docker/dockerfiles/fedora-i386-cross.docker

>  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

>  delete mode 100644 tests/tcg/alpha/Makefile

>  create mode 100644 tests/tcg/alpha/Makefile.include

>  create mode 100644 tests/tcg/alpha/Makefile.target

>  rename tests/tcg/alpha/{crt.s => crt.S} (100%)

>  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/hppa/Makefile.include

>  create mode 100644 tests/tcg/hppa/Makefile.target

>  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/m68k/Makefile.include

>  create mode 100644 tests/tcg/m68k/Makefile.target

>  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 (87%)

>  rename tests/tcg/{ => multiarch}/sha1.c (100%)

>  rename tests/tcg/{ => multiarch}/test-mmap.c (94%)

>  rename tests/tcg/{ => multiarch}/testthread.c (100%)

>  create mode 100644 tests/tcg/ppc64le/Makefile.include

>  create mode 100644 tests/tcg/s390x/Makefile.include

>  create mode 100644 tests/tcg/s390x/Makefile.target

>  create mode 100644 tests/tcg/sh4/Makefile.include

>  create mode 100644 tests/tcg/sh4/Makefile.target

>  create mode 100644 tests/tcg/sparc64/Makefile.include

>  create mode 100644 tests/tcg/sparc64/Makefile.target

>  delete mode 100644 tests/tcg/test_path.c

>  create mode 100644 tests/tcg/x86_64/Makefile.target

>
Samuel Thibault April 25, 2018, 6:57 a.m. UTC | #3
Philippe Mathieu-Daudé, le mar. 24 avril 2018 22:25:18 -0300, a ecrit:
> > This is starting to shape up pretty nicely. I was able to add a whole

> > bunch of additional architectures thanks to cross compilers in Debian

> > Sid which are there to support the Debian "ports". These may not be

> > around for ever, most "ports" are on the way out, but they will be the

> > last thing to drop out of the Sid repo. Maybe when Debian stops

> > caring (and no other distro does) maybe we should to?

> 

> I *think* working with Sid is not recommended as very unstable and not

> reproducible. A reproducible way is to use the Debian Snapshot Archive

> (http://snapshot.debian.org/) eventually using package specific version

> and holding packages at this version.

> 

> I found an example in the following post:

> https://blog.sleeplessbeastie.eu/2017/07/17/how-to-install-packages-using-repository-snapshot/

> 

> (I Cc'ed Debian experts who might have a better idea).


That looks like the correct idea :)
(basically what we use to make "releases" of the hurd port, as sid
snapshots).

Samuel
Alex Bennée April 25, 2018, 8:39 a.m. UTC | #4
Samuel Thibault <samuel.thibault@gnu.org> writes:

> Philippe Mathieu-Daudé, le mar. 24 avril 2018 22:25:18 -0300, a ecrit:

>> > This is starting to shape up pretty nicely. I was able to add a whole

>> > bunch of additional architectures thanks to cross compilers in Debian

>> > Sid which are there to support the Debian "ports". These may not be

>> > around for ever, most "ports" are on the way out, but they will be the

>> > last thing to drop out of the Sid repo. Maybe when Debian stops

>> > caring (and no other distro does) maybe we should to?

>>

>> I *think* working with Sid is not recommended as very unstable and not

>> reproducible. A reproducible way is to use the Debian Snapshot Archive

>> (http://snapshot.debian.org/) eventually using package specific version

>> and holding packages at this version.

>>

>> I found an example in the following post:

>> https://blog.sleeplessbeastie.eu/2017/07/17/how-to-install-packages-using-repository-snapshot/

>>

>> (I Cc'ed Debian experts who might have a better idea).

>

> That looks like the correct idea :)

> (basically what we use to make "releases" of the hurd port, as sid

> snapshots).


So how would this work in docker. Should I take for example the
sid-20180312 tag and then just munge sources.list to the appropriate
snapshot url?

That said I'm relatively sanguine about the stability of the toolchain
in sid. It would be the last thing to bitrot as once the toolchain is
dead the distro dies with it so it is the last thing to die and the
first thing to fix.

--
Alex Bennée