* [PATCH v2 1/3] qemu: make tracetool-generated output reproducible
@ 2023-04-04 18:34 Thomas De Schampheleire
2023-04-04 18:34 ` [PATCH v2 2/3] qemu: retain default trace backend if 'ust' is not enabled Thomas De Schampheleire
2023-04-04 18:34 ` [PATCH v2 3/3] qemu: rename deprecated --enable-trace-backend configure option Thomas De Schampheleire
0 siblings, 2 replies; 3+ messages in thread
From: Thomas De Schampheleire @ 2023-04-04 18:34 UTC (permalink / raw)
To: openembedded-core; +Cc: Thomas De Schampheleire
'#line' directives written by qemu's tracetool makes the 'debug' package not
reproducible due to absolute paths. Apply a patch to use a relative path
instead.
Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
---
meta/recipes-devtools/qemu/qemu.inc | 1 +
...lative-paths-for-line-preprocessor-d.patch | 87 +++++++++++++++++++
2 files changed, 88 insertions(+)
create mode 100644 meta/recipes-devtools/qemu/qemu/0001-tracetool-use-relative-paths-for-line-preprocessor-d.patch
diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
index b41055fe5d..36b2f14638 100644
--- a/meta/recipes-devtools/qemu/qemu.inc
+++ b/meta/recipes-devtools/qemu/qemu.inc
@@ -32,6 +32,7 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \
file://0001-configure-Fix-check-tcg-not-executing-any-tests.patch \
file://0001-Revert-linux-user-add-more-compat-ioctl-definitions.patch \
file://0002-Revert-linux-user-fix-compat-with-glibc-2.36-sys-mou.patch \
+ file://0001-tracetool-use-relative-paths-for-line-preprocessor-d.patch \
file://qemu-guest-agent.init \
file://qemu-guest-agent.udev \
"
diff --git a/meta/recipes-devtools/qemu/qemu/0001-tracetool-use-relative-paths-for-line-preprocessor-d.patch b/meta/recipes-devtools/qemu/qemu/0001-tracetool-use-relative-paths-for-line-preprocessor-d.patch
new file mode 100644
index 0000000000..5ef1184e3c
--- /dev/null
+++ b/meta/recipes-devtools/qemu/qemu/0001-tracetool-use-relative-paths-for-line-preprocessor-d.patch
@@ -0,0 +1,87 @@
+From 348ea441db84a211d4fca7ef5544b5cd06a8a872 Mon Sep 17 00:00:00 2001
+From: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
+Date: Tue, 4 Apr 2023 15:26:07 +0200
+Subject: [PATCH] tracetool: use relative paths for '#line' preprocessor
+ directives
+
+The event filename is an absolute path. Convert it to a relative path when
+writing '#line' directives, to preserve reproducibility of the generated
+output when different base paths are used.
+
+Upstream-Status: Pending
+
+---
+ scripts/tracetool/backend/ftrace.py | 4 +++-
+ scripts/tracetool/backend/log.py | 4 +++-
+ scripts/tracetool/backend/syslog.py | 4 +++-
+ 3 files changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/scripts/tracetool/backend/ftrace.py b/scripts/tracetool/backend/ftrace.py
+index 5fa30ccc08..baed2ae61c 100644
+--- a/scripts/tracetool/backend/ftrace.py
++++ b/scripts/tracetool/backend/ftrace.py
+@@ -12,6 +12,8 @@
+ __email__ = "stefanha@redhat.com"
+
+
++import os.path
++
+ from tracetool import out
+
+
+@@ -45,7 +47,7 @@ def generate_h(event, group):
+ args=event.args,
+ event_id="TRACE_" + event.name.upper(),
+ event_lineno=event.lineno,
+- event_filename=event.filename,
++ event_filename=os.path.relpath(event.filename),
+ fmt=event.fmt.rstrip("\n"),
+ argnames=argnames)
+
+diff --git a/scripts/tracetool/backend/log.py b/scripts/tracetool/backend/log.py
+index 17ba1cd90e..de27b7e62e 100644
+--- a/scripts/tracetool/backend/log.py
++++ b/scripts/tracetool/backend/log.py
+@@ -12,6 +12,8 @@
+ __email__ = "stefanha@redhat.com"
+
+
++import os.path
++
+ from tracetool import out
+
+
+@@ -53,7 +55,7 @@ def generate_h(event, group):
+ ' }',
+ cond=cond,
+ event_lineno=event.lineno,
+- event_filename=event.filename,
++ event_filename=os.path.relpath(event.filename),
+ name=event.name,
+ fmt=event.fmt.rstrip("\n"),
+ argnames=argnames)
+diff --git a/scripts/tracetool/backend/syslog.py b/scripts/tracetool/backend/syslog.py
+index 5a3a00fe31..012970f6cc 100644
+--- a/scripts/tracetool/backend/syslog.py
++++ b/scripts/tracetool/backend/syslog.py
+@@ -12,6 +12,8 @@
+ __email__ = "stefanha@redhat.com"
+
+
++import os.path
++
+ from tracetool import out
+
+
+@@ -41,7 +43,7 @@ def generate_h(event, group):
+ ' }',
+ cond=cond,
+ event_lineno=event.lineno,
+- event_filename=event.filename,
++ event_filename=os.path.relpath(event.filename),
+ name=event.name,
+ fmt=event.fmt.rstrip("\n"),
+ argnames=argnames)
+--
+2.39.2
+
--
2.39.2
^ permalink raw reply related [flat|nested] 3+ messages in thread* [PATCH v2 2/3] qemu: retain default trace backend if 'ust' is not enabled
2023-04-04 18:34 [PATCH v2 1/3] qemu: make tracetool-generated output reproducible Thomas De Schampheleire
@ 2023-04-04 18:34 ` Thomas De Schampheleire
2023-04-04 18:34 ` [PATCH v2 3/3] qemu: rename deprecated --enable-trace-backend configure option Thomas De Schampheleire
1 sibling, 0 replies; 3+ messages in thread
From: Thomas De Schampheleire @ 2023-04-04 18:34 UTC (permalink / raw)
To: openembedded-core; +Cc: Thomas De Schampheleire
The qemu build system enables the 'log' trace backend by default, if no
explicit choice was made with '--enable-trace-backend=CHOICE'.
However, the qemu recipe uses the following PACKAGECONFIG line:
PACKAGECONFIG[ust] = "--enable-trace-backend=ust,--enable-trace-backend=nop,lttng-ust,"
which means that the 'nop' trace backend will be explicitly selected if the
'ust' feature is not enabled. The 'nop' backend removes almost all trace
points at compile time, and thus basically means 'disable tracing'.
To retain the default trace backend if 'ust' is not enabled, the above
PACKAGECONFIG line should either explicitly fall back to the 'log' backend,
or not provide any value for the 'disabled' case. This commit chooses the
latter to not make any assumption about the upstream default.
Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
---
meta/recipes-devtools/qemu/qemu.inc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
index 36b2f14638..10001c3e66 100644
--- a/meta/recipes-devtools/qemu/qemu.inc
+++ b/meta/recipes-devtools/qemu/qemu.inc
@@ -208,7 +208,7 @@ PACKAGECONFIG[libudev] = "--enable-libudev,--disable-libudev,eudev"
PACKAGECONFIG[attr] = "--enable-attr,--disable-attr,attr,"
PACKAGECONFIG[rbd] = "--enable-rbd,--disable-rbd,ceph,ceph"
PACKAGECONFIG[vhost] = "--enable-vhost-net,--disable-vhost-net,,"
-PACKAGECONFIG[ust] = "--enable-trace-backend=ust,--enable-trace-backend=nop,lttng-ust,"
+PACKAGECONFIG[ust] = "--enable-trace-backend=ust,,lttng-ust,"
PACKAGECONFIG[pie] = "--enable-pie,--disable-pie,,"
PACKAGECONFIG[seccomp] = "--enable-seccomp,--disable-seccomp,libseccomp"
# libnfs is currently provided by meta-kodi
--
2.39.2
^ permalink raw reply related [flat|nested] 3+ messages in thread* [PATCH v2 3/3] qemu: rename deprecated --enable-trace-backend configure option
2023-04-04 18:34 [PATCH v2 1/3] qemu: make tracetool-generated output reproducible Thomas De Schampheleire
2023-04-04 18:34 ` [PATCH v2 2/3] qemu: retain default trace backend if 'ust' is not enabled Thomas De Schampheleire
@ 2023-04-04 18:34 ` Thomas De Schampheleire
1 sibling, 0 replies; 3+ messages in thread
From: Thomas De Schampheleire @ 2023-04-04 18:34 UTC (permalink / raw)
To: openembedded-core; +Cc: Thomas De Schampheleire
qemu 6.2 deprecated the configure option '--enable-trace-backend' in favor
of '--enable-trace-backends' [1]
Rename accordingly.
[1] https://wiki.qemu.org/ChangeLog/6.2#Build_Information
Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
---
meta/recipes-devtools/qemu/qemu.inc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
index 10001c3e66..e2453dd8bc 100644
--- a/meta/recipes-devtools/qemu/qemu.inc
+++ b/meta/recipes-devtools/qemu/qemu.inc
@@ -208,7 +208,7 @@ PACKAGECONFIG[libudev] = "--enable-libudev,--disable-libudev,eudev"
PACKAGECONFIG[attr] = "--enable-attr,--disable-attr,attr,"
PACKAGECONFIG[rbd] = "--enable-rbd,--disable-rbd,ceph,ceph"
PACKAGECONFIG[vhost] = "--enable-vhost-net,--disable-vhost-net,,"
-PACKAGECONFIG[ust] = "--enable-trace-backend=ust,,lttng-ust,"
+PACKAGECONFIG[ust] = "--enable-trace-backends=ust,,lttng-ust,"
PACKAGECONFIG[pie] = "--enable-pie,--disable-pie,,"
PACKAGECONFIG[seccomp] = "--enable-seccomp,--disable-seccomp,libseccomp"
# libnfs is currently provided by meta-kodi
--
2.39.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-04-04 18:34 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-04 18:34 [PATCH v2 1/3] qemu: make tracetool-generated output reproducible Thomas De Schampheleire
2023-04-04 18:34 ` [PATCH v2 2/3] qemu: retain default trace backend if 'ust' is not enabled Thomas De Schampheleire
2023-04-04 18:34 ` [PATCH v2 3/3] qemu: rename deprecated --enable-trace-backend configure option Thomas De Schampheleire
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox