63 lines
2.0 KiB
Diff
63 lines
2.0 KiB
Diff
|
|
From 84321dcfb4ec3d08984e7680c8efad80907bde84 Mon Sep 17 00:00:00 2001
|
||
|
|
From: =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>
|
||
|
|
Date: Mon, 29 Jul 2024 15:44:13 +0100
|
||
|
|
Subject: [PATCH] contrib/plugins: add compat for g_memdup2
|
||
|
|
MIME-Version: 1.0
|
||
|
|
Content-Type: text/plain; charset=UTF-8
|
||
|
|
Content-Transfer-Encoding: 8bit
|
||
|
|
|
||
|
|
We were premature if bumping this because some of our builds are still
|
||
|
|
on older glibs. Just copy the compat handler for now and we can remove
|
||
|
|
it later.
|
||
|
|
|
||
|
|
Fixes: ee293103b0 (plugins: update lockstep to use g_memdup2)
|
||
|
|
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2161
|
||
|
|
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
|
||
|
|
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
|
||
|
|
Message-Id: <20240729144414.830369-14-alex.bennee@linaro.org>
|
||
|
|
(cherry picked from commit 44e794896759236885f6d30d1f6b9b8b76355d52)
|
||
|
|
Signed-off-by: zhujun2 <zhujun2_yewu@cmss.chinamobile.com>
|
||
|
|
---
|
||
|
|
contrib/plugins/lockstep.c | 25 +++++++++++++++++++++++++
|
||
|
|
1 file changed, 25 insertions(+)
|
||
|
|
|
||
|
|
diff --git a/contrib/plugins/lockstep.c b/contrib/plugins/lockstep.c
|
||
|
|
index 237543b43a..0c6f060183 100644
|
||
|
|
--- a/contrib/plugins/lockstep.c
|
||
|
|
+++ b/contrib/plugins/lockstep.c
|
||
|
|
@@ -100,6 +100,31 @@ static void plugin_exit(qemu_plugin_id_t id, void *p)
|
||
|
|
plugin_cleanup(id);
|
||
|
|
}
|
||
|
|
|
||
|
|
+/*
|
||
|
|
+ * g_memdup has been deprecated in Glib since 2.68 and
|
||
|
|
+ * will complain about it if you try to use it. However until
|
||
|
|
+ * glib_req_ver for QEMU is bumped we make a copy of the glib-compat
|
||
|
|
+ * handler.
|
||
|
|
+ */
|
||
|
|
+static inline gpointer g_memdup2_qemu(gconstpointer mem, gsize byte_size)
|
||
|
|
+{
|
||
|
|
+#if GLIB_CHECK_VERSION(2, 68, 0)
|
||
|
|
+ return g_memdup2(mem, byte_size);
|
||
|
|
+#else
|
||
|
|
+ gpointer new_mem;
|
||
|
|
+
|
||
|
|
+ if (mem && byte_size != 0) {
|
||
|
|
+ new_mem = g_malloc(byte_size);
|
||
|
|
+ memcpy(new_mem, mem, byte_size);
|
||
|
|
+ } else {
|
||
|
|
+ new_mem = NULL;
|
||
|
|
+ }
|
||
|
|
+
|
||
|
|
+ return new_mem;
|
||
|
|
+#endif
|
||
|
|
+}
|
||
|
|
+#define g_memdup2(m, s) g_memdup2_qemu(m, s)
|
||
|
|
+
|
||
|
|
static void report_divergance(ExecState *us, ExecState *them)
|
||
|
|
{
|
||
|
|
DivergeState divrec = { log, 0 };
|
||
|
|
--
|
||
|
|
2.41.0.windows.1
|
||
|
|
|