[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v5 35/49] tests/tcg: enable building for Alpha
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [PATCH v5 35/49] tests/tcg: enable building for Alpha |
Date: |
Tue, 29 May 2018 13:51:26 +0100 |
User-agent: |
mu4e 1.1.0; emacs 26.1.50 |
Philippe Mathieu-Daudé <address@hidden> writes:
> (Cc'ing Samuel who replied in a previous thread)
>
> Hi Alex,
>
> On 05/25/2018 11:19 AM, Alex Bennée wrote:
>> We can't use our normal Debian based compilers as Alpha isn't an
>> officially supported architecture. However it is available as a port
>> and fortunately cross compilers for all these targets are included in
>> Debian Sid, the perpetual rolling/unstable/testing version of Debian.
>>
>> Signed-off-by: Alex Bennée <address@hidden>
>> Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
>> Tested-by: Philippe Mathieu-Daudé <address@hidden>
>
> These tags are only for the Alpha part, maybe I wasn't clear enough in
> my previous review:
> https://lists.gnu.org/archive/html/qemu-devel/2018-05/msg04443.html
>
>> ---
>> v5
>> - drop the unused debian-cross-build docker image
>> - add note to debian-sid docker image
>> - echo reference to notes on build failure
>> - include EXTRA_RUNS for mmap tests
>> ---
>> tests/docker/Makefile.include | 1 +
>> .../dockerfiles/debian-alpha-cross.docker | 12 +++++++
>> tests/docker/dockerfiles/debian-sid.docker | 32 +++++++++++++++++++
>> tests/tcg/alpha/Makefile.include | 2 ++
>> tests/tcg/alpha/Makefile.target | 6 ++++
>> 5 files changed, 53 insertions(+)
>> create mode 100644 tests/docker/dockerfiles/debian-alpha-cross.docker
>> create mode 100644 tests/docker/dockerfiles/debian-sid.docker
>> create mode 100644 tests/tcg/alpha/Makefile.include
>> create mode 100644 tests/tcg/alpha/Makefile.target
>>
>> diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
>> index b56386f49e..5dc49c6a54 100644
>> --- a/tests/docker/Makefile.include
>> +++ b/tests/docker/Makefile.include
>> @@ -62,6 +62,7 @@ docker-image-debian-ppc64el-cross: docker-image-debian9
>> docker-image-debian-s390x-cross: docker-image-debian9
>> docker-image-debian-win32-cross: docker-image-debian8-mxe
>> docker-image-debian-win64-cross: docker-image-debian8-mxe
>> +docker-image-debian-alpha-cross: docker-image-debian-sid
>> docker-image-travis: NOUSER=1
>>
>> # Expand all the pre-requistes for each docker image and test combination
>> diff --git a/tests/docker/dockerfiles/debian-alpha-cross.docker
>> b/tests/docker/dockerfiles/debian-alpha-cross.docker
>> new file mode 100644
>> index 0000000000..29a25d0dfd
>> --- /dev/null
>> +++ b/tests/docker/dockerfiles/debian-alpha-cross.docker
>> @@ -0,0 +1,12 @@
>> +#
>> +# Docker cross-compiler target
>> +#
>> +# This docker target builds on the debian sid base image which
>> +# contains cross compilers for Debian "ports" targets.
>> +#
>> +FROM qemu:debian-sid
>> +
>> +RUN DEBIAN_FRONTEND=noninteractive eatmydata \
>> + apt-get install -y --no-install-recommends \
>> + gcc-alpha-linux-gnu \
>> + libc6.1-dev-alpha-cross || { echo "Failed to build - see
>> debian-sid.docker notes"; exit 1; }
>> diff --git a/tests/docker/dockerfiles/debian-sid.docker
>> b/tests/docker/dockerfiles/debian-sid.docker
>> new file mode 100644
>> index 0000000000..9a3d168705
>> --- /dev/null
>> +++ b/tests/docker/dockerfiles/debian-sid.docker
>> @@ -0,0 +1,32 @@
>> +#
>> +# Debian Sid Base
>> +#
>> +# A number of our guests exist as ports only. We can either use the
>> +# ports repo or get everything from Sid. However Sid is a rolling
>> +# distro which may be broken at any particular time. If you are
>> +# unlucky and try and build your images while gcc is in the process of
>> +# being uploaded this can fail. Your only recourse is to try again in
>> +# a few hours when the repos have re-synced. Once built however you
>> +# won't be affected by repo changes unless the docker recipies are
>> +# updated and trigger a re-build.
>
> OK, the comment is explaining well.
>
>> +#
>> +
>> +FROM debian:sid-slim
>> +
>> +# Duplicate deb line as deb-src
>> +RUN cat /etc/apt/sources.list | sed "s/^deb\ /deb-src /" >>
>> /etc/apt/sources.list
>> +
>> +# Install common build utilities
>> +RUN apt update
>> +RUN DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata
>> +RUN DEBIAN_FRONTEND=noninteractive eatmydata \
>> + apt install -y --no-install-recommends \
>> + bison \
>> + build-essential \
>> + ca-certificates \
>> + flex \
>> + git \
>> + pkg-config \
>> + psmisc \
>> + python \
>> + texinfo || { echo "Failed to build - see debian-sid.docker notes";
>> exit 1; }
>
> Output is:
>
> I have a very low success rate at building Sid-based images.
> Recently trying your debian-powerpc-cross:
>
> [...]
> Need to get 21.8 MB of archives.
> After this operation, 72.0 MB of additional disk space will be used.
> Get:1 http://deb.debian.org/debian sid/main amd64
> binutils-powerpc-linux-gnu amd64 2.30-15 [2411 kB]
> Err:2 http://deb.debian.org/debian sid/main amd64
> gcc-7-powerpc-linux-gnu-base amd64 7.3.0-15cross1
> 404 Not Found
> Err:3 http://deb.debian.org/debian sid/main amd64
> cpp-7-powerpc-linux-gnu amd64 7.3.0-15cross1
> 404 Not Found
> Get:4 http://deb.debian.org/debian sid/main amd64 cpp-powerpc-linux-gnu
> amd64 4:7.3.0-3 [16.0 kB]
> Get:5 http://deb.debian.org/debian sid/main amd64 gcc-7-cross-base-ports
> all 7.3.0-15cross1 [182 kB]
> Get:6 http://deb.debian.org/debian sid/main amd64 gcc-8-cross-base-ports
> all 8-20180402-1cross2 [179 kB]
> Get:7 http://deb.debian.org/debian sid/main amd64 libc6-powerpc-cross
> all 2.27-3cross2 [1373 kB]
> [...]
> E: Failed to fetch
> http://deb.debian.org/debian/pool/main/g/gcc-7-cross-ports/gcc-7-powerpc-linux-gnu_7.3.0-15cross1_amd64.deb
> 404 Not Found
> E: Unable to fetch some archives, maybe run apt-get update or try with
> --fix-missing?
> Failed to build - see debian-sid.docker notes
> The command '/bin/sh -c DEBIAN_FRONTEND=noninteractive eatmydata
> apt-get install -y --no-install-recommends gcc-powerpc-linux-gnu
> libc6-dev-powerpc-cross || { echo "Failed to build - see
> debian-sid.docker notes"; exit 1; }' returned a non-zero code: 1
> Traceback (most recent call last):
> File "./tests/docker/docker.py", line 456, in <module>
> sys.exit(main())
> File "./tests/docker/docker.py", line 453, in main
> return args.cmdobj.run(args, argv)
> File "./tests/docker/docker.py", line 326, in run
> extra_files_cksum=cksum)
> File "./tests/docker/docker.py", line 209, in build_image
> quiet=quiet)
> File "./tests/docker/docker.py", line 147, in _do_check
> return subprocess.check_call(self._command + cmd, **kwargs)
> File "/usr/lib/python2.7/subprocess.py", line 190, in check_call
> raise CalledProcessError(retcode, cmd)
> subprocess.CalledProcessError: Command '['docker', 'build', '-t',
> 'qemu:debian-powerpc-cross', '-f',
> '/tmp/docker_buildQI1jpf/tmpf8x3A7.docker', '/tmp/docker_buildQI1jpf']'
> returned non-zero exit status 1
> make: *** [tests/docker/Makefile.include:39:
> docker-image-debian-powerpc-cross] Error 1
> ~/source/qemu ((0340bb063f...))$
>
> Due to the ugly output, I didn't notice the "see debian-sid.docker
> notes" at first.
What about running with NOCACHE=1, I suspect this is drift between when
your debian-sid image was created and the follow-up. Really we could do
with just forcing debian-sid to re-build whenever we build a sub-image.
>
> I'm not sure using apt repository snapshot resolve everything.
>
> Assuming I'm located in an area where Debian mirrors are very
> unreliable, and most of QEMU developers are in area with strong
> connectivity, I won't object more on this patch. My network issues
> shouldn't be a blocker for the community.
>
> I'll see if I can arrange Dockerfiles to optionally use snapshots.
>
> So finally, you are welcome to keep my R-b and T-b tags :)
>
> Regards,
>
> Phil.
>
>> diff --git a/tests/tcg/alpha/Makefile.include
>> b/tests/tcg/alpha/Makefile.include
>> new file mode 100644
>> index 0000000000..c7dc48eadb
>> --- /dev/null
>> +++ b/tests/tcg/alpha/Makefile.include
>> @@ -0,0 +1,2 @@
>> +DOCKER_IMAGE=debian-alpha-cross
>> +DOCKER_CROSS_COMPILER=alpha-linux-gnu-gcc
>> diff --git a/tests/tcg/alpha/Makefile.target
>> b/tests/tcg/alpha/Makefile.target
>> new file mode 100644
>> index 0000000000..bedf1b6444
>> --- /dev/null
>> +++ b/tests/tcg/alpha/Makefile.target
>> @@ -0,0 +1,6 @@
>> +# -*- Mode: makefile -*-
>> +#
>> +# Alpha specific tweaks
>> +
>> +# On Alpha Linux only supports 8k pages
>> +EXTRA_RUNS+=run-test-mmap-8192
>>
--
Alex Bennée
- [Qemu-devel] [PATCH v5 27/49] tests/tcg/arm: fix up test-arm-iwmmxt test, (continued)
- [Qemu-devel] [PATCH v5 30/49] tests/tcg: move MIPS specific tests into subdir, Alex Bennée, 2018/05/25
- [Qemu-devel] [PATCH v5 31/49] tests/tcg: enable building for MIPS, Alex Bennée, 2018/05/25
- [Qemu-devel] [PATCH v5 32/49] tests/tcg/mips: include common mips hello-mips, Alex Bennée, 2018/05/25
- [Qemu-devel] [PATCH v5 33/49] tests/tcg: enable building for s390x, Alex Bennée, 2018/05/25
- [Qemu-devel] [PATCH v5 34/49] tests/tcg: enable building for ppc64, Alex Bennée, 2018/05/25
- [Qemu-devel] [PATCH v5 35/49] tests/tcg: enable building for Alpha, Alex Bennée, 2018/05/25
- [Qemu-devel] [PATCH v5 37/49] tests/tcg: enable building for HPPA, Alex Bennée, 2018/05/25
- [Qemu-devel] [PATCH v5 36/49] tests/tcg/alpha: add Alpha specific tests, Alex Bennée, 2018/05/25
- [Qemu-devel] [PATCH v5 38/49] tests/tcg: enable building for m68k, Alex Bennée, 2018/05/25
- [Qemu-devel] [PATCH v5 39/49] tests/tcg: enable building for sh4, Alex Bennée, 2018/05/25
- [Qemu-devel] [PATCH v5 40/49] tests/tcg: enable building for sparc64, Alex Bennée, 2018/05/25
- [Qemu-devel] [PATCH v5 41/49] tests/tcg: enable building for mips64, Alex Bennée, 2018/05/25
- [Qemu-devel] [PATCH v5 42/49] tests/tcg: enable building for RISCV64, Alex Bennée, 2018/05/25
- [Qemu-devel] [PATCH v5 49/49] tests/tcg: add run, diff, and skip helper macros, Alex Bennée, 2018/05/25
- [Qemu-devel] [PATCH v5 46/49] Makefile.target: add (clean-/build-)guest-tests targets, Alex Bennée, 2018/05/25