Am Do., 12. Juni 2025 um 21:35 Uhr schrieb Stefan Hajnoczi <stefa...@gmail.com>:
>
> On Sat, Jun 7, 2025 at 5:47 AM oltolm <oleg.tolmat...@gmail.com> wrote:
> >
> > Sorry, I forgot to cc the maintainers.
> >
> > The build failed when run on Windows. I replaced calls to Unix programs
> > like ´cat´, ´sed´ and ´true´ with calls to ´python´. I wrapped calls to
> > ´os.path.relpath´ in try-except because it can fail when the two paths
> > are on different drives. I made sure to convert the Windows paths to
> > Unix paths to prevent warnings in generated files.
> >
> > Signed-off-by: oltolm <oleg.tolmat...@gmail.com>
> > ---
> >  contrib/plugins/meson.build         |  2 +-
> >  plugins/meson.build                 |  2 +-
> >  scripts/tracetool/__init__.py       | 15 ++++++++++++---
> >  scripts/tracetool/backend/ftrace.py |  4 +---
> >  scripts/tracetool/backend/log.py    |  4 +---
> >  scripts/tracetool/backend/syslog.py |  4 +---
> >  tests/functional/meson.build        |  4 +---
> >  tests/include/meson.build           |  2 +-
> >  tests/tcg/plugins/meson.build       |  2 +-
> >  trace/meson.build                   |  5 +++--
> >  10 files changed, 23 insertions(+), 21 deletions(-)
> >
> > diff --git a/contrib/plugins/meson.build b/contrib/plugins/meson.build
> > index fa8a426c8..1876bc784 100644
> > --- a/contrib/plugins/meson.build
> > +++ b/contrib/plugins/meson.build
> > @@ -24,7 +24,7 @@ endif
> >  if t.length() > 0
> >    alias_target('contrib-plugins', t)
> >  else
> > -  run_target('contrib-plugins', command: find_program('true'))
> > +  run_target('contrib-plugins', command: [python, '-c', ''])
> >  endif
> >
> >  plugin_modules += t
> > diff --git a/plugins/meson.build b/plugins/meson.build
> > index 5383c7b88..cb7472df8 100644
> > --- a/plugins/meson.build
> > +++ b/plugins/meson.build
> > @@ -33,7 +33,7 @@ if host_os == 'windows'
> >      input: qemu_plugin_symbols,
> >      output: 'qemu_plugin_api.def',
> >      capture: true,
> > -    command: ['sed', '-e', '0,/^/s//EXPORTS/; s/[{};]//g', '@INPUT@'])
> > +    command: [python, '-c', 'import fileinput, re; print("EXPORTS", 
> > end=""); [print(re.sub(r"[{};]", "", line), end="") for line in 
> > fileinput.input()]', '@INPUT@'])
> >
> >    # then use dlltool to assemble a delaylib.
> >    # The delaylib will have an "imaginary" name (qemu.exe), that is used by 
> > the
> > diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py
> > index bc03238c0..6dfcbf71e 100644
> > --- a/scripts/tracetool/__init__.py
> > +++ b/scripts/tracetool/__init__.py
> > @@ -12,12 +12,14 @@
> >  __email__      = "stefa...@redhat.com"
> >
> >
> > +import os
> >  import re
> >  import sys
> >  import weakref
> > +from pathlib import PurePath
> >
> > -import tracetool.format
> >  import tracetool.backend
> > +import tracetool.format
> >
> >
> >  def error_write(*lines):
> > @@ -36,7 +38,7 @@ def error(*lines):
> >
> >  def out_open(filename):
> >      global out_filename, out_fobj
> > -    out_filename = filename
> > +    out_filename = posix_relpath(filename)
> >      out_fobj = open(filename, 'wt')
> >
> >  def out(*lines, **kwargs):
> > @@ -308,7 +310,7 @@ def build(line_str, lineno, filename):
> >              fmt = [fmt_trans, fmt]
> >          args = Arguments.build(groups["args"])
> >
> > -        return Event(name, props, fmt, args, lineno, filename)
> > +        return Event(name, props, fmt, args, lineno, 
> > posix_relpath(filename))
> >
> >      def __repr__(self):
> >          """Evaluable string representation for this object."""
> > @@ -447,3 +449,10 @@ def generate(events, group, format, backends,
> >      tracetool.backend.dtrace.PROBEPREFIX = probe_prefix
> >
> >      tracetool.format.generate(events, format, backend, group)
> > +
> > +def posix_relpath(path, start=None):
> > +    try:
> > +        path = os.path.relpath(path, start)
> > +    except ValueError:
> > +        pass
> > +    return PurePath(path).as_posix()
> > diff --git a/scripts/tracetool/backend/ftrace.py 
> > b/scripts/tracetool/backend/ftrace.py
> > index baed2ae61..5fa30ccc0 100644
> > --- a/scripts/tracetool/backend/ftrace.py
> > +++ b/scripts/tracetool/backend/ftrace.py
> > @@ -12,8 +12,6 @@
> >  __email__      = "stefa...@redhat.com"
> >
> >
> > -import os.path
> > -
> >  from tracetool import out
> >
> >
> > @@ -47,7 +45,7 @@ def generate_h(event, group):
> >          args=event.args,
> >          event_id="TRACE_" + event.name.upper(),
> >          event_lineno=event.lineno,
> > -        event_filename=os.path.relpath(event.filename),
> > +        event_filename=event.filename,
> >          fmt=event.fmt.rstrip("\n"),
> >          argnames=argnames)
> >
> > diff --git a/scripts/tracetool/backend/log.py 
> > b/scripts/tracetool/backend/log.py
> > index de27b7e62..17ba1cd90 100644
> > --- a/scripts/tracetool/backend/log.py
> > +++ b/scripts/tracetool/backend/log.py
> > @@ -12,8 +12,6 @@
> >  __email__      = "stefa...@redhat.com"
> >
> >
> > -import os.path
> > -
> >  from tracetool import out
> >
> >
> > @@ -55,7 +53,7 @@ def generate_h(event, group):
> >          '    }',
> >          cond=cond,
> >          event_lineno=event.lineno,
> > -        event_filename=os.path.relpath(event.filename),
> > +        event_filename=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 012970f6c..5a3a00fe3 100644
> > --- a/scripts/tracetool/backend/syslog.py
> > +++ b/scripts/tracetool/backend/syslog.py
> > @@ -12,8 +12,6 @@
> >  __email__      = "stefa...@redhat.com"
> >
> >
> > -import os.path
> > -
> >  from tracetool import out
> >
> >
> > @@ -43,7 +41,7 @@ def generate_h(event, group):
> >          '    }',
> >          cond=cond,
> >          event_lineno=event.lineno,
> > -        event_filename=os.path.relpath(event.filename),
> > +        event_filename=event.filename,
> >          name=event.name,
> >          fmt=event.fmt.rstrip("\n"),
> >          argnames=argnames)
> > diff --git a/tests/functional/meson.build b/tests/functional/meson.build
> > index 52b4706cf..ee222888f 100644
> > --- a/tests/functional/meson.build
> > +++ b/tests/functional/meson.build
> > @@ -411,6 +411,4 @@ foreach speed : ['quick', 'thorough']
> >    endforeach
> >  endforeach
> >
> > -run_target('precache-functional',
> > -           depends: precache_all,
> > -           command: ['true'])
> > +alias_target('precache-functional', precache_all)
>
> Hi Oleg,
> There is a CI hexagon build failure. Maybe precache_all is []:
> ../tests/functional/meson.build:417:0: ERROR: alias_target takes at
> least 2 arguments, but got 1.
>
> https://gitlab.com/qemu-project/qemu/-/jobs/10336566320#L4267
>
> Please take a look. Thanks!

Hi Stefan,

this should be replaced with

run_target('precache-functional',
           depends: precache_all,
           command: [python, '-c', ''])

Should I send a v4 of my patch?

Oleg

Reply via email to