[PULL v3 00/39] Rust changes for QEMU 9.2 soft freeze

Paolo Bonzini posted 39 patches 2 weeks, 3 days ago
Only 1 patches received!
docs/about/build-platforms.rst                     |  12 +
meson.build                                        | 137 +++++---
include/hw/qdev-core.h                             |   4 +-
include/hw/qdev-properties.h                       |   4 +-
rust/wrapper.h                                     |  17 +
hw/core/qdev-properties.c                          |  26 +-
system/qdev-monitor.c                              |   2 +-
.gitattributes                                     |   2 +
.gitlab-ci.d/buildtest.yml                         |   2 +-
meson_options.txt                                  |   2 +
rust/{hw/char/pl011 => }/Cargo.lock                |   4 +
rust/Cargo.toml                                    |   7 +
rust/hw/char/Kconfig                               |   1 -
rust/hw/char/pl011/Cargo.toml                      |   3 -
rust/hw/char/pl011/src/device.rs                   | 162 +++++++---
rust/hw/char/pl011/src/device_class.rs             |  80 ++++-
rust/hw/char/pl011/src/lib.rs                      |   6 +-
rust/hw/char/pl011/src/memory_ops.rs               |  24 +-
rust/qemu-api-macros/Cargo.lock                    |  47 ---
rust/qemu-api-macros/Cargo.toml                    |   5 +-
rust/qemu-api-macros/meson.build                   |   2 +-
rust/qemu-api-macros/src/lib.rs                    | 103 ++++--
rust/qemu-api/Cargo.lock                           |   7 -
rust/qemu-api/Cargo.toml                           |  10 +-
rust/qemu-api/build.rs                             |   9 +
rust/qemu-api/meson.build                          |  44 ++-
rust/qemu-api/src/c_str.rs                         |  53 +++
rust/qemu-api/src/definitions.rs                   |  68 ++--
rust/qemu-api/src/device_class.rs                  | 114 ++-----
rust/qemu-api/src/lib.rs                           |  23 +-
rust/qemu-api/src/offset_of.rs                     | 161 +++++++++
rust/qemu-api/src/tests.rs                         |  49 ---
rust/qemu-api/src/vmstate.rs                       | 360 +++++++++++++++++++++
rust/qemu-api/src/zeroable.rs                      |  86 +++++
rust/qemu-api/tests/tests.rs                       |  79 +++++
scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml   |   1 -
scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml     |   1 -
scripts/meson-buildoptions.sh                      |   4 +
subprojects/bilge-impl-0.2-rs.wrap                 |   1 +
subprojects/packagefiles/bilge-impl-1.63.0.patch   |  45 +++
.../packagefiles/proc-macro2-1-rs/meson.build      |   4 +-
subprojects/packagefiles/syn-2-rs/meson.build      |   1 +
tests/docker/dockerfiles/ubuntu2204.docker         |   6 +-
tests/lcitool/mappings.yml                         |   4 +
tests/lcitool/refresh                              |  11 +-
45 files changed, 1379 insertions(+), 414 deletions(-)
rename rust/{hw/char/pl011 => }/Cargo.lock (98%)
create mode 100644 rust/Cargo.toml
delete mode 100644 rust/qemu-api-macros/Cargo.lock
delete mode 100644 rust/qemu-api/Cargo.lock
create mode 100644 rust/qemu-api/src/c_str.rs
create mode 100644 rust/qemu-api/src/offset_of.rs
delete mode 100644 rust/qemu-api/src/tests.rs
create mode 100644 rust/qemu-api/src/vmstate.rs
create mode 100644 rust/qemu-api/src/zeroable.rs
create mode 100644 rust/qemu-api/tests/tests.rs
create mode 100644 subprojects/packagefiles/bilge-impl-1.63.0.patch
[PULL v3 00/39] Rust changes for QEMU 9.2 soft freeze
Posted by Paolo Bonzini 2 weeks, 3 days ago
The following changes since commit 11b8920ed2093848f79f93d106afe8a69a61a523:

  Merge tag 'pull-request-2024-11-04' of https://gitlab.com/thuth/qemu into staging (2024-11-04 17:37:59 +0000)

