From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Cc: qemu-devel@nongnu.org, "Stefan Hajnoczi" <stefanha@redhat.com>,
"Mads Ynddal" <mads@ynddal.dk>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Thomas Huth" <thuth@redhat.com>,
"Markus Armbruster" <armbru@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Zhao Liu" <zhao1.liu@intel.com>,
"Gustavo Romero" <gustavo.romero@linaro.org>,
"Pierrick Bouvier" <pierrick.bouvier@linaro.org>
Subject: Re: [RFC PATCH v2 0/5] Implement ARM PL011 in Rust
Date: Wed, 12 Jun 2024 09:37:00 +0100 [thread overview]
Message-ID: <ZmleLH1dQvPqPBAY@redhat.com> (raw)
In-Reply-To: <rust-pl011-rfc-v2.git.manos.pitsidianakis@linaro.org>
On Tue, Jun 11, 2024 at 01:33:29PM +0300, Manos Pitsidianakis wrote:
>
> .gitignore | 2 +
> .gitlab-ci.d/buildtest.yml | 64 ++--
> MAINTAINERS | 13 +
> configure | 12 +
> hw/arm/virt.c | 4 +
> meson.build | 102 ++++++
> meson_options.txt | 4 +
> rust/meson.build | 93 ++++++
> rust/pl011/.cargo/config.toml | 2 +
> rust/pl011/.gitignore | 2 +
> rust/pl011/Cargo.lock | 120 +++++++
> rust/pl011/Cargo.toml | 66 ++++
> rust/pl011/README.md | 42 +++
> rust/pl011/build.rs | 44 +++
> rust/pl011/deny.toml | 57 ++++
> rust/pl011/meson.build | 7 +
> rust/pl011/rustfmt.toml | 1 +
> rust/pl011/src/definitions.rs | 95 ++++++
> rust/pl011/src/device.rs | 531 ++++++++++++++++++++++++++++++
> rust/pl011/src/device_class.rs | 95 ++++++
> rust/pl011/src/generated.rs | 5 +
> rust/pl011/src/lib.rs | 581 +++++++++++++++++++++++++++++++++
> rust/pl011/src/memory_ops.rs | 38 +++
> rust/rustfmt.toml | 7 +
> rust/wrapper.h | 39 +++
> scripts/cargo_wrapper.py | 221 +++++++++++++
> scripts/meson-buildoptions.sh | 6 +
Given the priority of getting the build system correct, what's missing
here is updates/integration into our standard GitLab CI pipeline. If
that can be shown to be working, that'll give alot more confidence in
the overall solution.
Ideally this should not require anything more than updating the docker
container definitions to add in the rust toolchain, plus the appropriate
std library build for the given target - we cross compiler for every
arch we officially care about.
Most of our dockerfiles these days are managed by lcitool, and it has
nearly sufficient support for cross compiling with the rust std library.
So to start with, this series should modify tests/lcitool/projects/qemu.yml
to add
- rust
- rust-std
to the package list, and run 'make lcitool-refresh' to re-create the
dockerfiles - see the docs/devel/testing.rst for more info about
lcitool if needed.
Assuming these 2 rust packages are in the container, I would then
expect QEMU to just "do the right thing" when building this rust
code. If it does not, then that's a sign of gaps that need closing.
Getting rid of the need to use --rust-target-triple will be the
immediate gap that needs fixing, as CI just passes --cross-prefix
for cross-builds and expects everything to be set from that.
The main gap we have is that for Windows I need to update lcitool
to pull in the mingw std lib target for rust, which I something I
missed when adding rust cross compiler support.
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
next prev parent reply other threads:[~2024-06-12 8:38 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-11 10:33 [RFC PATCH v2 0/5] Implement ARM PL011 in Rust Manos Pitsidianakis
2024-06-11 10:33 ` [RFC PATCH v2 1/5] build-sys: Add rust feature option Manos Pitsidianakis
2024-06-19 4:44 ` Richard Henderson
2024-06-19 16:52 ` Richard Henderson
2024-06-19 17:32 ` Manos Pitsidianakis
2024-06-11 10:33 ` [RFC PATCH v2 2/5] rust: add bindgen step as a meson dependency Manos Pitsidianakis
2024-06-17 21:01 ` Paolo Bonzini
2024-06-11 10:33 ` [RFC PATCH v2 3/5] rust: add PL011 device model Manos Pitsidianakis
2024-06-12 12:29 ` Paolo Bonzini
2024-06-12 14:14 ` Manos Pitsidianakis
2024-06-12 15:20 ` Paolo Bonzini
2024-06-12 16:06 ` Daniel P. Berrangé
2024-06-12 20:57 ` Manos Pitsidianakis
2024-06-12 21:27 ` Paolo Bonzini
2024-06-13 5:09 ` Manos Pitsidianakis
2024-06-13 7:13 ` Daniel P. Berrangé
2024-06-13 7:56 ` Paolo Bonzini
2024-06-13 8:49 ` Manos Pitsidianakis
2024-06-13 9:16 ` Daniel P. Berrangé
2024-06-13 20:57 ` Paolo Bonzini
2024-06-14 6:38 ` Manos Pitsidianakis
2024-06-14 17:50 ` Paolo Bonzini
2024-06-17 8:45 ` Manos Pitsidianakis
2024-06-17 11:32 ` Paolo Bonzini
2024-06-17 13:54 ` Manos Pitsidianakis
2024-06-17 14:32 ` Paolo Bonzini
2024-06-17 21:04 ` Manos Pitsidianakis
2024-06-17 23:33 ` Pierrick Bouvier
2024-06-18 6:00 ` Paolo Bonzini
2024-06-18 6:00 ` Paolo Bonzini
2024-06-17 23:18 ` Pierrick Bouvier
2024-06-18 9:13 ` Daniel P. Berrangé
2024-06-18 9:29 ` Paolo Bonzini
2024-06-18 9:49 ` Peter Maydell
2024-06-13 16:20 ` Zhao Liu
2024-06-13 17:56 ` Paolo Bonzini
2024-06-13 8:30 ` Zhao Liu
2024-06-13 8:41 ` Manos Pitsidianakis
2024-06-13 8:53 ` Daniel P. Berrangé
2024-06-13 8:59 ` Manos Pitsidianakis
2024-06-13 9:20 ` Daniel P. Berrangé
2024-06-19 5:34 ` Richard Henderson
2024-06-19 16:43 ` Paolo Bonzini
2024-06-19 16:54 ` Daniel P. Berrangé
2024-06-19 17:23 ` Paolo Bonzini
2024-07-11 4:21 ` Zhao Liu
2024-07-11 5:35 ` Manos Pitsidianakis
2024-06-11 10:33 ` [RFC PATCH v2 4/5] DO NOT MERGE: add rustdoc build for gitlab pages Manos Pitsidianakis
2024-06-11 10:33 ` [RFC PATCH v2 5/5] DO NOT MERGE: replace TYPE_PL011 with x-pl011-rust in arm virt machine Manos Pitsidianakis
2024-06-12 8:37 ` Daniel P. Berrangé [this message]
2024-06-13 5:13 ` [RFC PATCH v2 0/5] Implement ARM PL011 in Rust Manos Pitsidianakis
2024-06-13 7:56 ` Daniel P. Berrangé
2024-06-19 3:31 ` Richard Henderson
2024-06-19 17:36 ` Manos Pitsidianakis
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=ZmleLH1dQvPqPBAY@redhat.com \
--to=berrange@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=armbru@redhat.com \
--cc=gustavo.romero@linaro.org \
--cc=mads@ynddal.dk \
--cc=manos.pitsidianakis@linaro.org \
--cc=marcandre.lureau@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=pierrick.bouvier@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
--cc=thuth@redhat.com \
--cc=zhao1.liu@intel.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).