From 1049af7fb1bb34152575aa8cd18733c19a739ac3 Mon Sep 17 00:00:00 2001
From: Clark Coleman <clc@zephyr-software.com>
Date: Fri, 10 Jul 2020 06:20:44 -0700
Subject: [PATCH] Build fixes for using keystone.

---
 irdb-libs/SConscript                       | 9 +++++++++
 irdb-libs/libIRDB-cfg/src/SConscript       | 3 ++-
 irdb-libs/libIRDB-core/include/fileir.hpp  | 3 ++-
 irdb-libs/libIRDB-core/src/SConscript      | 2 +-
 irdb-libs/libIRDB-core/src/fileir.cpp      | 3 ++-
 irdb-libs/libIRDB-core/src/instruction.cpp | 3 ++-
 irdb-libs/libIRDB-transform/src/SConscript | 1 +
 irdb-libs/libIRDB-util/src/SConscript      | 1 +
 irdb-libs/meds2pdb/SConscript              | 1 +
 irdb-libs/thanos/SConscript                | 1 +
 10 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/irdb-libs/SConscript b/irdb-libs/SConscript
index 55347a8d5..354fd54d8 100644
--- a/irdb-libs/SConscript
+++ b/irdb-libs/SConscript
@@ -57,6 +57,15 @@ libcapstone_path = env.Install("$SECURITY_TRANSFORMS_HOME/lib/", libcapstone_pat
 env.Command(os.environ['SECURITY_TRANSFORMS_HOME']+"/lib/libcapstone.so", libcapstone_path, "ln -s $SOURCE.abspath $TARGET.abspath")
 libcapstone=os.environ['SECURITY_TRANSFORMS_HOME']+"/lib/libcapstone.so"
 
+# get the libkeystone.so.[version] file regardless of the version extension
+libkeystone_path = Glob(os.environ['SECURITY_TRANSFORMS_HOME']+'/lib/usr/local/lib/libkeystone.so.*')
+assert len(libkeystone_path) <= 1, "More than one candidate for libkeystone.so.[version]?!"
+
+libkeystone_path = env.Install("$SECURITY_TRANSFORMS_HOME/lib/", libkeystone_path)
+
+env.Command(os.environ['SECURITY_TRANSFORMS_HOME']+"/lib/libkeystone.so", libkeystone_path, "ln -s $SOURCE.abspath $TARGET.abspath")
+libkeystone=os.environ['SECURITY_TRANSFORMS_HOME']+"/lib/libkeystone.so"
+
 libehp=env.SConscript("libehp/SConscript")
 libehp=env.Install("$SECURITY_TRANSFORMS_HOME/lib", libehp);
 
diff --git a/irdb-libs/libIRDB-cfg/src/SConscript b/irdb-libs/libIRDB-cfg/src/SConscript
index 17ecf7b52..821622ad6 100644
--- a/irdb-libs/libIRDB-cfg/src/SConscript
+++ b/irdb-libs/libIRDB-cfg/src/SConscript
@@ -15,7 +15,8 @@ cpppath='''
 	$SECURITY_TRANSFORMS_HOME/include/
 	$SECURITY_TRANSFORMS_HOME/libIRDB-core/include/
 	$SECURITY_TRANSFORMS_HOME/libIRDB-cfg/include/
-	'''
+        $SECURITY_TRANSFORMS_HOME/third_party/keystone/include/keystone/
+ 	'''
 libpath='''
 	$SECURITY_TRANSFORMS_HOME/lib
 	'''
diff --git a/irdb-libs/libIRDB-core/include/fileir.hpp b/irdb-libs/libIRDB-core/include/fileir.hpp
index 033a33694..52c786a36 100644
--- a/irdb-libs/libIRDB-core/include/fileir.hpp
+++ b/irdb-libs/libIRDB-core/include/fileir.hpp
@@ -17,7 +17,8 @@
  * URL   : http://www.zephyr-software.com/
  *
  */
-#include <keystone/keystone.h>
+//#include <keystone/keystone.h>
+#include <keystone.h>
 
 namespace libIRDB
 {
diff --git a/irdb-libs/libIRDB-core/src/SConscript b/irdb-libs/libIRDB-core/src/SConscript
index 7822295ec..eeeb4b8a2 100644
--- a/irdb-libs/libIRDB-core/src/SConscript
+++ b/irdb-libs/libIRDB-core/src/SConscript
@@ -50,7 +50,7 @@ cpppath='''
 	$SECURITY_TRANSFORMS_HOME/include/
 	$SECURITY_TRANSFORMS_HOME/libIRDB-core/include/
 	$SECURITY_TRANSFORMS_HOME/third_party/capstone/include/capstone/
-	$SECURITY_TRANSFORMS_HOME/third_party/capstone/include/keystone/
+	$SECURITY_TRANSFORMS_HOME/third_party/keystone/include/keystone/
 	'''
 libpath='''
 	$SECURITY_TRANSFORMS_HOME/lib
diff --git a/irdb-libs/libIRDB-core/src/fileir.cpp b/irdb-libs/libIRDB-core/src/fileir.cpp
index e72aac159..0ca30aa02 100644
--- a/irdb-libs/libIRDB-core/src/fileir.cpp
+++ b/irdb-libs/libIRDB-core/src/fileir.cpp
@@ -19,7 +19,8 @@
  *
  */
 
-#include <keystone/keystone.h>
+#include <keystone.h>
+//#include <keystone/keystone.h>
 #include <all.hpp>
 #include <irdb-util>
 #include <cstdlib>
diff --git a/irdb-libs/libIRDB-core/src/instruction.cpp b/irdb-libs/libIRDB-core/src/instruction.cpp
index ceb81cac9..d533a551f 100644
--- a/irdb-libs/libIRDB-core/src/instruction.cpp
+++ b/irdb-libs/libIRDB-core/src/instruction.cpp
@@ -25,7 +25,8 @@
 #include <sstream>
 #include <iomanip>
 #include <irdb-util>
-#include <keystone/keystone.h>
+//#include <keystone/keystone.h>
+#include <keystone.h>
 #include "cmdstr.hpp"
 
 #undef EIP
diff --git a/irdb-libs/libIRDB-transform/src/SConscript b/irdb-libs/libIRDB-transform/src/SConscript
index 0c250bfeb..a46c77030 100644
--- a/irdb-libs/libIRDB-transform/src/SConscript
+++ b/irdb-libs/libIRDB-transform/src/SConscript
@@ -15,6 +15,7 @@ cpppath='''
          $SECURITY_TRANSFORMS_HOME/libIRDB-cfg/include
          $SECURITY_TRANSFORMS_HOME/libIRDB-util/include
          $SECURITY_TRANSFORMS_HOME/libMEDSannotation/include/
+        $SECURITY_TRANSFORMS_HOME/third_party/keystone/include/keystone/
         '''
 
 
diff --git a/irdb-libs/libIRDB-util/src/SConscript b/irdb-libs/libIRDB-util/src/SConscript
index fee25b597..92ebc0c1f 100644
--- a/irdb-libs/libIRDB-util/src/SConscript
+++ b/irdb-libs/libIRDB-util/src/SConscript
@@ -17,6 +17,7 @@ cpppath='''
 	$SECURITY_TRANSFORMS_HOME/include/
 	$SECURITY_TRANSFORMS_HOME/libIRDB-core/include/
 	$SECURITY_TRANSFORMS_HOME/libIRDB-util/include/
+        $SECURITY_TRANSFORMS_HOME/third_party/keystone/include/keystone/
 	'''
 
 #myenv.Append(CCFLAGS=" -Wall -W -Wextra -Wconversion ")
diff --git a/irdb-libs/meds2pdb/SConscript b/irdb-libs/meds2pdb/SConscript
index bde4f83a3..b795c0f23 100644
--- a/irdb-libs/meds2pdb/SConscript
+++ b/irdb-libs/meds2pdb/SConscript
@@ -12,6 +12,7 @@ cpppath='''
 	 $SECURITY_TRANSFORMS_HOME/libIRDB-core/include 
 	 $SECURITY_TRANSFORMS_HOME/libEXEIO/include 
 	 $SECURITY_TRANSFORMS_HOME/libMEDSannotation/include 
+        $SECURITY_TRANSFORMS_HOME/third_party/keystone/include/keystone/
 	'''
 
 files=Glob( Dir('.').srcnode().abspath+"/*.cpp") + Glob(Dir('.').srcnode().abspath+"/*.c")
diff --git a/irdb-libs/thanos/SConscript b/irdb-libs/thanos/SConscript
index 75ff75ee9..f137e4ebb 100644
--- a/irdb-libs/thanos/SConscript
+++ b/irdb-libs/thanos/SConscript
@@ -9,6 +9,7 @@ myenv.Replace(SECURITY_TRANSFORMS_HOME=os.environ['SECURITY_TRANSFORMS_HOME'])
 cpppath=''' 
 	 $IRDB_SDK/include 
 	 $SECURITY_TRANSFORMS_HOME/libIRDB-core/include 
+        $SECURITY_TRANSFORMS_HOME/third_party/keystone/include/keystone/
 	'''
 
 
-- 
GitLab