The upcoming capstone 5.0 drops support for the old way of including its header, due to this change: https://github.com/capstone-engine/capstone/commit/6656bcb63ab4e87dc6079bd6b6b12cc8dd9b2ad8 The official way is to use <capstone/capstone.h>
This change has already been proposed before, see https://patchwork.kernel.org/project/qemu-devel/patch/20180215173539.11033-1-f4...@amsat.org/ but it didn't find its way into qemu at that time. On current systems, using <capstone/capstone.h> works now (despite the pkg-config-supplied -I/usr/include/capstone) - since on all systems capstone headers are put into capstone/ subdirectory of a system include dir. So this change is compatible with both the obsolete way of including it and the only future way. I dunno how relevant this is for 7.2, it's probably too late already to test it on everything, but at the same time, once capstone-5 will be released, there will be many user questions about how to build qemu. This has already been asked in #qemu - gentoo already have capstone-5.0-rc and qemu fails to build with that one, but works fine with this change. Cc: Philippe Mathieu-Daudé <f4...@amsat.org> Signed-off-by: Michael Tokarev <m...@tls.msk.ru> --- Since v1: include the forgotten-to-be-committed meson.build change include/disas/capstone.h | 2 +- meson.build | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/include/disas/capstone.h b/include/disas/capstone.h index e29068dd97..d8fdc5d537 100644 --- a/include/disas/capstone.h +++ b/include/disas/capstone.h @@ -3,7 +3,7 @@ #ifdef CONFIG_CAPSTONE -#include <capstone.h> +#include <capstone/capstone.h> #else diff --git a/meson.build b/meson.build index cf3e517e56..6f34c963f7 100644 --- a/meson.build +++ b/meson.build @@ -2680,12 +2680,7 @@ if not get_option('capstone').auto() or have_system or have_user capstone = dependency('capstone', version: '>=3.0.5', kwargs: static_kwargs, method: 'pkg-config', required: get_option('capstone')) - - # Some versions of capstone have broken pkg-config file - # that reports a wrong -I path, causing the #include to - # fail later. If the system has such a broken version - # do not use it. - if capstone.found() and not cc.compiles('#include <capstone.h>', + if capstone.found() and not cc.compiles('#include <capstone/capstone.h>', dependencies: [capstone]) capstone = not_found if get_option('capstone').enabled() -- 2.30.2