diff -r -u -d /tmp/strace-4.6/bjm.c ./bjm.c
--- /tmp/strace-4.6/bjm.c	2009-11-06 09:27:46.000000000 -0800
+++ ./bjm.c	2013-01-04 12:26:34.977221825 -0800
@@ -39,7 +39,9 @@
 #include <sys/wait.h>
 #include <sys/resource.h>
 #include <sys/utsname.h>
+#ifndef HAVE_ANDROID_OS
 #include <sys/user.h>
+#endif
 #include <sys/syscall.h>
 #include <signal.h>
 
diff -r -u -d /tmp/strace-4.6/defs.h ./defs.h
--- /tmp/strace-4.6/defs.h	2011-03-15 10:19:09.000000000 -0700
+++ ./defs.h	2013-01-04 12:26:34.977221825 -0800
@@ -33,10 +33,6 @@
 #include "config.h"
 #endif
 
-#ifdef MIPS
-#include <sgidefs.h>
-#endif
-
 #ifdef linux
 #include <features.h>
 #endif
diff -r -u -d /tmp/strace-4.6/file.c ./file.c
--- /tmp/strace-4.6/file.c	2011-03-03 18:08:02.000000000 -0800
+++ ./file.c	2013-01-04 12:26:34.977221825 -0800
@@ -45,6 +45,60 @@
 # define kernel_dirent dirent
 #endif
 
+#ifdef HAVE_ANDROID_OS
+#include <linux/fadvise.h>
+
+// ANDROID: From linux/dirent.h
+
+struct dirent64 {
+ __u64 d_ino;
+ __s64 d_off;
+ unsigned short d_reclen;
+ unsigned char d_type;
+ char d_name[256];
+};
+
+// ANDROID: From kernel_headers/asm/statfs.h
+
+#if !defined(MIPS)
+/*
+ * With EABI there is 4 bytes of padding added to this structure.
+ * Let's pack it so the padding goes away to simplify dual ABI support.
+ * Note that user space does NOT have to pack this structure.
+ */
+struct statfs64 {
+        __u32 f_type;
+        __u32 f_bsize;
+        __u64 f_blocks;
+        __u64 f_bfree;
+        __u64 f_bavail;
+        __u64 f_files;
+        __u64 f_ffree;
+        __kernel_fsid_t f_fsid;
+        __u32 f_namelen;
+        __u32 f_frsize;
+        __u32 f_spare[5];
+} __attribute__ ((packed,aligned(4)));
+#else
+struct statfs64 {
+	__u32 f_type;
+	__u32 f_bsize;
+	__u32 f_frsize;
+	__u32 __pad;
+	__u64 f_blocks;
+	__u64 f_bfree;
+	__u64 f_files;
+	__u64 f_ffree;
+	__u64 f_bavail;
+	__kernel_fsid_t f_fsid;
+	__u32 f_namelen;
+	__u32 f_spare[6];
+};
+#endif
+
+
+#endif /* HAVE_ANDROID_OS */
+
 #ifdef LINUX
 #  ifdef LINUXSPARC
 struct stat {
@@ -1732,11 +1786,19 @@
 		(unsigned long)statbuf.f_bsize,
 		(unsigned long)statbuf.f_blocks,
 		(unsigned long)statbuf.f_bfree);
+#ifdef MIPS
+	tprintf("f_bavail=%lu, f_files=%lu, f_ffree=%lu, f_fsid={%ld, %ld}",
+		(unsigned long)statbuf.f_bavail,
+		(unsigned long)statbuf.f_files,
+		(unsigned long)statbuf.f_ffree,
+		statbuf.f_fsid.val[0], statbuf.f_fsid.val[1]);
+#else
 	tprintf("f_bavail=%lu, f_files=%lu, f_ffree=%lu, f_fsid={%d, %d}",
 		(unsigned long)statbuf.f_bavail,
 		(unsigned long)statbuf.f_files,
 		(unsigned long)statbuf.f_ffree,
 		statbuf.f_fsid.__val[0], statbuf.f_fsid.__val[1]);
