diff --git a/cpu_ref/rsCpuScript.cpp b/cpu_ref/rsCpuScript.cpp
index 70c9d8f..01a3e5a 100644
--- a/cpu_ref/rsCpuScript.cpp
+++ b/cpu_ref/rsCpuScript.cpp
@@ -418,8 +418,11 @@
         return false;
     }
 
-    mCompilerDriver->setRSRuntimeLookupFunction(lookupRuntimeStub);
-    mCompilerDriver->setRSRuntimeLookupContext(this);
+    // Configure symbol resolvers (via compiler-rt and the RS runtime).
+    mRSRuntime.setLookupFunction(lookupRuntimeStub);
+    mRSRuntime.setContext(this);
+    mResolver.chainResolver(mCompilerRuntime);
+    mResolver.chainResolver(mRSRuntime);
 
     // Run any compiler setup functions we have been provided with.
     RSSetupCompilerCallback setupCompilerCallback =
@@ -471,8 +474,8 @@
         // Skip the cache lookup
     } else if (!is_force_recompile()) {
         // Attempt to just load the script from cache first if we can.
-        exec = mCompilerDriver->loadScript(cacheDir, resName,
-                                           (const char *)bitcode, bitcodeSize);
+        exec = bcc::RSCompilerDriver::loadScript(cacheDir, resName,
+                    (const char *)bitcode, bitcodeSize, mResolver);
     }
 
     if (exec == NULL) {
@@ -480,9 +483,8 @@
                                     bitcodeSize, core_lib, useRSDebugContext,
                                     bccPluginName);
         if (built) {
-            exec = mCompilerDriver->loadScript(cacheDir, resName,
-                                               (const char *)bitcode,
-                                               bitcodeSize);
+            exec = bcc::RSCompilerDriver::loadScript(cacheDir, resName,
+                    (const char *)bitcode, bitcodeSize, mResolver);
         }
     }
 
diff --git a/cpu_ref/rsCpuScript.h b/cpu_ref/rsCpuScript.h
index 4cc9d6d..fded347 100644
--- a/cpu_ref/rsCpuScript.h
+++ b/cpu_ref/rsCpuScript.h
@@ -20,6 +20,11 @@
 #include <rs_hal.h>
 #include <rsRuntime.h>
 
+#ifndef RS_COMPATIBILITY_LIB
+#include <bcc/ExecutionEngine/CompilerRTSymbolResolver.h>
+#include <bcc/ExecutionEngine/SymbolResolverProxy.h>
+#endif
+
 #include "rsCpuCore.h"
 
 namespace bcc {
@@ -113,6 +118,9 @@
 
     bcc::BCCContext *mCompilerContext;
     bcc::RSCompilerDriver *mCompilerDriver;
+    bcc::CompilerRTSymbolResolver mCompilerRuntime;
+    bcc::LookupFunctionSymbolResolver<void *> mRSRuntime;
+    bcc::SymbolResolverProxy mResolver;
     bcc::RSExecutable *mExecutable;
 #else
     void *mScriptSO;
