[PATCH] tracetool: use relative paths for '#line' preprocessor directives

Thomas De Schampheleire posted 1 patch 1 year ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20230406080045.21696-1-thomas.de._5Fschampheleire@nokia.com
Maintainers: Stefan Hajnoczi <stefanha@redhat.com>
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(-)
[PATCH] tracetool: use relative paths for '#line' preprocessor directives
Posted by Thomas De Schampheleire 1 year ago
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.

Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
---
 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
Re: [PATCH] tracetool: use relative paths for '#line' preprocessor directives
Posted by Philippe Mathieu-Daudé 1 year ago
On 6/4/23 10:00, Thomas De Schampheleire wrote:
> 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.
> 
> Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
> ---
>   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(-)

Nice.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>

Re: [PATCH] tracetool: use relative paths for '#line' preprocessor directives
Posted by Stefan Hajnoczi 1 year ago
On Thu, 6 Apr 2023 at 09:22, Thomas De Schampheleire
<thomas.de_schampheleire@nokia.com> wrote:
>
> 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.
>
> Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
> ---
>  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(-)

Thanks, applied to my block-next tree:
https://gitlab.com/stefanha/qemu/-/tree/block-next

qemu.git/master is currently frozen for the 8.0 release. The latest
release candidate is -rc3 and the final release is imminent. I don't
want to risk breaking and delaying the release at this stage, so I
have queued up this patch for the 8.1 release cycle.

The timing is unlucky, I would have liked to still include this in the
8.0 release. Thank you for the patch!

Stefan