+#endif
 #ifdef LINUX
 	tprintf(", f_namelen=%lu", (unsigned long)statbuf.f_namelen);
 #endif /* LINUX */
@@ -1790,11 +1852,19 @@
 		(unsigned long long)statbuf.f_bsize,
 		(unsigned long long)statbuf.f_blocks,
 		(unsigned long long)statbuf.f_bfree);
+#ifdef MIPS
+	tprintf("f_bavail=%llu, f_files=%llu, f_ffree=%llu, f_fsid={%ld, %ld}",
+		(unsigned long long)statbuf.f_bavail,
+		(unsigned long long)statbuf.f_files,
+		(unsigned long long)statbuf.f_ffree,
+		statbuf.f_fsid.val[0], statbuf.f_fsid.val[1]);
+#else
 	tprintf("f_bavail=%llu, f_files=%llu, f_ffree=%llu, f_fsid={%d, %d}",
 		(unsigned long long)statbuf.f_bavail,
 		(unsigned long long)statbuf.f_files,
 		(unsigned long long)statbuf.f_ffree,
 		statbuf.f_fsid.__val[0], statbuf.f_fsid.__val[1]);
+#endif
 	tprintf(", f_namelen=%lu", (unsigned long)statbuf.f_namelen);
 #ifdef _STATFS_F_FRSIZE
 	tprintf(", f_frsize=%llu", (unsigned long long)statbuf.f_frsize);
diff -r -u -d /tmp/strace-4.6/ioctl.c ./ioctl.c
--- /tmp/strace-4.6/ioctl.c	2011-01-15 12:15:31.000000000 -0800
+++ ./ioctl.c	2013-01-04 12:26:34.977221825 -0800
@@ -155,9 +155,11 @@
 	case 0x03:
 	case 0x12:
 		return block_ioctl(tcp, code, arg);
+#ifndef HAVE_ANDROID_OS
 	case 0x22:
 		return scsi_ioctl(tcp, code, arg);
 #endif
+#endif
 	default:
 		break;
 	}
diff -r -u -d /tmp/strace-4.6/ipc.c ./ipc.c
--- /tmp/strace-4.6/ipc.c	2010-03-31 15:22:01.000000000 -0700
+++ ./ipc.c	2013-01-04 12:26:34.977221825 -0800
@@ -40,9 +40,15 @@
 
 #include <fcntl.h>
 #include <sys/ipc.h>
+#ifdef HAVE_ANDROID_OS
+#include <linux/sem.h>
+#include <linux/msg.h>
+#include <linux/shm.h>
+#else
 #include <sys/sem.h>
 #include <sys/msg.h>
 #include <sys/shm.h>
+#endif
 
 #ifndef MSG_STAT
 #define MSG_STAT 11
diff -r -u -d /tmp/strace-4.6/process.c ./process.c
--- /tmp/strace-4.6/process.c	2011-03-14 14:58:59.000000000 -0700
+++ ./process.c	2013-01-04 12:26:34.987221830 -0800
@@ -45,7 +45,11 @@
 #include <sys/wait.h>
 #include <sys/resource.h>
 #include <sys/utsname.h>
+#ifdef HAVE_ANDROID_OS
+#include <asm/user.h>
+#else
 #include <sys/user.h>
+#endif
 #include <sys/syscall.h>
 #include <signal.h>
 #ifdef SUNOS4
@@ -114,6 +118,10 @@
 #define GETGROUPS32_T __kernel_gid32_t
 #endif /* LINUX */
 
+#ifdef HAVE_ANDROID_OS
+#define __sched_priority sched_priority
+#endif
+
 #if defined(LINUX) && defined(IA64)
 # include <asm/ptrace_offsets.h>
 # include <asm/rse.h>
diff -r -u -d /tmp/strace-4.6/signal.c ./signal.c
--- /tmp/strace-4.6/signal.c	2011-03-10 15:14:47.000000000 -0800
+++ ./signal.c	2013-01-04 12:26:34.987221830 -0800
@@ -37,9 +37,17 @@
 
 #include <stdint.h>
 #include <signal.h>
