From: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
To: openembedded-core@lists.openembedded.org
Cc: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Subject: [PATCH v2 1/3] qemu: make tracetool-generated output reproducible
Date: Tue, 4 Apr 2023 20:34:03 +0200 [thread overview]
Message-ID: <20230404183405.14769-1-thomas.de_schampheleire@nokia.com> (raw)
'#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
next reply other threads:[~2023-04-04 18:34 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-04 18:34 Thomas De Schampheleire [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230404183405.14769-1-thomas.de_schampheleire@nokia.com \
--to=thomas.de_schampheleire@nokia.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox