[PULL 00/13] Rust, i386 changes for 2026-01-27

Paolo Bonzini posted 13 patches 4 days, 8 hours ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260127093906.353741-1-pbonzini@redhat.com
Maintainers: Paolo Bonzini <pbonzini@redhat.com>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Manos Pitsidianakis <manos.pitsidianakis@linaro.org>, Richard Henderson <richard.henderson@linaro.org>, Eduardo Habkost <eduardo@habkost.net>
docs/devel/rust.rst                                |  57 +++++++
meson.build                                        |   3 +-
rust/bindings/chardev-sys/wrapper.h                |  12 ++
rust/bindings/hwcore-sys/wrapper.h                 |  30 ++++
rust/bindings/migration-sys/wrapper.h              |  10 ++
rust/bindings/qom-sys/wrapper.h                    |  17 +++
rust/bindings/system-sys/wrapper.h                 |  21 +++
rust/bindings/util-sys/wrapper.h                   |  39 +++++
rust/bql/wrapper.h                                 |  27 ----
rust/chardev/wrapper.h                             |  28 ----
rust/hw/core/wrapper.h                             |  32 ----
rust/migration/wrapper.h                           |  51 -------
rust/qom/wrapper.h                                 |  27 ----
rust/system/wrapper.h                              |  29 ----
rust/util/wrapper.h                                |  32 ----
target/i386/tcg/translate.c                        |  35 +----
target/i386/tcg/decode-new.c.inc                   |  85 +++++------
target/i386/tcg/emit.c.inc                         |  22 ++-
hw/core/meson.build                                |   2 +-
rust/Cargo.lock                                    |  68 +++++++++
rust/{util => bindings}/build.rs                   |  30 ++--
rust/bindings/chardev-sys/Cargo.toml               |  28 ++++
rust/bindings/chardev-sys/build.rs                 |   1 +
.../bindings.rs => bindings/chardev-sys/lib.rs}    |   7 +-
rust/bindings/chardev-sys/meson.build              |  12 ++
rust/bindings/generate_bindgen_args.py             | 164 +++++++++++++++++++++
rust/bindings/hwcore-sys/Cargo.toml                |  32 ++++
rust/bindings/hwcore-sys/build.rs                  |   1 +
.../src/bindings.rs => bindings/hwcore-sys/lib.rs} |  17 +--
rust/bindings/hwcore-sys/meson.build               |  12 ++
rust/bindings/meson.build                          |  37 +++++
rust/bindings/migration-sys/Cargo.toml             |  28 ++++
rust/bindings/migration-sys/build.rs               |   1 +
rust/bindings/migration-sys/lib.rs                 | 125 ++++++++++++++++
rust/bindings/migration-sys/meson.build            |  12 ++
rust/bindings/qom-sys/Cargo.toml                   |  25 ++++
rust/bindings/qom-sys/build.rs                     |   1 +
.../src/bindings.rs => bindings/qom-sys/lib.rs}    |   4 +
rust/bindings/qom-sys/meson.build                  |  12 ++
rust/bindings/system-sys/Cargo.toml                |  30 ++++
rust/bindings/system-sys/build.rs                  |   1 +
.../src/bindings.rs => bindings/system-sys/lib.rs} |   4 +-
rust/bindings/system-sys/meson.build               |  12 ++
rust/bindings/util-sys/Cargo.toml                  |  25 ++++
rust/bindings/util-sys/build.rs                    |   1 +
.../src/bindings.rs => bindings/util-sys/lib.rs}   |   2 +-
rust/bindings/util-sys/meson.build                 |  12 ++
rust/bql/Cargo.toml                                |   1 +
rust/bql/build.rs                                  |   1 -
rust/bql/meson.build                               |  30 +---
rust/bql/src/bindings.rs                           |  27 ----
rust/bql/src/lib.rs                                |   3 +-
rust/chardev/Cargo.toml                            |   1 +
rust/chardev/build.rs                              |   1 -
rust/chardev/meson.build                           |  37 +----
rust/chardev/src/lib.rs                            |   2 +-
rust/hw/char/pl011/build.rs                        |   2 +-
rust/hw/char/pl011/meson.build                     |  21 +--
rust/hw/char/pl011/src/bindings.rs                 |   7 +-
rust/hw/core/Cargo.toml                            |   2 +-
rust/hw/core/build.rs                              |   1 -
rust/hw/core/meson.build                           |  64 +-------
rust/hw/core/src/irq.rs                            |   8 +-
rust/hw/core/src/lib.rs                            |   6 +-
rust/hw/core/src/prelude.rs                        |   6 +-
rust/hw/core/src/qdev.rs                           |  31 ++--
rust/hw/core/tests/tests.rs                        |   4 +-
rust/hw/timer/hpet/src/device.rs                   |   1 -
rust/meson.build                                   |   3 +-
rust/migration/Cargo.toml                          |   1 +
rust/migration/build.rs                            |   1 -
rust/migration/meson.build                         |  40 +----
rust/migration/src/bindings.rs                     |  49 ------
rust/migration/src/lib.rs                          |   3 +-
rust/migration/src/vmstate.rs                      |  73 ---------
rust/qom/Cargo.toml                                |   1 +
rust/qom/build.rs                                  |   1 -
rust/qom/meson.build                               |  29 +---
rust/qom/src/lib.rs                                |   3 +-
rust/qom/src/prelude.rs                            |   1 +
rust/qom/src/qom.rs                                |   8 +-
rust/system/Cargo.toml                             |   4 +
rust/system/build.rs                               |   1 -
rust/system/meson.build                            |  39 +----
rust/system/src/lib.rs                             |   5 +-
rust/system/src/memory.rs                          |   2 +-
rust/system/src/prelude.rs                         |   5 +
rust/{hw/core => system}/src/sysbus.rs             |  36 ++---
rust/trace/src/lib.rs                              |   1 +
rust/util/Cargo.toml                               |   1 +
rust/util/meson.build                              |  42 +-----
rust/util/src/lib.rs                               |   3 +-
92 files changed, 1025 insertions(+), 846 deletions(-)
create mode 100644 rust/bindings/chardev-sys/wrapper.h
create mode 100644 rust/bindings/hwcore-sys/wrapper.h
create mode 100644 rust/bindings/migration-sys/wrapper.h
create mode 100644 rust/bindings/qom-sys/wrapper.h
create mode 100644 rust/bindings/system-sys/wrapper.h
create mode 100644 rust/bindings/util-sys/wrapper.h
delete mode 100644 rust/bql/wrapper.h
delete mode 100644 rust/chardev/wrapper.h
delete mode 100644 rust/hw/core/wrapper.h
delete mode 100644 rust/migration/wrapper.h
delete mode 100644 rust/qom/wrapper.h
delete mode 100644 rust/system/wrapper.h
delete mode 100644 rust/util/wrapper.h
rename rust/{util => bindings}/build.rs (55%)
create mode 100644 rust/bindings/chardev-sys/Cargo.toml
create mode 120000 rust/bindings/chardev-sys/build.rs
rename rust/{chardev/src/bindings.rs => bindings/chardev-sys/lib.rs} (84%)
create mode 100644 rust/bindings/chardev-sys/meson.build
create mode 100644 rust/bindings/generate_bindgen_args.py
create mode 100644 rust/bindings/hwcore-sys/Cargo.toml
create mode 120000 rust/bindings/hwcore-sys/build.rs
rename rust/{hw/core/src/bindings.rs => bindings/hwcore-sys/lib.rs} (71%)
create mode 100644 rust/bindings/hwcore-sys/meson.build
create mode 100644 rust/bindings/meson.build
create mode 100644 rust/bindings/migration-sys/Cargo.toml
create mode 120000 rust/bindings/migration-sys/build.rs
create mode 100644 rust/bindings/migration-sys/lib.rs
create mode 100644 rust/bindings/migration-sys/meson.build
create mode 100644 rust/bindings/qom-sys/Cargo.toml
create mode 120000 rust/bindings/qom-sys/build.rs
rename rust/{qom/src/bindings.rs => bindings/qom-sys/lib.rs} (85%)
create mode 100644 rust/bindings/qom-sys/meson.build
create mode 100644 rust/bindings/system-sys/Cargo.toml
create mode 120000 rust/bindings/system-sys/build.rs
rename rust/{system/src/bindings.rs => bindings/system-sys/lib.rs} (88%)
create mode 100644 rust/bindings/system-sys/meson.build
create mode 100644 rust/bindings/util-sys/Cargo.toml
create mode 120000 rust/bindings/util-sys/build.rs
rename rust/{util/src/bindings.rs => bindings/util-sys/lib.rs} (88%)
create mode 100644 rust/bindings/util-sys/meson.build
delete mode 120000 rust/bql/build.rs
delete mode 100644 rust/bql/src/bindings.rs
delete mode 120000 rust/chardev/build.rs
delete mode 120000 rust/hw/core/build.rs
delete mode 120000 rust/migration/build.rs
delete mode 100644 rust/migration/src/bindings.rs
delete mode 120000 rust/qom/build.rs
delete mode 120000 rust/system/build.rs
rename rust/{hw/core => system}/src/sysbus.rs (76%)
[PULL 00/13] Rust, i386 changes for 2026-01-27
Posted by Paolo Bonzini 4 days, 8 hours ago
The following changes since commit f26976b9d30496d28bd4fd045f4300706e567a29:

  Merge tag 'pull-vfio-20260126' of https://github.com/legoater/qemu into staging (2026-01-27 07:14:11 +1100)

