Hi On Fri, Sep 15, 2023 at 9:10 PM Stefan Hajnoczi <[email protected]> wrote: > > On Fri, 15 Sept 2023 at 09:50, Peter Maydell <[email protected]> wrote: > > > > On Fri, 15 Sept 2023 at 10:54, Daniel P. Berrangé <[email protected]> > > wrote: > > > My summary, is that I'd personally be in favour of opening the door > > > to Rust code as a mandatory pre-requisite for QEMU, at the very least > > > for system emulators. Not because this particular series is compelling, > > > but because I think Rust could be more beneficial to QEMU over the long > > > term than we expect. In terms of consuming it though, if we're going > > > to replace existing QEMU functionality, then I think we need to bundle > > > the Rust code and natively integrate it into the build system, as we > > > have recently started doing with our python deps, to detach ourselves > > > from the limits of what distros ship. > > > > I'm not against this, but there is a fair amount of work here > > in figuring out how exactly to integrate Rust components > > into the build system, questions like what our minimum required > > rust version would be, liasing with downstream distros to > > check that what we're proposing isn't a nightmare for them > > to package, etc. > > Those details are similar to what librsvg2, libblkio, and other > libraries (like the sev crate in this patch series) have had to solve. > > libblkio uses meson as the build system and has C tests that cover the > C API. Cargo is still used to build the Rust code. It is possible to > integrate the two and I think QEMU could take that approach. It's a > little ugly to glue together the two build systems, but it has been > shown to work.
That's also what I did ~2y ago, when I added QAPI rust generator: https://patchew.org/QEMU/[email protected]/ But meson has learned to support rust better during that time, and there is some upcoming cargo support in 1.3 (https://github.com/mesonbuild/meson/pull/11856). (I don't know the details) -- Marc-André Lureau
