[PATCH 00/10] plugins: reduce total number of build objects

Alex Bennée posted 10 patches 1 month ago
include/qemu/plugin-memory.h |   1 -
plugins/plugin.h             |   7 ++
linux-user/plugin-api.c      |  43 +++++++++
plugins/api-system.c         | 131 +++++++++++++++++++++++++++
plugins/api-user.c           |  57 ++++++++++++
plugins/api.c                | 170 +----------------------------------
plugins/loader.c             |  15 +---
plugins/system.c             |  24 +++++
plugins/user.c               |  19 ++++
linux-user/meson.build       |   1 +
plugins/meson.build          |   8 +-
11 files changed, 292 insertions(+), 184 deletions(-)
create mode 100644 linux-user/plugin-api.c
create mode 100644 plugins/api-system.c
create mode 100644 plugins/api-user.c
create mode 100644 plugins/system.c
create mode 100644 plugins/user.c
[PATCH 00/10] plugins: reduce total number of build objects
Posted by Alex Bennée 1 month ago
As we move towards a more modular build this series converts both
loader and api to build once objects. For both objects the only real
difference is between user mode and system emulation so those bits
have been hived off into those source sets.

The remaining core plugin is more intimately aligned with the TCG
backend so requires definitions like TCG_TARGET_LONG. Hopefully this
can been cleaned up once Richards TCG rationalisation code is added.

Please review.

Alex.

Alex Bennée (10):
  plugins/api: use tcg_ctx to get TARGET_PAGE_MASK
  plugins/loader: populate target_name with target_name()
  include/qemu: plugin-memory.h doesn't need cpu-defs.h
  plugins/api: clean-up the includes
  plugins/plugin.h: include queue.h
  plugins/loader: compile loader only once
  plugins/api: split out binary path/start/end/entry code
  plugins/api: split out the vaddr/hwaddr helpers
  plugins/api: split out time control helpers
  plugins/api: build only once

 include/qemu/plugin-memory.h |   1 -
 plugins/plugin.h             |   7 ++
 linux-user/plugin-api.c      |  43 +++++++++
 plugins/api-system.c         | 131 +++++++++++++++++++++++++++
 plugins/api-user.c           |  57 ++++++++++++
 plugins/api.c                | 170 +----------------------------------
 plugins/loader.c             |  15 +---
 plugins/system.c             |  24 +++++
 plugins/user.c               |  19 ++++
 linux-user/meson.build       |   1 +
 plugins/meson.build          |   8 +-
 11 files changed, 292 insertions(+), 184 deletions(-)
 create mode 100644 linux-user/plugin-api.c
 create mode 100644 plugins/api-system.c
 create mode 100644 plugins/api-user.c
 create mode 100644 plugins/system.c
 create mode 100644 plugins/user.c

-- 
2.39.5


Re: [PATCH 00/10] plugins: reduce total number of build objects
Posted by Pierrick Bouvier 1 month ago
Hi Alex,

On 2/25/25 03:08, Alex Bennée wrote:
> As we move towards a more modular build this series converts both
> loader and api to build once objects. For both objects the only real
> difference is between user mode and system emulation so those bits
> have been hived off into those source sets.
> 
> The remaining core plugin is more intimately aligned with the TCG
> backend so requires definitions like TCG_TARGET_LONG. Hopefully this
> can been cleaned up once Richards TCG rationalisation code is added.
> 
> Please review.
> 
> Alex.
> 
> Alex Bennée (10):
>    plugins/api: use tcg_ctx to get TARGET_PAGE_MASK
>    plugins/loader: populate target_name with target_name()
>    include/qemu: plugin-memory.h doesn't need cpu-defs.h
>    plugins/api: clean-up the includes
>    plugins/plugin.h: include queue.h
>    plugins/loader: compile loader only once
>    plugins/api: split out binary path/start/end/entry code
>    plugins/api: split out the vaddr/hwaddr helpers
>    plugins/api: split out time control helpers
>    plugins/api: build only once
> 

for all the series:
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>

Additionnally, I would suggest to go further and merge functions for 
system and user mode, by checking at runtime what is the mode, by 
introducing a helper function for that. This way, all files can be 
really linked together, without having to select a different set of 
sources depending on which binary is built.

Regards,
Pierrick

>   include/qemu/plugin-memory.h |   1 -
>   plugins/plugin.h             |   7 ++
>   linux-user/plugin-api.c      |  43 +++++++++
>   plugins/api-system.c         | 131 +++++++++++++++++++++++++++
>   plugins/api-user.c           |  57 ++++++++++++
>   plugins/api.c                | 170 +----------------------------------
>   plugins/loader.c             |  15 +---
>   plugins/system.c             |  24 +++++
>   plugins/user.c               |  19 ++++
>   linux-user/meson.build       |   1 +
>   plugins/meson.build          |   8 +-
>   11 files changed, 292 insertions(+), 184 deletions(-)
>   create mode 100644 linux-user/plugin-api.c
>   create mode 100644 plugins/api-system.c
>   create mode 100644 plugins/api-user.c
>   create mode 100644 plugins/system.c
>   create mode 100644 plugins/user.c
>