From cc6dca138573031d2adb481afdb4201a133bba13 Mon Sep 17 00:00:00 2001 From: Ben Lubar Date: Tue, 31 Jul 2018 08:13:17 -0500 Subject: [PATCH 1/3] Make gapstone go-get-able without pre-installing Capstone. --- .gitattributes | 1 + .gitmodules | 3 +++ .travis.yml | 8 ++------ AArch64BaseInfo.c | 1 + AArch64Disassembler.c | 1 + AArch64InstPrinter.c | 1 + AArch64Mapping.c | 1 + AArch64Module.c | 1 + ARMDisassembler.c | 1 + ARMInstPrinter.c | 1 + ARMMapping.c | 1 + ARMModule.c | 1 + MCInst.c | 1 + MCInstrDesc.c | 1 + MCRegisterInfo.c | 1 + MipsDisassembler.c | 1 + MipsInstPrinter.c | 1 + MipsMapping.c | 1 + MipsModule.c | 1 + PPCDisassembler.c | 1 + PPCInstPrinter.c | 1 + PPCMapping.c | 1 + PPCModule.c | 1 + README.md | 5 +---- SStream.c | 1 + SparcDisassembler.c | 1 + SparcInstPrinter.c | 1 + SparcMapping.c | 1 + SparcModule.c | 1 + SystemZDisassembler.c | 1 + SystemZInstPrinter.c | 1 + SystemZMCTargetDesc.c | 1 + SystemZMapping.c | 1 + SystemZModule.c | 1 + X86ATTInstPrinter.c | 1 + X86Disassembler.c | 1 + X86DisassemblerDecoder.c | 1 + X86IntelInstPrinter.c | 1 + X86Mapping.c | 1 + X86Module.c | 1 + XCoreDisassembler.c | 1 + XCoreInstPrinter.c | 1 + XCoreMapping.c | 1 + XCoreModule.c | 1 + arm64_constants.go | 3 --- arm64_decomposer.go | 3 --- arm_constants.go | 3 --- arm_decomposer.go | 3 --- capstone | 1 + cs.c | 1 + engine.go | 5 ++--- engine_constants.go | 3 --- genconst | 3 --- include/capstone | 1 + mips_constants.go | 3 --- mips_decomposer.go | 3 --- ppc_constants.go | 3 --- ppc_decomposer.go | 3 --- sparc_constants.go | 3 --- sparc_decomposer.go | 3 --- sysz_constants.go | 3 --- sysz_decomposer.go | 3 --- test_detail.SPEC | 2 +- trampoline.go | 3 --- travis_install_capstone_stable.sh | 8 -------- utils.c | 1 + x86_constants.go | 3 --- x86_decomposer.go | 3 --- xcore_constants.go | 3 --- xcore_decomposer.go | 3 --- 70 files changed, 54 insertions(+), 79 deletions(-) create mode 100644 .gitattributes create mode 100644 .gitmodules create mode 100644 AArch64BaseInfo.c create mode 100644 AArch64Disassembler.c create mode 100644 AArch64InstPrinter.c create mode 100644 AArch64Mapping.c create mode 100644 AArch64Module.c create mode 100644 ARMDisassembler.c create mode 100644 ARMInstPrinter.c create mode 100644 ARMMapping.c create mode 100644 ARMModule.c create mode 100644 MCInst.c create mode 100644 MCInstrDesc.c create mode 100644 MCRegisterInfo.c create mode 100644 MipsDisassembler.c create mode 100644 MipsInstPrinter.c create mode 100644 MipsMapping.c create mode 100644 MipsModule.c create mode 100644 PPCDisassembler.c create mode 100644 PPCInstPrinter.c create mode 100644 PPCMapping.c create mode 100644 PPCModule.c create mode 100644 SStream.c create mode 100644 SparcDisassembler.c create mode 100644 SparcInstPrinter.c create mode 100644 SparcMapping.c create mode 100644 SparcModule.c create mode 100644 SystemZDisassembler.c create mode 100644 SystemZInstPrinter.c create mode 100644 SystemZMCTargetDesc.c create mode 100644 SystemZMapping.c create mode 100644 SystemZModule.c create mode 100644 X86ATTInstPrinter.c create mode 100644 X86Disassembler.c create mode 100644 X86DisassemblerDecoder.c create mode 100644 X86IntelInstPrinter.c create mode 100644 X86Mapping.c create mode 100644 X86Module.c create mode 100644 XCoreDisassembler.c create mode 100644 XCoreInstPrinter.c create mode 100644 XCoreMapping.c create mode 100644 XCoreModule.c create mode 160000 capstone create mode 100644 cs.c create mode 120000 include/capstone delete mode 100755 travis_install_capstone_stable.sh create mode 100644 utils.c diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..b401b88 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.SPEC eol=lf diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..8fead37 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "capstone"] + path = capstone + url = ../../aquynh/capstone.git diff --git a/.travis.yml b/.travis.yml index cc9bbc6..74c8c44 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,12 +7,8 @@ go: - tip sudo: false before_install: - - ./travis_install_capstone_stable.sh - - export LIBRARY_PATH=$HOME/capstone/lib - - export C_INCLUDE_PATH=$HOME/capstone/include - - export LD_LIBRARY_PATH=$HOME/capstone/lib - - ./genconst $HOME/src/capstone/bindings/python/capstone - - ./genspec $HOME/src/capstone/tests + - ./genconst capstone/bindings/python/capstone + - ./genspec capstone/tests notifications: email: recipients: diff --git a/AArch64BaseInfo.c b/AArch64BaseInfo.c new file mode 100644 index 0000000..eca30b9 --- /dev/null +++ b/AArch64BaseInfo.c @@ -0,0 +1 @@ +#include "capstone/arch/AArch64/AArch64BaseInfo.c" diff --git a/AArch64Disassembler.c b/AArch64Disassembler.c new file mode 100644 index 0000000..d1a584f --- /dev/null +++ b/AArch64Disassembler.c @@ -0,0 +1 @@ +#include "capstone/arch/AArch64/AArch64Disassembler.c" diff --git a/AArch64InstPrinter.c b/AArch64InstPrinter.c new file mode 100644 index 0000000..c7992e9 --- /dev/null +++ b/AArch64InstPrinter.c @@ -0,0 +1 @@ +#include "capstone/arch/AArch64/AArch64InstPrinter.c" diff --git a/AArch64Mapping.c b/AArch64Mapping.c new file mode 100644 index 0000000..88aee96 --- /dev/null +++ b/AArch64Mapping.c @@ -0,0 +1 @@ +#include "capstone/arch/AArch64/AArch64Mapping.c" diff --git a/AArch64Module.c b/AArch64Module.c new file mode 100644 index 0000000..cc3d9d7 --- /dev/null +++ b/AArch64Module.c @@ -0,0 +1 @@ +#include "capstone/arch/AArch64/AArch64Module.c" diff --git a/ARMDisassembler.c b/ARMDisassembler.c new file mode 100644 index 0000000..fcc2c70 --- /dev/null +++ b/ARMDisassembler.c @@ -0,0 +1 @@ +#include "capstone/arch/ARM/ARMDisassembler.c" diff --git a/ARMInstPrinter.c b/ARMInstPrinter.c new file mode 100644 index 0000000..87e610d --- /dev/null +++ b/ARMInstPrinter.c @@ -0,0 +1 @@ +#include "capstone/arch/ARM/ARMInstPrinter.c" diff --git a/ARMMapping.c b/ARMMapping.c new file mode 100644 index 0000000..1ece56a --- /dev/null +++ b/ARMMapping.c @@ -0,0 +1 @@ +#include "capstone/arch/ARM/ARMMapping.c" diff --git a/ARMModule.c b/ARMModule.c new file mode 100644 index 0000000..adaad9e --- /dev/null +++ b/ARMModule.c @@ -0,0 +1 @@ +#include "capstone/arch/ARM/ARMModule.c" diff --git a/MCInst.c b/MCInst.c new file mode 100644 index 0000000..edbd104 --- /dev/null +++ b/MCInst.c @@ -0,0 +1 @@ +#include "capstone/MCInst.c" diff --git a/MCInstrDesc.c b/MCInstrDesc.c new file mode 100644 index 0000000..0886eda --- /dev/null +++ b/MCInstrDesc.c @@ -0,0 +1 @@ +#include "capstone/MCInstrDesc.c" diff --git a/MCRegisterInfo.c b/MCRegisterInfo.c new file mode 100644 index 0000000..b3c7e7e --- /dev/null +++ b/MCRegisterInfo.c @@ -0,0 +1 @@ +#include "capstone/MCRegisterInfo.c" diff --git a/MipsDisassembler.c b/MipsDisassembler.c new file mode 100644 index 0000000..68e2d8a --- /dev/null +++ b/MipsDisassembler.c @@ -0,0 +1 @@ +#include "capstone/arch/Mips/MipsDisassembler.c" diff --git a/MipsInstPrinter.c b/MipsInstPrinter.c new file mode 100644 index 0000000..d23ef1c --- /dev/null +++ b/MipsInstPrinter.c @@ -0,0 +1 @@ +#include "capstone/arch/Mips/MipsInstPrinter.c" diff --git a/MipsMapping.c b/MipsMapping.c new file mode 100644 index 0000000..d1c5b5e --- /dev/null +++ b/MipsMapping.c @@ -0,0 +1 @@ +#include "capstone/arch/Mips/MipsMapping.c" diff --git a/MipsModule.c b/MipsModule.c new file mode 100644 index 0000000..d098dc2 --- /dev/null +++ b/MipsModule.c @@ -0,0 +1 @@ +#include "capstone/arch/Mips/MipsModule.c" diff --git a/PPCDisassembler.c b/PPCDisassembler.c new file mode 100644 index 0000000..23aedfe --- /dev/null +++ b/PPCDisassembler.c @@ -0,0 +1 @@ +#include "capstone/arch/PowerPC/PPCDisassembler.c" diff --git a/PPCInstPrinter.c b/PPCInstPrinter.c new file mode 100644 index 0000000..0dd0f39 --- /dev/null +++ b/PPCInstPrinter.c @@ -0,0 +1 @@ +#include "capstone/arch/PowerPC/PPCInstPrinter.c" diff --git a/PPCMapping.c b/PPCMapping.c new file mode 100644 index 0000000..4927a55 --- /dev/null +++ b/PPCMapping.c @@ -0,0 +1 @@ +#include "capstone/arch/PowerPC/PPCMapping.c" diff --git a/PPCModule.c b/PPCModule.c new file mode 100644 index 0000000..84b9232 --- /dev/null +++ b/PPCModule.c @@ -0,0 +1 @@ +#include "capstone/arch/PowerPC/PPCModule.c" diff --git a/README.md b/README.md index 90f354d..2492f95 100644 --- a/README.md +++ b/README.md @@ -47,10 +47,7 @@ Further information is available at http://www.capstone-engine.org To install: ---- -First install the capstone library from either https://github.com/aquynh/capstone -or http://www.capstone-engine.org - -Then, assuming you have set up your Go environment according to the docs, just: +Assuming you have set up your Go environment according to the docs, just: ```bash go get -u github.com/bnagy/gapstone ``` diff --git a/SStream.c b/SStream.c new file mode 100644 index 0000000..271424a --- /dev/null +++ b/SStream.c @@ -0,0 +1 @@ +#include "capstone/SStream.c" diff --git a/SparcDisassembler.c b/SparcDisassembler.c new file mode 100644 index 0000000..d46ee9b --- /dev/null +++ b/SparcDisassembler.c @@ -0,0 +1 @@ +#include "capstone/arch/Sparc/SparcDisassembler.c" diff --git a/SparcInstPrinter.c b/SparcInstPrinter.c new file mode 100644 index 0000000..4f04fa7 --- /dev/null +++ b/SparcInstPrinter.c @@ -0,0 +1 @@ +#include "capstone/arch/Sparc/SparcInstPrinter.c" diff --git a/SparcMapping.c b/SparcMapping.c new file mode 100644 index 0000000..ffb5946 --- /dev/null +++ b/SparcMapping.c @@ -0,0 +1 @@ +#include "capstone/arch/Sparc/SparcMapping.c" diff --git a/SparcModule.c b/SparcModule.c new file mode 100644 index 0000000..aa938ea --- /dev/null +++ b/SparcModule.c @@ -0,0 +1 @@ +#include "capstone/arch/Sparc/SparcModule.c" diff --git a/SystemZDisassembler.c b/SystemZDisassembler.c new file mode 100644 index 0000000..559a8e7 --- /dev/null +++ b/SystemZDisassembler.c @@ -0,0 +1 @@ +#include "capstone/arch/SystemZ/SystemZDisassembler.c" diff --git a/SystemZInstPrinter.c b/SystemZInstPrinter.c new file mode 100644 index 0000000..68bc020 --- /dev/null +++ b/SystemZInstPrinter.c @@ -0,0 +1 @@ +#include "capstone/arch/SystemZ/SystemZInstPrinter.c" diff --git a/SystemZMCTargetDesc.c b/SystemZMCTargetDesc.c new file mode 100644 index 0000000..a6c07ec --- /dev/null +++ b/SystemZMCTargetDesc.c @@ -0,0 +1 @@ +#include "capstone/arch/SystemZ/SystemZMCTargetDesc.c" diff --git a/SystemZMapping.c b/SystemZMapping.c new file mode 100644 index 0000000..3e99fda --- /dev/null +++ b/SystemZMapping.c @@ -0,0 +1 @@ +#include "capstone/arch/SystemZ/SystemZMapping.c" diff --git a/SystemZModule.c b/SystemZModule.c new file mode 100644 index 0000000..f4f899c --- /dev/null +++ b/SystemZModule.c @@ -0,0 +1 @@ +#include "capstone/arch/SystemZ/SystemZModule.c" diff --git a/X86ATTInstPrinter.c b/X86ATTInstPrinter.c new file mode 100644 index 0000000..7c0fecf --- /dev/null +++ b/X86ATTInstPrinter.c @@ -0,0 +1 @@ +#include "capstone/arch/X86/X86ATTInstPrinter.c" diff --git a/X86Disassembler.c b/X86Disassembler.c new file mode 100644 index 0000000..33f0133 --- /dev/null +++ b/X86Disassembler.c @@ -0,0 +1 @@ +#include "capstone/arch/X86/X86Disassembler.c" diff --git a/X86DisassemblerDecoder.c b/X86DisassemblerDecoder.c new file mode 100644 index 0000000..3ce4078 --- /dev/null +++ b/X86DisassemblerDecoder.c @@ -0,0 +1 @@ +#include "capstone/arch/X86/X86DisassemblerDecoder.c" diff --git a/X86IntelInstPrinter.c b/X86IntelInstPrinter.c new file mode 100644 index 0000000..710cf39 --- /dev/null +++ b/X86IntelInstPrinter.c @@ -0,0 +1 @@ +#include "capstone/arch/X86/X86IntelInstPrinter.c" diff --git a/X86Mapping.c b/X86Mapping.c new file mode 100644 index 0000000..cff0730 --- /dev/null +++ b/X86Mapping.c @@ -0,0 +1 @@ +#include "capstone/arch/X86/X86Mapping.c" diff --git a/X86Module.c b/X86Module.c new file mode 100644 index 0000000..f64f3b0 --- /dev/null +++ b/X86Module.c @@ -0,0 +1 @@ +#include "capstone/arch/X86/X86Module.c" diff --git a/XCoreDisassembler.c b/XCoreDisassembler.c new file mode 100644 index 0000000..3a1b91a --- /dev/null +++ b/XCoreDisassembler.c @@ -0,0 +1 @@ +#include "capstone/arch/XCore/XCoreDisassembler.c" diff --git a/XCoreInstPrinter.c b/XCoreInstPrinter.c new file mode 100644 index 0000000..c18bf34 --- /dev/null +++ b/XCoreInstPrinter.c @@ -0,0 +1 @@ +#include "capstone/arch/XCore/XCoreInstPrinter.c" diff --git a/XCoreMapping.c b/XCoreMapping.c new file mode 100644 index 0000000..5f7b771 --- /dev/null +++ b/XCoreMapping.c @@ -0,0 +1 @@ +#include "capstone/arch/XCore/XCoreMapping.c" diff --git a/XCoreModule.c b/XCoreModule.c new file mode 100644 index 0000000..a7c2142 --- /dev/null +++ b/XCoreModule.c @@ -0,0 +1 @@ +#include "capstone/arch/XCore/XCoreModule.c" diff --git a/arm64_constants.go b/arm64_constants.go index fe0cf61..77f2abc 100644 --- a/arm64_constants.go +++ b/arm64_constants.go @@ -15,9 +15,6 @@ try reading the *_test.go files. package gapstone -// #cgo LDFLAGS: -lcapstone -// #cgo freebsd CFLAGS: -I/usr/local/include -// #cgo freebsd LDFLAGS: -L/usr/local/lib // #include // #include import "C" diff --git a/arm64_decomposer.go b/arm64_decomposer.go index e5955fc..c937c2e 100644 --- a/arm64_decomposer.go +++ b/arm64_decomposer.go @@ -10,9 +10,6 @@ try reading the *_test.go files. package gapstone -// #cgo LDFLAGS: -lcapstone -// #cgo freebsd CFLAGS: -I/usr/local/include -// #cgo freebsd LDFLAGS: -L/usr/local/lib // #include // #include import "C" diff --git a/arm_constants.go b/arm_constants.go index ac81044..4814ea9 100644 --- a/arm_constants.go +++ b/arm_constants.go @@ -15,9 +15,6 @@ try reading the *_test.go files. package gapstone -// #cgo LDFLAGS: -lcapstone -// #cgo freebsd CFLAGS: -I/usr/local/include -// #cgo freebsd LDFLAGS: -L/usr/local/lib // #include // #include import "C" diff --git a/arm_decomposer.go b/arm_decomposer.go index 4069782..564d1f0 100644 --- a/arm_decomposer.go +++ b/arm_decomposer.go @@ -10,9 +10,6 @@ try reading the *_test.go files. package gapstone -// #cgo LDFLAGS: -lcapstone -// #cgo freebsd CFLAGS: -I/usr/local/include -// #cgo freebsd LDFLAGS: -L/usr/local/lib // #include // #include import "C" diff --git a/capstone b/capstone new file mode 160000 index 0000000..e710e4f --- /dev/null +++ b/capstone @@ -0,0 +1 @@ +Subproject commit e710e4fcf40302c25d7bdc28da93571a61f21f5d diff --git a/cs.c b/cs.c new file mode 100644 index 0000000..3ea6bcf --- /dev/null +++ b/cs.c @@ -0,0 +1 @@ +#include "capstone/cs.c" diff --git a/engine.go b/engine.go index 63f4c81..41fef85 100644 --- a/engine.go +++ b/engine.go @@ -10,9 +10,8 @@ try reading the *_test.go files. package gapstone -// #cgo LDFLAGS: -lcapstone -// #cgo freebsd CFLAGS: -I/usr/local/include -// #cgo freebsd LDFLAGS: -L/usr/local/lib +// #cgo CPPFLAGS: -DCAPSTONE_USE_SYS_DYN_MEM -Iinclude -Iinclude/capstone -DCAPSTONE_HAS_ARM -DCAPSTONE_HAS_ARM64 -DCAPSTONE_HAS_MIPS -DCAPSTONE_HAS_POWERPC -DCAPSTONE_HAS_X86 -DCAPSTONE_HAS_SPARC -DCAPSTONE_HAS_SYSZ -DCAPSTONE_HAS_XCORE +// #cgo windows CPPFLAGS: -D__CRT__NO_INLINE // #include // #include // extern size_t trampoline(uint8_t *buffer, size_t buflen, size_t offset, void *user_data); diff --git a/engine_constants.go b/engine_constants.go index 6a1318f..51e6771 100644 --- a/engine_constants.go +++ b/engine_constants.go @@ -10,9 +10,6 @@ try reading the *_test.go files. package gapstone -// #cgo LDFLAGS: -lcapstone -// #cgo freebsd CFLAGS: -I/usr/local/include -// #cgo freebsd LDFLAGS: -L/usr/local/lib // #include // #include import "C" diff --git a/genconst b/genconst index 0e982a4..c2ff695 100755 --- a/genconst +++ b/genconst @@ -26,9 +26,6 @@ try reading the *_test.go files. package gapstone -// #cgo LDFLAGS: -lcapstone -// #cgo freebsd CFLAGS: -I/usr/local/include -// #cgo freebsd LDFLAGS: -L/usr/local/lib // #include // #include import "C" diff --git a/include/capstone b/include/capstone new file mode 120000 index 0000000..815e16f --- /dev/null +++ b/include/capstone @@ -0,0 +1 @@ +../capstone/include \ No newline at end of file diff --git a/mips_constants.go b/mips_constants.go index 0899709..9a5bbfd 100644 --- a/mips_constants.go +++ b/mips_constants.go @@ -15,9 +15,6 @@ try reading the *_test.go files. package gapstone -// #cgo LDFLAGS: -lcapstone -// #cgo freebsd CFLAGS: -I/usr/local/include -// #cgo freebsd LDFLAGS: -L/usr/local/lib // #include // #include import "C" diff --git a/mips_decomposer.go b/mips_decomposer.go index fc74e13..d992b43 100644 --- a/mips_decomposer.go +++ b/mips_decomposer.go @@ -10,9 +10,6 @@ try reading the *_test.go files. package gapstone -// #cgo LDFLAGS: -lcapstone -// #cgo freebsd CFLAGS: -I/usr/local/include -// #cgo freebsd LDFLAGS: -L/usr/local/lib // #include // #include import "C" diff --git a/ppc_constants.go b/ppc_constants.go index e10c300..a7039b2 100644 --- a/ppc_constants.go +++ b/ppc_constants.go @@ -15,9 +15,6 @@ try reading the *_test.go files. package gapstone -// #cgo LDFLAGS: -lcapstone -// #cgo freebsd CFLAGS: -I/usr/local/include -// #cgo freebsd LDFLAGS: -L/usr/local/lib // #include // #include import "C" diff --git a/ppc_decomposer.go b/ppc_decomposer.go index 99013b9..233b775 100644 --- a/ppc_decomposer.go +++ b/ppc_decomposer.go @@ -10,9 +10,6 @@ try reading the *_test.go files. package gapstone -// #cgo LDFLAGS: -lcapstone -// #cgo freebsd CFLAGS: -I/usr/local/include -// #cgo freebsd LDFLAGS: -L/usr/local/lib // #include // #include import "C" diff --git a/sparc_constants.go b/sparc_constants.go index 19da403..ee4ad68 100644 --- a/sparc_constants.go +++ b/sparc_constants.go @@ -15,9 +15,6 @@ try reading the *_test.go files. package gapstone -// #cgo LDFLAGS: -lcapstone -// #cgo freebsd CFLAGS: -I/usr/local/include -// #cgo freebsd LDFLAGS: -L/usr/local/lib // #include // #include import "C" diff --git a/sparc_decomposer.go b/sparc_decomposer.go index ed01a7e..be0cc3e 100644 --- a/sparc_decomposer.go +++ b/sparc_decomposer.go @@ -10,9 +10,6 @@ try reading the *_test.go files. package gapstone -// #cgo LDFLAGS: -lcapstone -// #cgo freebsd CFLAGS: -I/usr/local/include -// #cgo freebsd LDFLAGS: -L/usr/local/lib // #include // #include import "C" diff --git a/sysz_constants.go b/sysz_constants.go index b67cfad..32bdee3 100644 --- a/sysz_constants.go +++ b/sysz_constants.go @@ -15,9 +15,6 @@ try reading the *_test.go files. package gapstone -// #cgo LDFLAGS: -lcapstone -// #cgo freebsd CFLAGS: -I/usr/local/include -// #cgo freebsd LDFLAGS: -L/usr/local/lib // #include // #include import "C" diff --git a/sysz_decomposer.go b/sysz_decomposer.go index 9011503..4aceaef 100644 --- a/sysz_decomposer.go +++ b/sysz_decomposer.go @@ -10,9 +10,6 @@ try reading the *_test.go files. package gapstone -// #cgo LDFLAGS: -lcapstone -// #cgo freebsd CFLAGS: -I/usr/local/include -// #cgo freebsd LDFLAGS: -L/usr/local/lib // #include // #include import "C" diff --git a/test_detail.SPEC b/test_detail.SPEC index 1bf2195..bf8eb5a 100644 --- a/test_detail.SPEC +++ b/test_detail.SPEC @@ -54,7 +54,7 @@ Disasm: 0x1000: bl #0xfbc // insn-ID: 13, insn-mnem: bl Implicit registers read: pc Implicit registers modified: lr - This instruction belongs to groups: arm jump + This instruction belongs to groups: jump arm 0x1004: str lr, [sp, #-4]! // insn-ID: 212, insn-mnem: str This instruction belongs to groups: arm 0x1008: andeq r0, r0, r0 // insn-ID: 8, insn-mnem: and diff --git a/trampoline.go b/trampoline.go index fd9a5b4..0b66b0a 100644 --- a/trampoline.go +++ b/trampoline.go @@ -10,9 +10,6 @@ try reading the *_test.go files. package gapstone -// #cgo LDFLAGS: -lcapstone -// #cgo freebsd CFLAGS: -I/usr/local/include -// #cgo freebsd LDFLAGS: -L/usr/local/lib // #include // #include import "C" diff --git a/travis_install_capstone_stable.sh b/travis_install_capstone_stable.sh deleted file mode 100755 index a3958fb..0000000 --- a/travis_install_capstone_stable.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -set -ex -mkdir -p $HOME/src && cd $HOME/src -git clone --depth=50 --branch=3.0.4 https://github.com/aquynh/capstone.git && cd capstone -echo `git log | head` -PREFIX=$HOME/capstone make && PREFIX=$HOME/capstone make install -cd $TRAVIS_BUILD_DIR \ No newline at end of file diff --git a/utils.c b/utils.c new file mode 100644 index 0000000..f2711c1 --- /dev/null +++ b/utils.c @@ -0,0 +1 @@ +#include "capstone/utils.c" diff --git a/x86_constants.go b/x86_constants.go index ea1077f..7aa248e 100644 --- a/x86_constants.go +++ b/x86_constants.go @@ -15,9 +15,6 @@ try reading the *_test.go files. package gapstone -// #cgo LDFLAGS: -lcapstone -// #cgo freebsd CFLAGS: -I/usr/local/include -// #cgo freebsd LDFLAGS: -L/usr/local/lib // #include // #include import "C" diff --git a/x86_decomposer.go b/x86_decomposer.go index 83da2f2..ad75403 100644 --- a/x86_decomposer.go +++ b/x86_decomposer.go @@ -10,9 +10,6 @@ try reading the *_test.go files. package gapstone -// #cgo LDFLAGS: -lcapstone -// #cgo freebsd CFLAGS: -I/usr/local/include -// #cgo freebsd LDFLAGS: -L/usr/local/lib // #include // #include import "C" diff --git a/xcore_constants.go b/xcore_constants.go index 551e873..96d6493 100644 --- a/xcore_constants.go +++ b/xcore_constants.go @@ -15,9 +15,6 @@ try reading the *_test.go files. package gapstone -// #cgo LDFLAGS: -lcapstone -// #cgo freebsd CFLAGS: -I/usr/local/include -// #cgo freebsd LDFLAGS: -L/usr/local/lib // #include // #include import "C" diff --git a/xcore_decomposer.go b/xcore_decomposer.go index 872f132..6e25ebf 100644 --- a/xcore_decomposer.go +++ b/xcore_decomposer.go @@ -10,9 +10,6 @@ try reading the *_test.go files. package gapstone -// #cgo LDFLAGS: -lcapstone -// #cgo freebsd CFLAGS: -I/usr/local/include -// #cgo freebsd LDFLAGS: -L/usr/local/lib // #include // #include import "C" From a6983a52a476a3a9d9e74690d6c46e1480a61730 Mon Sep 17 00:00:00 2001 From: Ben Lubar Date: Tue, 31 Jul 2018 09:10:47 -0500 Subject: [PATCH 2/3] Fix Travis SPEC file generation. --- .travis.yml | 1 + genspec | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 74c8c44..28ffca6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,7 @@ go: sudo: false before_install: - ./genconst capstone/bindings/python/capstone + - make -C capstone - ./genspec capstone/tests notifications: email: diff --git a/genspec b/genspec index b724d16..5626b1f 100755 --- a/genspec +++ b/genspec @@ -11,16 +11,16 @@ end stub = ARGV[0].chomp('/') commands = [ - "#{stub}/test > $GOPATH/src/github.com/bnagy/gapstone/test.SPEC", - "#{stub}/test_detail > $GOPATH/src/github.com/bnagy/gapstone/test_detail.SPEC", - "#{stub}/test_arm > $GOPATH/src/github.com/bnagy/gapstone/arm.SPEC", - "#{stub}/test_arm64 > $GOPATH/src/github.com/bnagy/gapstone/arm64.SPEC", - "#{stub}/test_x86 > $GOPATH/src/github.com/bnagy/gapstone/x86.SPEC", - "#{stub}/test_mips > $GOPATH/src/github.com/bnagy/gapstone/mips.SPEC", - "#{stub}/test_ppc > $GOPATH/src/github.com/bnagy/gapstone/ppc.SPEC", - "#{stub}/test_systemz > $GOPATH/src/github.com/bnagy/gapstone/sysZ.SPEC", - "#{stub}/test_sparc > $GOPATH/src/github.com/bnagy/gapstone/sparc.SPEC", - "#{stub}/test_xcore > $GOPATH/src/github.com/bnagy/gapstone/xcore.SPEC" + "#{stub}/test.static > $GOPATH/src/github.com/bnagy/gapstone/test.SPEC", + "#{stub}/test_detail.static > $GOPATH/src/github.com/bnagy/gapstone/test_detail.SPEC", + "#{stub}/test_arm.static > $GOPATH/src/github.com/bnagy/gapstone/arm.SPEC", + "#{stub}/test_arm64.static > $GOPATH/src/github.com/bnagy/gapstone/arm64.SPEC", + "#{stub}/test_x86.static > $GOPATH/src/github.com/bnagy/gapstone/x86.SPEC", + "#{stub}/test_mips.static > $GOPATH/src/github.com/bnagy/gapstone/mips.SPEC", + "#{stub}/test_ppc.static > $GOPATH/src/github.com/bnagy/gapstone/ppc.SPEC", + "#{stub}/test_systemz.static > $GOPATH/src/github.com/bnagy/gapstone/sysZ.SPEC", + "#{stub}/test_sparc.static > $GOPATH/src/github.com/bnagy/gapstone/sparc.SPEC", + "#{stub}/test_xcore.static > $GOPATH/src/github.com/bnagy/gapstone/xcore.SPEC" ] commands.each {|c| From aefb8fb9d854b6f2c6ed5987b7d0728534d6c63d Mon Sep 17 00:00:00 2001 From: Ben Lubar Date: Tue, 31 Jul 2018 10:40:39 -0500 Subject: [PATCH 3/3] Fix build failing when running from a different directory. --- engine.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine.go b/engine.go index 41fef85..9a50f5b 100644 --- a/engine.go +++ b/engine.go @@ -10,7 +10,7 @@ try reading the *_test.go files. package gapstone -// #cgo CPPFLAGS: -DCAPSTONE_USE_SYS_DYN_MEM -Iinclude -Iinclude/capstone -DCAPSTONE_HAS_ARM -DCAPSTONE_HAS_ARM64 -DCAPSTONE_HAS_MIPS -DCAPSTONE_HAS_POWERPC -DCAPSTONE_HAS_X86 -DCAPSTONE_HAS_SPARC -DCAPSTONE_HAS_SYSZ -DCAPSTONE_HAS_XCORE +// #cgo CPPFLAGS: -DCAPSTONE_USE_SYS_DYN_MEM -I${SRCDIR}/include -I${SRCDIR}/include/capstone -DCAPSTONE_HAS_ARM -DCAPSTONE_HAS_ARM64 -DCAPSTONE_HAS_MIPS -DCAPSTONE_HAS_POWERPC -DCAPSTONE_HAS_X86 -DCAPSTONE_HAS_SPARC -DCAPSTONE_HAS_SYSZ -DCAPSTONE_HAS_XCORE // #cgo windows CPPFLAGS: -D__CRT__NO_INLINE // #include // #include