diff mbox series

[kirkstone,1/2] qemu: fix compile error with lttng-ust

Message ID 20250219085502.2297068-1-kai.kang@windriver.com
State Changes Requested
Delegated to: Steve Sakoman
Headers show
Series [kirkstone,1/2] qemu: fix compile error with lttng-ust | expand

Commit Message

Kai Feb. 19, 2025, 8:55 a.m. UTC
From: Kai Kang <kai.kang@windriver.com>

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 <kai.kang@windriver.com>
---
 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

Comments

Steve Sakoman Feb. 19, 2025, 8:03 p.m. UTC | #1
Hi Kai,

I'm getting reproducibility errors with this patch set:

AssertionError: The following deb packages are missing or different
and not in exclusion list:
/srv/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/deb/./core2-64/qemu-src_6.2.0-r0_amd64.deb
The following ipk packages are missing or different and not in
exclusion list:
/srv/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/ipk/./core2-64/qemu-src_6.2.0-r0_core2-64.ipk
The following rpm packages are missing or different and not in
exclusion list:
/srv/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/rpm/./core2_64/qemu-src-6.2.0-r0.core2_64.rpm

The diffoscope output is here:

https://valkyrie.yocto.io/pub/repro-fail/oe-reproducible-20250219-aucltpnr/packages/diff-html/

It appears that full build machine paths are appearing in the packages
(see above link)

Steve

On Wed, Feb 19, 2025 at 12:55 AM Kai Kang via lists.openembedded.org
<kai.kang=windriver.com@lists.openembedded.org> wrote:
>
> From: Kai Kang <kai.kang@windriver.com>
>
> 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 <kai.kang@windriver.com>
> ---
>  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?= <marcandre.lureau@redhat.com>
> +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 <marcandre.lureau@redhat.com>
> +Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
> +Message-Id: <20220328084717.367993-2-marcandre.lureau@redhat.com>
> +Signed-off-by: Thomas Huth <thuth@redhat.com>
> +
> +Upstream-Status: Backport [https://github.com/qemu/qemu/commit/e32aaa5]
> +
> +Signed-off-by: Kai Kang <kai.kang@windriver.com>
> +---
> + 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
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#211689): https://lists.openembedded.org/g/openembedded-core/message/211689
> Mute This Topic: https://lists.openembedded.org/mt/111266608/3620601
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [steve@sakoman.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Kai Feb. 20, 2025, 5:38 a.m. UTC | #2
On 2/20/25 04:03, Steve Sakoman wrote:
> Hi Kai,
>
> I'm getting reproducibility errors with this patch set:
>
> AssertionError: The following deb packages are missing or different
> and not in exclusion list:
> /srv/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/deb/./core2-64/qemu-src_6.2.0-r0_amd64.deb
> The following ipk packages are missing or different and not in
> exclusion list:
> /srv/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/ipk/./core2-64/qemu-src_6.2.0-r0_core2-64.ipk
> The following rpm packages are missing or different and not in
> exclusion list:
> /srv/pokybuild/yocto-worker/reproducible/build/build-st/reproducibleB/tmp/deploy/rpm/./core2_64/qemu-src-6.2.0-r0.core2_64.rpm
>
> The diffoscope output is here:
>
> https://valkyrie.yocto.io/pub/repro-fail/oe-reproducible-20250219-aucltpnr/packages/diff-html/
>
> It appears that full build machine paths are appearing in the packages
> (see above link)

OK. I'll figure out the root cause.

Regards,
Kai

>
> Steve
>
> On Wed, Feb 19, 2025 at 12:55 AM Kai Kang via lists.openembedded.org
> <kai.kang=windriver.com@lists.openembedded.org> wrote:
>> From: Kai Kang <kai.kang@windriver.com>
>>
>> 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 <kai.kang@windriver.com>
>> ---
>>   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?= <marcandre.lureau@redhat.com>
>> +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 <marcandre.lureau@redhat.com>
>> +Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
>> +Message-Id: <20220328084717.367993-2-marcandre.lureau@redhat.com>
>> +Signed-off-by: Thomas Huth <thuth@redhat.com>
>> +
>> +Upstream-Status: Backport [https://github.com/qemu/qemu/commit/e32aaa5]
>> +
>> +Signed-off-by: Kai Kang <kai.kang@windriver.com>
>> +---
>> + 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
>>
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#211689): https://lists.openembedded.org/g/openembedded-core/message/211689
>> Mute This Topic: https://lists.openembedded.org/mt/111266608/3620601
>> Group Owner: openembedded-core+owner@lists.openembedded.org
>> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [steve@sakoman.com]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
diff mbox series

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?= <marcandre.lureau@redhat.com>
+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 <marcandre.lureau@redhat.com>
+Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
+Message-Id: <20220328084717.367993-2-marcandre.lureau@redhat.com>
+Signed-off-by: Thomas Huth <thuth@redhat.com>
+
+Upstream-Status: Backport [https://github.com/qemu/qemu/commit/e32aaa5]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ 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
+