Use the kernel's MAX_ERRNO in the syscall stubs.
Bug: http://code.google.com/p/android/issues/detail?id=53104
Change-Id: Iaabf7025b153e96dc5eca231a33a32d4cb7d8116
diff --git a/libc/arch-arm/syscalls/getsockopt.S b/libc/arch-arm/syscalls/getsockopt.S
index d52f441..5a18c52 100644
--- a/libc/arch-arm/syscalls/getsockopt.S
+++ b/libc/arch-arm/syscalls/getsockopt.S
@@ -1,4 +1,5 @@
/* autogenerated by gensyscalls.py */
+#include <linux/err.h>
#include <machine/asm.h>
#include <sys/linux-syscalls.h>
@@ -10,7 +11,8 @@
ldr r7, =__NR_getsockopt
swi #0
ldmfd sp!, {r4, r5, r6, r7}
- movs r0, r0
- bxpl lr
- b __set_syscall_errno
+ cmn r0, #(MAX_ERRNO + 1)
+ bxls lr
+ neg r0, r0
+ b __set_errno
END(getsockopt)