Add ARM runtime abi support
diff --git a/lib/bcc/Runtime.def b/lib/bcc/Runtime.def
index eac19ec..e77bbf0 100644
--- a/lib/bcc/Runtime.def
+++ b/lib/bcc/Runtime.def
@@ -33,6 +33,60 @@
 
 DEF_LLVM_RUNTIME(__addvdi3)
 DEF_LLVM_RUNTIME(__addvsi3)
+
+#if defined(__arm__)
+  // ARM Runtime ABI:
+  // http://infocenter.arm.com/help/topic/com.arm.doc.ihi0043c/IHI0043C_rtabi.pdf
+  // See also: external/llvm/lib/Target/ARM/ARMISelLowering.cpp
+
+  DEF_GENERIC_RUNTIME(__aeabi_d2f)
+  DEF_GENERIC_RUNTIME(__aeabi_d2iz)
+  DEF_GENERIC_RUNTIME(__aeabi_d2lz)
+  DEF_GENERIC_RUNTIME(__aeabi_d2uiz)
+  DEF_GENERIC_RUNTIME(__aeabi_d2ulz)
+  DEF_GENERIC_RUNTIME(__aeabi_dadd)
+  DEF_GENERIC_RUNTIME(__aeabi_dcmpeq)
+  DEF_GENERIC_RUNTIME(__aeabi_dcmpge)
+  DEF_GENERIC_RUNTIME(__aeabi_dcmpgt)
+  DEF_GENERIC_RUNTIME(__aeabi_dcmple)
+  DEF_GENERIC_RUNTIME(__aeabi_dcmplt)
+  DEF_GENERIC_RUNTIME(__aeabi_dcmpun)
+  DEF_GENERIC_RUNTIME(__aeabi_ddiv)
+  DEF_GENERIC_RUNTIME(__aeabi_dmul)
+  DEF_GENERIC_RUNTIME(__aeabi_dsub)
+  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_f2ulz)
+  DEF_GENERIC_RUNTIME(__aeabi_fadd)
+  DEF_GENERIC_RUNTIME(__aeabi_fcmpeq)
+  DEF_GENERIC_RUNTIME(__aeabi_fcmpge)
+  DEF_GENERIC_RUNTIME(__aeabi_fcmpgt)
+  DEF_GENERIC_RUNTIME(__aeabi_fcmple)
+  DEF_GENERIC_RUNTIME(__aeabi_fcmplt)
+  DEF_GENERIC_RUNTIME(__aeabi_fcmpun)
+  DEF_GENERIC_RUNTIME(__aeabi_fdiv)
+  DEF_GENERIC_RUNTIME(__aeabi_fmul)
+  DEF_GENERIC_RUNTIME(__aeabi_fsub)
+  DEF_GENERIC_RUNTIME(__aeabi_i2d)
+  DEF_GENERIC_RUNTIME(__aeabi_i2f)
+  DEF_GENERIC_RUNTIME(__aeabi_idiv)
+  DEF_GENERIC_RUNTIME(__aeabi_l2d)
+  DEF_GENERIC_RUNTIME(__aeabi_l2f)
+  DEF_GENERIC_RUNTIME(__aeabi_lasr)
+  DEF_GENERIC_RUNTIME(__aeabi_ldivmod)
+  DEF_GENERIC_RUNTIME(__aeabi_llsl)
+  DEF_GENERIC_RUNTIME(__aeabi_llsr)
+  DEF_GENERIC_RUNTIME(__aeabi_lmul)
+  DEF_GENERIC_RUNTIME(__aeabi_ui2d)
+  DEF_GENERIC_RUNTIME(__aeabi_ui2f)
+  DEF_GENERIC_RUNTIME(__aeabi_uidiv)
+  DEF_GENERIC_RUNTIME(__aeabi_ul2d)
+  DEF_GENERIC_RUNTIME(__aeabi_ul2f)
+  DEF_GENERIC_RUNTIME(__aeabi_uldivmod)
+#endif // defined(__arm__)
+
 #if !defined(__i386__) && !defined(__SSE2__)
     DEF_LLVM_RUNTIME(__ashldi3)
 #endif