qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@linaro.org>
To: "Richard Henderson" <richard.henderson@linaro.org>,
	"Alex Bennée" <alex.bennee@linaro.org>
Cc: qemu-devel@nongnu.org, laurent@vivier.eu,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	"Thomas Huth" <thuth@redhat.com>,
	"Michael Tokarev" <mjt@tls.msk.ru>
Subject: Re: [PATCH v5 20/20] linux-user/s390x: Add vdso
Date: Thu, 7 Sep 2023 08:17:28 +0200	[thread overview]
Message-ID: <b0cc966c-44a6-6595-d7b3-a63e8c191942@linaro.org> (raw)
In-Reply-To: <34dc2a52-63aa-39a8-df56-88a381fa7671@linaro.org>

On 6/9/23 19:56, Richard Henderson wrote:
> On 9/4/23 08:00, Alex Bennée wrote:
>> Due to the b4 dropping the vdso.so in the patch this fails:
>>
>>    Program build-vdso.sh found: YES 
>> (/home/alex/lsrc/qemu.git/linux-user/build-vdso.sh)
>>    ../../linux-user/s390x/meson.build:24:0: ERROR: File vdso.so does 
>> not exist.
>>    A full log can be found at 
>> /home/alex/lsrc/qemu.git/builds/all/meson-logs/meson-log.txt
>>    FAILED: build.ninja
>>    /home/alex/lsrc/qemu.git/builds/all/pyvenv/bin/meson --internal 
>> regenerate /home/alex/lsrc/qemu.git /home/alex/lsrc/qemu.git/builds/all
>>    ninja: error: rebuilding 'build.ninja': subcommand failed
>>      BUILD   aarch64-softmmu guest-tests
>>    tests/tcg/aarch64-softmmu: -march=armv8.3-a detected
>>
>> which makes me think the dependencies are broken anyway because I have a
>> working s390x compiler:
>>
>>    ➜  cat tests/tcg/s390x-linux-user/config-target.mak
>>    # Automatically generated by configure - do not modify
>>    TARGET_NAME=s390x
>>    TARGET=s390x-linux-user
>>    EXTRA_CFLAGS=
>>    CC=/home/alex/lsrc/qemu.git/builds/all/pyvenv/bin/python3 -B 
>> /home/alex/lsrc/qemu.git/tests/docker/docker.py --engine docker cc 
>> --cc s390x-linux-gnu-gcc -i qemu/debian-s390x-cross -s 
>> /home/alex/lsrc/qemu.git --
>>    CCAS=/home/alex/lsrc/qemu.git/builds/all/pyvenv/bin/python3 -B 
>> /home/alex/lsrc/qemu.git/tests/docker/docker.py --engine docker cc 
>> --cc s390x-linux-gnu-gcc -i qemu/debian-s390x-cross -s 
>> /home/alex/lsrc/qemu.git --
>>    AR=/home/alex/lsrc/qemu.git/builds/all/pyvenv/bin/python3 -B 
>> /home/alex/lsrc/qemu.git/tests/docker/docker.py --engine docker cc 
>> --cc s390x-linux-gnu-ar -i qemu/debian-s390x-cross -s 
>> /home/alex/lsrc/qemu.git --
>>    AS=/home/alex/lsrc/qemu.git/builds/all/pyvenv/bin/python3 -B 
>> /home/alex/lsrc/qemu.git/tests/docker/docker.py --engine docker cc 
>> --cc s390x-linux-gnu-as -i qemu/debian-s390x-cross -s 
>> /home/alex/lsrc/qemu.git --
>>    LD=/home/alex/lsrc/qemu.git/builds/all/pyvenv/bin/python3 -B 
>> /home/alex/lsrc/qemu.git/tests/docker/docker.py --engine docker cc 
>> --cc s390x-linux-gnu-ld -i qemu/debian-s390x-cross -s 
>> /home/alex/lsrc/qemu.git --
>>    NM=/home/alex/lsrc/qemu.git/builds/all/pyvenv/bin/python3 -B 
>> /home/alex/lsrc/qemu.git/tests/docker/docker.py --engine docker cc 
>> --cc s390x-linux-gnu-nm -i qemu/debian-s390x-cross -s 
>> /home/alex/lsrc/qemu.git --
>>    OBJCOPY=/home/alex/lsrc/qemu.git/builds/all/pyvenv/bin/python3 -B 
>> /home/alex/lsrc/qemu.git/tests/docker/docker.py --engine docker cc 
>> --cc s390x-linux-gnu-objcopy -i qemu/debian-s390x-cross -s 
>> /home/alex/lsrc/qemu.git --
>>    RANLIB=/home/alex/lsrc/qemu.git/builds/all/pyvenv/bin/python3 -B 
>> /home/alex/lsrc/qemu.git/tests/docker/docker.py --engine docker cc 
>> --cc s390x-linux-gnu-ranlib -i qemu/debian-s390x-cross -s 
>> /home/alex/lsrc/qemu.git --
>>    STRIP=/home/alex/lsrc/qemu.git/builds/all/pyvenv/bin/python3 -B 
>> /home/alex/lsrc/qemu.git/tests/docker/docker.py --engine docker cc 
>> --cc s390x-linux-gnu-strip -i qemu/debian-s390x-cross -s 
>> /home/alex/lsrc/qemu.git --
>>    BUILD_STATIC=y
>>    QEMU=/home/alex/lsrc/qemu.git/builds/all/qemu-s390x
>>    HOST_GDB_SUPPORTS_ARCH=y
>>
>> We really need to express the dependency on
>> docker-image-debian-s390x-cross (when using containers) to ensure we can
>> build the vdso.so and not rely on the copy we have.
> 
> I think expressing the dependency is a mistake.
> 
> The major problem is network unreliability.  I installed a new vm to 
> build test this, and it took more than a dozen retrys to get all of the 
> docker images built.
> 
> What we do right now is determine if docker or podman is present and 
> works, and then *assume* we can make all of the cross-compilers work 
> later, and so register them as cross-compilers early.
> 
> I think the only moderately reliable thing is to determine what 
> containers are already present and working and use only those.  
> Developers will need to manually rebuild containers periodically and 
> then re-run configure to make those visible to the cross-build 
> machinery.  Not completely ideal, of course, but nothing else is either.

