> On Apr 20, 2019, at 6:40 AM, Thomas Huth <th...@redhat.com> wrote: > > On 19/04/2019 15.44, G 3 wrote: >> >> On Apr 19, 2019, at 3:10 AM, Thomas Huth wrote: >> >>> On 19/04/2019 00.47, John Arbuckle wrote: >>>> Capstone is not necessary in order to use QEMU. Disable it by default. >>>> This will save the user the pain of having to figure why QEMU isn't >>>> building when this library is missing. >>>> >>>> Signed-off-by: John Arbuckle <programmingk...@gmail.com> >>>> --- >>>> configure | 2 +- >>>> 1 file changed, 1 insertion(+), 1 deletion(-) >>>> >>>> diff --git a/configure b/configure >>>> index 1c563a7027..77d7967f92 100755 >>>> --- a/configure >>>> +++ b/configure >>>> @@ -433,7 +433,7 @@ opengl_dmabuf="no" >>>> cpuid_h="no" >>>> avx2_opt="" >>>> zlib="yes" >>>> -capstone="" >>>> +capstone="no" >>>> lzo="" >>>> snappy="" >>>> bzip2="" >>> >>> AFAIK we ship capstone as a submodule, so how can this be missing? Also, >>> our philosophy is to keep everything enabled by default if possible, so >>> that the code paths don't bitrot. Thus I don't think that disabling this >>> by default is a good idea. ... so if you've got a problem here, there >>> must be another solution (e.g. is the system capstone detection not >>> working right on your system?). >>> >>> Thomas >> >> Thank you for replying. Capstone comes with QEMU? Every time I try to >> compile QEMU I see an error relating to Capstone not being on my system. >> Why do you feel that disabling Capstone by default is not a good idea? >> >> Here is the error message I see when compiling QEMU: >> >> CHK version_gen.h >> make[1]: *** No rule to make target >> `/Users/John/qemu-git/capstone/libcapstone.a'. Stop. >> make: *** [subdir-capstone] Error 2 > > I assume you're using a git checkout here, right? For git checkouts, the > Makefile should take care of calling the scripts/git-submodule.sh script > which should initialize the submodule in the capstone directory. > > What's the content of your .git-submodule-status file? What does > "configure" say about capstone support on your system? > > Thomas
Yes I use a git checkout. This is the contents of my .git-submodule-status file: #!/bin/sh # # This code is licensed under the GPL version 2 or later. See # the COPYING file in the top-level directory. substat=".git-submodule-status" command=$1 shift maybe_modules="$@" test -z "$GIT" && GIT=git error() { echo "$0: $*" echo echo "Unable to automatically checkout GIT submodules '$modules'." echo "If you require use of an alternative GIT binary (for example to" echo "enable use of a transparent proxy), then please specify it by" echo "running configure by with the '--with-git' argument. e.g." echo echo " $ ./configure --with-git='tsocks git'" echo echo "Alternatively you may disable automatic GIT submodule checkout" echo "with:" echo echo " $ ./configure --disable-git-update" echo echo "and then manually update submodules prior to running make, with:" echo echo " $ scripts/git-submodule.sh update $modules" echo exit 1 } modules="" for m in $maybe_modules do $GIT submodule status $m 1> /dev/null 2>&1 if test $? = 0 then modules="$modules $m" else echo "warn: ignoring non-existent submodule $m" fi done if test -n "$maybe_modules" && ! test -e ".git" then echo "$0: unexpectedly called with submodules but no git checkout exists" exit 1 fi case "$command" in status) if test -z "$maybe_modules" then test -s ${substat} && exit 1 || exit 0 fi test -f "$substat" || exit 1 CURSTATUS=$($GIT submodule status $modules) OLDSTATUS=$(cat $substat) test "$CURSTATUS" = "$OLDSTATUS" exit $? ;; update) if test -z "$maybe_modules" then test -e $substat || touch $substat exit 0 fi $GIT submodule update --init $modules 1>/dev/null test $? -ne 0 && error "failed to update modules" $GIT submodule status $modules > "${substat}" test $? -ne 0 && error "failed to save git submodule status" >&2 ;; esac exit 0 The Configure command says: capstone git I did a 'make clean' followed by a 'make distclean'. Then tried building again using this command line: ./configure --target-list=ppc-softmmu,i386-softmmu,x86_64-softmmu make -j 4 Here is the error message I see: make[1]: *** No rule to make target `/Users/John/Documents/Development/Projects/Qemu/qemu-git/capstone/libcapstone.a'. Stop. make: *** [subdir-capstone] Error 2 I took a look at the capstone folder. There is no 'make' file in this folder. Should there be one? Thank you.