diff --git a/Android.mk b/Android.mk
index 07cba90..af1685f 100644
--- a/Android.mk
+++ b/Android.mk
@@ -41,6 +41,7 @@
   lib/bcc/ContextManager.cpp \
   lib/bcc/FileHandle.cpp \
   lib/bcc/Runtime.c \
+  lib/bcc/RuntimeStub.c \
   lib/bcc/Script.cpp \
   lib/bcc/ScriptCompiled.cpp \
   lib/bcc/SourceInfo.cpp
diff --git a/lib/bcc/Runtime.c b/lib/bcc/Runtime.c
index 77f79d8..e814361 100644
--- a/lib/bcc/Runtime.c
+++ b/lib/bcc/Runtime.c
@@ -14,79 +14,7 @@
  * limitations under the License.
  */
 
-#include "runtime/lib/absvdi2.c"
-#include "runtime/lib/absvsi2.c"
-#include "runtime/lib/addvdi3.c"
-#include "runtime/lib/addvsi3.c"
-#if !defined(__i386__) && !defined(__SSE2__)
-#   include "runtime/lib/ashldi3.c"
-#endif
-#ifndef ANDROID
-#   include "runtime/lib/ashrdi3.c"
-#endif
-#include "runtime/lib/clzdi2.c"
-#include "runtime/lib/clzsi2.c"
-#include "runtime/lib/cmpdi2.c"
-#include "runtime/lib/ctzdi2.c"
-#include "runtime/lib/ctzsi2.c"
-#ifndef ANDROID // no complex.h
-#   include "runtime/lib/divdc3.c"
-#endif
-#if !defined(__i386__)
-#   include "runtime/lib/divdi3.c"
-#endif
-#ifndef ANDROID // no complex.h
-#   include "runtime/lib/divsc3.c"
-#endif
-#include "runtime/lib/ffsdi2.c"
-#include "runtime/lib/fixdfdi.c"
-#include "runtime/lib/fixsfdi.c"
-#include "runtime/lib/fixunsdfdi.c"
-#include "runtime/lib/fixunsdfsi.c"
-#include "runtime/lib/fixunssfdi.c"
-#include "runtime/lib/fixunssfsi.c"
-#if !defined(__i386__)
-#   include "runtime/lib/floatdidf.c"
-#   include "runtime/lib/floatdisf.c"
-#   include "runtime/lib/floatundidf.c"
-#   include "runtime/lib/floatundisf.c"
-#   include "runtime/lib/moddi3.c"
-#endif
-#if !defined(__i386__) && !defined(__SSE2__)
-#   include "runtime/lib/lshrdi3.c"
-#endif
-#ifndef ANDROID // no complex.h
-#   include "runtime/lib/muldc3.c"
-#endif
-#if !defined(__i386__)
-#   include "runtime/lib/muldi3.c"
-#endif
-#ifndef ANDROID // no complex.h
-#   include "runtime/lib/mulsc3.c"
-#endif
-#include "runtime/lib/mulvdi3.c"
-#include "runtime/lib/mulvsi3.c"
-#include "runtime/lib/negdi2.c"
-#include "runtime/lib/negvdi2.c"
-#include "runtime/lib/negvsi2.c"
-#include "runtime/lib/paritydi2.c"
-#include "runtime/lib/paritysi2.c"
-#include "runtime/lib/popcountdi2.c"
-#include "runtime/lib/popcountsi2.c"
-#include "runtime/lib/powidf2.c"
-#include "runtime/lib/powisf2.c"
-#include "runtime/lib/subvdi3.c"
-#include "runtime/lib/subvsi3.c"
-#include "runtime/lib/ucmpdi2.c"
-#if !defined(__i386__)
-#   include "runtime/lib/udivdi3.c"
-#endif
-#include "runtime/lib/udivsi3.c"
-#include "runtime/lib/udivmoddi4.c"
-#if !defined(__i386__)
-#   include "runtime/lib/umoddi3.c"
-#endif
-#include "runtime/lib/eprintf.c"
+#include "RuntimeStub.h"
 
 #include <string.h>
 #include <stdlib.h>
diff --git a/lib/bcc/Runtime.def b/lib/bcc/Runtime.def
index e77bbf0..a300b5c 100644
--- a/lib/bcc/Runtime.def
+++ b/lib/bcc/Runtime.def
@@ -57,7 +57,7 @@
   DEF_GENERIC_RUNTIME(__aeabi_f2d)
   DEF_GENERIC_RUNTIME(__aeabi_f2iz)
   DEF_GENERIC_RUNTIME(__aeabi_f2lz)