We discussed this 1 or 2 years ago. My suggestion was when we tag
a release, we also tag the gitlab docker images (with all the distro
packages installed from that tag). Then those working with the release
can pull the pre-installed image from the tag; since it won't need
newer package, no need for network access within the image.

During the latest development cycle, we can either use the latest
tagged image if sufficient, or we have to deal with the same issues
you mentioned (network stability, broken package deps from time to
time).


  reply	other threads:[~2023-09-07  6:18 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-29 22:02 [PATCH v5 00/20] linux-user: Implement VDSOs Richard Henderson
2023-08-29 22:02 ` [PATCH v5 01/20] tests/docker: Update docker-loongarch-cross toolchain Richard Henderson
2023-08-30  9:43   ` gaosong
2023-09-04 14:02   ` Alex Bennée
2023-09-04 23:08     ` Richard Henderson
2023-09-05  9:23   ` Alex Bennée
2023-08-29 22:02 ` [PATCH v5 02/20] linux-user: Introduce imgsrc_read, imgsrc_read_alloc Richard Henderson
2023-09-04 14:27   ` Alex Bennée
2023-08-29 22:02 ` [PATCH v5 03/20] linux-user: Tidy loader_exec Richard Henderson
2023-09-04 14:54   ` Alex Bennée
2023-08-29 22:02 ` [PATCH v5 04/20] linux-user: Do not clobber bprm_buf swapping ehdr Richard Henderson
2023-09-04 14:58   ` Alex Bennée
2023-08-29 22:02 ` [PATCH v5 05/20] linux-user: Use ImageSource in load_elf_image Richard Henderson
2023-08-29 22:02 ` [PATCH v5 06/20] linux-user: Use ImageSource in load_symbols Richard Henderson
2023-08-29 22:02 ` [PATCH v5 07/20] linux-user: Replace bprm->fd with bprm->src.fd Richard Henderson
2023-08-29 22:02 ` [PATCH v5 08/20] linux-user: Load vdso image if available Richard Henderson
2023-08-30 14:22   ` Philippe Mathieu-Daudé
2023-08-30 16:17     ` Richard Henderson
2023-08-30 20:56       ` Philippe Mathieu-Daudé
2023-08-30 22:08         ` Richard Henderson
2023-08-29 22:02 ` [PATCH v5 09/20] linux-user: Add gen-vdso tool Richard Henderson
2023-08-29 22:02 ` [PATCH v5 10/20] linux-user: Add build-vdso.sh tool Richard Henderson
2023-08-29 22:02 ` [PATCH v5 11/20] linux-user/i386: Add vdso Richard Henderson
2023-08-29 22:02 ` [PATCH v5 12/20] linux-user/x86_64: " Richard Henderson
2023-08-29 22:02 ` [PATCH v5 13/20] linux-user/aarch64: " Richard Henderson
2023-08-29 22:02 ` [PATCH v5 14/20] linux-user/arm: " Richard Henderson
2023-08-29 22:02 ` [PATCH v5 15/20] linux-user/hppa: " Richard Henderson
2023-08-29 22:02 ` [PATCH v5 16/20] linux-user/riscv: " Richard Henderson
2023-09-19  4:47   ` Alistair Francis
2023-08-29 22:02 ` [PATCH v5 17/20] linux-user/loongarch64: " Richard Henderson
2023-08-29 22:02 ` [PATCH v5 18/20] linux-user/ppc: " Richard Henderson
2023-08-29 22:02 ` [PATCH v5 19/20] linux-user/s390x: Rename __SIGNAL_FRAMESIZE to STACK_FRAME_OVERHEAD Richard Henderson
2023-08-30 14:14   ` Philippe Mathieu-Daudé
2023-08-29 22:02 ` [PATCH v5 20/20] linux-user/s390x: Add vdso Richard Henderson
2023-09-04 15:00   ` Alex Bennée
2023-09-06 17:56     ` Richard Henderson
2023-09-07  6:17       ` Philippe Mathieu-Daudé [this message]
2023-09-07  9:20       ` Alex Bennée
2023-08-30 14:52 ` [PATCH v5 00/20] linux-user: Implement VDSOs Helge Deller
2023-08-30 16:20   ` Richard Henderson
2023-08-31  7:57     ` Alex Bennée
2023-09-01 14:21       ` Helge Deller
2023-09-04 12:51         ` Alex Bennée

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b0cc966c-44a6-6595-d7b3-a63e8c191942@linaro.org \
    --to=philmd@linaro.org \
    --cc=alex.bennee@linaro.org \
    --cc=berrange@redhat.com \
    --cc=laurent@vivier.eu \
    --cc=mjt@tls.msk.ru \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).