On Mon, 14 Oct 2024 at 12:45, Peter Maydell <peter.mayd...@linaro.org> wrote:
>
> On Mon, 14 Oct 2024 at 12:01, Paolo Bonzini <pbonz...@redhat.com> wrote:
> >
> > If the defaults for --enable-rust ($rust in configure) and Meson's rust
> > option are out of sync, incremental builds will pick Meson's default.
> >
> > This happens because, on an incremental build, configure does not run
> > Meson, Make does instead.  Meson then gets the command line options
> > from either coredata.dat (which has everything cached in Python's pickle
> > format) or cmd_line.txt (slow path when Meson version is upgraded), but
> > neither knows about the rust option, and the meson_options.txt default
> > is used.
> >
> > This will cause have_rust to be true if rustc is available; and the build
> > to fail because configure did not put a RUST_TARGET_TRIPLE in 
> > config-host.mak.
> >
> > When in the Rust pull request I changed the $rust default from auto
> > to disabled, I should have made the same change to meson_options.txt;
> > do it now.
> >
> > Cc: Manos Pitsidianakis <manos.pitsidiana...@linaro.org>
> > Reported-by: Peter Maydell <peter.mayd...@linaro.org>
> > Reported-by: Daniel P. Berrangé <berra...@redhat.com>
> > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
>
> This fixes the issue I was seeing with my local
> incremental rebuild.
>
> Tested-by: Peter Maydell <peter.mayd...@linaro.org>

...but this change broke 'make vm-build-openbsd', because
meson-buildoptions.py fell over with an error from the JSON
decoder:

make: Entering directory '/home/peter.maydell/qemu-openbsd/build'
/home/peter.maydell/qemu-openbsd/build/pyvenv/bin/meson introspect
--buildoptions /home/peter.maydell/qemu-openbsd/meson.build |
/home/peter.maydell/qemu-openbsd/build/pyvenv/bin/python3 -B \
  scripts/meson-buildoptions.py >
/home/peter.maydell/qemu-openbsd/scripts/meson-buildoptions.sh.tmp &&
mv /home/peter.maydell/qemu-openbsd/scripts/meson-buildoptions.sh.tmp
/home/peter.maydell/qemu-openbsd/scripts/meson-buildoptions.sh
Trying to enter hw/core which has already been visited --> Skipping
Unable to evaluate subdir([]) in AstInterpreter --> Skipping
Traceback (most recent call last):
  File "/home/peter.maydell/qemu-openbsd/build/scripts/meson-buildoptions.py",
line 245, in <module>
    options = load_options(json.load(sys.stdin))
  File "/usr/lib/python3.10/json/__init__.py", line 293, in load
    return loads(fp.read(),
  File "/usr/lib/python3.10/json/__init__.py", line 346, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.10/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python3.10/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 2 column 1 (char 1)
make: *** No rule to make target
'/home/peter.maydell/qemu-openbsd/scripts/meson-buildoptions.sh',
needed by 'config-host.mak'.  Stop.
make: Leaving directory '/home/peter.maydell/qemu-openbsd/build'

-- PMM

Reply via email to