+#ifndef HAVE_ANDROID_OS
 #include <sys/user.h>
+#endif
 #include <fcntl.h>
 
+#ifdef HAVE_ANDROID_OS
+//FIXME use "sigprocmask" or something
+#define sigmask(sig)    (1UL << ((sig) - 1))
+#define sigcontext_struct sigcontext
+#endif
+
 #ifdef SVR4
 #include <sys/ucontext.h>
 #endif /* SVR4 */
@@ -455,7 +463,7 @@
 
 #endif /* LINUX */
 
-#if __GLIBC_MINOR__ < 1
+#if __GLIBC_MINOR__ < 1 && !defined(HAVE_ANDROID_OS)
 /* Type for data associated with a signal.  */
 typedef union sigval
 {
@@ -1492,6 +1500,7 @@
 		tcp->u_arg[0] = 0;
 		sp = regs.regs[29];
 		if (umove(tcp, sp, &si) < 0)
+			return 0;
 		tcp->u_arg[0] = 1;
 		tcp->u_arg[1] = si.si_mask;
 	} else {
diff -r -u -d /tmp/strace-4.6/syscall.c ./syscall.c
--- /tmp/strace-4.6/syscall.c	2011-02-18 16:02:27.000000000 -0800
+++ ./syscall.c	2013-03-21 17:57:17.999238040 -0700
@@ -38,7 +38,9 @@
 #include <signal.h>
 #include <time.h>
 #include <errno.h>
+#ifndef HAVE_ANDROID_OS
 #include <sys/user.h>
+#endif
 #include <sys/syscall.h>
 #include <sys/param.h>
 
@@ -2600,6 +2602,7 @@
 	}
 
 	switch (known_scno(tcp)) {
+#ifndef __ARM_EABI__
 #ifdef SYS_socket_subcall
 	case SYS_socketcall:
 		decode_subcall(tcp, SYS_socket_subcall,
@@ -2612,6 +2615,7 @@
 			SYS_ipc_nsubcalls, shift_style);
 		break;
 #endif
+#endif
 #ifdef SVR4
 #ifdef SYS_pgrpsys_subcall
 	case SYS_pgrpsys:
diff -r -u -d /tmp/strace-4.6/system.c ./system.c
--- /tmp/strace-4.6/system.c	2011-02-22 02:22:13.000000000 -0800
+++ ./system.c	2013-03-21 17:27:34.050083824 -0700
@@ -32,6 +32,11 @@
 
 #include "defs.h"
 
+#ifdef HAVE_ANDROID_OS
+#undef __unused
+#include <linux/socket.h>
+#endif
+
 #ifdef LINUX
 #define _LINUX_SOCKET_H
 #define _LINUX_FS_H
@@ -83,7 +88,7 @@
 #include <linux/utsname.h>
 #endif
 
-#ifdef HAVE_ASM_SYSMIPS_H
+#ifdef MIPS
 #include <asm/sysmips.h>
 #endif
 
diff -r -u -d /tmp/strace-4.6/time.c ./time.c
--- /tmp/strace-4.6/time.c	2011-03-03 18:08:02.000000000 -0800
+++ ./time.c	2013-01-04 12:26:34.987221830 -0800
@@ -33,7 +33,11 @@
 
 #ifdef LINUX
 #include <linux/version.h>
+#ifdef HAVE_ANDROID_OS
+#include <linux/timex.h>
+#else
 #include <sys/timex.h>
+#endif
 #include <linux/ioctl.h>
 #include <linux/rtc.h>
 
diff -r -u -d /tmp/strace-4.6/util.c ./util.c
--- /tmp/strace-4.6/util.c	2011-03-03 18:08:02.000000000 -0800
+++ ./util.c	2013-03-21 17:57:25.519150107 -0700
@@ -37,7 +37,9 @@
 
 #include <signal.h>
 #include <sys/syscall.h>
+#ifndef HAVE_ANDROID_OS
 #include <sys/user.h>
+#endif
 #include <sys/param.h>
 #include <fcntl.h>
 #if HAVE_SYS_UIO_H
