Add bccPrepareSharedObject

Unlike bccPrepareExecuteable, bccPrepareSharedObject does not
resolve external symbols; therefore it only generate cache file
not execuable.

Change-Id: I3ef093015a4f54011fbf298123cac2464230b408
diff --git a/lib/ExecutionEngine/Compiler.h b/lib/ExecutionEngine/Compiler.h
index 82e0be2..c6938a6 100644
--- a/lib/ExecutionEngine/Compiler.h
+++ b/lib/ExecutionEngine/Compiler.h
@@ -153,7 +153,7 @@
 
     int linkModule(llvm::Module *module);
 
-    int compile();
+    int compile(bool compileOnly);
 
     char const *getErrorMessage() {
       return mError.c_str();
@@ -171,9 +171,7 @@
                    llvm::NamedMDNode const *ExportVarMetadata,
                    llvm::NamedMDNode const *ExportFuncMetadata);
 
-    int runMCCodeGen(llvm::TargetData *TD, llvm::TargetMachine *TM,
-                     llvm::NamedMDNode const *ExportVarMetadata,
-                     llvm::NamedMDNode const *ExportFuncMetadata);
+    int runMCCodeGen(llvm::TargetData *TD, llvm::TargetMachine *TM);
 
 #if USE_MCJIT
     static void *resolveSymbolAdapter(void *context, char const *name);