radare2/doc/capstone.md

36 lines
1.1 KiB
Markdown
Raw Normal View History

2016-01-22 19:53:01 +00:00
Capstone
========
Capstone Engine is the disassembler engine used by radare2 by default for
some architectures.
Radare2 ships its own version of capstone based on the -next branch with
some minor patches. The problem is that latest release have some compile
time dependencies that make compilation with older releases a bit harder.
In order to build r2 against capstone3 you can do the following things:
$ cd shlr
$ rm -rf capstone
$ make capstone-sync CS_RELEASE=1
$ make -j4
If you are a distro packager it will be necessary to fix the include path
in the package script like this:
$ ln -fs /usr/include libr/include/capstone
This is because capstone3 pkg-config file references the files directly
inside the /usr/include/capstone directory. so the includes in code must
be like this:
#include <capstone.h>
#include <arm.h>
This was fixed in capstone4 that will be released later this year, but as
long as distros will take some time to upgrade it is good to provide a
clean workaround to support both without having to change all the C files
#include <capstone/capstone.h>
#include <capstone/arm.h>