[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 13/14] contrib/plugins: add compat for g_memdup2
From: |
Alex Bennée |
Subject: |
[PULL 13/14] contrib/plugins: add compat for g_memdup2 |
Date: |
Tue, 30 Jul 2024 17:22:36 +0100 |
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>
diff --git a/contrib/plugins/lockstep.c b/contrib/plugins/lockstep.c
index 6a7e9bbb39..62981d4e09 100644
--- a/contrib/plugins/lockstep.c
+++ b/contrib/plugins/lockstep.c
@@ -101,6 +101,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.39.2
- [PULL for 9.1-rc1 00/14] Minor bug fixes and documentation cleanups, Alex Bennée, 2024/07/30
- [PULL 02/14] gitlab: display /packages.txt in build jobs, Alex Bennée, 2024/07/30
- [PULL 03/14] tests/tcg: Use --noexecstack with assembler files, Alex Bennée, 2024/07/30
- [PULL 04/14] tests/tcg/loongarch64: Use --no-warn-rwx-segments to link system tests, Alex Bennée, 2024/07/30
- [PULL 05/14] tests/tcg: update README, Alex Bennée, 2024/07/30
- [PULL 01/14] gitlab: record installed packages in /packages.txt in containers, Alex Bennée, 2024/07/30
- [PULL 07/14] docs/devel: document how to run individual TCG tests, Alex Bennée, 2024/07/30
- [PULL 08/14] tests/avocado: remove tcg_plugins virt_mem_icount test, Alex Bennée, 2024/07/30
- [PULL 12/14] contrib/plugins: be more vocal building, Alex Bennée, 2024/07/30
- [PULL 06/14] docs/devel: update the testing introduction, Alex Bennée, 2024/07/30
- [PULL 13/14] contrib/plugins: add compat for g_memdup2,
Alex Bennée <=
- [PULL 11/14] contrib/plugins/cache.c: Remove redundant check of l2_access, Alex Bennée, 2024/07/30
- [PULL 14/14] plugin/loader: handle basic help query, Alex Bennée, 2024/07/30
- [PULL 09/14] tests/tcg: move test plugins into tcg subdir, Alex Bennée, 2024/07/30
- [PULL 10/14] docs: split TCG plugin usage from devel section, Alex Bennée, 2024/07/30
- Re: [PULL for 9.1-rc1 00/14] Minor bug fixes and documentation cleanups, Richard Henderson, 2024/07/31