Have separate prepareSharedObject and prepareObject.

Also, provide option for prepareObject to specify relocation model.

Change-Id: Ia9f51f1a463165d069dc918654e0f55189e7a274
diff --git a/lib/ExecutionEngine/Script.cpp b/lib/ExecutionEngine/Script.cpp
index aae0692..2751299 100644
--- a/lib/ExecutionEngine/Script.cpp
+++ b/lib/ExecutionEngine/Script.cpp
@@ -180,9 +180,10 @@
   return 0;
 }
 
-int Script::prepareSharedObject(char const *cacheDir,
-                                char const *cacheName,
-                                unsigned long flags) {
+int Script::prepareObject(char const *cacheDir,
+                          char const *cacheName,
+                          llvm::Reloc::Model RelocModel,
+                          unsigned long flags) {
 #if USE_CACHE
   if (cacheDir && cacheName) {
     // Set Cache Directory and File Name
@@ -201,6 +202,7 @@
 #endif
 
   CompilerOption option;
+  option.RelocModelOpt = RelocModel;
   option.LoadAfterCompile = false;
   int status = internalCompile(option);
   if (status != 0) {