Add bccMarkExternalSymbol (to specify external symbol.)

By default libbcc will internalize every symbol, and perform
LTO.  However, in many situations we have to export a specific
function, such as "root" or "init" for RenderScript, so we are
adding bccMarkExternalSymbol.

Change-Id: I136eb8ff68e9ccf8c6595eb470f9718e1cb1e4ab
diff --git a/lib/ExecutionEngine/ScriptCompiled.h b/lib/ExecutionEngine/ScriptCompiled.h
index 5972ddf..6a1a9e8 100644
--- a/lib/ExecutionEngine/ScriptCompiled.h
+++ b/lib/ExecutionEngine/ScriptCompiled.h
@@ -18,6 +18,7 @@
 #define BCC_SCRIPTCOMPILED_H
 
 #include "Compiler.h"
+#include "Script.h"
 
 #include <bcc/bcc.h>
 
@@ -32,8 +33,6 @@
 }
 
 namespace bcc {
-  class Script;
-
   class ScriptCompiled {
     friend class Compiler;
     friend class CodeEmitter;
@@ -137,6 +136,10 @@
     void getObjectSlotList(size_t objectSlotListSize,
                            uint32_t *objectSlotList);
 
+    std::vector<char const *> const & getUserDefinedExternalSymbols() const {
+      return mpOwner->getUserDefinedExternalSymbols();
+    }
+
 #if USE_OLD_JIT
     char *getContext() {
       return mContext;