[PULL 00/20] Plugins patches for 2026-01-28

Pierrick Bouvier posted 20 patches 1 week, 4 days ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260129013134.3956938-1-pierrick.bouvier@linaro.org
Maintainers: "Alex Bennée" <alex.bennee@linaro.org>, Pierrick Bouvier <pierrick.bouvier@linaro.org>, Alexandre Iooss <erdnaxe@crans.org>, Mahmoud Mandour <ma.mandourr@gmail.com>, Richard Henderson <richard.henderson@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>, Riku Voipio <riku.voipio@iki.fi>, Laurent Vivier <laurent@vivier.eu>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Kostiantyn Kostiuk <kkostiuk@redhat.com>, Michael Roth <michael.roth@amd.com>
docs/about/emulation.rst                         |  12 +++
docs/devel/tcg-plugins.rst                       |   4 +-
meson.build                                      |  26 ++---
include/{qemu => plugins}/qemu-plugin.h          |  62 +++++++++---
include/qemu/plugin-event.h                      |   1 +
include/qemu/plugin.h                            |  35 +++++--
include/user/syscall-trace.h                     |  17 ++++
contrib/plugins/execlog.c                        |  14 +--
contrib/plugins/hotblocks.c                      |  20 ++--
contrib/plugins/uftrace.c                        |   8 +-
linux-user/syscall.c                             |   7 +-
plugins/api.c                                    |  36 ++++---
plugins/core.c                                   |  39 +++++++-
{contrib/plugins => plugins}/win32_linker.c      |   0
tests/tcg/multiarch/test-plugin-syscall-filter.c |  39 ++++++++
tests/tcg/plugins/insn.c                         |   4 +-
tests/tcg/plugins/mem.c                          |  59 +++++------
tests/tcg/plugins/syscall.c                      |  19 ++++
contrib/plugins/cpp.cpp                          | 119 +++++++++++++++++++++++
contrib/plugins/meson.build                      |  38 +++++---
plugins/meson.build                              |  17 +++-
qga/vss-win32/requester.cpp                      |   6 +-
tests/tcg/multiarch/Makefile.target              |   7 +-
tests/tcg/plugins/meson.build                    |  27 ++---
24 files changed, 478 insertions(+), 138 deletions(-)
rename include/{qemu => plugins}/qemu-plugin.h (95%)
rename {contrib/plugins => plugins}/win32_linker.c (100%)
create mode 100644 tests/tcg/multiarch/test-plugin-syscall-filter.c
create mode 100644 contrib/plugins/cpp.cpp
[PULL 00/20] Plugins patches for 2026-01-28
Posted by Pierrick Bouvier 1 week, 4 days ago
The following changes since commit 9ad7f544c696d73ce377bbad83f3cf8b4dd8dcac:

  Merge tag 'pull-request-2026-01-27' of https://gitlab.com/thuth/qemu into staging (2026-01-28 10:04:17 +1100)

are available in the Git repository at:

  https://gitlab.com/pbo-linaro/qemu tags/pr-plugins-20260128

for you to fetch changes up to 2ddf77d673174d7a5c9ba0bb855cad664225d7c3:

  plugins: reduce source conflicts in plugins list (2026-01-28 16:41:59 -0800)

----------------------------------------------------------------
Changes:
- contrib/plugins/hotblocks: Minor bug fixes and add limit argument (Alex Bradbury <asb@igalia.com>)
- linux-user: introduce syscall-filter plugin API (Ziyang Zhang <functioner@sjtu.edu.cn>)
- plugins: return bool from register r/w API (Florian Hofhammer <florian.hofhammer@fhofhammer.de>)
- plugins: enable C++ plugins (Pierrick Bouvier <pierrick.bouvier@linaro.org>)
- plugins: reduce source conflicts in plugins list (Pierrick Bouvier <pierrick.bouvier@linaro.org>)

----------------------------------------------------------------
Alex Bradbury (5):
      contrib/plugins/hotblocks: Correctly free sorted counts list
      contrib/plugins/hotblocks: Fix off by one error in iteration of sorted blocks
      contrib/plugins/hotblocks: Print uint64_t with PRIu64 rather than PRId64
      docs/about/emulation: Add documentation for hotblocks plugin arguments
      contrib/plugins/hotblocks: Allow limit to be set as a command line argument

Florian Hofhammer (1):
      plugins: return bool from register r/w API

