From: Kai Kang <[email protected]>
When PACKAGECONFIG ust is enabled for qemu, it fails to compile:
| In file included from trace/trace-ust-all.h:44179,
| from trace/trace-ust-all.c:13:
|
/path_to/qemu/6.2.0-r0/recipe-sysroot/usr/include/lttng/tracepoint-event.h:67:10:
error: #include expects "FILENAME" or <FILENAME>
| 67 | #include LTTNG_UST_TRACEPOINT_INCLUDE
| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
Backport upstream commit to fix it.
Signed-off-by: Kai Kang <[email protected]>
---
meta/recipes-devtools/qemu/qemu.inc | 1 +
...-fix-compilation-with-lttng-ust-2.13.patch | 75 +++++++++++++++++++
2 files changed, 76 insertions(+)
create mode 100644
meta/recipes-devtools/qemu/qemu/0001-trace-fix-compilation-with-lttng-ust-2.13.patch
diff --git a/meta/recipes-devtools/qemu/qemu.inc
b/meta/recipes-devtools/qemu/qemu.inc
index bee30cd56f..02afafc2e8 100644
--- a/meta/recipes-devtools/qemu/qemu.inc
+++ b/meta/recipes-devtools/qemu/qemu.inc
@@ -128,6 +128,7 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \
file://CVE-2024-3446-0005.patch \
file://CVE-2024-3446-0006.patch \
file://CVE-2024-3447.patch \
+ file://0001-trace-fix-compilation-with-lttng-ust-2.13.patch \
"
UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
diff --git
a/meta/recipes-devtools/qemu/qemu/0001-trace-fix-compilation-with-lttng-ust-2.13.patch
b/meta/recipes-devtools/qemu/qemu/0001-trace-fix-compilation-with-lttng-ust-2.13.patch
new file mode 100644
index 0000000000..d3cb19c839
--- /dev/null
+++
b/meta/recipes-devtools/qemu/qemu/0001-trace-fix-compilation-with-lttng-ust-2.13.patch
@@ -0,0 +1,75 @@
+From e32aaa5a19e24233180042f84a0235a209de71cc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <[email protected]>
+Date: Mon, 28 Mar 2022 12:47:13 +0400
+Subject: [PATCH] trace: fix compilation with lttng-ust >= 2.13
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+On Fedora 36, with lttng-ust 2.13.1, compilation fails with:
+
+In file included from trace/trace-ust-all.h:49085,
+ from trace/trace-ust-all.c:13:
+/usr/include/lttng/tracepoint-event.h:67:10: error: #include expects "FILENAME" or
<FILENAME>
+ 67 | #include LTTNG_UST_TRACEPOINT_INCLUDE
+ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+In lttng-ust commit 41858e2b6e8 ("Fix: don't do macro expansion in
+tracepoint file name") from 2012, starting from lttng-ust 2.1, the API
+was changed to expect TRACEPOINT_INCLUDE to be defined as a string.
+
+In lttng-ust commit d2966b4b0b2 ("Remove TRACEPOINT_INCLUDE_FILE
+macro"), in 2021, the compatibility macro was removed.
+
+Use the "new" API from 2012, and bump the version requirement to 2.1 to
+fix compilation with >= 2.13.
+
+According to repology, all distributions we support have >= 2.1 (centos
+8 has oldest with 2.8.1 afaict)
+
+Signed-off-by: Marc-André Lureau <[email protected]>
+Reviewed-by: Stefan Hajnoczi <[email protected]>
+Message-Id: <[email protected]>
+Signed-off-by: Thomas Huth <[email protected]>
+
+Upstream-Status: Backport [https://github.com/qemu/qemu/commit/e32aaa5]
+
+Signed-off-by: Kai Kang <[email protected]>
+---
+ meson.build | 4 ++--
+ scripts/tracetool/format/ust_events_h.py | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 04ce33fef1..861de93c4f 100644
+--- a/meson.build
++++ b/meson.build
+@@ -455,8 +455,8 @@ if 'CONFIG_GIO' in config_host
+ endif
+ lttng = not_found
+ if 'ust' in get_option('trace_backends')
+- lttng = dependency('lttng-ust', required: true, method: 'pkg-config',
+- kwargs: static_kwargs)
++ lttng = dependency('lttng-ust', required: true, version: '>= 2.1',
++ method: 'pkg-config', kwargs: static_kwargs)
+ endif
+ pixman = not_found
+ if have_system or have_tools
+diff --git a/scripts/tracetool/format/ust_events_h.py
b/scripts/tracetool/format/ust_events_h.py
+index 6ce559f6cc..b99fe6896b 100644
+--- a/scripts/tracetool/format/ust_events_h.py
++++ b/scripts/tracetool/format/ust_events_h.py
+@@ -29,8 +29,8 @@ def generate(events, backend, group):
+ '#undef TRACEPOINT_PROVIDER',
+ '#define TRACEPOINT_PROVIDER qemu',
+ '',
+- '#undef TRACEPOINT_INCLUDE_FILE',
+- '#define TRACEPOINT_INCLUDE_FILE ./%s' % include,
++ '#undef TRACEPOINT_INCLUDE',
++ '#define TRACEPOINT_INCLUDE "./%s"' % include,
+ '',
+ '#if !defined (TRACE_%s_GENERATED_UST_H) || \\' % group.upper(),
+ ' defined(TRACEPOINT_HEADER_MULTI_READ)',
+--
+2.47.1
+
--
2.47.0