qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

meson: problems building under msys2/mingw-w64 native


From: Mark Cave-Ayland
Subject: meson: problems building under msys2/mingw-w64 native
Date: Mon, 24 Aug 2020 12:05:55 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0

Hi Paolo,

Yesterday I updated my msys2/mingw-w64 Windows 10 build environment for QEMU to 
the
latest git to see if I could get the meson build to work, and found a couple of 
issues:


1) Unable to launch build/ninjatool at the end of configure

At the very end of configure after the build variables are displayed the build 
would
terminate with the following stack trace:

Traceback (most recent call last):
  File "C:/msys64/home/Mark/qemu/meson/mesonbuild/mesonmain.py", line 131, in 
run
    return options.run_func(options)
  File "C:/msys64/home/Mark/qemu/meson/mesonbuild/msetup.py", line 245, in run
    app.generate()
  File "C:/msys64/home/Mark/qemu/meson/mesonbuild/msetup.py", line 159, in 
generate
    self._generate(env)
  File "C:/msys64/home/Mark/qemu/meson/mesonbuild/msetup.py", line 215, in 
_generate
    intr.backend.generate()
  File "C:/msys64/home/Mark/qemu/meson/mesonbuild/backend/ninjabackend.py", 
line 483,
in generate
    ninja = environment.detect_ninja_command_and_version(log=True)
  File "C:/msys64/home/Mark/qemu/meson/mesonbuild/environment.py", line 167, in
detect_ninja_command_and_version
    p, found = Popen_safe([n, '--version'])[0:2]
  File "C:/msys64/home/Mark/qemu/meson/mesonbuild/mesonlib.py", line 1197, in 
Popen_safe
    p, o, e = Popen_safe_legacy(args, write=write, stdout=stdout, stderr=stderr,
**kwargs)
  File "C:/msys64/home/Mark/qemu/meson/mesonbuild/mesonlib.py", line 1213, in
Popen_safe_legacy
    p = subprocess.Popen(args, universal_newlines=False, close_fds=False,
  File "C:/msys64/mingw64/lib/python3.8/subprocess.py", line 854, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:/msys64/mingw64/lib/python3.8/subprocess.py", line 1307, in 
_execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
OSError: [WinError 193] %1 is not a valid Win32 application


I managed to catch up with some meson devs on IRC last night and they helped me
figure out the problem is trying to launch "ninja --version" from configure.

Within configure the default location to ninja is overridden via
"NINJA=$PWD/ninjatool $meson setup ..." and subprocess.Popen() sends the 
filename to
Win32's CreateProcess() which fails because ninjatool is not a native 
executable but
a shell script. Any thoughts as to what would be the best solution here?


2) GTK UI now depends on CONFIG_VTE

This one I spotted on my local Linux setup as I didn't have the libvte-dev 
package
installed and couldn't understand why I couldn't run QEMU with the GTK UI as I 
always
do, even though configure reported that it found the GTK library and headers.

A quick search showed that the GTK UI was being guarded by "if
config_host.has_key('CONFIG_GTK') and config_host.has_key('CONFIG_VTE')" in
ui/meson.build.

For me the easy solution was to install libvte-dev, but since there are no VTE
packages for Windows my guess is this will now make the GTK UI unavailable for
Windows users.


ATB,

Mark.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]