Pierrick Bouvier (12):
      plugins: move win32_linker.c file to plugins directory
      plugins: factorize plugin dependencies and library details
      plugins: use complete filename for defining plugins sources
      plugins: define plugin API symbols as extern "C" when compiling in C++
      tests/tcg/plugins/mem.c: remove dependency on qemu headers
      plugins: move qemu-plugin.h to include/plugins/
      meson: fix supported compiler arguments in other languages than C
      meson: enable cpp (optionally) for plugins
      qga/vss-win32: fix clang warning with C++20
      meson: update C++ standard to C++23
      contrib/plugins: add empty cpp plugin
      plugins: reduce source conflicts in plugins list

Ziyang Zhang (2):
      linux-user: add plugin API to filter syscalls
      tcg tests: add a test to verify the syscall filter plugin API

 docs/about/emulation.rst                         |  12 +++
 docs/devel/tcg-plugins.rst                       |   4 +-
 meson.build                                      |  26 ++---
 include/{qemu => plugins}/qemu-plugin.h          |  62 +++++++++---
 include/qemu/plugin-event.h                      |   1 +
 include/qemu/plugin.h                            |  35 +++++--
 include/user/syscall-trace.h                     |  17 ++++
 contrib/plugins/execlog.c                        |  14 +--
 contrib/plugins/hotblocks.c                      |  20 ++--
 contrib/plugins/uftrace.c                        |   8 +-
 linux-user/syscall.c                             |   7 +-
 plugins/api.c                                    |  36 ++++---
 plugins/core.c                                   |  39 +++++++-
 {contrib/plugins => plugins}/win32_linker.c      |   0
 tests/tcg/multiarch/test-plugin-syscall-filter.c |  39 ++++++++
 tests/tcg/plugins/insn.c                         |   4 +-
 tests/tcg/plugins/mem.c                          |  59 +++++------
 tests/tcg/plugins/syscall.c                      |  19 ++++
 contrib/plugins/cpp.cpp                          | 119 +++++++++++++++++++++++
 contrib/plugins/meson.build                      |  38 +++++---
 plugins/meson.build                              |  17 +++-
 qga/vss-win32/requester.cpp                      |   6 +-
 tests/tcg/multiarch/Makefile.target              |   7 +-
 tests/tcg/plugins/meson.build                    |  27 ++---
 24 files changed, 478 insertions(+), 138 deletions(-)
 rename include/{qemu => plugins}/qemu-plugin.h (95%)
 rename {contrib/plugins => plugins}/win32_linker.c (100%)
 create mode 100644 tests/tcg/multiarch/test-plugin-syscall-filter.c
 create mode 100644 contrib/plugins/cpp.cpp
