DisableGVCompilation should not abort on internal GlobalValue's.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60750 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/llvm/ExecutionEngine/ExecutionEngine.h b/include/llvm/ExecutionEngine/ExecutionEngine.h
index 1ee8241..327e9c6 100644
--- a/include/llvm/ExecutionEngine/ExecutionEngine.h
+++ b/include/llvm/ExecutionEngine/ExecutionEngine.h
@@ -263,8 +263,9 @@
     return LazyCompilationDisabled;
   }
 
-  /// DisableGVCompilation - If called, the JIT will abort if it's asked to allocate
-  /// space and populate a GlobalVariable.
+  /// DisableGVCompilation - If called, the JIT will abort if it's asked to
+  /// allocate space and populate a GlobalVariable that is not internal to
+  /// the module.
   void DisableGVCompilation(bool Disabled = true) {
     GVCompilationDisabled = Disabled;
   }
diff --git a/lib/ExecutionEngine/JIT/JIT.cpp b/lib/ExecutionEngine/JIT/JIT.cpp
index 41b3ebc..5d5ecc4 100644
--- a/lib/ExecutionEngine/JIT/JIT.cpp
+++ b/lib/ExecutionEngine/JIT/JIT.cpp
@@ -553,8 +553,8 @@
     addGlobalMapping(GV, Ptr);
     }
   } else {
-    if (isGVCompilationDisabled()) {
-      cerr << "Compilation of GlobalVariable is disabled!\n";
+    if (isGVCompilationDisabled() && !GV->hasInternalLinkage()) {
+      cerr << "Compilation of non-internal GlobalValue is disabled!\n";
       abort();
     }
     // If the global hasn't been emitted to memory yet, allocate space and