Message ID | 20200918204759.225810-1-marcandre.lureau@redhat.com |
---|---|
Headers | show |
Series | Convert pc-bios Makefiles to meson | expand |
Patchew URL: https://patchew.org/QEMU/20200918204759.225810-1-marcandre.lureau@redhat.com/ Hi, This series failed the docker-quick@centos7 build test. Please find the testing commands and their output below. If you have Docker installed, you can probably reproduce it locally. === TEST SCRIPT BEGIN === #!/bin/bash make docker-image-centos7 V=1 NETWORK=1 time make docker-test-quick@centos7 SHOW_ENV=1 J=14 NETWORK=1 === TEST SCRIPT END === C linker for the host machine: cc ld.bfd 2.27-43 Host machine cpu family: x86_64 Host machine cpu: x86_64 ../src/meson.build:10: WARNING: Module unstable-keyval has no backwards or forwards compatibility and might not exist in future releases. Program sh found: YES Program python3 found: YES (/usr/bin/python3) Configuring ninjatool using configuration --- Compiling C object subprojects/optionrom/linuxboot.img.p/linuxboot.S.o Compiling C object subprojects/optionrom/kvmvapic.img.p/kvmvapic.S.o /tmp/qemu-test/src/subprojects/optionrom/code16gcc.h: Assembler messages: /tmp/qemu-test/src/subprojects/optionrom/code16gcc.h:1: Error: invalid character '(' in mnemonic /tmp/qemu-test/src/subprojects/optionrom/code16gcc.h:2: Error: unknown pseudo-op: `.code16gcc\n' /tmp/qemu-test/src/subprojects/optionrom/code16gcc.h:3: Error: junk at end of line, first unrecognized character is `)' make: *** [subprojects/optionrom/multiboot.img.p/multiboot.S.o] Error 1 make: *** Waiting for unfinished jobs.... /tmp/qemu-test/src/subprojects/optionrom/code16gcc.h: Assembler messages: /tmp/qemu-test/src/subprojects/optionrom/code16gcc.h:1: Error: invalid character '(' in mnemonic /tmp/qemu-test/src/subprojects/optionrom/code16gcc.h:2: Error: unknown pseudo-op: `.code16gcc\n' /tmp/qemu-test/src/subprojects/optionrom/code16gcc.h:3: Error: junk at end of line, first unrecognized character is `)' make: *** [subprojects/optionrom/linuxboot.img.p/linuxboot.S.o] Error 1 /tmp/qemu-test/src/subprojects/optionrom/code16gcc.h: Assembler messages: /tmp/qemu-test/src/subprojects/optionrom/code16gcc.h:1: Error: invalid character '(' in mnemonic /tmp/qemu-test/src/subprojects/optionrom/code16gcc.h:2: Error: unknown pseudo-op: `.code16gcc\n' /tmp/qemu-test/src/subprojects/optionrom/code16gcc.h:3: Error: junk at end of line, first unrecognized character is `)' make: *** [subprojects/optionrom/kvmvapic.img.p/kvmvapic.S.o] Error 1 Traceback (most recent call last): File "./tests/docker/docker.py", line 709, in <module> sys.exit(main()) --- raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['sudo', '-n', 'docker', 'run', '--rm', '--label', 'com.qemu.instance.uuid=3b7f1af7e75b48f3bb69d8fa30eb5a2e', '-u', '1001', '--security-opt', 'seccomp=unconfined', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=14', '-e', 'DEBUG=', '-e', 'SHOW_ENV=1', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/home/patchew/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', '/var/tmp/patchew-tester-tmp-4a1odio7/src/docker-src.2020-09-18-19.19.48.23563:/var/tmp/qemu:z,ro', 'qemu/centos7', '/var/tmp/qemu/run', 'test-quick']' returned non-zero exit status 2. filter=--filter=label=com.qemu.instance.uuid=3b7f1af7e75b48f3bb69d8fa30eb5a2e make[1]: *** [docker-run] Error 1 make[1]: Leaving directory `/var/tmp/patchew-tester-tmp-4a1odio7/src' make: *** [docker-run-test-quick@centos7] Error 2 real 3m3.001s user 0m18.547s The full log is available at http://patchew.org/logs/20200918204759.225810-1-marcandre.lureau@redhat.com/testing.docker-quick@centos7/?type=message. --- Email generated automatically by Patchew [https://patchew.org/]. Please send your feedback to patchew-devel@redhat.com
On 18/09/20 22:47, marcandre.lureau@redhat.com wrote: > From: Marc-André Lureau <marcandre.lureau@redhat.com> > > Hi, > > Here is a series of patches to convert the remaining Makefile in > pc-bios/ to meson. I have done various tests to check that the > resulting binaries are working as expected, but I didn't cover it > all, and I am not sure the test su= ite covers them all either. I don't know, the way pc-bios/ works seems just wrong to me. pc-bios should IMO be its own build system with support for docker-based cross compilers similar to tests/tcg. In fact one thing I was considering before falling in love with Meson :) was to write a simple meta-build-system for all of QEMU-owned ROMs, submodules such as SLOF and tests/tcg. I never even got to the whiteboard phase, but if this were done, we could just build all the firmwares as a Meson 0.56 "external project"[1]. Paolo [1] https://github.com/mesonbuild/meson/commit/master#diff-3a49da052fafbb502673f20d188644e1
Hi On Sat, Sep 19, 2020 at 6:59 PM Paolo Bonzini <pbonzini@redhat.com> wrote: > On 18/09/20 22:47, marcandre.lureau@redhat.com wrote: > > From: Marc-André Lureau <marcandre.lureau@redhat.com> > > > > Hi, > > > > Here is a series of patches to convert the remaining Makefile in > > pc-bios/ to meson. I have done various tests to check that the > > resulting binaries are working as expected, but I didn't cover it > > all, and I am not sure the test su= ite covers them all either. > > I don't know, the way pc-bios/ works seems just wrong to me. pc-bios > should IMO be its own build system with support for docker-based cross > compilers similar to tests/tcg. > It could still use meson to build the binaries though (like we did for qboot). It's more about setting up the environment for the build to compile for the target. > In fact one thing I was considering before falling in love with Meson :) > was to write a simple meta-build-system for all of QEMU-owned ROMs, > submodules such as SLOF and tests/tcg. I never even got to the > whiteboard phase, but if this were done, we could just build all the > firmwares as a Meson 0.56 "external project"[1]. > > Paolo > > [1] > https://github.com/mesonbuild/meson/commit/master#diff-3a49da052fafbb502673f20d188644e1 > I suppose you meant: https://github.com/mesonbuild/meson/commit/9d338200dacdf24c50259c309380200f8a53d5b5 fwiw, this version doesn't compile with gcc 4.8 (on centos6, as patchew found out). I couldn't find a workaround yet. :(
On 19/09/20 17:15, Marc-André Lureau wrote: > > > I don't know, the way pc-bios/ works seems just wrong to me. pc-bios > should IMO be its own build system with support for docker-based cross > compilers similar to tests/tcg. > > > It could still use meson to build the binaries though (like we did for > qboot). It's more about setting up the environment for the build to > compile for the target. Yes, essentially it would set up the cross file. However, to some extent whether or not Meson is used would be of relative importance. Step 1 would probably be to find a place for the common docker infrastructure, moving the common parts of tests/docker and tests/tcg to scripts/docker and de-Make-izing them. Paolo
On Sat, 19 Sep 2020 at 15:59, Paolo Bonzini <pbonzini@redhat.com> wrote: > > I don't know, the way pc-bios/ works seems just wrong to me. pc-bios > should IMO be its own build system with support for docker-based cross > compilers similar to tests/tcg. Yes, I've always thought this :-) It borrows the host x86 compiler just because it kinda happens to work most of the time in the common cases. Now we have proper docker cross infrastructure available it would certainly be nice to use it consistently for building firmware. (It would also make it more palatable to have VDSOs for linux-user, which would also need to be built with a target C compiler.) -- PMM
From: Marc-André Lureau <marcandre.lureau@redhat.com> Hi, Here is a series of patches to convert the remaining Makefile in pc-bios/ to meson. I have done various tests to check that the resulting binaries are working as expected, but I didn't cover it all, and I am not sure the test su= ite covers them all either. Please review, Marc-Andr=C3=A9 Lureau (6): meson: convert pc-bios/s390-ccw optionrom: make kvmapic.S compile with clang meson: convert pc-bios/optionrom build-sys: remove no longer needed ROMS variable build-sys: remove recurse-* rules meson: replace pc-bios/Makefile Makefile | 16 +-- configure | 21 ---- pc-bios/Makefile | 19 ---- pc-bios/meson.build | 20 ++++ pc-bios/optionrom/Makefile | 73 -------------- pc-bios/optionrom/kvmvapic.S | 4 +- pc-bios/optionrom/meson.build | 73 ++++++++++++++ pc-bios/s390-ccw/Makefile | 62 ------------ pc-bios/s390-ccw/meson.build | 177 ++++++++++++++++++++++++++++++++++ pc-bios/s390-ccw/netboot.mak | 62 ------------ subprojects/optionrom | 1 + subprojects/s390-ccw | 1 + 12 files changed, 276 insertions(+), 253 deletions(-) delete mode 100644 pc-bios/Makefile delete mode 100644 pc-bios/optionrom/Makefile create mode 100644 pc-bios/optionrom/meson.build delete mode 100644 pc-bios/s390-ccw/Makefile create mode 100644 pc-bios/s390-ccw/meson.build delete mode 100644 pc-bios/s390-ccw/netboot.mak create mode 120000 subprojects/optionrom create mode 120000 subprojects/s390-ccw --=20 2.26.2