Fix the libbcc SHA1 checksum dependency

Calculate SHA1 checksum of libbcc.so and libRS.so at compile time.

Change-Id: Ifc6cf6e309155229fe1ab1228c0eb77175fbd8f0
diff --git a/lib/ExecutionEngine/CacheReader.cpp b/lib/ExecutionEngine/CacheReader.cpp
index 408b1f7..136cccd 100644
--- a/lib/ExecutionEngine/CacheReader.cpp
+++ b/lib/ExecutionEngine/CacheReader.cpp
@@ -148,14 +148,6 @@
          OBCC_VERSION, mpHeader->version);
     return false;
   }
-
-  if (memcmp(mpHeader->libbcc_build_checksum, libbcc_build_checksum, 41) != 0) {
-    mpHeader->libbcc_build_checksum[41 - 1] = '\0'; // ensure terminated
-    LOGW("Build checksum mismatch: lib %s cached %s\n", libbcc_build_checksum,
-         mpHeader->libbcc_build_checksum);
-    return false;
-  }
-
   return true;
 }
 
diff --git a/lib/ExecutionEngine/CacheWriter.cpp b/lib/ExecutionEngine/CacheWriter.cpp
index ab8dd03..86775a7 100644
--- a/lib/ExecutionEngine/CacheWriter.cpp
+++ b/lib/ExecutionEngine/CacheWriter.cpp
@@ -93,7 +93,6 @@
   // Magic word and version
   memcpy(header->magic, OBCC_MAGIC, 4);
   memcpy(header->version, OBCC_VERSION, 4);
-  memcpy(header->libbcc_build_checksum, libbcc_build_checksum, 41);
 
   // Machine Integer Type
   uint32_t number = 0x00000001;
diff --git a/lib/ExecutionEngine/Compiler.cpp b/lib/ExecutionEngine/Compiler.cpp
index 78dbb47..bccf571 100644
--- a/lib/ExecutionEngine/Compiler.cpp
+++ b/lib/ExecutionEngine/Compiler.cpp
@@ -152,9 +152,6 @@
 void Compiler::GlobalInitialization() {
   if (GlobalInitialized)
     return;
-
-  LOGI("LIBBCC BUILD CHECKSUM: %s\n", libbcc_build_checksum);
-
   // if (!llvm::llvm_is_multithreaded())
   //   llvm::llvm_start_multithreaded();
 
@@ -253,10 +250,7 @@
 
 #if USE_CACHE
   // Calculate the SHA1 checksum of libbcc and libRS.
-#if USE_LIBBCC_SHA1SUM
-  calcFileSHA1(sha1LibBCC, pathLibBCC);
-#endif
-  calcFileSHA1(sha1LibRS, pathLibRS);
+  calcFileSHA1(sha1LibBCC_SHA1, pathLibBCC_SHA1);
 #endif
 
   GlobalInitialized = true;
diff --git a/lib/ExecutionEngine/MCCacheReader.cpp b/lib/ExecutionEngine/MCCacheReader.cpp
index 2034317..ba1f7fc 100644
--- a/lib/ExecutionEngine/MCCacheReader.cpp
+++ b/lib/ExecutionEngine/MCCacheReader.cpp
@@ -148,14 +148,6 @@
          OBCC_VERSION, mpHeader->version);
     return false;
   }
-
-  if (memcmp(mpHeader->libbcc_build_checksum, libbcc_build_checksum, 41) != 0) {
-    mpHeader->libbcc_build_checksum[41 - 1] = '\0'; // ensure terminated
-    LOGW("Build checksum mismatch: lib %s cached %s\n", libbcc_build_checksum,
-         mpHeader->libbcc_build_checksum);
-    return false;
-  }
-
   return true;
 }
 
diff --git a/lib/ExecutionEngine/MCCacheWriter.cpp b/lib/ExecutionEngine/MCCacheWriter.cpp
index c2d0d04..1250ab7 100644
--- a/lib/ExecutionEngine/MCCacheWriter.cpp
+++ b/lib/ExecutionEngine/MCCacheWriter.cpp
@@ -90,7 +90,6 @@
   // Magic word and version
   memcpy(header->magic, OBCC_MAGIC, 4);
   memcpy(header->version, OBCC_VERSION, 4);
-  memcpy(header->libbcc_build_checksum, libbcc_build_checksum, 41);
 
   // Machine Integer Type
   uint32_t number = 0x00000001;
diff --git a/lib/ExecutionEngine/Script.cpp b/lib/ExecutionEngine/Script.cpp
index 67e59f6..7aa3748 100644
--- a/lib/ExecutionEngine/Script.cpp
+++ b/lib/ExecutionEngine/Script.cpp
@@ -272,11 +272,7 @@
 #endif
 
   // Dependencies
-#if USE_LIBBCC_SHA1SUM
-  reader.addDependency(BCC_FILE_RESOURCE, pathLibBCC, sha1LibBCC);
-#endif
-
-  reader.addDependency(BCC_FILE_RESOURCE, pathLibRS, sha1LibRS);
+  reader.addDependency(BCC_FILE_RESOURCE, pathLibBCC_SHA1, sha1LibBCC_SHA1);
 
   for (size_t i = 0; i < 2; ++i) {
     if (mSourceList[i]) {
@@ -410,11 +406,10 @@
       CacheWriter writer;
 #endif
 
+#ifdef TARGET_BUILD
       // Dependencies
-#if USE_LIBBCC_SHA1SUM
-      writer.addDependency(BCC_FILE_RESOURCE, pathLibBCC, sha1LibBCC);
+      writer.addDependency(BCC_FILE_RESOURCE, pathLibBCC_SHA1, sha1LibBCC_SHA1);
 #endif
-      writer.addDependency(BCC_FILE_RESOURCE, pathLibRS, sha1LibRS);
 
       for (size_t i = 0; i < 2; ++i) {
         if (mSourceList[i]) {
diff --git a/lib/ExecutionEngine/Sha1Helper.cpp b/lib/ExecutionEngine/Sha1Helper.cpp
index f4589c9..e7e7932 100644
--- a/lib/ExecutionEngine/Sha1Helper.cpp
+++ b/lib/ExecutionEngine/Sha1Helper.cpp
@@ -29,14 +29,8 @@
 
 namespace bcc {
 
-#if USE_LIBBCC_SHA1SUM
-unsigned char sha1LibBCC[20];
-char const *pathLibBCC = "/system/lib/libbcc.so";
-#endif
-
-unsigned char sha1LibRS[20];
-char const *pathLibRS = "/system/lib/libRS.so";
-
+unsigned char sha1LibBCC_SHA1[20];
+char const *pathLibBCC_SHA1 = "/system/lib/libbcc_sha1.so";
 
 void calcSHA1(unsigned char *result, char const *data, size_t size) {
   SHA1_CTX hashContext;
diff --git a/lib/ExecutionEngine/Sha1Helper.h b/lib/ExecutionEngine/Sha1Helper.h
index 5e98036..f53c0ce 100644
--- a/lib/ExecutionEngine/Sha1Helper.h
+++ b/lib/ExecutionEngine/Sha1Helper.h
@@ -22,13 +22,8 @@
 #include <stddef.h>
 
 namespace bcc {
-#if USE_LIBBCC_SHA1SUM
-  extern unsigned char sha1LibBCC[20];
-  extern char const *pathLibBCC;
-#endif
-
-  extern unsigned char sha1LibRS[20];
-  extern char const *pathLibRS;
+  extern unsigned char sha1LibBCC_SHA1[20];
+  extern char const *pathLibBCC_SHA1;
 
   void calcSHA1(unsigned char *result, char const *data, size_t size);