are available in the Git repository at:

  https://gitlab.com/bonzini/qemu.git tags/for-upstream-rust

for you to fetch changes up to 951f71ad67bd474aba6925529daf45b747aac86e:

  dockerfiles: install bindgen from cargo on Ubuntu 22.04 (2024-11-06 17:12:17 +0100)

----------------------------------------------------------------
* rust: cleanups
* rust: integration tests
* rust/pl011: add support for migration
* rust/pl011: add TYPE_PL011_LUMINARY device
* rust: add support for older compilers and bindgen
----------------------------------------------------------------
v1->v2: wrap bindgen check with "if have_rust"
	drop ci enablement

v2->v3: fix formatting of pull request

Junjie Mao (1):
      rust: introduce alternative implementation of offset_of!

Manos Pitsidianakis (9):
      rust/wrapper.h: define memory_order enum
      Revert "rust: add PL011 device model"
      rust: add PL011 device model
      rust: add definitions for vmstate
      rust/pl011: add support for migration
      rust/pl011: move CLK_NAME static to function scope
      rust/pl011: add TYPE_PL011_LUMINARY device
      rust/pl011: remove commented out C code
      rust/pl011: Use correct masks for IBRD and FBRD

Paolo Bonzini (29):
      qdev: make properties array "const"
      meson: import rust module into a global variable
      meson: remove repeated search for rust_root_crate.sh
      meson: pass rustc_args when building all crates
      rust: do not always select X_PL011_RUST
      rust: do not use --no-size_t-is-usize
      rust: remove uses of #[no_mangle]
      rust: modernize link_section usage for ELF platforms
      rust: build integration test for the qemu_api crate
      rust: cleanup module_init!, use it from #[derive(Object)]
      rust: clean up define_property macro
      rust: make properties array immutable
      rust: provide safe wrapper for MaybeUninit::zeroed()
      rust: do not use TYPE_CHARDEV unnecessarily
      rust/pl011: fix default value for migrate-clock
      rust: patch bilge-impl to allow compilation with 1.63.0
      rust: fix cfgs of proc-macro2 for 1.63.0
      rust: use std::os::raw instead of core::ffi
      rust: introduce a c_str macro
      rust: silence unknown warnings for the sake of old compilers
      rust: synchronize dependencies between subprojects and Cargo.lock
      rust: create a cargo workspace
      rust: do not use MaybeUninit::zeroed()
      rust: clean up detection of the language
      rust: allow version 1.63.0 of rustc
      rust: do not use --generate-cstr
      rust: allow older version of bindgen
      rust: make rustfmt optional
      dockerfiles: install bindgen from cargo on Ubuntu 22.04

 docs/about/build-platforms.rst                     |  12 +
 meson.build                                        | 137 +++++---
 include/hw/qdev-core.h                             |   4 +-
 include/hw/qdev-properties.h                       |   4 +-
 rust/wrapper.h                                     |  17 +
 hw/core/qdev-properties.c                          |  26 +-
 system/qdev-monitor.c                              |   2 +-
 .gitattributes                                     |   2 +
 .gitlab-ci.d/buildtest.yml                         |   2 +-
 meson_options.txt                                  |   2 +
 rust/{hw/char/pl011 => }/Cargo.lock                |   4 +
 rust/Cargo.toml                                    |   7 +
 rust/hw/char/Kconfig                               |   1 -
 rust/hw/char/pl011/Cargo.toml                      |   3 -
 rust/hw/char/pl011/src/device.rs                   | 162 +++++++---
 rust/hw/char/pl011/src/device_class.rs             |  80 ++++-
 rust/hw/char/pl011/src/lib.rs                      |   6 +-
 rust/hw/char/pl011/src/memory_ops.rs               |  24 +-
 rust/qemu-api-macros/Cargo.lock                    |  47 ---
 rust/qemu-api-macros/Cargo.toml                    |   5 +-
 rust/qemu-api-macros/meson.build                   |   2 +-
 rust/qemu-api-macros/src/lib.rs                    | 103 ++++--
 rust/qemu-api/Cargo.lock                           |   7 -
 rust/qemu-api/Cargo.toml                           |  10 +-
 rust/qemu-api/build.rs                             |   9 +
 rust/qemu-api/meson.build                          |  44 ++-
 rust/qemu-api/src/c_str.rs                         |  53 +++
 rust/qemu-api/src/definitions.rs                   |  68 ++--
 rust/qemu-api/src/device_class.rs                  | 114 ++-----
 rust/qemu-api/src/lib.rs                           |  23 +-
 rust/qemu-api/src/offset_of.rs                     | 161 +++++++++
 rust/qemu-api/src/tests.rs                         |  49 ---
 rust/qemu-api/src/vmstate.rs                       | 360 +++++++++++++++++++++
 rust/qemu-api/src/zeroable.rs                      |  86 +++++
 rust/qemu-api/tests/tests.rs                       |  79 +++++
 scripts/ci/setup/ubuntu/ubuntu-2204-aarch64.yaml   |   1 -
 scripts/ci/setup/ubuntu/ubuntu-2204-s390x.yaml     |   1 -
 scripts/meson-buildoptions.sh                      |   4 +
 subprojects/bilge-impl-0.2-rs.wrap                 |   1 +
 subprojects/packagefiles/bilge-impl-1.63.0.patch   |  45 +++
 .../packagefiles/proc-macro2-1-rs/meson.build      |   4 +-
 subprojects/packagefiles/syn-2-rs/meson.build      |   1 +
 tests/docker/dockerfiles/ubuntu2204.docker         |   6 +-
 tests/lcitool/mappings.yml                         |   4 +
 tests/lcitool/refresh                              |  11 +-
 45 files changed, 1379 insertions(+), 414 deletions(-)
 rename rust/{hw/char/pl011 => }/Cargo.lock (98%)
 create mode 100644 rust/Cargo.toml
 delete mode 100644 rust/qemu-api-macros/Cargo.lock
 delete mode 100644 rust/qemu-api/Cargo.lock
 create mode 100644 rust/qemu-api/src/c_str.rs
 create mode 100644 rust/qemu-api/src/offset_of.rs
 delete mode 100644 rust/qemu-api/src/tests.rs
 create mode 100644 rust/qemu-api/src/vmstate.rs
 create mode 100644 rust/qemu-api/src/zeroable.rs
 create mode 100644 rust/qemu-api/tests/tests.rs
 create mode 100644 subprojects/packagefiles/bilge-impl-1.63.0.patch
