[PATCH 5/7] plugins: fix inclusion of user-mode APIs

Alex Bennée posted 7 patches 4 months, 1 week ago
Maintainers: "Alex Bennée" <alex.bennee@linaro.org>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Thomas Huth <thuth@redhat.com>, Riku Voipio <riku.voipio@iki.fi>, Laurent Vivier <laurent@vivier.eu>, Alexandre Iooss <erdnaxe@crans.org>, Mahmoud Mandour <ma.mandourr@gmail.com>, Pierrick Bouvier <pierrick.bouvier@linaro.org>, Jason Wang <jasowang@redhat.com>, Richard Henderson <richard.henderson@linaro.org>
[PATCH 5/7] plugins: fix inclusion of user-mode APIs
Posted by Alex Bennée 4 months, 1 week ago
In 903e870f24 (plugins/api: split out binary path/start/end/entry
code) we didn't actually enable the building of the new plugin helper.
However this was missed because only contrib plugins like drcov
actually used the helpers.

With that fixed we discover we also need some more includes to be able
to extract the relevant data from TaskState.

Fixes: 903e870f24 (plugins/api: split out binary path/start/end/entry code)
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3014
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 linux-user/plugin-api.c      | 1 +
 common-user/plugin-api.c.inc | 1 +
 linux-user/meson.build       | 5 ++++-
 3 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/linux-user/plugin-api.c b/linux-user/plugin-api.c
index 66755df526..8d6fbb60e0 100644
--- a/linux-user/plugin-api.c
+++ b/linux-user/plugin-api.c
@@ -12,4 +12,5 @@
 
 #include "qemu/osdep.h"
 #include "qemu.h"
+#include "loader.h"
 #include "common-user/plugin-api.c.inc"
diff --git a/common-user/plugin-api.c.inc b/common-user/plugin-api.c.inc
index 5b8a1396b6..63f3983271 100644
--- a/common-user/plugin-api.c.inc
+++ b/common-user/plugin-api.c.inc
@@ -13,6 +13,7 @@
 #include "qemu/osdep.h"
 #include "qemu/main-loop.h"
 #include "qemu/plugin.h"
+#include "accel/tcg/vcpu-state.h"
 #include "qemu.h"
 
 /*
diff --git a/linux-user/meson.build b/linux-user/meson.build
index f47a213ca3..efca843369 100644
--- a/linux-user/meson.build
+++ b/linux-user/meson.build
@@ -27,7 +27,10 @@ linux_user_ss.add(libdw)
 linux_user_ss.add(when: 'TARGET_HAS_BFLT', if_true: files('flatload.c'))
 linux_user_ss.add(when: 'TARGET_I386', if_true: files('vm86.c'))
 linux_user_ss.add(when: 'CONFIG_ARM_COMPATIBLE_SEMIHOSTING', if_true: files('semihost.c'))
-linux_user_ss.add(when: 'CONFIG_TCG_PLUGINS', if_true: files('plugin-api.c'))
+
+if get_option('plugins')
+  linux_user_ss.add(files('plugin-api.c'))
+endif
 
 syscall_nr_generators = {}
 
-- 
2.47.2


Re: [PATCH 5/7] plugins: fix inclusion of user-mode APIs
Posted by Pierrick Bouvier 4 months, 1 week ago
On 7/10/25 3:45 AM, Alex Bennée wrote:
> In 903e870f24 (plugins/api: split out binary path/start/end/entry
> code) we didn't actually enable the building of the new plugin helper.
> However this was missed because only contrib plugins like drcov
> actually used the helpers.
> 
> With that fixed we discover we also need some more includes to be able
> to extract the relevant data from TaskState.
> 
> Fixes: 903e870f24 (plugins/api: split out binary path/start/end/entry code)
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3014
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>   linux-user/plugin-api.c      | 1 +
>   common-user/plugin-api.c.inc | 1 +
>   linux-user/meson.build       | 5 ++++-
>   3 files changed, 6 insertions(+), 1 deletion(-)

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>