are available in the Git repository at:

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

for you to fetch changes up to df8dfc3b6080713c2dbd7ef37c2c85a78e502cd6:

  rust/hpet: remove stale TODO comment (2026-01-27 10:37:11 +0100)

----------------------------------------------------------------
* rust: move binding generation to bindings/
* rust: fixes for Windows
* target/i386/tcg: fix a few instructions that do not support VEX.L=1
* target/i386/tcg: various cleanups

----------------------------------------------------------------
Marc-André Lureau (1):
      rust: move binding generation to bindings/

Mohd Kashif Khan (1):
      rust/hpet: remove stale TODO comment

Paolo Bonzini (11):
      rust: trace: libc does not have syslog on windows
      rust: hwcore: add chardev symbols to integration tests
      rust: move class_init to an extension trait
      rust: move hwcore::sysbus to system crate
      qdev: add hw/core/gpio.c to libhwcore
      target/i386/tcg: fix a few instructions that do not support VEX.L=1
      target/i386/tcg: fix typo in dpps/dppd instructions
      target/i386/tcg: remove dead constants
      target/i386/tcg: merge decode_modrm and decode_modrm_address split
      target/i386/tcg: replace havesib variable with the SIB byte itself
      target/i386/tcg: cleanup #ifdef TARGET_X86_64

 docs/devel/rust.rst                                |  57 +++++++
 meson.build                                        |   3 +-
 rust/bindings/chardev-sys/wrapper.h                |  12 ++
 rust/bindings/hwcore-sys/wrapper.h                 |  30 ++++
 rust/bindings/migration-sys/wrapper.h              |  10 ++
 rust/bindings/qom-sys/wrapper.h                    |  17 +++
 rust/bindings/system-sys/wrapper.h                 |  21 +++
 rust/bindings/util-sys/wrapper.h                   |  39 +++++
 rust/bql/wrapper.h                                 |  27 ----
 rust/chardev/wrapper.h                             |  28 ----
 rust/hw/core/wrapper.h                             |  32 ----
 rust/migration/wrapper.h                           |  51 -------
 rust/qom/wrapper.h                                 |  27 ----
 rust/system/wrapper.h                              |  29 ----
 rust/util/wrapper.h                                |  32 ----
 target/i386/tcg/translate.c                        |  35 +----
 target/i386/tcg/decode-new.c.inc                   |  85 +++++------
 target/i386/tcg/emit.c.inc                         |  22 ++-
 hw/core/meson.build                                |   2 +-
 rust/Cargo.lock                                    |  68 +++++++++
 rust/{util => bindings}/build.rs                   |  30 ++--
 rust/bindings/chardev-sys/Cargo.toml               |  28 ++++
 rust/bindings/chardev-sys/build.rs                 |   1 +
 .../bindings.rs => bindings/chardev-sys/lib.rs}    |   7 +-
 rust/bindings/chardev-sys/meson.build              |  12 ++
 rust/bindings/generate_bindgen_args.py             | 164 +++++++++++++++++++++
 rust/bindings/hwcore-sys/Cargo.toml                |  32 ++++
 rust/bindings/hwcore-sys/build.rs                  |   1 +
 .../src/bindings.rs => bindings/hwcore-sys/lib.rs} |  17 +--
 rust/bindings/hwcore-sys/meson.build               |  12 ++
 rust/bindings/meson.build                          |  37 +++++
 rust/bindings/migration-sys/Cargo.toml             |  28 ++++
 rust/bindings/migration-sys/build.rs               |   1 +
 rust/bindings/migration-sys/lib.rs                 | 125 ++++++++++++++++
 rust/bindings/migration-sys/meson.build            |  12 ++
 rust/bindings/qom-sys/Cargo.toml                   |  25 ++++
 rust/bindings/qom-sys/build.rs                     |   1 +
 .../src/bindings.rs => bindings/qom-sys/lib.rs}    |   4 +
 rust/bindings/qom-sys/meson.build                  |  12 ++
 rust/bindings/system-sys/Cargo.toml                |  30 ++++
 rust/bindings/system-sys/build.rs                  |   1 +
 .../src/bindings.rs => bindings/system-sys/lib.rs} |   4 +-
 rust/bindings/system-sys/meson.build               |  12 ++
 rust/bindings/util-sys/Cargo.toml                  |  25 ++++
 rust/bindings/util-sys/build.rs                    |   1 +
 .../src/bindings.rs => bindings/util-sys/lib.rs}   |   2 +-
 rust/bindings/util-sys/meson.build                 |  12 ++
 rust/bql/Cargo.toml                                |   1 +
 rust/bql/build.rs                                  |   1 -
 rust/bql/meson.build                               |  30 +---
 rust/bql/src/bindings.rs                           |  27 ----
 rust/bql/src/lib.rs                                |   3 +-
 rust/chardev/Cargo.toml                            |   1 +
 rust/chardev/build.rs                              |   1 -
 rust/chardev/meson.build                           |  37 +----
 rust/chardev/src/lib.rs                            |   2 +-
 rust/hw/char/pl011/build.rs                        |   2 +-
 rust/hw/char/pl011/meson.build                     |  21 +--
 rust/hw/char/pl011/src/bindings.rs                 |   7 +-
 rust/hw/core/Cargo.toml                            |   2 +-
 rust/hw/core/build.rs                              |   1 -
 rust/hw/core/meson.build                           |  64 +-------
 rust/hw/core/src/irq.rs                            |   8 +-
 rust/hw/core/src/lib.rs                            |   6 +-
 rust/hw/core/src/prelude.rs                        |   6 +-
 rust/hw/core/src/qdev.rs                           |  31 ++--
 rust/hw/core/tests/tests.rs                        |   4 +-
 rust/hw/timer/hpet/src/device.rs                   |   1 -
 rust/meson.build                                   |   3 +-
 rust/migration/Cargo.toml                          |   1 +
 rust/migration/build.rs                            |   1 -
 rust/migration/meson.build                         |  40 +----
 rust/migration/src/bindings.rs                     |  49 ------
 rust/migration/src/lib.rs                          |   3 +-
 rust/migration/src/vmstate.rs                      |  73 ---------
 rust/qom/Cargo.toml                                |   1 +
 rust/qom/build.rs                                  |   1 -
 rust/qom/meson.build                               |  29 +---
 rust/qom/src/lib.rs                                |   3 +-
 rust/qom/src/prelude.rs                            |   1 +
 rust/qom/src/qom.rs                                |   8 +-
 rust/system/Cargo.toml                             |   4 +
 rust/system/build.rs                               |   1 -
 rust/system/meson.build                            |  39 +----
 rust/system/src/lib.rs                             |   5 +-
 rust/system/src/memory.rs                          |   2 +-
 rust/system/src/prelude.rs                         |   5 +
 rust/{hw/core => system}/src/sysbus.rs             |  36 ++---
 rust/trace/src/lib.rs                              |   1 +
 rust/util/Cargo.toml                               |   1 +
 rust/util/meson.build                              |  42 +-----
 rust/util/src/lib.rs                               |   3 +-
 92 files changed, 1025 insertions(+), 846 deletions(-)
 create mode 100644 rust/bindings/chardev-sys/wrapper.h
 create mode 100644 rust/bindings/hwcore-sys/wrapper.h
 create mode 100644 rust/bindings/migration-sys/wrapper.h
 create mode 100644 rust/bindings/qom-sys/wrapper.h
 create mode 100644 rust/bindings/system-sys/wrapper.h
 create mode 100644 rust/bindings/util-sys/wrapper.h
 delete mode 100644 rust/bql/wrapper.h
 delete mode 100644 rust/chardev/wrapper.h
 delete mode 100644 rust/hw/core/wrapper.h
 delete mode 100644 rust/migration/wrapper.h
 delete mode 100644 rust/qom/wrapper.h
 delete mode 100644 rust/system/wrapper.h
 delete mode 100644 rust/util/wrapper.h
 rename rust/{util => bindings}/build.rs (55%)
 create mode 100644 rust/bindings/chardev-sys/Cargo.toml
 create mode 120000 rust/bindings/chardev-sys/build.rs
 rename rust/{chardev/src/bindings.rs => bindings/chardev-sys/lib.rs} (84%)
 create mode 100644 rust/bindings/chardev-sys/meson.build
 create mode 100644 rust/bindings/generate_bindgen_args.py
 create mode 100644 rust/bindings/hwcore-sys/Cargo.toml
 create mode 120000 rust/bindings/hwcore-sys/build.rs
 rename rust/{hw/core/src/bindings.rs => bindings/hwcore-sys/lib.rs} (71%)
 create mode 100644 rust/bindings/hwcore-sys/meson.build
 create mode 100644 rust/bindings/meson.build
 create mode 100644 rust/bindings/migration-sys/Cargo.toml
 create mode 120000 rust/bindings/migration-sys/build.rs
 create mode 100644 rust/bindings/migration-sys/lib.rs
 create mode 100644 rust/bindings/migration-sys/meson.build
 create mode 100644 rust/bindings/qom-sys/Cargo.toml
 create mode 120000 rust/bindings/qom-sys/build.rs
 rename rust/{qom/src/bindings.rs => bindings/qom-sys/lib.rs} (85%)
 create mode 100644 rust/bindings/qom-sys/meson.build
 create mode 100644 rust/bindings/system-sys/Cargo.toml
 create mode 120000 rust/bindings/system-sys/build.rs
 rename rust/{system/src/bindings.rs => bindings/system-sys/lib.rs} (88%)
 create mode 100644 rust/bindings/system-sys/meson.build
 create mode 100644 rust/bindings/util-sys/Cargo.toml
 create mode 120000 rust/bindings/util-sys/build.rs
 rename rust/{util/src/bindings.rs => bindings/util-sys/lib.rs} (88%)
 create mode 100644 rust/bindings/util-sys/meson.build
 delete mode 120000 rust/bql/build.rs
 delete mode 100644 rust/bql/src/bindings.rs
 delete mode 120000 rust/chardev/build.rs
 delete mode 120000 rust/hw/core/build.rs
 delete mode 120000 rust/migration/build.rs
 delete mode 100644 rust/migration/src/bindings.rs
 delete mode 120000 rust/qom/build.rs
 delete mode 120000 rust/system/build.rs
 rename rust/{hw/core => system}/src/sysbus.rs (76%)
-- 
2.52.0


Re: [PULL 00/13] Rust, i386 changes for 2026-01-27
Posted by Richard Henderson 3 days, 14 hours ago
On 1/27/26 20:38, Paolo Bonzini wrote:
> The following changes since commit f26976b9d30496d28bd4fd045f4300706e567a29:
> 
>    Merge tag 'pull-vfio-20260126' ofhttps://github.com/legoater/qemu into staging (2026-01-27 07:14:11 +1100)
> 
> are available in the Git repository at:
> 
>    https://gitlab.com/bonzini/qemu.git tags/for-upstream
> 
> for you to fetch changes up to df8dfc3b6080713c2dbd7ef37c2c85a78e502cd6:
> 
>    rust/hpet: remove stale TODO comment (2026-01-27 10:37:11 +0100)
> 
> ----------------------------------------------------------------
> * rust: move binding generation to bindings/
> * rust: fixes for Windows
> * target/i386/tcg: fix a few instructions that do not support VEX.L=1
> * target/i386/tcg: various cleanups

Applied, thanks.  Please update https://wiki.qemu.org/ChangeLog/11.0 as appropriate.

r~