Re: [PULL 00/20] Plugins patches for 2026-01-28
Posted by Pierrick Bouvier 1 week, 4 days ago
On 1/28/26 5:31 PM, Pierrick Bouvier wrote:
> The following changes since commit 9ad7f544c696d73ce377bbad83f3cf8b4dd8dcac:
> 
>    Merge tag 'pull-request-2026-01-27' of https://gitlab.com/thuth/qemu into staging (2026-01-28 10:04:17 +1100)
> 
> are available in the Git repository at:
> 
>    https://gitlab.com/pbo-linaro/qemu tags/pr-plugins-20260128
> 
> for you to fetch changes up to 2ddf77d673174d7a5c9ba0bb855cad664225d7c3:
> 
>    plugins: reduce source conflicts in plugins list (2026-01-28 16:41:59 -0800)
> 
> ----------------------------------------------------------------
> Changes:
> - contrib/plugins/hotblocks: Minor bug fixes and add limit argument (Alex Bradbury <asb@igalia.com>)
> - linux-user: introduce syscall-filter plugin API (Ziyang Zhang <functioner@sjtu.edu.cn>)
> - plugins: return bool from register r/w API (Florian Hofhammer <florian.hofhammer@fhofhammer.de>)
> - plugins: enable C++ plugins (Pierrick Bouvier <pierrick.bouvier@linaro.org>)
> - plugins: reduce source conflicts in plugins list (Pierrick Bouvier <pierrick.bouvier@linaro.org>)
> 
> ----------------------------------------------------------------
> Alex Bradbury (5):
>        contrib/plugins/hotblocks: Correctly free sorted counts list
>        contrib/plugins/hotblocks: Fix off by one error in iteration of sorted blocks
>        contrib/plugins/hotblocks: Print uint64_t with PRIu64 rather than PRId64
>        docs/about/emulation: Add documentation for hotblocks plugin arguments
>        contrib/plugins/hotblocks: Allow limit to be set as a command line argument
> 
> Florian Hofhammer (1):
>        plugins: return bool from register r/w API
> 
> Pierrick Bouvier (12):
>        plugins: move win32_linker.c file to plugins directory
>        plugins: factorize plugin dependencies and library details
>        plugins: use complete filename for defining plugins sources
>        plugins: define plugin API symbols as extern "C" when compiling in C++
>        tests/tcg/plugins/mem.c: remove dependency on qemu headers
>        plugins: move qemu-plugin.h to include/plugins/
>        meson: fix supported compiler arguments in other languages than C
>        meson: enable cpp (optionally) for plugins
>        qga/vss-win32: fix clang warning with C++20
>        meson: update C++ standard to C++23
>        contrib/plugins: add empty cpp plugin
>        plugins: reduce source conflicts in plugins list
> 
> Ziyang Zhang (2):
>        linux-user: add plugin API to filter syscalls
>        tcg tests: add a test to verify the syscall filter plugin API
> 
>   docs/about/emulation.rst                         |  12 +++
>   docs/devel/tcg-plugins.rst                       |   4 +-
>   meson.build                                      |  26 ++---
>   include/{qemu => plugins}/qemu-plugin.h          |  62 +++++++++---
>   include/qemu/plugin-event.h                      |   1 +
>   include/qemu/plugin.h                            |  35 +++++--
>   include/user/syscall-trace.h                     |  17 ++++
>   contrib/plugins/execlog.c                        |  14 +--
>   contrib/plugins/hotblocks.c                      |  20 ++--
>   contrib/plugins/uftrace.c                        |   8 +-
>   linux-user/syscall.c                             |   7 +-
>   plugins/api.c                                    |  36 ++++---
>   plugins/core.c                                   |  39 +++++++-
>   {contrib/plugins => plugins}/win32_linker.c      |   0
>   tests/tcg/multiarch/test-plugin-syscall-filter.c |  39 ++++++++
>   tests/tcg/plugins/insn.c                         |   4 +-
>   tests/tcg/plugins/mem.c                          |  59 +++++------
>   tests/tcg/plugins/syscall.c                      |  19 ++++
>   contrib/plugins/cpp.cpp                          | 119 +++++++++++++++++++++++
>   contrib/plugins/meson.build                      |  38 +++++---
>   plugins/meson.build                              |  17 +++-
>   qga/vss-win32/requester.cpp                      |   6 +-
>   tests/tcg/multiarch/Makefile.target              |   7 +-
>   tests/tcg/plugins/meson.build                    |  27 ++---
>   24 files changed, 478 insertions(+), 138 deletions(-)
>   rename include/{qemu => plugins}/qemu-plugin.h (95%)
>   rename {contrib/plugins => plugins}/win32_linker.c (100%)
>   create mode 100644 tests/tcg/multiarch/test-plugin-syscall-filter.c
>   create mode 100644 contrib/plugins/cpp.cpp

Note: There is a regression upstream with native windows builds where:

$ ./configure
Looking in links: file://C:/GitLab-Runner/builds/qemu/python/wheels
WARNING: Location 'file://C:/GitLab-Runner/builds/qemu/python/wheels' is 
ignored: it is neither a file nor a directory.
ERROR: Could not find a version that satisfies the requirement 
meson==1.10.0 (from versions: none)

This is not related to this series, and seems like an MSYS bug.

This series has been previously tested on Windows natively and it works 
as expected.