-//DEF_GENERIC_RUNTIME(__aeabi_f2uiz) // TODO: Missing from libgcc.
+  DEF_GENERIC_RUNTIME(__aeabi_f2uiz)
   DEF_GENERIC_RUNTIME(__aeabi_f2ulz)
   DEF_GENERIC_RUNTIME(__aeabi_fadd)
   DEF_GENERIC_RUNTIME(__aeabi_fcmpeq)
@@ -187,7 +187,6 @@
 DEF_GENERIC_OR_VFP_RUNTIME(__muldf3)
 #if !defined(__i386__)
     DEF_LLVM_RUNTIME(__muldi3)
-    DEF_LLVM_RUNTIME(__muldsi3)
 #endif
 
 #ifndef ANDROID // no complex extension
diff --git a/lib/bcc/RuntimeStub.c b/lib/bcc/RuntimeStub.c
new file mode 100644
index 0000000..ee75e1b
--- /dev/null
+++ b/lib/bcc/RuntimeStub.c
@@ -0,0 +1,85 @@
+#include "RuntimeStub.h"
+
+#include "runtime/lib/int_lib.h"
+
+#include "runtime/lib/absvdi2.c"
+#include "runtime/lib/absvsi2.c"
+#include "runtime/lib/addvdi3.c"
+#include "runtime/lib/addvsi3.c"
+#if !defined(__i386__) && !defined(__SSE2__)
+#   include "runtime/lib/ashldi3.c"
+#endif
+#ifndef ANDROID
+#   include "runtime/lib/ashrdi3.c"
+#endif
+#include "runtime/lib/clzdi2.c"
+#include "runtime/lib/clzsi2.c"
+#include "runtime/lib/cmpdi2.c"
+#include "runtime/lib/ctzdi2.c"
+#include "runtime/lib/ctzsi2.c"
+#ifndef ANDROID // no complex.h
+#   include "runtime/lib/divdc3.c"
+#endif
+#if !defined(__i386__)
+#   include "runtime/lib/divdi3.c"
+#endif
+#ifndef ANDROID // no complex.h
+#   include "runtime/lib/divsc3.c"
+#endif
+#include "runtime/lib/ffsdi2.c"
+#include "runtime/lib/fixdfdi.c"
+#include "runtime/lib/fixsfdi.c"
+#include "runtime/lib/fixunsdfdi.c"
+#include "runtime/lib/fixunsdfsi.c"
+#include "runtime/lib/fixunssfdi.c"
+#include "runtime/lib/fixunssfsi.c"
+#if !defined(__i386__)
+#   include "runtime/lib/floatdidf.c"
+#   include "runtime/lib/floatdisf.c"
+#   include "runtime/lib/floatundidf.c"
+#   include "runtime/lib/floatundisf.c"
+#   include "runtime/lib/moddi3.c"
+#endif
+#if !defined(__i386__) && !defined(__SSE2__)
+#   include "runtime/lib/lshrdi3.c"
+#endif
+#ifndef ANDROID // no complex.h
+#   include "runtime/lib/muldc3.c"
+#endif
+#if !defined(__i386__)
+#   include "runtime/lib/muldi3.c"
+#endif
+#ifndef ANDROID // no complex.h
+#   include "runtime/lib/mulsc3.c"
+#endif
+#include "runtime/lib/mulvdi3.c"
+#include "runtime/lib/mulvsi3.c"
+#include "runtime/lib/negdi2.c"
+#include "runtime/lib/negvdi2.c"
+#include "runtime/lib/negvsi2.c"
+#include "runtime/lib/paritydi2.c"
+#include "runtime/lib/paritysi2.c"
+#include "runtime/lib/popcountdi2.c"
+#include "runtime/lib/popcountsi2.c"
+#include "runtime/lib/powidf2.c"
+#include "runtime/lib/powisf2.c"
+#include "runtime/lib/subvdi3.c"
+#include "runtime/lib/subvsi3.c"
+#include "runtime/lib/ucmpdi2.c"
+#if !defined(__i386__)
+#   include "runtime/lib/udivdi3.c"
+#endif
+#include "runtime/lib/udivsi3.c"
+#include "runtime/lib/udivmoddi4.c"
+#if !defined(__i386__)
+#   include "runtime/lib/umoddi3.c"
+#endif
+#include "runtime/lib/eprintf.c"
+
+#if defined(__arm__)
+// NOTE: __aeabi_f2uiz is missing from libgcc which comes with android,
+// so here's the workaround.  Remove this when __aeabi_f2uiz is available
+// from libgcc.
+unsigned int __aeabi_f2uiz(float a)
+  __attribute__((weak, alias("__fixunssfsi")));
+#endif
diff --git a/lib/bcc/RuntimeStub.h b/lib/bcc/RuntimeStub.h
new file mode 100644
index 0000000..01cb998
--- /dev/null
+++ b/lib/bcc/RuntimeStub.h
@@ -0,0 +1,89 @@
+#ifndef BCC_RUNTIME_STUB_H
+#define BCC_RUNTIME_STUB_H
+
+#include "runtime/lib/int_lib.h"
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+extern di_int __absvdi2(di_int);
+extern si_int __absvsi2(si_int);
+extern di_int __addvdi3(di_int, di_int);
+extern si_int __addvsi3(si_int, si_int);
+#if !defined(__i386__) && !defined(__SSE2__)
+extern di_int __ashldi3(di_int, si_int);
+#endif
+#ifndef ANDROID
+extern di_int __ashrdi3(di_int, si_int);
+#endif
+extern si_int __clzdi2(di_int);
+extern si_int __clzsi2(si_int);
+extern si_int __cmpdi2(di_int, di_int);
+extern si_int __ctzdi2(di_int);
+extern si_int __ctzsi2(si_int);
+#ifndef ANDROID /* no complex.h */
+extern double _Complex __divdc3(double, double, double, double);
+#endif
+#if !defined(__i386__)
+extern di_int __divdi3(di_int, di_int);
+#endif
+#ifndef ANDROID /* no complex.h */
+extern float _Complex __divsc3(float, float, float, float);
+#endif
+extern si_int __ffsdi2(di_int);
+extern di_int __fixdfdi(double);
+extern di_int __fixsfdi(float);
+extern du_int __fixunsdfdi(double);
+extern su_int __fixunsdfsi(double);
+extern du_int __fixunssfdi(float);
+extern su_int __fixunssfsi(float);
+#if !defined(__i386__)
+extern double __floatdidf(di_int);
+extern float __floatdisf(di_int);
+extern double __floatundidf(du_int);
+extern float __floatundisf(du_int);
+extern di_int __moddi3(di_int, di_int);
+#endif
+#if !defined(__i386__) && !defined(__SSE2__)
+extern di_int __lshrdi3(di_int, si_int);
+#endif
+#ifndef ANDROID /* no complex.h */
+extern double _Complex __muldc3(double, double, double, double);
+#endif
+#if !defined(__i386__)
+extern di_int __muldi3(di_int, di_int);
+#endif
+#ifndef ANDROID /* no complex.h */
+extern float _Complex __mulsc3(float, float, float, float);
+#endif
+extern di_int __mulvdi3(di_int, di_int);
+extern si_int __mulvsi3(si_int, si_int);
+extern di_int __negdi2(di_int);
+extern di_int __negvdi2(di_int);
+extern si_int __negvsi2(si_int);
+extern si_int __paritydi2(di_int);
+extern si_int __paritysi2(si_int);
+extern si_int __popcountdi2(di_int);
+extern si_int __popcountsi2(si_int);
+extern double __powidf2(double, si_int);
+extern float __powisf2(float, si_int);
+extern di_int __subvdi3(di_int, di_int);
+extern si_int __subvsi3(si_int, si_int);
+extern si_int __ucmpdi2(du_int, du_int);
+#if !defined(__i386__)
+extern du_int __udivdi3(du_int, du_int);
+#endif
+extern su_int __udivsi3(su_int, su_int);
+extern du_int __udivmoddi4(du_int, du_int, du_int *);
+#if !defined(__i386__)
+extern du_int __umoddi3(du_int, du_int);
+#endif
+extern void __eprintf(char const *, char const *, char const *, char const *)
+  __attribute__((visibility("hidden")));
+
+#if defined(__cplusplus)
+}
+#endif
+
+#endif /* BCC_RUNTIME_STUB_H */
