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