What is interesting with this patch, is that, forcing use of system capstone, Travis builds ran much faster; longest build took 40min: https://travis-ci.org/philmd/qemu/builds/341979248
This revealed (without profiling yet) that compiling the capstone C++ takes some time... mingw32@i7-4600U# time make subdir-capstone CC cs.o CC utils.o CC SStream.o CC MCInstrDesc.o CC MCRegisterInfo.o CC arch/ARM/ARMDisassembler.o CC arch/ARM/ARMInstPrinter.o CC arch/ARM/ARMMapping.o CC arch/ARM/ARMModule.o CC arch/AArch64/AArch64BaseInfo.o CC arch/AArch64/AArch64Disassembler.o CC arch/AArch64/AArch64InstPrinter.o CC arch/AArch64/AArch64Mapping.o CC arch/AArch64/AArch64Module.o CC arch/Mips/MipsDisassembler.o CC arch/Mips/MipsInstPrinter.o CC arch/Mips/MipsMapping.o CC arch/Mips/MipsModule.o CC arch/PowerPC/PPCDisassembler.o CC arch/PowerPC/PPCInstPrinter.o CC arch/PowerPC/PPCMapping.o CC arch/PowerPC/PPCModule.o CC arch/Sparc/SparcDisassembler.o CC arch/Sparc/SparcInstPrinter.o CC arch/Sparc/SparcMapping.o CC arch/Sparc/SparcModule.o CC arch/SystemZ/SystemZDisassembler.o CC arch/SystemZ/SystemZInstPrinter.o CC arch/SystemZ/SystemZMapping.o CC arch/SystemZ/SystemZModule.o CC arch/SystemZ/SystemZMCTargetDesc.o CC arch/X86/X86DisassemblerDecoder.o CC arch/X86/X86Disassembler.o CC arch/X86/X86IntelInstPrinter.o CC arch/X86/X86ATTInstPrinter.o CC arch/X86/X86Mapping.o CC arch/X86/X86Module.o CC arch/XCore/XCoreDisassembler.o CC arch/XCore/XCoreInstPrinter.o CC arch/XCore/XCoreMapping.o CC arch/XCore/XCoreModule.o CC MCInst.o AR capstone.lib i686-w64-mingw32.shared-ar: creating capstone/capstone.lib make: 'subdir-capstone' is up to date. real 0m35.391s user 0m32.857s sys 0m2.414s Not that bad after all. So I still dunno why this patch improved build time... On 02/15/2018 02:35 PM, Philippe Mathieu-Daudé wrote: > The use of <capstone/capstone.h> is recommended by the upstream project: > http://www.capstone-engine.org/lang_c.html > However when building the in-tree cloned submodule, the header is accessible > via <capstone.h>. > > This fixes building on Gentoo (and Haiku OS - not supported since > 898be3e0415): > CC disas.o > /sources/qemu-2.11.0/include/disas/capstone.h:6:22: fatal error: > capstone.h: No such file or directory > #include <capstone.h> > ^~~~~~~~~~~~ > > On Haiku `pkg-config --cflags capstone` reports "-I/usr/develop/headers". > > Bug: https://bugs.gentoo.org/647570 > Reported-by: Zoltán Mizsei <miq...@gmail.com> > Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> > --- > RFC because this might be a Gentoo portage issue. > > configure | 1 + > include/disas/capstone.h | 6 +++++- > 2 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/configure b/configure > index 913e14839d..3657a61a35 100755 > --- a/configure > +++ b/configure > @@ -7017,6 +7017,7 @@ if [ "$dtc_internal" = "yes" ]; then > echo "config-host.h: subdir-dtc" >> $config_host_mak > fi > if [ "$capstone" = "git" -o "$capstone" = "internal" ]; then > + echo "CONFIG_LIBCAPSTONE_INTERNAL=y" >> $config_host_mak > echo "config-host.h: subdir-capstone" >> $config_host_mak > fi > if test -n "$LIBCAPSTONE"; then > diff --git a/include/disas/capstone.h b/include/disas/capstone.h > index 84e214956d..aea9601f41 100644 > --- a/include/disas/capstone.h > +++ b/include/disas/capstone.h > @@ -3,9 +3,13 @@ > > #ifdef CONFIG_CAPSTONE > > +#ifdef CONFIG_LIBCAPSTONE_INTERNAL > #include <capstone.h> > - > #else > +#include <capstone/capstone.h> > +#endif /* CONFIG_LIBCAPSTONE_INTERNAL */ > + > +#else /* CONFIG_CAPSTONE */ > > /* Just enough to allow backends to init without ifdefs. */ > >
signature.asc
Description: OpenPGP digital signature