Index: uspace/lib/softint/generic/comparison.c
===================================================================
--- uspace/lib/softint/generic/comparison.c	(revision 83488467de531542d2952d3e89d16ece20eaa46d)
+++ uspace/lib/softint/generic/comparison.c	(revision 33b8d024bc268f2773c26e74a40dada11bb71e58)
@@ -91,4 +91,28 @@
 int ALIAS(__cmp, i2);
 int ALIAS(__ucmp, i2);
+#else
+
+int __cmpdi2(long a, long b)
+{
+	if ((int)a < (int)b) {
+		return LESSER;
+	} else if ((int)a > (int)b) {
+		return GREATER;
+	} else {
+		return EQUAL;
+	}
+}
+
+int __ucmpdi2(unsigned long a, unsigned long b)
+{
+	if ((int)a < (int)b) {
+		return LESSER;
+	} else if ((int)a > (int)b) {
+		return GREATER;
+	} else {
+		return EQUAL;
+	}
+}
+
 #endif
 
Index: uspace/lib/softint/generic/multiplication.c
===================================================================
--- uspace/lib/softint/generic/multiplication.c	(revision 83488467de531542d2952d3e89d16ece20eaa46d)
+++ uspace/lib/softint/generic/multiplication.c	(revision 33b8d024bc268f2773c26e74a40dada11bb71e58)
@@ -123,4 +123,9 @@
 #if LONG_MAX == LLONG_MAX
 long ALIAS(__mul, i3);
+#else
+long __muldi3(long a, long b)
+{
+	return (int)a * (int)b;
+}
 #endif
 
Index: uspace/lib/softint/generic/shift.c
===================================================================
--- uspace/lib/softint/generic/shift.c	(revision 83488467de531542d2952d3e89d16ece20eaa46d)
+++ uspace/lib/softint/generic/shift.c	(revision 33b8d024bc268f2773c26e74a40dada11bb71e58)
@@ -126,10 +126,10 @@
 long long __aeabi_llsl(long long val, int shift)
 {
-	return __ashldi3(val, shift);
+	return __ashlti3(val, shift);
 }
 
 long long __aeabi_llsr(long long val, int shift)
 {
-	return __lshrdi3(val, shift);
+	return __lshrti3(val, shift);
 }
 
@@ -138,4 +138,21 @@
 long ALIAS(__ashr, i3);
 long ALIAS(__lshr, i3);
+#else
+
+long __ashldi3(long val, int shift)
+{
+	return ((int) val) << shift;
+}
+
+long __ashrdi3(long val, int shift)
+{
+	return ((int) val) >> shift;
+}
+
+long __lshrdi3(long val, int shift)
+{
+	return ((unsigned int) val) >> shift;
+}
+
 #endif
 
