I am still running into this issue when compiling QEMU on Windows using MSYS2. I can manually apply the fix per the Capstone commit above and compile just fine.
For moving forward, how should this be handled in the codebase to get the MSYS2 build cleanly working? I imagine wholesale pulling the latest Capstone may break quite a bit. Is it possible to cherry-pick this one change into the submodule? -- You received this bug notification because you are a member of qemu- devel-ml, which is subscribed to QEMU. https://bugs.launchpad.net/bugs/1826175 Title: Compilation on MSYS2/MinGW-w64 fails with error: "No rule to make target capstone.lib" Status in QEMU: New Bug description: I submitted this bug to Capstone directly but I figured it'd be useful to post it here too. The IS_MINGW check in the Makefile for Capstone fails under MSYS2 MinGW-w64 because cc --version doesn't have mingw in the output anymore: $ whereis cc cc: /mingw64/bin/cc.exe $ cc --version cc.exe (Rev2, Built by MSYS2 project) 8.3.0 Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Really simple patch: diff --git "a/Makefile" "b/Makefile" index 063f50db..1d9f042e 100644 --- "a/Makefile" +++ "b/Makefile" @@ -288,7 +288,7 @@ CFLAGS := $(CFLAGS:-fPIC=) # On Windows we need the shared library to be executable else # mingw? -IS_MINGW := $(shell $(CC) --version | grep -i mingw | wc -l) +IS_MINGW := $(shell $(CC) --version | grep -i msys2 | wc -l) ifeq ($(IS_MINGW),1) EXT = dll AR_EXT = lib To manage notifications about this bug go to: https://bugs.launchpad.net/qemu/+bug/1826175/+subscriptions