Skip to content

Tags

Tags give the ability to mark specific points in history as being important
  • v9.1.1

    v9.1.1 release
    
  • v9.0.3

    v9.0.3 release
    
  • v8.2.7

    v8.2.7 release
    
  • v7.2.14

    v7.2.14 release
    
  • sent/20240814-rust-pl011-v7-v10

    Add Rust build support, ARM PL011 device impl
    
    WARNING: This series contains a patch with blob diffs and thus problems
    may arise with your patch workflow. The revision is available at
    https://gitlab.com/epilys/qemu/-/tree/rust-v10 for you to fetch.
    
    rust-v10 head: 29f226178b5af97612cc8d1c8401959c6f41f027
    
    Hello everyone,
    
    This series adds:
    
    - build system support for the Rust compiler
    - a small Rust library, qemu-api, which includes bindings to QEMU's C
      interface generated with bindgen, and qemu-api-macros, a procedural
      macro library.
    - a proof of concept ARM PL011 device implementation in Rust, chosen for
      its low complexity. The device is used in the arm virt machine if qemu
      is compiled with rust enabled (./configure --enable-rust [...])
    
    To: qemu-devel@nongnu.org
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
    Cc: Daniel P. Berrangé <berrange@redhat.com>
    Cc: Thomas Huth <thuth@redhat.com>
    Cc: Philippe Mathieu-Daudé <philmd@linaro.org>
    Cc: Pierrick Bouvier <pierrick.bouvier@linaro.org>
    Cc: Richard Henderson <richard.henderson@linaro.org>
    Cc: Gustavo Romero <gustavo.romero@linaro.org>
    Cc: Alex Bennée <alex.bennee@linaro.org>
    Cc: Peter Maydell <peter.maydell@linaro.org>
    Cc: Junjie Mao <junjie.mao@intel.com>
    Cc: Zhao Liu <zhao1.liu@intel.com>
    Cc: John Snow <jsnow@redhat.com>
    Cc: Cleber Rosa <crosa@redhat.com>
    Cc: Beraldo Leal <bleal@redhat.com>
    Cc: Wainer dos Santos Moschetta <wainersm@redhat.com>
    Cc: qemu-arm@nongnu.org
    Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
    ---
    Changes in v10:
    - Removed unnecessary meson version check (thanks Alex)
    - Added warning in `configure` when Rust is not disabled about what to
      do if bindgen does not detect the correct libclang and fails to find
      certain system header files.
    - Disabled rust qemu allocator by default
    - Added changes by Paolo to detect the correct rust target for cross
      compilation in `configure` script.
    - Made PL011State::init fn unsafe (Paolo)
    - Link to v9: https://lore.kernel.org/r/20240827-rust-pl011-v9-0-e90b9c28f861@linaro.org
    
    Changes in v9:
    - Addressed v8 review comment: removed rustfmt.toml symlink (Junjie Mao)
    - Addressed v8 review comment: removed unused cstr files (Junjie Mao)
    - Addressed v8 review comment: added HAVE_GLIB_WITH_ALIGNED_ALLOC config
      host def to check whether glib's aligned alloc functions are available (Junjie Mao)
    - qemu_api: Changed default alignment condition in allocator (alignment
      is always nonzero)
    - qemu_api: Enabled allocator by default in builds
    - pl011: fixed invalid cast of byte buffer to u32 in pl011_receive()
      leading to misaligned read
    
    - Link to v8: https://lore.kernel.org/r/20240823-rust-pl011-v8-0-b9f5746bdaf3@linaro.org
    
    Changes in v8:
    - Allow for compilation of more than one Rust-based component in Meson
      by compiling all Rust static libraries into one "root" library before
      linking it to each target emulation executable.
    - Added a qemu_api_macros procedural macro library.
    - (minor) Moved generated bindings.rs to qemu_api crate using meson's
      structured_source() instead of compiling it as a standalone crate
      which was unnecessary.
    - (minor) Removed unnecessary rustc optimization/debug flags (should be handled
      by meson instead).
    - (minor) Moved build scripts under scripts/rust/
    - (minor) Fixed license issues
    
    Previous version was: <20240815-rust-pl011-v7-0-975135e98831@linaro.org>
    
    https://lore.kernel.org/qemu-devel/20240815-rust-pl011-v7-0-975135e98831@linaro.org/
    
    Outstanding issues that are not blocking for merge are:
    
    - Cross-compilation for aarch64 is not possible out-of-the-box because of this bug:
      <https://github.com/rust-lang/rust/issues/125619> in llvm which when
      fixed, must be ported to upstream rust's llvm fork. Since the problem
      is an extraneous symbol we could strip it with objcopy -N|--strip-symbol
      Fix is in upstream llvm, we're awaiting for rust upstream to pick it up.
    
    ---
    Manos Pitsidianakis (7):
          build-sys: Add rust feature option
          rust: add bindgen step as a meson dependency
          .gitattributes: add Rust diff and merge attributes
          meson.build: add HAVE_GLIB_WITH_ALIGNED_ALLOC flag
          rust: add crate to expose bindings and interfaces
          rust: add utility procedural macro crate
          rust: add PL011 device model
    
    Paolo Bonzini (2):
          Require meson version 1.5.0
          configure, meson: detect Rust toolchain
    
     MAINTAINERS                                        |  21 +
     configure                                          | 170 +++++-
     meson.build                                        |  98 +++-
     rust/wrapper.h                                     |  47 ++
     .gitattributes                                     |   3 +
     Kconfig                                            |   1 +
     Kconfig.host                                       |   3 +
     hw/arm/Kconfig                                     |  33 +-
     meson_options.txt                                  |   3 +
     python/scripts/vendor.py                           |   4 +-
     python/wheels/meson-1.2.3-py3-none-any.whl         | Bin 964928 -> 0 bytes
     python/wheels/meson-1.5.0-py3-none-any.whl         | Bin 0 -> 959846 bytes
     pythondeps.toml                                    |   2 +-
     rust/.gitignore                                    |   3 +
     rust/Kconfig                                       |   1 +
     rust/hw/Kconfig                                    |   2 +
     rust/hw/char/Kconfig                               |   3 +
     rust/hw/char/meson.build                           |   1 +
     rust/hw/char/pl011/.gitignore                      |   2 +
     rust/hw/char/pl011/Cargo.lock                      | 134 +++++
     rust/hw/char/pl011/Cargo.toml                      |  26 +
     rust/hw/char/pl011/README.md                       |  31 ++
     rust/hw/char/pl011/meson.build                     |  26 +
     rust/hw/char/pl011/src/definitions.rs              |  20 +
     rust/hw/char/pl011/src/device.rs                   | 600 +++++++++++++++++++++
     rust/hw/char/pl011/src/device_class.rs             |  63 +++
     rust/hw/char/pl011/src/lib.rs                      | 586 ++++++++++++++++++++
     rust/hw/char/pl011/src/memory_ops.rs               |  59 ++
     rust/hw/meson.build                                |   1 +
     rust/meson.build                                   |   4 +
     rust/qemu-api-macros/Cargo.lock                    |  47 ++
     rust/qemu-api-macros/Cargo.toml                    |  25 +
     rust/qemu-api-macros/README.md                     |   1 +
     rust/qemu-api-macros/meson.build                   |  25 +
     rust/qemu-api-macros/src/lib.rs                    |  43 ++
     rust/qemu-api/.gitignore                           |   2 +
     rust/qemu-api/Cargo.lock                           |   7 +
     rust/qemu-api/Cargo.toml                           |  26 +
     rust/qemu-api/README.md                            |  17 +
     rust/qemu-api/build.rs                             |  14 +
     rust/qemu-api/meson.build                          |  24 +
     rust/qemu-api/src/definitions.rs                   | 109 ++++
     rust/qemu-api/src/device_class.rs                  | 128 +++++
     rust/qemu-api/src/lib.rs                           | 154 ++++++
     rust/qemu-api/src/tests.rs                         |  49 ++
     rust/rustfmt.toml                                  |   7 +
     scripts/archive-source.sh                          |   6 +-
     scripts/make-release                               |   5 +-
     scripts/meson-buildoptions.sh                      |   3 +
     scripts/rust/rust_root_crate.sh                    |  13 +
     scripts/rust/rustc_args.py                         |  84 +++
     subprojects/.gitignore                             |  11 +
     subprojects/arbitrary-int-1-rs.wrap                |   7 +
     subprojects/bilge-0.2-rs.wrap                      |   7 +
     subprojects/bilge-impl-0.2-rs.wrap                 |   7 +
     subprojects/either-1-rs.wrap                       |   7 +
     subprojects/itertools-0.11-rs.wrap                 |   7 +
     .../packagefiles/arbitrary-int-1-rs/meson.build    |  19 +
     subprojects/packagefiles/bilge-0.2-rs/meson.build  |  29 +
     .../packagefiles/bilge-impl-0.2-rs/meson.build     |  45 ++
     subprojects/packagefiles/either-1-rs/meson.build   |  24 +
     .../packagefiles/itertools-0.11-rs/meson.build     |  30 ++
     .../packagefiles/proc-macro-error-1-rs/meson.build |  40 ++
     .../proc-macro-error-attr-1-rs/meson.build         |  32 ++
     .../packagefiles/proc-macro2-1-rs/meson.build      |  31 ++
     subprojects/packagefiles/quote-1-rs/meson.build    |  29 +
     subprojects/packagefiles/syn-2-rs/meson.build      |  40 ++
     .../packagefiles/unicode-ident-1-rs/meson.build    |  20 +
     subprojects/proc-macro-error-1-rs.wrap             |   7 +
     subprojects/proc-macro-error-attr-1-rs.wrap        |   7 +
     subprojects/proc-macro2-1-rs.wrap                  |   7 +
     subprojects/quote-1-rs.wrap                        |   7 +
     subprojects/syn-2-rs.wrap                          |   7 +
     subprojects/unicode-ident-1-rs.wrap                |   7 +
     subprojects/unicode-ident-1-rs/meson.build         |  20 +
     tests/lcitool/mappings.yml                         |   2 +-
     76 files changed, 3163 insertions(+), 22 deletions(-)
    ---
    base-commit: a733f37aef3b7d1d33bfe2716af88cdfd67ba64e
    change-id: 20240814-rust-pl011-v7
    
    Best regards,
  • v9.1.0

    v9.1.0 release
    
  • v9.1.0-rc4

    v9.1.0-rc4 release
    
  • sent/20240814-rust-pl011-v7-v9

    Add Rust build support, ARM PL011 device impl
    
    Hello everyone,
    
    This series adds:
    
    - build system support for the Rust compiler
    - a small Rust library, qemu-api, which includes bindings to QEMU's C
      interface generated with bindgen, and qemu-api-macros, a procedural
      macro library.
    - a proof of concept ARM PL011 device implementation in Rust, chosen for
      its low complexity. The device is used in the arm virt machine if qemu
      is compiled with rust enabled (./configure --enable-rust [...])
    
    To: qemu-devel@nongnu.org
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
    Cc: Daniel P. Berrangé <berrange@redhat.com>
    Cc: Thomas Huth <thuth@redhat.com>
    Cc: Philippe Mathieu-Daudé <philmd@linaro.org>
    Cc: Pierrick Bouvier <pierrick.bouvier@linaro.org>
    Cc: Richard Henderson <richard.henderson@linaro.org>
    Cc: Gustavo Romero <gustavo.romero@linaro.org>
    Cc: Alex Bennée <alex.bennee@linaro.org>
    Cc: Peter Maydell <peter.maydell@linaro.org>
    Cc: Junjie Mao <junjie.mao@intel.com>
    Cc: Zhao Liu <zhao1.liu@intel.com>
    Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
    ---
    Changes in v9:
    - Addressed v8 review comment: removed rustfmt.toml symlink (Junjie Mao)
    - Addressed v8 review comment: removed unused cstr files (Junjie Mao)
    - Addressed v8 review comment: added HAVE_GLIB_WITH_ALIGNED_ALLOC config
      host def to check whether glib's aligned alloc functions are available (Junjie Mao)
    - qemu_api: Changed default alignment condition in allocator (alignment
      is always nonzero)
    - qemu_api: Enabled allocator by default in builds
    - pl011: fixed invalid cast of byte buffer to u32 in pl011_receive()
      leading to misaligned read
    
    - Link to v8: https://lore.kernel.org/r/20240823-rust-pl011-v8-0-b9f5746bdaf3@linaro.org
    
    Changes in v8:
    - Allow for compilation of more than one Rust-based component in Meson
      by compiling all Rust static libraries into one "root" library before
      linking it to each target emulation executable.
    - Added a qemu_api_macros procedural macro library.
    - (minor) Moved generated bindings.rs to qemu_api crate using meson's
      structured_source() instead of compiling it as a standalone crate
      which was unnecessary.
    - (minor) Removed unnecessary rustc optimization/debug flags (should be handled
      by meson instead).
    - (minor) Moved build scripts under scripts/rust/
    - (minor) Fixed license issues
    
    Previous version was: <20240815-rust-pl011-v7-0-975135e98831@linaro.org>
    
    https://lore.kernel.org/qemu-devel/20240815-rust-pl011-v7-0-975135e98831@linaro.org/
    
    Outstanding issues that are not blocking for merge are:
    
    - Cross-compilation for aarch64 is not possible out-of-the-box because of this bug:
      <https://github.com/rust-lang/rust/issues/125619> in llvm which when
      fixed, must be ported to upstream rust's llvm fork. Since the problem
      is an extraneous symbol we could strip it with objcopy -N|--strip-symbol
      Update since last version: Fix is in upstream llvm, we're awaiting for
      rust upstream to pick it up.
    
    ---
    Manos Pitsidianakis (7):
          build-sys: Add rust feature option
          rust: add bindgen step as a meson dependency
          .gitattributes: add Rust diff and merge attributes
          meson.build: add HAVE_GLIB_WITH_ALIGNED_ALLOC flag
          rust: add crate to expose bindings and interfaces
          rust: add utility procedural macro crate
          rust: add PL011 device model
    
    Paolo Bonzini (2):
          Require meson version 1.5.0
          configure, meson: detect Rust toolchain
    
     MAINTAINERS                                        |  21 +
     configure                                          |  50 +-
     meson.build                                        |  87 ++-
     rust/wrapper.h                                     |  39 ++
     .gitattributes                                     |   3 +
     Kconfig                                            |   1 +
     Kconfig.host                                       |   3 +
     hw/arm/Kconfig                                     |  33 +-
     meson_options.txt                                  |   3 +
     python/scripts/vendor.py                           |   4 +-
     python/wheels/meson-1.2.3-py3-none-any.whl         | Bin 964928 -> 0 bytes
     python/wheels/meson-1.5.0-py3-none-any.whl         | Bin 0 -> 959846 bytes
     pythondeps.toml                                    |   2 +-
     rust/.gitignore                                    |   3 +
     rust/Kconfig                                       |   1 +
     rust/hw/Kconfig                                    |   2 +
     rust/hw/char/Kconfig                               |   3 +
     rust/hw/char/meson.build                           |   1 +
     rust/hw/char/pl011/.gitignore                      |   2 +
     rust/hw/char/pl011/Cargo.lock                      | 134 +++++
     rust/hw/char/pl011/Cargo.toml                      |  26 +
     rust/hw/char/pl011/README.md                       |  31 ++
     rust/hw/char/pl011/meson.build                     |  26 +
     rust/hw/char/pl011/src/definitions.rs              |  20 +
     rust/hw/char/pl011/src/device.rs                   | 594 +++++++++++++++++++++
     rust/hw/char/pl011/src/device_class.rs             |  59 ++
     rust/hw/char/pl011/src/lib.rs                      | 585 ++++++++++++++++++++
     rust/hw/char/pl011/src/memory_ops.rs               |  57 ++
     rust/hw/meson.build                                |   1 +
     rust/meson.build                                   |   4 +
     rust/qemu-api-macros/Cargo.lock                    |  47 ++
     rust/qemu-api-macros/Cargo.toml                    |  25 +
     rust/qemu-api-macros/README.md                     |   1 +
     rust/qemu-api-macros/meson.build                   |  25 +
     rust/qemu-api-macros/src/lib.rs                    |  43 ++
     rust/qemu-api/.gitignore                           |   2 +
     rust/qemu-api/Cargo.lock                           |   7 +
     rust/qemu-api/Cargo.toml                           |  26 +
     rust/qemu-api/README.md                            |  17 +
     rust/qemu-api/build.rs                             |  14 +
     rust/qemu-api/meson.build                          |  24 +
     rust/qemu-api/src/definitions.rs                   | 109 ++++
     rust/qemu-api/src/device_class.rs                  | 128 +++++
     rust/qemu-api/src/lib.rs                           | 154 ++++++
     rust/qemu-api/src/tests.rs                         |  49 ++
     rust/rustfmt.toml                                  |   7 +
     scripts/archive-source.sh                          |   5 +-
     scripts/make-release                               |   5 +-
     scripts/meson-buildoptions.sh                      |   3 +
     scripts/rust/rust_root_crate.sh                    |  13 +
     scripts/rust/rustc_args.py                         |  84 +++
     subprojects/.gitignore                             |  11 +
     subprojects/arbitrary-int-1-rs.wrap                |   7 +
     subprojects/bilge-0.2-rs.wrap                      |   7 +
     subprojects/bilge-impl-0.2-rs.wrap                 |   7 +
     subprojects/either-1-rs.wrap                       |   7 +
     subprojects/itertools-0.11-rs.wrap                 |   7 +
     .../packagefiles/arbitrary-int-1-rs/meson.build    |  19 +
     subprojects/packagefiles/bilge-0.2-rs/meson.build  |  29 +
     .../packagefiles/bilge-impl-0.2-rs/meson.build     |  45 ++
     subprojects/packagefiles/either-1-rs/meson.build   |  24 +
     .../packagefiles/itertools-0.11-rs/meson.build     |  30 ++
     .../packagefiles/proc-macro-error-1-rs/meson.build |  40 ++
     .../proc-macro-error-attr-1-rs/meson.build         |  32 ++
     .../packagefiles/proc-macro2-1-rs/meson.build      |  31 ++
     subprojects/packagefiles/quote-1-rs/meson.build    |  29 +
     subprojects/packagefiles/syn-2-rs/meson.build      |  40 ++
     .../packagefiles/unicode-ident-1-rs/meson.build    |  20 +
     subprojects/proc-macro-error-1-rs.wrap             |   7 +
     subprojects/proc-macro-error-attr-1-rs.wrap        |   7 +
     subprojects/proc-macro2-1-rs.wrap                  |   7 +
     subprojects/quote-1-rs.wrap                        |   7 +
     subprojects/syn-2-rs.wrap                          |   7 +
     subprojects/unicode-ident-1-rs.wrap                |   7 +
     tests/lcitool/mappings.yml                         |   2 +-
     75 files changed, 2991 insertions(+), 21 deletions(-)
    ---
    base-commit: a733f37aef3b7d1d33bfe2716af88cdfd67ba64e
    change-id: 20240814-rust-pl011-v7
    
    Best regards,
  • sent/20240814-rust-pl011-v7-v8

    Add Rust build support, ARM PL011 device impl
    
    Hello everyone,
    
    This series adds:
    
    - build system support for the Rust compiler
    - a small Rust library, qemu-api, which includes bindings to QEMU's C
      interface generated with bindgen, and qemu-api-macros, a procedural
      macro library.
    - a proof of concept ARM PL011 device implementation in Rust, chosen for
      its low complexity. The device is used in the arm virt machine if qemu
      is compiled with rust enabled (./configure --enable-rust [...])
    
    To: qemu-devel@nongnu.org
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
    Cc: Daniel P. Berrangé <berrange@redhat.com>
    Cc: Thomas Huth <thuth@redhat.com>
    Cc: Philippe Mathieu-Daudé <philmd@linaro.org>
    Cc: Pierrick Bouvier <pierrick.bouvier@linaro.org>
    Cc: Richard Henderson <richard.henderson@linaro.org>
    Cc: Gustavo Romero <gustavo.romero@linaro.org>
    Cc: Alex Bennée <alex.bennee@linaro.org>
    Cc: Peter Maydell <peter.maydell@linaro.org>
    Cc: Junjie Mao <junjie.mao@intel.com>
    Cc: Zhao Liu <zhao1.liu@intel.com>
    Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
    ---
    Changes in v8:
    - Allow for compilation of more than one Rust-based component in Meson
      by compiling all Rust static libraries into one "root" library before
      linking it to each target emulation executable.
    - Added a qemu_api_macros procedural macro library.
    - (minor) Moved generated bindings.rs to qemu_api crate using meson's
      structured_source() instead of compiling it as a standalone crate
      which was unnecessary.
    - (minor) Removed unnecessary rustc optimization/debug flags (should be handled
      by meson instead).
    - (minor) Moved build scripts under scripts/rust/
    - (minor) Fixed license issues
    
    Previous version was: <20240815-rust-pl011-v7-0-975135e98831@linaro.org>
    
    https://lore.kernel.org/qemu-devel/20240815-rust-pl011-v7-0-975135e98831@linaro.org/
    
    Outstanding issues that are not blocking for merge are:
    
    - Cross-compilation for aarch64 is not possible out-of-the-box because of this bug:
      <https://github.com/rust-lang/rust/issues/125619> in llvm which when
      fixed, must be ported to upstream rust's llvm fork. Since the problem
      is an extraneous symbol we could strip it with objcopy -N|--strip-symbol
      Update since last version: Fix is in upstream llvm, we're awaiting for
      rust upstream to pick it up.
    
    ---
    Manos Pitsidianakis (6):
          build-sys: Add rust feature option
          rust: add bindgen step as a meson dependency
          .gitattributes: add Rust diff and merge attributes
          rust: add crate to expose bindings and interfaces
          rust: add utility procedural macro crate
          rust: add PL011 device model
    
    Paolo Bonzini (2):
          Require meson version 1.5.0
          configure, meson: detect Rust toolchain
    
     MAINTAINERS                                        |  21 +
     configure                                          |  50 +-
     meson.build                                        |  83 ++-
     rust/wrapper.h                                     |  39 ++
     .gitattributes                                     |   3 +
     Kconfig                                            |   1 +
     Kconfig.host                                       |   3 +
     hw/arm/Kconfig                                     |  33 +-
     meson_options.txt                                  |   3 +
     python/scripts/vendor.py                           |   4 +-
     python/wheels/meson-1.2.3-py3-none-any.whl         | Bin 964928 -> 0 bytes
     python/wheels/meson-1.5.0-py3-none-any.whl         | Bin 0 -> 959846 bytes
     pythondeps.toml                                    |   2 +-
     rust/.gitignore                                    |   3 +
     rust/Kconfig                                       |   1 +
     rust/hw/Kconfig                                    |   2 +
     rust/hw/char/Kconfig                               |   3 +
     rust/hw/char/meson.build                           |   1 +
     rust/hw/char/pl011/.gitignore                      |   2 +
     rust/hw/char/pl011/Cargo.lock                      | 134 +++++
     rust/hw/char/pl011/Cargo.toml                      |  26 +
     rust/hw/char/pl011/README.md                       |  31 ++
     rust/hw/char/pl011/meson.build                     |  26 +
     rust/hw/char/pl011/rustfmt.toml                    |   1 +
     rust/hw/char/pl011/src/definitions.rs              |  20 +
     rust/hw/char/pl011/src/device.rs                   | 592 +++++++++++++++++++++
     rust/hw/char/pl011/src/device_class.rs             |  59 ++
     rust/hw/char/pl011/src/lib.rs                      | 585 ++++++++++++++++++++
     rust/hw/char/pl011/src/memory_ops.rs               |  57 ++
     rust/hw/meson.build                                |   1 +
     rust/meson.build                                   |   4 +
     rust/qemu-api-macros/Cargo.lock                    |  47 ++
     rust/qemu-api-macros/Cargo.toml                    |  25 +
     rust/qemu-api-macros/README.md                     |   1 +
     rust/qemu-api-macros/meson.build                   |  25 +
     rust/qemu-api-macros/src/cstr/mod.rs               |  55 ++
     rust/qemu-api-macros/src/cstr/parse.rs             | 225 ++++++++
     rust/qemu-api-macros/src/lib.rs                    |  43 ++
     rust/qemu-api/.gitignore                           |   2 +
     rust/qemu-api/Cargo.lock                           |   7 +
     rust/qemu-api/Cargo.toml                           |  26 +
     rust/qemu-api/README.md                            |  17 +
     rust/qemu-api/build.rs                             |  14 +
     rust/qemu-api/meson.build                          |  23 +
     rust/qemu-api/rustfmt.toml                         |   1 +
     rust/qemu-api/src/definitions.rs                   | 109 ++++
     rust/qemu-api/src/device_class.rs                  | 128 +++++
     rust/qemu-api/src/lib.rs                           | 102 ++++
     rust/qemu-api/src/tests.rs                         |  49 ++
     rust/rustfmt.toml                                  |   7 +
     scripts/archive-source.sh                          |   5 +-
     scripts/make-release                               |   5 +-
     scripts/meson-buildoptions.sh                      |   3 +
     scripts/rust/rust_root_crate.sh                    |  13 +
     scripts/rust/rustc_args.py                         |  84 +++
     subprojects/.gitignore                             |  11 +
     subprojects/arbitrary-int-1-rs.wrap                |   7 +
     subprojects/bilge-0.2-rs.wrap                      |   7 +
     subprojects/bilge-impl-0.2-rs.wrap                 |   7 +
     subprojects/either-1-rs.wrap                       |   7 +
     subprojects/itertools-0.11-rs.wrap                 |   7 +
     .../packagefiles/arbitrary-int-1-rs/meson.build    |  19 +
     subprojects/packagefiles/bilge-0.2-rs/meson.build  |  29 +
     .../packagefiles/bilge-impl-0.2-rs/meson.build     |  45 ++
     subprojects/packagefiles/either-1-rs/meson.build   |  24 +
     .../packagefiles/itertools-0.11-rs/meson.build     |  30 ++
     .../packagefiles/proc-macro-error-1-rs/meson.build |  40 ++
     .../proc-macro-error-attr-1-rs/meson.build         |  32 ++
     .../packagefiles/proc-macro2-1-rs/meson.build      |  31 ++
     subprojects/packagefiles/quote-1-rs/meson.build    |  29 +
     subprojects/packagefiles/syn-2-rs/meson.build      |  40 ++
     .../packagefiles/unicode-ident-1-rs/meson.build    |  20 +
     subprojects/proc-macro-error-1-rs.wrap             |   7 +
     subprojects/proc-macro-error-attr-1-rs.wrap        |   7 +
     subprojects/proc-macro2-1-rs.wrap                  |   7 +
     subprojects/quote-1-rs.wrap                        |   7 +
     subprojects/syn-2-rs.wrap                          |   7 +
     subprojects/unicode-ident-1-rs.wrap                |   7 +
     tests/lcitool/mappings.yml                         |   2 +-
     79 files changed, 3214 insertions(+), 21 deletions(-)
    ---
    base-commit: a733f37aef3b7d1d33bfe2716af88cdfd67ba64e
    change-id: 20240814-rust-pl011-v7
    
    Best regards,
  • v9.1.0-rc3

    v9.1.0-rc3 release
    
  • sent/20240814-rust-pl011-v7-v7

    Add Rust build support, ARM PL011 device impl
    
    Changes
    =======
    
    - Incorporated changes by Paolo Bonzini and Junjie Mao as a result of
      discussion on the previous patch series version
    - Included two squash patches from
      <20240814090820.1251026-1-junjie.mao@intel.com>
      Junjie Mao (2):
        meson: subprojects: Specify Rust edition by rust_std=20XX
        rust: Specify Rust edition by rust_std=20XX
    
    Outstanding issues
    ==================
    
    Outstanding issues that are not blocking for merge are:
    
    - Cross-compilation for aarch64 is not possible out-of-the-box because of this bug:
      <https://github.com/rust-lang/rust/issues/125619> in llvm which when
      fixed, must be ported to upstream rust's llvm fork. Since the problem
      is an extraneous symbol we could strip it with objcopy -N|--strip-symbol
    - Adding more than one Rust device ends up with duplicate symbols from
      rust std library because we are linking as whole archives because...
      constructors are stripped by the linker otherwise :( It can be worked
      around if a single Rust library is built with all the devices as
      dependencies which is then linked to qemu. The fix is a small change
      which I will add either in a next version or when a new Rust device is
      added.
    
    Previous version was: <rust-pl011-rfc-v6.git.manos.pitsidianakis@linaro.org>
    
    To: qemu-devel@nongnu.org
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
    Cc: Daniel P. Berrangé <berrange@redhat.com>
    Cc: Thomas Huth <thuth@redhat.com>
    Cc: Philippe Mathieu-Daudé <philmd@linaro.org>
    Cc: John Snow <jsnow@redhat.com>
    Cc: Cleber Rosa <crosa@redhat.com>
    Cc: Beraldo Leal <bleal@redhat.com>
    Cc: Alex Bennée <alex.bennee@linaro.org>
    Cc: Wainer dos Santos Moschetta <wainersm@redhat.com>
    Cc: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
    Cc: Zhao Liu <zhao1.liu@intel.com>
    Cc: Peter Maydell <peter.maydell@linaro.org>
    Cc: open list:ARM TCG CPUs <qemu-arm@nongnu.org>
    ---
    Hello everyone,
    
    This series adds:
    
    - build system support for the Rust compiler
    - a small Rust library, qemu-api, which includes bindings to QEMU's C
      interface generated with bindgen
    - a proof of concept ARM PL011 device implementation in Rust, chosen for
      its low complexity. The device is used in the arm virt machine if qemu
      is compiled with rust enabled (./configure --enable-rust [...])
    
    Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
    
    ---
    Manos Pitsidianakis (5):
          build-sys: Add rust feature option
          rust: add bindgen step as a meson dependency
          .gitattributes: add Rust diff and merge attributes
          rust: add crate to expose bindings and interfaces
          rust: add PL011 device model
    
    Paolo Bonzini (2):
          Require meson version 1.5.0
          configure, meson: detect Rust toolchain
    
     MAINTAINERS                                        |  20 +
     configure                                          |  50 +-
     meson.build                                        |  77 ++-
     rust/wrapper.h                                     |  39 ++
     .gitattributes                                     |   3 +
     Kconfig                                            |   1 +
     Kconfig.host                                       |   3 +
     hw/arm/Kconfig                                     |  33 +-
     meson_options.txt                                  |   3 +
     python/scripts/vendor.py                           |   4 +-
     python/wheels/meson-1.2.3-py3-none-any.whl         | Bin 964928 -> 0 bytes
     python/wheels/meson-1.5.0-py3-none-any.whl         | Bin 0 -> 959846 bytes
     pythondeps.toml                                    |   2 +-
     rust/.gitignore                                    |   3 +
     rust/Kconfig                                       |   1 +
     rust/hw/Kconfig                                    |   2 +
     rust/hw/char/Kconfig                               |   3 +
     rust/hw/char/meson.build                           |   1 +
     rust/hw/char/pl011/.gitignore                      |   2 +
     rust/hw/char/pl011/Cargo.lock                      | 125 +++++
     rust/hw/char/pl011/Cargo.toml                      |  26 +
     rust/hw/char/pl011/README.md                       |  31 ++
     rust/hw/char/pl011/meson.build                     |  21 +
     rust/hw/char/pl011/rustfmt.toml                    |   1 +
     rust/hw/char/pl011/src/definitions.rs              |  26 +
     rust/hw/char/pl011/src/device.rs                   | 586 +++++++++++++++++++++
     rust/hw/char/pl011/src/device_class.rs             |  58 ++
     rust/hw/char/pl011/src/lib.rs                      | 584 ++++++++++++++++++++
     rust/hw/char/pl011/src/memory_ops.rs               |  56 ++
     rust/hw/meson.build                                |   1 +
     rust/meson.build                                   |  11 +
     rust/qemu-api/.gitignore                           |   2 +
     rust/qemu-api/Cargo.lock                           |   7 +
     rust/qemu-api/Cargo.toml                           |  23 +
     rust/qemu-api/README.md                            |  17 +
     rust/qemu-api/build.rs                             |  13 +
     rust/qemu-api/meson.build                          |  17 +
     rust/qemu-api/rustfmt.toml                         |   1 +
     rust/qemu-api/src/bindings.rs                      |   7 +
     rust/qemu-api/src/definitions.rs                   | 108 ++++
     rust/qemu-api/src/device_class.rs                  | 128 +++++
     rust/qemu-api/src/lib.rs                           | 100 ++++
     rust/qemu-api/src/tests.rs                         |  48 ++
     rust/rustfmt.toml                                  |   7 +
     scripts/archive-source.sh                          |   5 +-
     scripts/make-release                               |   5 +-
     scripts/meson-buildoptions.sh                      |   3 +
     scripts/rustc_args.py                              |  84 +++
     subprojects/.gitignore                             |  11 +
     subprojects/arbitrary-int-1-rs.wrap                |   7 +
     subprojects/bilge-0.2-rs.wrap                      |   7 +
     subprojects/bilge-impl-0.2-rs.wrap                 |   7 +
     subprojects/either-1-rs.wrap                       |   7 +
     subprojects/itertools-0.11-rs.wrap                 |   7 +
     .../packagefiles/arbitrary-int-1-rs/meson.build    |  19 +
     subprojects/packagefiles/bilge-0.2-rs/meson.build  |  29 +
     .../packagefiles/bilge-impl-0.2-rs/meson.build     |  45 ++
     subprojects/packagefiles/either-1-rs/meson.build   |  24 +
     .../packagefiles/itertools-0.11-rs/meson.build     |  30 ++
     .../packagefiles/proc-macro-error-1-rs/meson.build |  40 ++
     .../proc-macro-error-attr-1-rs/meson.build         |  32 ++
     .../packagefiles/proc-macro2-1-rs/meson.build      |  31 ++
     subprojects/packagefiles/quote-1-rs/meson.build    |  29 +
     subprojects/packagefiles/syn-2-rs/meson.build      |  40 ++
     .../packagefiles/unicode-ident-1-rs/meson.build    |  20 +
     subprojects/proc-macro-error-1-rs.wrap             |   7 +
     subprojects/proc-macro-error-attr-1-rs.wrap        |   7 +
     subprojects/proc-macro2-1-rs.wrap                  |   7 +
     subprojects/quote-1-rs.wrap                        |   7 +
     subprojects/syn-2-rs.wrap                          |   7 +
     subprojects/unicode-ident-1-rs.wrap                |   7 +
     tests/lcitool/mappings.yml                         |   2 +-
     72 files changed, 2756 insertions(+), 21 deletions(-)
    ---
    base-commit: a733f37aef3b7d1d33bfe2716af88cdfd67ba64e
    change-id: 20240814-rust-pl011-v7
    
    Best regards,
    --
    γαῖα πυρί μιχθήτω
  • v9.1.0-rc2

    v9.1.0-rc2 release
    
  • v9.1.0-rc1

    v9.1.0-rc1 release
    
  • v9.1.0-rc0

    v9.1.0-rc0 release
    
  • v9.0.2

    v9.0.2 release
    
  • v8.2.6

    v8.2.6 release
    
  • v7.2.13

    v7.2.13 release