-- 
2.47.0
Re: [PULL v3 00/39] Rust changes for QEMU 9.2 soft freeze
Posted by Peter Maydell 2 weeks, 2 days ago
On Wed, 6 Nov 2024 at 18:08, Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> The following changes since commit 11b8920ed2093848f79f93d106afe8a69a61a523:
>
>   Merge tag 'pull-request-2024-11-04' of https://gitlab.com/thuth/qemu into staging (2024-11-04 17:37:59 +0000)
>
> are available in the Git repository at:
>
>   https://gitlab.com/bonzini/qemu.git tags/for-upstream-rust
>
> for you to fetch changes up to 951f71ad67bd474aba6925529daf45b747aac86e:
>
>   dockerfiles: install bindgen from cargo on Ubuntu 22.04 (2024-11-06 17:12:17 +0100)
>
> ----------------------------------------------------------------
> * rust: cleanups
> * rust: integration tests
> * rust/pl011: add support for migration
> * rust/pl011: add TYPE_PL011_LUMINARY device
> * rust: add support for older compilers and bindgen
> ----------------------------------------------------------------
> v1->v2: wrap bindgen check with "if have_rust"
>         drop ci enablement
>
> v2->v3: fix formatting of pull request

The msys2-64bit job seems to be failing on the test-aio test:

https://gitlab.com/qemu-project/qemu/-/jobs/8293985646
https://gitlab.com/qemu-project/qemu/-/jobs/8289460211

| 50/127 /aio/timer/schedule -
ERROR:../tests/unit/test-aio.c:413:test_timer_schedule: assertion
failed: (aio_poll(ctx, true)) FAIL

but it passed on the third retry
https://gitlab.com/qemu-project/qemu/-/jobs/8294803952

Since it doesn't obviously look like there's anything
in this pullreq that would have caused that I have
assumed this to be a pre-existing intermittent.


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/9.2
for any user-visible changes.

-- PMM