Regards,
Pierrick
Re: [PULL 00/20] Plugins patches for 2026-01-28
Posted by Pierrick Bouvier 1 week, 3 days ago
On 1/28/26 5:31 PM, Pierrick Bouvier wrote:
> The following changes since commit 9ad7f544c696d73ce377bbad83f3cf8b4dd8dcac:
> 
>    Merge tag 'pull-request-2026-01-27' of https://gitlab.com/thuth/qemu into staging (2026-01-28 10:04:17 +1100)
> 
> are available in the Git repository at:
> 
>    https://gitlab.com/pbo-linaro/qemu tags/pr-plugins-20260128
> 
> for you to fetch changes up to 2ddf77d673174d7a5c9ba0bb855cad664225d7c3:
> 
>    plugins: reduce source conflicts in plugins list (2026-01-28 16:41:59 -0800)
> 
> ----------------------------------------------------------------
> Changes:
> - contrib/plugins/hotblocks: Minor bug fixes and add limit argument (Alex Bradbury <asb@igalia.com>)
> - linux-user: introduce syscall-filter plugin API (Ziyang Zhang <functioner@sjtu.edu.cn>)
> - plugins: return bool from register r/w API (Florian Hofhammer <florian.hofhammer@fhofhammer.de>)
> - plugins: enable C++ plugins (Pierrick Bouvier <pierrick.bouvier@linaro.org>)
> - plugins: reduce source conflicts in plugins list (Pierrick Bouvier <pierrick.bouvier@linaro.org>)
> 
> ----------------------------------------------------------------
> Alex Bradbury (5):
>        contrib/plugins/hotblocks: Correctly free sorted counts list
>        contrib/plugins/hotblocks: Fix off by one error in iteration of sorted blocks
>        contrib/plugins/hotblocks: Print uint64_t with PRIu64 rather than PRId64
>        docs/about/emulation: Add documentation for hotblocks plugin arguments
>        contrib/plugins/hotblocks: Allow limit to be set as a command line argument
> 
> Florian Hofhammer (1):
>        plugins: return bool from register r/w API
> 
> Pierrick Bouvier (12):
>        plugins: move win32_linker.c file to plugins directory
>        plugins: factorize plugin dependencies and library details
>        plugins: use complete filename for defining plugins sources
>        plugins: define plugin API symbols as extern "C" when compiling in C++
>        tests/tcg/plugins/mem.c: remove dependency on qemu headers
>        plugins: move qemu-plugin.h to include/plugins/
>        meson: fix supported compiler arguments in other languages than C
>        meson: enable cpp (optionally) for plugins
>        qga/vss-win32: fix clang warning with C++20
>        meson: update C++ standard to C++23
>        contrib/plugins: add empty cpp plugin
>        plugins: reduce source conflicts in plugins list
> 
> Ziyang Zhang (2):
>        linux-user: add plugin API to filter syscalls
>        tcg tests: add a test to verify the syscall filter plugin API
> 
>   docs/about/emulation.rst                         |  12 +++
>   docs/devel/tcg-plugins.rst                       |   4 +-
>   meson.build                                      |  26 ++---
>   include/{qemu => plugins}/qemu-plugin.h          |  62 +++++++++---
>   include/qemu/plugin-event.h                      |   1 +
>   include/qemu/plugin.h                            |  35 +++++--
>   include/user/syscall-trace.h                     |  17 ++++
>   contrib/plugins/execlog.c                        |  14 +--
>   contrib/plugins/hotblocks.c                      |  20 ++--
>   contrib/plugins/uftrace.c                        |   8 +-
>   linux-user/syscall.c                             |   7 +-
>   plugins/api.c                                    |  36 ++++---
>   plugins/core.c                                   |  39 +++++++-
>   {contrib/plugins => plugins}/win32_linker.c      |   0
>   tests/tcg/multiarch/test-plugin-syscall-filter.c |  39 ++++++++
>   tests/tcg/plugins/insn.c                         |   4 +-
>   tests/tcg/plugins/mem.c                          |  59 +++++------
>   tests/tcg/plugins/syscall.c                      |  19 ++++
>   contrib/plugins/cpp.cpp                          | 119 +++++++++++++++++++++++
>   contrib/plugins/meson.build                      |  38 +++++---
>   plugins/meson.build                              |  17 +++-
>   qga/vss-win32/requester.cpp                      |   6 +-
>   tests/tcg/multiarch/Makefile.target              |   7 +-
>   tests/tcg/plugins/meson.build                    |  27 ++---
>   24 files changed, 478 insertions(+), 138 deletions(-)
>   rename include/{qemu => plugins}/qemu-plugin.h (95%)
>   rename {contrib/plugins => plugins}/win32_linker.c (100%)
>   create mode 100644 tests/tcg/multiarch/test-plugin-syscall-filter.c
>   create mode 100644 contrib/plugins/cpp.cpp

v2 sent:
https://lore.kernel.org/qemu-devel/20260129173811.138036-1-pierrick.bouvier@linaro.org/T/#t