diff --git a/android-ndk-r8/platforms/android-14/arch-arm/usr/include/net/if_dl.h b/android-ndk-r8/platforms/android-14/arch-arm/usr/include/net/if_dl.h
new file mode 100644
index 0000000..1f0c080
--- /dev/null
+++ b/android-ndk-r8/platforms/android-14/arch-arm/usr/include/net/if_dl.h
@@ -0,0 +1,87 @@
+/*	$NetBSD: if_dl.h,v 1.18 2005/12/11 23:05:24 thorpej Exp $	*/
+
+/*
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if_dl.h	8.1 (Berkeley) 6/10/93
+ */
+
+/*
+ * A Link-Level Sockaddr may specify the interface in one of two
+ * ways: either by means of a system-provided index number (computed
+ * anew and possibly differently on every reboot), or by a human-readable
+ * string such as "il0" (for managerial convenience).
+ *
+ * Census taking actions, such as something akin to SIOCGCONF would return
+ * both the index and the human name.
+ *
+ * High volume transactions (such as giving a link-level ``from'' address
+ * in a recvfrom or recvmsg call) may be likely only to provide the indexed
+ * form, (which requires fewer copy operations and less space).
+ *
+ * The form and interpretation  of the link-level address is purely a matter
+ * of convention between the device driver and its consumers; however, it is
+ * expected that all drivers for an interface of a given if_type will agree.
+ */
+
+#ifndef _NET_IF_DL_H_
+#define _NET_IF_DL_H_
+
+#include <sys/socket.h>
+
+/*
+ * Structure of a Link-Level sockaddr:
+ */
+struct sockaddr_dl {
+	u_char	    sdl_len;	/* Total length of sockaddr */
+	sa_family_t sdl_family;	/* AF_LINK */
+	u_int16_t   sdl_index;	/* if != 0, system given index for interface */
+	u_char	    sdl_type;	/* interface type */
+	u_char	    sdl_nlen;	/* interface name length, no trailing 0 reqd. */
+	u_char	    sdl_alen;	/* link level address length */
+	u_char	    sdl_slen;	/* link layer selector length */
+	char	    sdl_data[12]; /* minimum work area, can be larger;
+				     contains both if name and ll address */
+};
+
+/* We do arithmetic directly with these, so keep them char instead of void */
+#define LLADDR(s) ((char *)((s)->sdl_data + (s)->sdl_nlen))
+#define CLLADDR(s) ((const char *)((s)->sdl_data + (s)->sdl_nlen))
+
+#ifndef _KERNEL
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+void	link_addr(const char *, struct sockaddr_dl *);
+char	*link_ntoa(const struct sockaddr_dl *);
+__END_DECLS
+
+#endif /* !_KERNEL */
+
+#endif /* !_NET_IF_DL_H_ */
diff --git a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/crtbegin_dynamic.o b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/crtbegin_dynamic.o
index a969511..f34cba8 100644
--- a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/crtbegin_dynamic.o
+++ b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/crtbegin_dynamic.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/crtbegin_so.o b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/crtbegin_so.o
index 2940ffb..5230178 100644
--- a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/crtbegin_so.o
+++ b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/crtbegin_so.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/crtbegin_static.o b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/crtbegin_static.o
index da4d83e..f34cba8 100644
--- a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/crtbegin_static.o
+++ b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/crtbegin_static.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/crtend_android.o b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/crtend_android.o
index 7e8b1b2..c57149e 100644
--- a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/crtend_android.o
+++ b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/crtend_android.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/crtend_so.o b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/crtend_so.o
index f1adda7..c54db97 100644
--- a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/crtend_so.o
+++ b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/crtend_so.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libEGL.so b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libEGL.so
index 8e245db..86cba72 100755
--- a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libEGL.so
+++ b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libEGL.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libGLESv1_CM.so b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libGLESv1_CM.so
index 20ecaa4..f8d1897 100755
--- a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libGLESv1_CM.so
+++ b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libGLESv1_CM.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libGLESv2.so b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libGLESv2.so
index 9493c77..6c4bc45 100755
--- a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libGLESv2.so
+++ b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libGLESv2.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libOpenMAXAL.so b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libOpenMAXAL.so
index 439014c..f21dca4 100755
--- a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libOpenMAXAL.so
+++ b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libOpenMAXAL.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libOpenSLES.so b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libOpenSLES.so
index 6834517..75c7b76 100755
--- a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libOpenSLES.so
+++ b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libOpenSLES.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libandroid.so b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libandroid.so
index 69610f4..8697d03 100755
--- a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libandroid.so
+++ b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libandroid.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libc.so b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libc.so
index 9ab0e60..15acab7 100755
--- a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libc.so
+++ b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libc.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libdl.so b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libdl.so
index b6fde67..be370e5 100755
--- a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libdl.so
+++ b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libdl.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libjnigraphics.so b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libjnigraphics.so
index 6769c2a..d922d51 100755
--- a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libjnigraphics.so
+++ b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libjnigraphics.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/liblog.so b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/liblog.so
index 46ebf82..e530dda 100755
--- a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/liblog.so
+++ b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/liblog.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libm.so b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libm.so
index 9faea64..f8ba7f5 100755
--- a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libm.so
+++ b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libm.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libstdc++.so b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libstdc++.so
index 031dcd8..8d08295 100755
--- a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libstdc++.so
+++ b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libstdc++.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libthread_db.so b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libthread_db.so
index 80dabb0..828e44a 100755
--- a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libthread_db.so
+++ b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libthread_db.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libz.so b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libz.so
index 251be1d..be4d641 100755
--- a/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libz.so
+++ b/android-ndk-r8/platforms/android-14/arch-arm/usr/lib/libz.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-mips/usr/include/asm/signal.h b/android-ndk-r8/platforms/android-14/arch-mips/usr/include/asm/signal.h
index 5f5ac77..b51ad71 100644
--- a/android-ndk-r8/platforms/android-14/arch-mips/usr/include/asm/signal.h
+++ b/android-ndk-r8/platforms/android-14/arch-mips/usr/include/asm/signal.h
@@ -92,33 +92,32 @@
 #define MINSIGSTKSZ 2048
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SIGSTKSZ 8192
-struct siginfo;
 #define SIG_BLOCK 1  
 #define SIG_UNBLOCK 2  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SIG_SETMASK 3  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm-generic/signal.h>
 struct sigaction {
  unsigned int sa_flags;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  union {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __sighandler_t sa_handler;
  void (*sa_sigaction) (int, struct siginfo *, void *);
  } __sigaction_handler;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define sa_handler __sigaction_handler.sa_handler
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define sa_sigaction __sigaction_handler.sa_sigaction
  sigset_t sa_mask;
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct k_sigaction {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct sigaction sa;
 };
 typedef struct sigaltstack {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  void *ss_sp;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  size_t ss_size;
  int ss_flags;
 } stack_t;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/android-ndk-r8/platforms/android-14/arch-mips/usr/include/net/if_dl.h b/android-ndk-r8/platforms/android-14/arch-mips/usr/include/net/if_dl.h
new file mode 100644
index 0000000..1f0c080
--- /dev/null
+++ b/android-ndk-r8/platforms/android-14/arch-mips/usr/include/net/if_dl.h
@@ -0,0 +1,87 @@
+/*	$NetBSD: if_dl.h,v 1.18 2005/12/11 23:05:24 thorpej Exp $	*/
+
+/*
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if_dl.h	8.1 (Berkeley) 6/10/93
+ */
+
+/*
+ * A Link-Level Sockaddr may specify the interface in one of two
+ * ways: either by means of a system-provided index number (computed
+ * anew and possibly differently on every reboot), or by a human-readable
+ * string such as "il0" (for managerial convenience).
+ *
+ * Census taking actions, such as something akin to SIOCGCONF would return
+ * both the index and the human name.
+ *
+ * High volume transactions (such as giving a link-level ``from'' address
+ * in a recvfrom or recvmsg call) may be likely only to provide the indexed
+ * form, (which requires fewer copy operations and less space).
+ *
+ * The form and interpretation  of the link-level address is purely a matter
+ * of convention between the device driver and its consumers; however, it is
+ * expected that all drivers for an interface of a given if_type will agree.
+ */
+
+#ifndef _NET_IF_DL_H_
+#define _NET_IF_DL_H_
+
+#include <sys/socket.h>
+
+/*
+ * Structure of a Link-Level sockaddr:
+ */
+struct sockaddr_dl {
+	u_char	    sdl_len;	/* Total length of sockaddr */
+	sa_family_t sdl_family;	/* AF_LINK */
+	u_int16_t   sdl_index;	/* if != 0, system given index for interface */
+	u_char	    sdl_type;	/* interface type */
+	u_char	    sdl_nlen;	/* interface name length, no trailing 0 reqd. */
+	u_char	    sdl_alen;	/* link level address length */
+	u_char	    sdl_slen;	/* link layer selector length */
+	char	    sdl_data[12]; /* minimum work area, can be larger;
+				     contains both if name and ll address */
+};
+
+/* We do arithmetic directly with these, so keep them char instead of void */
+#define LLADDR(s) ((char *)((s)->sdl_data + (s)->sdl_nlen))
+#define CLLADDR(s) ((const char *)((s)->sdl_data + (s)->sdl_nlen))
+
+#ifndef _KERNEL
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+void	link_addr(const char *, struct sockaddr_dl *);
+char	*link_ntoa(const struct sockaddr_dl *);
+__END_DECLS
+
+#endif /* !_KERNEL */
+
+#endif /* !_NET_IF_DL_H_ */
diff --git a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/crtbegin_dynamic.o b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/crtbegin_dynamic.o
index 635874d..3202d1a 100644
--- a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/crtbegin_dynamic.o
+++ b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/crtbegin_dynamic.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/crtbegin_so.o b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/crtbegin_so.o
index d3a329b..ddfd100 100644
--- a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/crtbegin_so.o
+++ b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/crtbegin_so.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/crtbegin_static.o b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/crtbegin_static.o
index 211263a..34c5337 100644
--- a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/crtbegin_static.o
+++ b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/crtbegin_static.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/crtend_android.o b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/crtend_android.o
index 6936f73..4ac6536 100644
--- a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/crtend_android.o
+++ b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/crtend_android.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/crtend_so.o b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/crtend_so.o
index 58fa312..5c68629 100644
--- a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/crtend_so.o
+++ b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/crtend_so.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libEGL.so b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libEGL.so
index b597f62..bcb785a 100755
--- a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libEGL.so
+++ b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libEGL.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libGLESv1_CM.so b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libGLESv1_CM.so
index 1e74bea..597c919 100755
--- a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libGLESv1_CM.so
+++ b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libGLESv1_CM.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libGLESv2.so b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libGLESv2.so
index 4f71a7d..b02f860 100755
--- a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libGLESv2.so
+++ b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libGLESv2.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libOpenMAXAL.so b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libOpenMAXAL.so
index b636168..1ad966e 100755
--- a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libOpenMAXAL.so
+++ b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libOpenMAXAL.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libOpenSLES.so b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libOpenSLES.so
index 5df8c02..f23d5af 100755
--- a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libOpenSLES.so
+++ b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libOpenSLES.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libandroid.so b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libandroid.so
index e2028fb..0189865 100755
--- a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libandroid.so
+++ b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libandroid.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libc.so b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libc.so
index 988a4c3..726b700 100755
--- a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libc.so
+++ b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libc.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libdl.so b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libdl.so
index 8fb8a33..1e617aa 100755
--- a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libdl.so
+++ b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libdl.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libjnigraphics.so b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libjnigraphics.so
index 4d1f883..09ded1e 100755
--- a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libjnigraphics.so
+++ b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libjnigraphics.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/liblog.so b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/liblog.so
index b0c14ca..ca85bbb 100755
--- a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/liblog.so
+++ b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/liblog.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libm.so b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libm.so
index dd3b7d5..62683f6 100755
--- a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libm.so
+++ b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libm.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libstdc++.so b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libstdc++.so
index 63d8c3b..9d84b7f 100755
--- a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libstdc++.so
+++ b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libstdc++.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libthread_db.so b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libthread_db.so
index 8fa57e1..46994c5 100755
--- a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libthread_db.so
+++ b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libthread_db.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libz.so b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libz.so
index 6215022..0efab14 100755
--- a/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libz.so
+++ b/android-ndk-r8/platforms/android-14/arch-mips/usr/lib/libz.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-x86/usr/include/net/if_dl.h b/android-ndk-r8/platforms/android-14/arch-x86/usr/include/net/if_dl.h
new file mode 100644
index 0000000..1f0c080
--- /dev/null
+++ b/android-ndk-r8/platforms/android-14/arch-x86/usr/include/net/if_dl.h
@@ -0,0 +1,87 @@
+/*	$NetBSD: if_dl.h,v 1.18 2005/12/11 23:05:24 thorpej Exp $	*/
+
+/*
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if_dl.h	8.1 (Berkeley) 6/10/93
+ */
+
+/*
+ * A Link-Level Sockaddr may specify the interface in one of two
+ * ways: either by means of a system-provided index number (computed
+ * anew and possibly differently on every reboot), or by a human-readable
+ * string such as "il0" (for managerial convenience).
+ *
+ * Census taking actions, such as something akin to SIOCGCONF would return
+ * both the index and the human name.
+ *
+ * High volume transactions (such as giving a link-level ``from'' address
+ * in a recvfrom or recvmsg call) may be likely only to provide the indexed
+ * form, (which requires fewer copy operations and less space).
+ *
+ * The form and interpretation  of the link-level address is purely a matter
+ * of convention between the device driver and its consumers; however, it is
+ * expected that all drivers for an interface of a given if_type will agree.
+ */
+
+#ifndef _NET_IF_DL_H_
+#define _NET_IF_DL_H_
+
+#include <sys/socket.h>
+
+/*
+ * Structure of a Link-Level sockaddr:
+ */
+struct sockaddr_dl {
+	u_char	    sdl_len;	/* Total length of sockaddr */
+	sa_family_t sdl_family;	/* AF_LINK */
+	u_int16_t   sdl_index;	/* if != 0, system given index for interface */
+	u_char	    sdl_type;	/* interface type */
+	u_char	    sdl_nlen;	/* interface name length, no trailing 0 reqd. */
+	u_char	    sdl_alen;	/* link level address length */
+	u_char	    sdl_slen;	/* link layer selector length */
+	char	    sdl_data[12]; /* minimum work area, can be larger;
+				     contains both if name and ll address */
+};
+
+/* We do arithmetic directly with these, so keep them char instead of void */
+#define LLADDR(s) ((char *)((s)->sdl_data + (s)->sdl_nlen))
+#define CLLADDR(s) ((const char *)((s)->sdl_data + (s)->sdl_nlen))
+
+#ifndef _KERNEL
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+void	link_addr(const char *, struct sockaddr_dl *);
+char	*link_ntoa(const struct sockaddr_dl *);
+__END_DECLS
+
+#endif /* !_KERNEL */
+
+#endif /* !_NET_IF_DL_H_ */
diff --git a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/crtbegin_dynamic.o b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/crtbegin_dynamic.o
index 16e3d59..17704f5 100644
--- a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/crtbegin_dynamic.o
+++ b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/crtbegin_dynamic.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/crtbegin_so.o b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/crtbegin_so.o
index 8085514..cf50f1d 100644
--- a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/crtbegin_so.o
+++ b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/crtbegin_so.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/crtbegin_static.o b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/crtbegin_static.o
index 16e3d59..17704f5 100644
--- a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/crtbegin_static.o
+++ b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/crtbegin_static.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/crtend_android.o b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/crtend_android.o
index f99cdb5..87716a0 100644
--- a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/crtend_android.o
+++ b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/crtend_android.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/crtend_so.o b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/crtend_so.o
index 2fc910c..4c4460f 100644
--- a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/crtend_so.o
+++ b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/crtend_so.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libEGL.so b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libEGL.so
index d00fe43..fd21bfb 100755
--- a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libEGL.so
+++ b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libEGL.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libGLESv1_CM.so b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libGLESv1_CM.so
index 6f8b537..5b5fa9a 100755
--- a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libGLESv1_CM.so
+++ b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libGLESv1_CM.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libGLESv2.so b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libGLESv2.so
index f7a1f87..d3ce4b5 100755
--- a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libGLESv2.so
+++ b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libGLESv2.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libOpenMAXAL.so b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libOpenMAXAL.so
index 08199fc..97a5378 100755
--- a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libOpenMAXAL.so
+++ b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libOpenMAXAL.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libOpenSLES.so b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libOpenSLES.so
index dc12304..3a212c0 100755
--- a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libOpenSLES.so
+++ b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libOpenSLES.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libandroid.so b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libandroid.so
index 0bb5f95..4126c87 100755
--- a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libandroid.so
+++ b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libandroid.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libc.so b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libc.so
index 12a55d6..86b006a 100755
--- a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libc.so
+++ b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libc.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libdl.so b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libdl.so
index 2d28422..952eb54 100755
--- a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libdl.so
+++ b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libdl.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libjnigraphics.so b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libjnigraphics.so
index b4df95b..75a3f6f 100755
--- a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libjnigraphics.so
+++ b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libjnigraphics.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/liblog.so b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/liblog.so
index 3cdb522..b6bcbf8 100755
--- a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/liblog.so
+++ b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/liblog.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libm.so b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libm.so
index a9e24d9..c01deb6 100755
--- a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libm.so
+++ b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libm.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libstdc++.so b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libstdc++.so
index 66c3ce5..36af6d1 100755
--- a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libstdc++.so
+++ b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libstdc++.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libz.so b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libz.so
index 8cfae40..0979d83 100755
--- a/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libz.so
+++ b/android-ndk-r8/platforms/android-14/arch-x86/usr/lib/libz.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-3/arch-arm/usr/include/net/if_dl.h b/android-ndk-r8/platforms/android-3/arch-arm/usr/include/net/if_dl.h
new file mode 100644
index 0000000..1f0c080
--- /dev/null
+++ b/android-ndk-r8/platforms/android-3/arch-arm/usr/include/net/if_dl.h
@@ -0,0 +1,87 @@
+/*	$NetBSD: if_dl.h,v 1.18 2005/12/11 23:05:24 thorpej Exp $	*/
+
+/*
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if_dl.h	8.1 (Berkeley) 6/10/93
+ */
+
+/*
+ * A Link-Level Sockaddr may specify the interface in one of two
+ * ways: either by means of a system-provided index number (computed
+ * anew and possibly differently on every reboot), or by a human-readable
+ * string such as "il0" (for managerial convenience).
+ *
+ * Census taking actions, such as something akin to SIOCGCONF would return
+ * both the index and the human name.
+ *
+ * High volume transactions (such as giving a link-level ``from'' address
+ * in a recvfrom or recvmsg call) may be likely only to provide the indexed
+ * form, (which requires fewer copy operations and less space).
+ *
+ * The form and interpretation  of the link-level address is purely a matter
+ * of convention between the device driver and its consumers; however, it is
+ * expected that all drivers for an interface of a given if_type will agree.
+ */
+
+#ifndef _NET_IF_DL_H_
+#define _NET_IF_DL_H_
+
+#include <sys/socket.h>
+
+/*
+ * Structure of a Link-Level sockaddr:
+ */
+struct sockaddr_dl {
+	u_char	    sdl_len;	/* Total length of sockaddr */
+	sa_family_t sdl_family;	/* AF_LINK */
+	u_int16_t   sdl_index;	/* if != 0, system given index for interface */
+	u_char	    sdl_type;	/* interface type */
+	u_char	    sdl_nlen;	/* interface name length, no trailing 0 reqd. */
+	u_char	    sdl_alen;	/* link level address length */
+	u_char	    sdl_slen;	/* link layer selector length */
+	char	    sdl_data[12]; /* minimum work area, can be larger;
+				     contains both if name and ll address */
+};
+
+/* We do arithmetic directly with these, so keep them char instead of void */
+#define LLADDR(s) ((char *)((s)->sdl_data + (s)->sdl_nlen))
+#define CLLADDR(s) ((const char *)((s)->sdl_data + (s)->sdl_nlen))
+
+#ifndef _KERNEL
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+void	link_addr(const char *, struct sockaddr_dl *);
+char	*link_ntoa(const struct sockaddr_dl *);
+__END_DECLS
+
+#endif /* !_KERNEL */
+
+#endif /* !_NET_IF_DL_H_ */
diff --git a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/crtbegin_dynamic.o b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/crtbegin_dynamic.o
index 2d8b90c..f34cba8 100644
--- a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/crtbegin_dynamic.o
+++ b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/crtbegin_dynamic.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/crtbegin_so.o b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/crtbegin_so.o
index 2940ffb..5230178 100644
--- a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/crtbegin_so.o
+++ b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/crtbegin_so.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/crtbegin_static.o b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/crtbegin_static.o
index b826c6c..f34cba8 100644
--- a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/crtbegin_static.o
+++ b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/crtbegin_static.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/crtend_android.o b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/crtend_android.o
index 7e8b1b2..c57149e 100644
--- a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/crtend_android.o
+++ b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/crtend_android.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/crtend_so.o b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/crtend_so.o
index f1adda7..c54db97 100644
--- a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/crtend_so.o
+++ b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/crtend_so.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libc.so b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libc.so
index a961e22..d0f4709 100755
--- a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libc.so
+++ b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libc.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libdl.so b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libdl.so
index 2f5065a..8f77423 100755
--- a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libdl.so
+++ b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libdl.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/liblog.so b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/liblog.so
index 46ebf82..e530dda 100755
--- a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/liblog.so
+++ b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/liblog.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libm.so b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libm.so
index 9faea64..f8ba7f5 100755
--- a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libm.so
+++ b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libm.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libstdc++.so b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libstdc++.so
index 031dcd8..8d08295 100755
--- a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libstdc++.so
+++ b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libstdc++.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libthread_db.so b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libthread_db.so
index 80dabb0..828e44a 100755
--- a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libthread_db.so
+++ b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libthread_db.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libz.so b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libz.so
index 251be1d..be4d641 100755
--- a/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libz.so
+++ b/android-ndk-r8/platforms/android-3/arch-arm/usr/lib/libz.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-3/arch-mips/usr/include/net/if_dl.h b/android-ndk-r8/platforms/android-3/arch-mips/usr/include/net/if_dl.h
new file mode 100644
index 0000000..1f0c080
--- /dev/null
+++ b/android-ndk-r8/platforms/android-3/arch-mips/usr/include/net/if_dl.h
@@ -0,0 +1,87 @@
+/*	$NetBSD: if_dl.h,v 1.18 2005/12/11 23:05:24 thorpej Exp $	*/
+
+/*
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if_dl.h	8.1 (Berkeley) 6/10/93
+ */
+
+/*
+ * A Link-Level Sockaddr may specify the interface in one of two
+ * ways: either by means of a system-provided index number (computed
+ * anew and possibly differently on every reboot), or by a human-readable
+ * string such as "il0" (for managerial convenience).
+ *
+ * Census taking actions, such as something akin to SIOCGCONF would return
+ * both the index and the human name.
+ *
+ * High volume transactions (such as giving a link-level ``from'' address
+ * in a recvfrom or recvmsg call) may be likely only to provide the indexed
+ * form, (which requires fewer copy operations and less space).
+ *
+ * The form and interpretation  of the link-level address is purely a matter
+ * of convention between the device driver and its consumers; however, it is
+ * expected that all drivers for an interface of a given if_type will agree.
+ */
+
+#ifndef _NET_IF_DL_H_
+#define _NET_IF_DL_H_
+
+#include <sys/socket.h>
+
+/*
+ * Structure of a Link-Level sockaddr:
+ */
+struct sockaddr_dl {
+	u_char	    sdl_len;	/* Total length of sockaddr */
+	sa_family_t sdl_family;	/* AF_LINK */
+	u_int16_t   sdl_index;	/* if != 0, system given index for interface */
+	u_char	    sdl_type;	/* interface type */
+	u_char	    sdl_nlen;	/* interface name length, no trailing 0 reqd. */
+	u_char	    sdl_alen;	/* link level address length */
+	u_char	    sdl_slen;	/* link layer selector length */
+	char	    sdl_data[12]; /* minimum work area, can be larger;
+				     contains both if name and ll address */
+};
+
+/* We do arithmetic directly with these, so keep them char instead of void */
+#define LLADDR(s) ((char *)((s)->sdl_data + (s)->sdl_nlen))
+#define CLLADDR(s) ((const char *)((s)->sdl_data + (s)->sdl_nlen))
+
+#ifndef _KERNEL
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+void	link_addr(const char *, struct sockaddr_dl *);
+char	*link_ntoa(const struct sockaddr_dl *);
+__END_DECLS
+
+#endif /* !_KERNEL */
+
+#endif /* !_NET_IF_DL_H_ */
diff --git a/android-ndk-r8/platforms/android-3/arch-x86/usr/include/net/if_dl.h b/android-ndk-r8/platforms/android-3/arch-x86/usr/include/net/if_dl.h
new file mode 100644
index 0000000..1f0c080
--- /dev/null
+++ b/android-ndk-r8/platforms/android-3/arch-x86/usr/include/net/if_dl.h
@@ -0,0 +1,87 @@
+/*	$NetBSD: if_dl.h,v 1.18 2005/12/11 23:05:24 thorpej Exp $	*/
+
+/*
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if_dl.h	8.1 (Berkeley) 6/10/93
+ */
+
+/*
+ * A Link-Level Sockaddr may specify the interface in one of two
+ * ways: either by means of a system-provided index number (computed
+ * anew and possibly differently on every reboot), or by a human-readable
+ * string such as "il0" (for managerial convenience).
+ *
+ * Census taking actions, such as something akin to SIOCGCONF would return
+ * both the index and the human name.
+ *
+ * High volume transactions (such as giving a link-level ``from'' address
+ * in a recvfrom or recvmsg call) may be likely only to provide the indexed
+ * form, (which requires fewer copy operations and less space).
+ *
+ * The form and interpretation  of the link-level address is purely a matter
+ * of convention between the device driver and its consumers; however, it is
+ * expected that all drivers for an interface of a given if_type will agree.
+ */
+
+#ifndef _NET_IF_DL_H_
+#define _NET_IF_DL_H_
+
+#include <sys/socket.h>
+
+/*
+ * Structure of a Link-Level sockaddr:
+ */
+struct sockaddr_dl {
+	u_char	    sdl_len;	/* Total length of sockaddr */
+	sa_family_t sdl_family;	/* AF_LINK */
+	u_int16_t   sdl_index;	/* if != 0, system given index for interface */
+	u_char	    sdl_type;	/* interface type */
+	u_char	    sdl_nlen;	/* interface name length, no trailing 0 reqd. */
+	u_char	    sdl_alen;	/* link level address length */
+	u_char	    sdl_slen;	/* link layer selector length */
+	char	    sdl_data[12]; /* minimum work area, can be larger;
+				     contains both if name and ll address */
+};
+
+/* We do arithmetic directly with these, so keep them char instead of void */
+#define LLADDR(s) ((char *)((s)->sdl_data + (s)->sdl_nlen))
+#define CLLADDR(s) ((const char *)((s)->sdl_data + (s)->sdl_nlen))
+
+#ifndef _KERNEL
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+void	link_addr(const char *, struct sockaddr_dl *);
+char	*link_ntoa(const struct sockaddr_dl *);
+__END_DECLS
+
+#endif /* !_KERNEL */
+
+#endif /* !_NET_IF_DL_H_ */
diff --git a/android-ndk-r8/platforms/android-4/arch-arm/usr/include/net/if_dl.h b/android-ndk-r8/platforms/android-4/arch-arm/usr/include/net/if_dl.h
new file mode 100644
index 0000000..1f0c080
--- /dev/null
+++ b/android-ndk-r8/platforms/android-4/arch-arm/usr/include/net/if_dl.h
@@ -0,0 +1,87 @@
+/*	$NetBSD: if_dl.h,v 1.18 2005/12/11 23:05:24 thorpej Exp $	*/
+
+/*
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if_dl.h	8.1 (Berkeley) 6/10/93
+ */
+
+/*
+ * A Link-Level Sockaddr may specify the interface in one of two
+ * ways: either by means of a system-provided index number (computed
+ * anew and possibly differently on every reboot), or by a human-readable
+ * string such as "il0" (for managerial convenience).
+ *
+ * Census taking actions, such as something akin to SIOCGCONF would return
+ * both the index and the human name.
+ *
+ * High volume transactions (such as giving a link-level ``from'' address
+ * in a recvfrom or recvmsg call) may be likely only to provide the indexed
+ * form, (which requires fewer copy operations and less space).
+ *
+ * The form and interpretation  of the link-level address is purely a matter
+ * of convention between the device driver and its consumers; however, it is
+ * expected that all drivers for an interface of a given if_type will agree.
+ */
+
+#ifndef _NET_IF_DL_H_
+#define _NET_IF_DL_H_
+
+#include <sys/socket.h>
+
+/*
+ * Structure of a Link-Level sockaddr:
+ */
+struct sockaddr_dl {
+	u_char	    sdl_len;	/* Total length of sockaddr */
+	sa_family_t sdl_family;	/* AF_LINK */
+	u_int16_t   sdl_index;	/* if != 0, system given index for interface */
+	u_char	    sdl_type;	/* interface type */
+	u_char	    sdl_nlen;	/* interface name length, no trailing 0 reqd. */
+	u_char	    sdl_alen;	/* link level address length */
+	u_char	    sdl_slen;	/* link layer selector length */
+	char	    sdl_data[12]; /* minimum work area, can be larger;
+				     contains both if name and ll address */
+};
+
+/* We do arithmetic directly with these, so keep them char instead of void */
+#define LLADDR(s) ((char *)((s)->sdl_data + (s)->sdl_nlen))
+#define CLLADDR(s) ((const char *)((s)->sdl_data + (s)->sdl_nlen))
+
+#ifndef _KERNEL
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+void	link_addr(const char *, struct sockaddr_dl *);
+char	*link_ntoa(const struct sockaddr_dl *);
+__END_DECLS
+
+#endif /* !_KERNEL */
+
+#endif /* !_NET_IF_DL_H_ */
diff --git a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/crtbegin_dynamic.o b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/crtbegin_dynamic.o
index 577d932..f34cba8 100644
--- a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/crtbegin_dynamic.o
+++ b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/crtbegin_dynamic.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/crtbegin_so.o b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/crtbegin_so.o
index 2940ffb..5230178 100644
--- a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/crtbegin_so.o
+++ b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/crtbegin_so.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/crtbegin_static.o b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/crtbegin_static.o
index e9ab24b..f34cba8 100644
--- a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/crtbegin_static.o
+++ b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/crtbegin_static.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/crtend_android.o b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/crtend_android.o
index 7e8b1b2..c57149e 100644
--- a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/crtend_android.o
+++ b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/crtend_android.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/crtend_so.o b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/crtend_so.o
index f1adda7..c54db97 100644
--- a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/crtend_so.o
+++ b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/crtend_so.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libGLESv1_CM.so b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libGLESv1_CM.so
index 20ecaa4..f8d1897 100755
--- a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libGLESv1_CM.so
+++ b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libGLESv1_CM.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libc.so b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libc.so
index a961e22..d0f4709 100755
--- a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libc.so
+++ b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libc.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libdl.so b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libdl.so
index 2f5065a..8f77423 100755
--- a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libdl.so
+++ b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libdl.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/liblog.so b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/liblog.so
index 46ebf82..e530dda 100755
--- a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/liblog.so
+++ b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/liblog.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libm.so b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libm.so
index 9faea64..f8ba7f5 100755
--- a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libm.so
+++ b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libm.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libstdc++.so b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libstdc++.so
index 031dcd8..8d08295 100755
--- a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libstdc++.so
+++ b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libstdc++.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libthread_db.so b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libthread_db.so
index 80dabb0..828e44a 100755
--- a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libthread_db.so
+++ b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libthread_db.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libz.so b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libz.so
index 251be1d..be4d641 100755
--- a/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libz.so
+++ b/android-ndk-r8/platforms/android-4/arch-arm/usr/lib/libz.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-4/arch-mips/usr/include/net/if_dl.h b/android-ndk-r8/platforms/android-4/arch-mips/usr/include/net/if_dl.h
new file mode 100644
index 0000000..1f0c080
--- /dev/null
+++ b/android-ndk-r8/platforms/android-4/arch-mips/usr/include/net/if_dl.h
@@ -0,0 +1,87 @@
+/*	$NetBSD: if_dl.h,v 1.18 2005/12/11 23:05:24 thorpej Exp $	*/
+
+/*
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if_dl.h	8.1 (Berkeley) 6/10/93
+ */
+
+/*
+ * A Link-Level Sockaddr may specify the interface in one of two
+ * ways: either by means of a system-provided index number (computed
+ * anew and possibly differently on every reboot), or by a human-readable
+ * string such as "il0" (for managerial convenience).
+ *
+ * Census taking actions, such as something akin to SIOCGCONF would return
+ * both the index and the human name.
+ *
+ * High volume transactions (such as giving a link-level ``from'' address
+ * in a recvfrom or recvmsg call) may be likely only to provide the indexed
+ * form, (which requires fewer copy operations and less space).
+ *
+ * The form and interpretation  of the link-level address is purely a matter
+ * of convention between the device driver and its consumers; however, it is
+ * expected that all drivers for an interface of a given if_type will agree.
+ */
+
+#ifndef _NET_IF_DL_H_
+#define _NET_IF_DL_H_
+
+#include <sys/socket.h>
+
+/*
+ * Structure of a Link-Level sockaddr:
+ */
+struct sockaddr_dl {
+	u_char	    sdl_len;	/* Total length of sockaddr */
+	sa_family_t sdl_family;	/* AF_LINK */
+	u_int16_t   sdl_index;	/* if != 0, system given index for interface */
+	u_char	    sdl_type;	/* interface type */
+	u_char	    sdl_nlen;	/* interface name length, no trailing 0 reqd. */
+	u_char	    sdl_alen;	/* link level address length */
+	u_char	    sdl_slen;	/* link layer selector length */
+	char	    sdl_data[12]; /* minimum work area, can be larger;
+				     contains both if name and ll address */
+};
+
+/* We do arithmetic directly with these, so keep them char instead of void */
+#define LLADDR(s) ((char *)((s)->sdl_data + (s)->sdl_nlen))
+#define CLLADDR(s) ((const char *)((s)->sdl_data + (s)->sdl_nlen))
+
+#ifndef _KERNEL
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+void	link_addr(const char *, struct sockaddr_dl *);
+char	*link_ntoa(const struct sockaddr_dl *);
+__END_DECLS
+
+#endif /* !_KERNEL */
+
+#endif /* !_NET_IF_DL_H_ */
diff --git a/android-ndk-r8/platforms/android-4/arch-x86/usr/include/net/if_dl.h b/android-ndk-r8/platforms/android-4/arch-x86/usr/include/net/if_dl.h
new file mode 100644
index 0000000..1f0c080
--- /dev/null
+++ b/android-ndk-r8/platforms/android-4/arch-x86/usr/include/net/if_dl.h
@@ -0,0 +1,87 @@
+/*	$NetBSD: if_dl.h,v 1.18 2005/12/11 23:05:24 thorpej Exp $	*/
+
+/*
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if_dl.h	8.1 (Berkeley) 6/10/93
+ */
+
+/*
+ * A Link-Level Sockaddr may specify the interface in one of two
+ * ways: either by means of a system-provided index number (computed
+ * anew and possibly differently on every reboot), or by a human-readable
+ * string such as "il0" (for managerial convenience).
+ *
+ * Census taking actions, such as something akin to SIOCGCONF would return
+ * both the index and the human name.
+ *
+ * High volume transactions (such as giving a link-level ``from'' address
+ * in a recvfrom or recvmsg call) may be likely only to provide the indexed
+ * form, (which requires fewer copy operations and less space).
+ *
+ * The form and interpretation  of the link-level address is purely a matter
+ * of convention between the device driver and its consumers; however, it is
+ * expected that all drivers for an interface of a given if_type will agree.
+ */
+
+#ifndef _NET_IF_DL_H_
+#define _NET_IF_DL_H_
+
+#include <sys/socket.h>
+
+/*
+ * Structure of a Link-Level sockaddr:
+ */
+struct sockaddr_dl {
+	u_char	    sdl_len;	/* Total length of sockaddr */
+	sa_family_t sdl_family;	/* AF_LINK */
+	u_int16_t   sdl_index;	/* if != 0, system given index for interface */
+	u_char	    sdl_type;	/* interface type */
+	u_char	    sdl_nlen;	/* interface name length, no trailing 0 reqd. */
+	u_char	    sdl_alen;	/* link level address length */
+	u_char	    sdl_slen;	/* link layer selector length */
+	char	    sdl_data[12]; /* minimum work area, can be larger;
+				     contains both if name and ll address */
+};
+
+/* We do arithmetic directly with these, so keep them char instead of void */
+#define LLADDR(s) ((char *)((s)->sdl_data + (s)->sdl_nlen))
+#define CLLADDR(s) ((const char *)((s)->sdl_data + (s)->sdl_nlen))
+
+#ifndef _KERNEL
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+void	link_addr(const char *, struct sockaddr_dl *);
+char	*link_ntoa(const struct sockaddr_dl *);
+__END_DECLS
+
+#endif /* !_KERNEL */
+
+#endif /* !_NET_IF_DL_H_ */
diff --git a/android-ndk-r8/platforms/android-5/arch-arm/usr/include/net/if_dl.h b/android-ndk-r8/platforms/android-5/arch-arm/usr/include/net/if_dl.h
new file mode 100644
index 0000000..1f0c080
--- /dev/null
+++ b/android-ndk-r8/platforms/android-5/arch-arm/usr/include/net/if_dl.h
@@ -0,0 +1,87 @@
+/*	$NetBSD: if_dl.h,v 1.18 2005/12/11 23:05:24 thorpej Exp $	*/
+
+/*
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if_dl.h	8.1 (Berkeley) 6/10/93
+ */
+
+/*
+ * A Link-Level Sockaddr may specify the interface in one of two
+ * ways: either by means of a system-provided index number (computed
+ * anew and possibly differently on every reboot), or by a human-readable
+ * string such as "il0" (for managerial convenience).
+ *
+ * Census taking actions, such as something akin to SIOCGCONF would return
+ * both the index and the human name.
+ *
+ * High volume transactions (such as giving a link-level ``from'' address
+ * in a recvfrom or recvmsg call) may be likely only to provide the indexed
+ * form, (which requires fewer copy operations and less space).
+ *
+ * The form and interpretation  of the link-level address is purely a matter
+ * of convention between the device driver and its consumers; however, it is
+ * expected that all drivers for an interface of a given if_type will agree.
+ */
+
+#ifndef _NET_IF_DL_H_
+#define _NET_IF_DL_H_
+
+#include <sys/socket.h>
+
+/*
+ * Structure of a Link-Level sockaddr:
+ */
+struct sockaddr_dl {
+	u_char	    sdl_len;	/* Total length of sockaddr */
+	sa_family_t sdl_family;	/* AF_LINK */
+	u_int16_t   sdl_index;	/* if != 0, system given index for interface */
+	u_char	    sdl_type;	/* interface type */
+	u_char	    sdl_nlen;	/* interface name length, no trailing 0 reqd. */
+	u_char	    sdl_alen;	/* link level address length */
+	u_char	    sdl_slen;	/* link layer selector length */
+	char	    sdl_data[12]; /* minimum work area, can be larger;
+				     contains both if name and ll address */
+};
+
+/* We do arithmetic directly with these, so keep them char instead of void */
+#define LLADDR(s) ((char *)((s)->sdl_data + (s)->sdl_nlen))
+#define CLLADDR(s) ((const char *)((s)->sdl_data + (s)->sdl_nlen))
+
+#ifndef _KERNEL
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+void	link_addr(const char *, struct sockaddr_dl *);
+char	*link_ntoa(const struct sockaddr_dl *);
+__END_DECLS
+
+#endif /* !_KERNEL */
+
+#endif /* !_NET_IF_DL_H_ */
diff --git a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/crtbegin_dynamic.o b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/crtbegin_dynamic.o
index b2796d6..f34cba8 100644
--- a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/crtbegin_dynamic.o
+++ b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/crtbegin_dynamic.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/crtbegin_so.o b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/crtbegin_so.o
index 2940ffb..5230178 100644
--- a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/crtbegin_so.o
+++ b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/crtbegin_so.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/crtbegin_static.o b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/crtbegin_static.o
index 7ee7973..f34cba8 100644
--- a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/crtbegin_static.o
+++ b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/crtbegin_static.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/crtend_android.o b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/crtend_android.o
index 7e8b1b2..c57149e 100644
--- a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/crtend_android.o
+++ b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/crtend_android.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/crtend_so.o b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/crtend_so.o
index f1adda7..c54db97 100644
--- a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/crtend_so.o
+++ b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/crtend_so.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libGLESv1_CM.so b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libGLESv1_CM.so
index 20ecaa4..f8d1897 100755
--- a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libGLESv1_CM.so
+++ b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libGLESv1_CM.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libGLESv2.so b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libGLESv2.so
index 9493c77..6c4bc45 100755
--- a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libGLESv2.so
+++ b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libGLESv2.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libc.so b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libc.so
index a922fc8..318bf10 100755
--- a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libc.so
+++ b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libc.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libdl.so b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libdl.so
index 2f5065a..8f77423 100755
--- a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libdl.so
+++ b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libdl.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/liblog.so b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/liblog.so
index 46ebf82..e530dda 100755
--- a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/liblog.so
+++ b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/liblog.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libm.so b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libm.so
index 9faea64..f8ba7f5 100755
--- a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libm.so
+++ b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libm.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libstdc++.so b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libstdc++.so
index 031dcd8..8d08295 100755
--- a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libstdc++.so
+++ b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libstdc++.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libthread_db.so b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libthread_db.so
index 80dabb0..828e44a 100755
--- a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libthread_db.so
+++ b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libthread_db.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libz.so b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libz.so
index 251be1d..be4d641 100755
--- a/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libz.so
+++ b/android-ndk-r8/platforms/android-5/arch-arm/usr/lib/libz.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-5/arch-mips/usr/include/net/if_dl.h b/android-ndk-r8/platforms/android-5/arch-mips/usr/include/net/if_dl.h
new file mode 100644
index 0000000..1f0c080
--- /dev/null
+++ b/android-ndk-r8/platforms/android-5/arch-mips/usr/include/net/if_dl.h
@@ -0,0 +1,87 @@
+/*	$NetBSD: if_dl.h,v 1.18 2005/12/11 23:05:24 thorpej Exp $	*/
+
+/*
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if_dl.h	8.1 (Berkeley) 6/10/93
+ */
+
+/*
+ * A Link-Level Sockaddr may specify the interface in one of two
+ * ways: either by means of a system-provided index number (computed
+ * anew and possibly differently on every reboot), or by a human-readable
+ * string such as "il0" (for managerial convenience).
+ *
+ * Census taking actions, such as something akin to SIOCGCONF would return
+ * both the index and the human name.
+ *
+ * High volume transactions (such as giving a link-level ``from'' address
+ * in a recvfrom or recvmsg call) may be likely only to provide the indexed
+ * form, (which requires fewer copy operations and less space).
+ *
+ * The form and interpretation  of the link-level address is purely a matter
+ * of convention between the device driver and its consumers; however, it is
+ * expected that all drivers for an interface of a given if_type will agree.
+ */
+
+#ifndef _NET_IF_DL_H_
+#define _NET_IF_DL_H_
+
+#include <sys/socket.h>
+
+/*
+ * Structure of a Link-Level sockaddr:
+ */
+struct sockaddr_dl {
+	u_char	    sdl_len;	/* Total length of sockaddr */
+	sa_family_t sdl_family;	/* AF_LINK */
+	u_int16_t   sdl_index;	/* if != 0, system given index for interface */
+	u_char	    sdl_type;	/* interface type */
+	u_char	    sdl_nlen;	/* interface name length, no trailing 0 reqd. */
+	u_char	    sdl_alen;	/* link level address length */
+	u_char	    sdl_slen;	/* link layer selector length */
+	char	    sdl_data[12]; /* minimum work area, can be larger;
+				     contains both if name and ll address */
+};
+
+/* We do arithmetic directly with these, so keep them char instead of void */
+#define LLADDR(s) ((char *)((s)->sdl_data + (s)->sdl_nlen))
+#define CLLADDR(s) ((const char *)((s)->sdl_data + (s)->sdl_nlen))
+
+#ifndef _KERNEL
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+void	link_addr(const char *, struct sockaddr_dl *);
+char	*link_ntoa(const struct sockaddr_dl *);
+__END_DECLS
+
+#endif /* !_KERNEL */
+
+#endif /* !_NET_IF_DL_H_ */
diff --git a/android-ndk-r8/platforms/android-5/arch-x86/usr/include/net/if_dl.h b/android-ndk-r8/platforms/android-5/arch-x86/usr/include/net/if_dl.h
new file mode 100644
index 0000000..1f0c080
--- /dev/null
+++ b/android-ndk-r8/platforms/android-5/arch-x86/usr/include/net/if_dl.h
@@ -0,0 +1,87 @@
+/*	$NetBSD: if_dl.h,v 1.18 2005/12/11 23:05:24 thorpej Exp $	*/
+
+/*
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if_dl.h	8.1 (Berkeley) 6/10/93
+ */
+
+/*
+ * A Link-Level Sockaddr may specify the interface in one of two
+ * ways: either by means of a system-provided index number (computed
+ * anew and possibly differently on every reboot), or by a human-readable
+ * string such as "il0" (for managerial convenience).
+ *
+ * Census taking actions, such as something akin to SIOCGCONF would return
+ * both the index and the human name.
+ *
+ * High volume transactions (such as giving a link-level ``from'' address
+ * in a recvfrom or recvmsg call) may be likely only to provide the indexed
+ * form, (which requires fewer copy operations and less space).
+ *
+ * The form and interpretation  of the link-level address is purely a matter
+ * of convention between the device driver and its consumers; however, it is
+ * expected that all drivers for an interface of a given if_type will agree.
+ */
+
+#ifndef _NET_IF_DL_H_
+#define _NET_IF_DL_H_
+
+#include <sys/socket.h>
+
+/*
+ * Structure of a Link-Level sockaddr:
+ */
+struct sockaddr_dl {
+	u_char	    sdl_len;	/* Total length of sockaddr */
+	sa_family_t sdl_family;	/* AF_LINK */
+	u_int16_t   sdl_index;	/* if != 0, system given index for interface */
+	u_char	    sdl_type;	/* interface type */
+	u_char	    sdl_nlen;	/* interface name length, no trailing 0 reqd. */
+	u_char	    sdl_alen;	/* link level address length */
+	u_char	    sdl_slen;	/* link layer selector length */
+	char	    sdl_data[12]; /* minimum work area, can be larger;
+				     contains both if name and ll address */
+};
+
+/* We do arithmetic directly with these, so keep them char instead of void */
+#define LLADDR(s) ((char *)((s)->sdl_data + (s)->sdl_nlen))
+#define CLLADDR(s) ((const char *)((s)->sdl_data + (s)->sdl_nlen))
+
+#ifndef _KERNEL
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+void	link_addr(const char *, struct sockaddr_dl *);
+char	*link_ntoa(const struct sockaddr_dl *);
+__END_DECLS
+
+#endif /* !_KERNEL */
+
+#endif /* !_NET_IF_DL_H_ */
diff --git a/android-ndk-r8/platforms/android-8/arch-arm/usr/include/net/if_dl.h b/android-ndk-r8/platforms/android-8/arch-arm/usr/include/net/if_dl.h
new file mode 100644
index 0000000..1f0c080
--- /dev/null
+++ b/android-ndk-r8/platforms/android-8/arch-arm/usr/include/net/if_dl.h
@@ -0,0 +1,87 @@
+/*	$NetBSD: if_dl.h,v 1.18 2005/12/11 23:05:24 thorpej Exp $	*/
+
+/*
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if_dl.h	8.1 (Berkeley) 6/10/93
+ */
+
+/*
+ * A Link-Level Sockaddr may specify the interface in one of two
+ * ways: either by means of a system-provided index number (computed
+ * anew and possibly differently on every reboot), or by a human-readable
+ * string such as "il0" (for managerial convenience).
+ *
+ * Census taking actions, such as something akin to SIOCGCONF would return
+ * both the index and the human name.
+ *
+ * High volume transactions (such as giving a link-level ``from'' address
+ * in a recvfrom or recvmsg call) may be likely only to provide the indexed
+ * form, (which requires fewer copy operations and less space).
+ *
+ * The form and interpretation  of the link-level address is purely a matter
+ * of convention between the device driver and its consumers; however, it is
+ * expected that all drivers for an interface of a given if_type will agree.
+ */
+
+#ifndef _NET_IF_DL_H_
+#define _NET_IF_DL_H_
+
+#include <sys/socket.h>
+
+/*
+ * Structure of a Link-Level sockaddr:
+ */
+struct sockaddr_dl {
+	u_char	    sdl_len;	/* Total length of sockaddr */
+	sa_family_t sdl_family;	/* AF_LINK */
+	u_int16_t   sdl_index;	/* if != 0, system given index for interface */
+	u_char	    sdl_type;	/* interface type */
+	u_char	    sdl_nlen;	/* interface name length, no trailing 0 reqd. */
+	u_char	    sdl_alen;	/* link level address length */
+	u_char	    sdl_slen;	/* link layer selector length */
+	char	    sdl_data[12]; /* minimum work area, can be larger;
+				     contains both if name and ll address */
+};
+
+/* We do arithmetic directly with these, so keep them char instead of void */
+#define LLADDR(s) ((char *)((s)->sdl_data + (s)->sdl_nlen))
+#define CLLADDR(s) ((const char *)((s)->sdl_data + (s)->sdl_nlen))
+
+#ifndef _KERNEL
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+void	link_addr(const char *, struct sockaddr_dl *);
+char	*link_ntoa(const struct sockaddr_dl *);
+__END_DECLS
+
+#endif /* !_KERNEL */
+
+#endif /* !_NET_IF_DL_H_ */
diff --git a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/crtbegin_dynamic.o b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/crtbegin_dynamic.o
index adf371d..f34cba8 100644
--- a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/crtbegin_dynamic.o
+++ b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/crtbegin_dynamic.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/crtbegin_so.o b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/crtbegin_so.o
index 2940ffb..5230178 100644
--- a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/crtbegin_so.o
+++ b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/crtbegin_so.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/crtbegin_static.o b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/crtbegin_static.o
index 530cf2d..f34cba8 100644
--- a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/crtbegin_static.o
+++ b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/crtbegin_static.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/crtend_android.o b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/crtend_android.o
index 7e8b1b2..c57149e 100644
--- a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/crtend_android.o
+++ b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/crtend_android.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/crtend_so.o b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/crtend_so.o
index f1adda7..c54db97 100644
--- a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/crtend_so.o
+++ b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/crtend_so.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libGLESv1_CM.so b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libGLESv1_CM.so
index 20ecaa4..f8d1897 100755
--- a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libGLESv1_CM.so
+++ b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libGLESv1_CM.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libGLESv2.so b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libGLESv2.so
index 9493c77..6c4bc45 100755
--- a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libGLESv2.so
+++ b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libGLESv2.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libc.so b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libc.so
index bc00be7..1a0ebb6 100755
--- a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libc.so
+++ b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libc.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libdl.so b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libdl.so
index b6fde67..be370e5 100755
--- a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libdl.so
+++ b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libdl.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libjnigraphics.so b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libjnigraphics.so
index 6769c2a..d922d51 100755
--- a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libjnigraphics.so
+++ b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libjnigraphics.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/liblog.so b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/liblog.so
index 46ebf82..e530dda 100755
--- a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/liblog.so
+++ b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/liblog.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libm.so b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libm.so
index 9faea64..f8ba7f5 100755
--- a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libm.so
+++ b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libm.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libstdc++.so b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libstdc++.so
index 031dcd8..8d08295 100755
--- a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libstdc++.so
+++ b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libstdc++.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libthread_db.so b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libthread_db.so
index 80dabb0..828e44a 100755
--- a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libthread_db.so
+++ b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libthread_db.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libz.so b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libz.so
index 251be1d..be4d641 100755
--- a/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libz.so
+++ b/android-ndk-r8/platforms/android-8/arch-arm/usr/lib/libz.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-8/arch-mips/usr/include/net/if_dl.h b/android-ndk-r8/platforms/android-8/arch-mips/usr/include/net/if_dl.h
new file mode 100644
index 0000000..1f0c080
--- /dev/null
+++ b/android-ndk-r8/platforms/android-8/arch-mips/usr/include/net/if_dl.h
@@ -0,0 +1,87 @@
+/*	$NetBSD: if_dl.h,v 1.18 2005/12/11 23:05:24 thorpej Exp $	*/
+
+/*
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if_dl.h	8.1 (Berkeley) 6/10/93
+ */
+
+/*
+ * A Link-Level Sockaddr may specify the interface in one of two
+ * ways: either by means of a system-provided index number (computed
+ * anew and possibly differently on every reboot), or by a human-readable
+ * string such as "il0" (for managerial convenience).
+ *
+ * Census taking actions, such as something akin to SIOCGCONF would return
+ * both the index and the human name.
+ *
+ * High volume transactions (such as giving a link-level ``from'' address
+ * in a recvfrom or recvmsg call) may be likely only to provide the indexed
+ * form, (which requires fewer copy operations and less space).
+ *
+ * The form and interpretation  of the link-level address is purely a matter
+ * of convention between the device driver and its consumers; however, it is
+ * expected that all drivers for an interface of a given if_type will agree.
+ */
+
+#ifndef _NET_IF_DL_H_
+#define _NET_IF_DL_H_
+
+#include <sys/socket.h>
+
+/*
+ * Structure of a Link-Level sockaddr:
+ */
+struct sockaddr_dl {
+	u_char	    sdl_len;	/* Total length of sockaddr */
+	sa_family_t sdl_family;	/* AF_LINK */
+	u_int16_t   sdl_index;	/* if != 0, system given index for interface */
+	u_char	    sdl_type;	/* interface type */
+	u_char	    sdl_nlen;	/* interface name length, no trailing 0 reqd. */
+	u_char	    sdl_alen;	/* link level address length */
+	u_char	    sdl_slen;	/* link layer selector length */
+	char	    sdl_data[12]; /* minimum work area, can be larger;
+				     contains both if name and ll address */
+};
+
+/* We do arithmetic directly with these, so keep them char instead of void */
+#define LLADDR(s) ((char *)((s)->sdl_data + (s)->sdl_nlen))
+#define CLLADDR(s) ((const char *)((s)->sdl_data + (s)->sdl_nlen))
+
+#ifndef _KERNEL
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+void	link_addr(const char *, struct sockaddr_dl *);
+char	*link_ntoa(const struct sockaddr_dl *);
+__END_DECLS
+
+#endif /* !_KERNEL */
+
+#endif /* !_NET_IF_DL_H_ */
diff --git a/android-ndk-r8/platforms/android-8/arch-x86/usr/include/net/if_dl.h b/android-ndk-r8/platforms/android-8/arch-x86/usr/include/net/if_dl.h
new file mode 100644
index 0000000..1f0c080
--- /dev/null
+++ b/android-ndk-r8/platforms/android-8/arch-x86/usr/include/net/if_dl.h
@@ -0,0 +1,87 @@
+/*	$NetBSD: if_dl.h,v 1.18 2005/12/11 23:05:24 thorpej Exp $	*/
+
+/*
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if_dl.h	8.1 (Berkeley) 6/10/93
+ */
+
+/*
+ * A Link-Level Sockaddr may specify the interface in one of two
+ * ways: either by means of a system-provided index number (computed
+ * anew and possibly differently on every reboot), or by a human-readable
+ * string such as "il0" (for managerial convenience).
+ *
+ * Census taking actions, such as something akin to SIOCGCONF would return
+ * both the index and the human name.
+ *
+ * High volume transactions (such as giving a link-level ``from'' address
+ * in a recvfrom or recvmsg call) may be likely only to provide the indexed
+ * form, (which requires fewer copy operations and less space).
+ *
+ * The form and interpretation  of the link-level address is purely a matter
+ * of convention between the device driver and its consumers; however, it is
+ * expected that all drivers for an interface of a given if_type will agree.
+ */
+
+#ifndef _NET_IF_DL_H_
+#define _NET_IF_DL_H_
+
+#include <sys/socket.h>
+
+/*
+ * Structure of a Link-Level sockaddr:
+ */
+struct sockaddr_dl {
+	u_char	    sdl_len;	/* Total length of sockaddr */
+	sa_family_t sdl_family;	/* AF_LINK */
+	u_int16_t   sdl_index;	/* if != 0, system given index for interface */
+	u_char	    sdl_type;	/* interface type */
+	u_char	    sdl_nlen;	/* interface name length, no trailing 0 reqd. */
+	u_char	    sdl_alen;	/* link level address length */
+	u_char	    sdl_slen;	/* link layer selector length */
+	char	    sdl_data[12]; /* minimum work area, can be larger;
+				     contains both if name and ll address */
+};
+
+/* We do arithmetic directly with these, so keep them char instead of void */
+#define LLADDR(s) ((char *)((s)->sdl_data + (s)->sdl_nlen))
+#define CLLADDR(s) ((const char *)((s)->sdl_data + (s)->sdl_nlen))
+
+#ifndef _KERNEL
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+void	link_addr(const char *, struct sockaddr_dl *);
+char	*link_ntoa(const struct sockaddr_dl *);
+__END_DECLS
+
+#endif /* !_KERNEL */
+
+#endif /* !_NET_IF_DL_H_ */
diff --git a/android-ndk-r8/platforms/android-9/arch-arm/usr/include/net/if_dl.h b/android-ndk-r8/platforms/android-9/arch-arm/usr/include/net/if_dl.h
new file mode 100644
index 0000000..1f0c080
--- /dev/null
+++ b/android-ndk-r8/platforms/android-9/arch-arm/usr/include/net/if_dl.h
@@ -0,0 +1,87 @@
+/*	$NetBSD: if_dl.h,v 1.18 2005/12/11 23:05:24 thorpej Exp $	*/
+
+/*
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if_dl.h	8.1 (Berkeley) 6/10/93
+ */
+
+/*
+ * A Link-Level Sockaddr may specify the interface in one of two
+ * ways: either by means of a system-provided index number (computed
+ * anew and possibly differently on every reboot), or by a human-readable
+ * string such as "il0" (for managerial convenience).
+ *
+ * Census taking actions, such as something akin to SIOCGCONF would return
+ * both the index and the human name.
+ *
+ * High volume transactions (such as giving a link-level ``from'' address
+ * in a recvfrom or recvmsg call) may be likely only to provide the indexed
+ * form, (which requires fewer copy operations and less space).
+ *
+ * The form and interpretation  of the link-level address is purely a matter
+ * of convention between the device driver and its consumers; however, it is
+ * expected that all drivers for an interface of a given if_type will agree.
+ */
+
+#ifndef _NET_IF_DL_H_
+#define _NET_IF_DL_H_
+
+#include <sys/socket.h>
+
+/*
+ * Structure of a Link-Level sockaddr:
+ */
+struct sockaddr_dl {
+	u_char	    sdl_len;	/* Total length of sockaddr */
+	sa_family_t sdl_family;	/* AF_LINK */
+	u_int16_t   sdl_index;	/* if != 0, system given index for interface */
+	u_char	    sdl_type;	/* interface type */
+	u_char	    sdl_nlen;	/* interface name length, no trailing 0 reqd. */
+	u_char	    sdl_alen;	/* link level address length */
+	u_char	    sdl_slen;	/* link layer selector length */
+	char	    sdl_data[12]; /* minimum work area, can be larger;
+				     contains both if name and ll address */
+};
+
+/* We do arithmetic directly with these, so keep them char instead of void */
+#define LLADDR(s) ((char *)((s)->sdl_data + (s)->sdl_nlen))
+#define CLLADDR(s) ((const char *)((s)->sdl_data + (s)->sdl_nlen))
+
+#ifndef _KERNEL
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+void	link_addr(const char *, struct sockaddr_dl *);
+char	*link_ntoa(const struct sockaddr_dl *);
+__END_DECLS
+
+#endif /* !_KERNEL */
+
+#endif /* !_NET_IF_DL_H_ */
diff --git a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/crtbegin_dynamic.o b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/crtbegin_dynamic.o
index 3b4a83c..f34cba8 100644
--- a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/crtbegin_dynamic.o
+++ b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/crtbegin_dynamic.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/crtbegin_so.o b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/crtbegin_so.o
index 2940ffb..5230178 100644
--- a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/crtbegin_so.o
+++ b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/crtbegin_so.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/crtbegin_static.o b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/crtbegin_static.o
index 61cc37d..f34cba8 100644
--- a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/crtbegin_static.o
+++ b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/crtbegin_static.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/crtend_android.o b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/crtend_android.o
index 7e8b1b2..c57149e 100644
--- a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/crtend_android.o
+++ b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/crtend_android.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/crtend_so.o b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/crtend_so.o
index f1adda7..c54db97 100644
--- a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/crtend_so.o
+++ b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/crtend_so.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libEGL.so b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libEGL.so
index 8e245db..86cba72 100755
--- a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libEGL.so
+++ b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libEGL.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libGLESv1_CM.so b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libGLESv1_CM.so
index 20ecaa4..f8d1897 100755
--- a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libGLESv1_CM.so
+++ b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libGLESv1_CM.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libGLESv2.so b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libGLESv2.so
index 9493c77..6c4bc45 100755
--- a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libGLESv2.so
+++ b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libGLESv2.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libOpenSLES.so b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libOpenSLES.so
index 6834517..75c7b76 100755
--- a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libOpenSLES.so
+++ b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libOpenSLES.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libandroid.so b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libandroid.so
index 69610f4..8697d03 100755
--- a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libandroid.so
+++ b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libandroid.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libc.so b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libc.so
index 9ab0e60..15acab7 100755
--- a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libc.so
+++ b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libc.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libdl.so b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libdl.so
index b6fde67..be370e5 100755
--- a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libdl.so
+++ b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libdl.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libjnigraphics.so b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libjnigraphics.so
index 6769c2a..d922d51 100755
--- a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libjnigraphics.so
+++ b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libjnigraphics.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/liblog.so b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/liblog.so
index 46ebf82..e530dda 100755
--- a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/liblog.so
+++ b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/liblog.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libm.so b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libm.so
index 9faea64..f8ba7f5 100755
--- a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libm.so
+++ b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libm.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libstdc++.so b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libstdc++.so
index 031dcd8..8d08295 100755
--- a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libstdc++.so
+++ b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libstdc++.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libthread_db.so b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libthread_db.so
index 80dabb0..828e44a 100755
--- a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libthread_db.so
+++ b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libthread_db.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libz.so b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libz.so
index 251be1d..be4d641 100755
--- a/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libz.so
+++ b/android-ndk-r8/platforms/android-9/arch-arm/usr/lib/libz.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-mips/usr/include/asm/signal.h b/android-ndk-r8/platforms/android-9/arch-mips/usr/include/asm/signal.h
index 5f5ac77..b51ad71 100644
--- a/android-ndk-r8/platforms/android-9/arch-mips/usr/include/asm/signal.h
+++ b/android-ndk-r8/platforms/android-9/arch-mips/usr/include/asm/signal.h
@@ -92,33 +92,32 @@
 #define MINSIGSTKSZ 2048
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SIGSTKSZ 8192
-struct siginfo;
 #define SIG_BLOCK 1  
 #define SIG_UNBLOCK 2  
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SIG_SETMASK 3  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm-generic/signal.h>
 struct sigaction {
  unsigned int sa_flags;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  union {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __sighandler_t sa_handler;
  void (*sa_sigaction) (int, struct siginfo *, void *);
  } __sigaction_handler;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define sa_handler __sigaction_handler.sa_handler
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define sa_sigaction __sigaction_handler.sa_sigaction
  sigset_t sa_mask;
 };
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct k_sigaction {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct sigaction sa;
 };
 typedef struct sigaltstack {
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  void *ss_sp;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  size_t ss_size;
  int ss_flags;
 } stack_t;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/android-ndk-r8/platforms/android-9/arch-mips/usr/include/net/if_dl.h b/android-ndk-r8/platforms/android-9/arch-mips/usr/include/net/if_dl.h
new file mode 100644
index 0000000..1f0c080
--- /dev/null
+++ b/android-ndk-r8/platforms/android-9/arch-mips/usr/include/net/if_dl.h
@@ -0,0 +1,87 @@
+/*	$NetBSD: if_dl.h,v 1.18 2005/12/11 23:05:24 thorpej Exp $	*/
+
+/*
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if_dl.h	8.1 (Berkeley) 6/10/93
+ */
+
+/*
+ * A Link-Level Sockaddr may specify the interface in one of two
+ * ways: either by means of a system-provided index number (computed
+ * anew and possibly differently on every reboot), or by a human-readable
+ * string such as "il0" (for managerial convenience).
+ *
+ * Census taking actions, such as something akin to SIOCGCONF would return
+ * both the index and the human name.
+ *
+ * High volume transactions (such as giving a link-level ``from'' address
+ * in a recvfrom or recvmsg call) may be likely only to provide the indexed
+ * form, (which requires fewer copy operations and less space).
+ *
+ * The form and interpretation  of the link-level address is purely a matter
+ * of convention between the device driver and its consumers; however, it is
+ * expected that all drivers for an interface of a given if_type will agree.
+ */
+
+#ifndef _NET_IF_DL_H_
+#define _NET_IF_DL_H_
+
+#include <sys/socket.h>
+
+/*
+ * Structure of a Link-Level sockaddr:
+ */
+struct sockaddr_dl {
+	u_char	    sdl_len;	/* Total length of sockaddr */
+	sa_family_t sdl_family;	/* AF_LINK */
+	u_int16_t   sdl_index;	/* if != 0, system given index for interface */
+	u_char	    sdl_type;	/* interface type */
+	u_char	    sdl_nlen;	/* interface name length, no trailing 0 reqd. */
+	u_char	    sdl_alen;	/* link level address length */
+	u_char	    sdl_slen;	/* link layer selector length */
+	char	    sdl_data[12]; /* minimum work area, can be larger;
+				     contains both if name and ll address */
+};
+
+/* We do arithmetic directly with these, so keep them char instead of void */
+#define LLADDR(s) ((char *)((s)->sdl_data + (s)->sdl_nlen))
+#define CLLADDR(s) ((const char *)((s)->sdl_data + (s)->sdl_nlen))
+
+#ifndef _KERNEL
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+void	link_addr(const char *, struct sockaddr_dl *);
+char	*link_ntoa(const struct sockaddr_dl *);
+__END_DECLS
+
+#endif /* !_KERNEL */
+
+#endif /* !_NET_IF_DL_H_ */
diff --git a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/crtbegin_dynamic.o b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/crtbegin_dynamic.o
index 5836bd5..3202d1a 100644
--- a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/crtbegin_dynamic.o
+++ b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/crtbegin_dynamic.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/crtbegin_so.o b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/crtbegin_so.o
index d3a329b..ddfd100 100644
--- a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/crtbegin_so.o
+++ b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/crtbegin_so.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/crtbegin_static.o b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/crtbegin_static.o
index 73f6e48..34c5337 100644
--- a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/crtbegin_static.o
+++ b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/crtbegin_static.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/crtend_android.o b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/crtend_android.o
index 6936f73..4ac6536 100644
--- a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/crtend_android.o
+++ b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/crtend_android.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/crtend_so.o b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/crtend_so.o
index 58fa312..5c68629 100644
--- a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/crtend_so.o
+++ b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/crtend_so.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libEGL.so b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libEGL.so
index b597f62..bcb785a 100755
--- a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libEGL.so
+++ b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libEGL.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libGLESv1_CM.so b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libGLESv1_CM.so
index 1e74bea..597c919 100755
--- a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libGLESv1_CM.so
+++ b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libGLESv1_CM.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libGLESv2.so b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libGLESv2.so
index 4f71a7d..b02f860 100755
--- a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libGLESv2.so
+++ b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libGLESv2.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libOpenSLES.so b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libOpenSLES.so
index 889ea08..399f7cb 100755
--- a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libOpenSLES.so
+++ b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libOpenSLES.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libandroid.so b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libandroid.so
index e2028fb..0189865 100755
--- a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libandroid.so
+++ b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libandroid.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libc.so b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libc.so
index 988a4c3..726b700 100755
--- a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libc.so
+++ b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libc.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libdl.so b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libdl.so
index 8fb8a33..1e617aa 100755
--- a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libdl.so
+++ b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libdl.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libjnigraphics.so b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libjnigraphics.so
index 4d1f883..09ded1e 100755
--- a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libjnigraphics.so
+++ b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libjnigraphics.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/liblog.so b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/liblog.so
index b0c14ca..ca85bbb 100755
--- a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/liblog.so
+++ b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/liblog.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libm.so b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libm.so
index dd3b7d5..62683f6 100755
--- a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libm.so
+++ b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libm.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libstdc++.so b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libstdc++.so
index 63d8c3b..9d84b7f 100755
--- a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libstdc++.so
+++ b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libstdc++.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libthread_db.so b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libthread_db.so
index 8fa57e1..46994c5 100755
--- a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libthread_db.so
+++ b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libthread_db.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libz.so b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libz.so
index 6215022..0efab14 100755
--- a/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libz.so
+++ b/android-ndk-r8/platforms/android-9/arch-mips/usr/lib/libz.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-x86/usr/include/net/if_dl.h b/android-ndk-r8/platforms/android-9/arch-x86/usr/include/net/if_dl.h
new file mode 100644
index 0000000..1f0c080
--- /dev/null
+++ b/android-ndk-r8/platforms/android-9/arch-x86/usr/include/net/if_dl.h
@@ -0,0 +1,87 @@
+/*	$NetBSD: if_dl.h,v 1.18 2005/12/11 23:05:24 thorpej Exp $	*/
+
+/*
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if_dl.h	8.1 (Berkeley) 6/10/93
+ */
+
+/*
+ * A Link-Level Sockaddr may specify the interface in one of two
+ * ways: either by means of a system-provided index number (computed
+ * anew and possibly differently on every reboot), or by a human-readable
+ * string such as "il0" (for managerial convenience).
+ *
+ * Census taking actions, such as something akin to SIOCGCONF would return
+ * both the index and the human name.
+ *
+ * High volume transactions (such as giving a link-level ``from'' address
+ * in a recvfrom or recvmsg call) may be likely only to provide the indexed
+ * form, (which requires fewer copy operations and less space).
+ *
+ * The form and interpretation  of the link-level address is purely a matter
+ * of convention between the device driver and its consumers; however, it is
+ * expected that all drivers for an interface of a given if_type will agree.
+ */
+
+#ifndef _NET_IF_DL_H_
+#define _NET_IF_DL_H_
+
+#include <sys/socket.h>
+
+/*
+ * Structure of a Link-Level sockaddr:
+ */
+struct sockaddr_dl {
+	u_char	    sdl_len;	/* Total length of sockaddr */
+	sa_family_t sdl_family;	/* AF_LINK */
+	u_int16_t   sdl_index;	/* if != 0, system given index for interface */
+	u_char	    sdl_type;	/* interface type */
+	u_char	    sdl_nlen;	/* interface name length, no trailing 0 reqd. */
+	u_char	    sdl_alen;	/* link level address length */
+	u_char	    sdl_slen;	/* link layer selector length */
+	char	    sdl_data[12]; /* minimum work area, can be larger;
+				     contains both if name and ll address */
+};
+
+/* We do arithmetic directly with these, so keep them char instead of void */
+#define LLADDR(s) ((char *)((s)->sdl_data + (s)->sdl_nlen))
+#define CLLADDR(s) ((const char *)((s)->sdl_data + (s)->sdl_nlen))
+
+#ifndef _KERNEL
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+void	link_addr(const char *, struct sockaddr_dl *);
+char	*link_ntoa(const struct sockaddr_dl *);
+__END_DECLS
+
+#endif /* !_KERNEL */
+
+#endif /* !_NET_IF_DL_H_ */
diff --git a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/crtbegin_dynamic.o b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/crtbegin_dynamic.o
index 7ad85e4..17704f5 100644
--- a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/crtbegin_dynamic.o
+++ b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/crtbegin_dynamic.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/crtbegin_so.o b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/crtbegin_so.o
index 8085514..cf50f1d 100644
--- a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/crtbegin_so.o
+++ b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/crtbegin_so.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/crtbegin_static.o b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/crtbegin_static.o
index 7ad85e4..17704f5 100644
--- a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/crtbegin_static.o
+++ b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/crtbegin_static.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/crtend_android.o b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/crtend_android.o
index f99cdb5..87716a0 100644
--- a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/crtend_android.o
+++ b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/crtend_android.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/crtend_so.o b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/crtend_so.o
index 2fc910c..4c4460f 100644
--- a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/crtend_so.o
+++ b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/crtend_so.o
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libEGL.so b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libEGL.so
index d00fe43..fd21bfb 100755
--- a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libEGL.so
+++ b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libEGL.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libGLESv1_CM.so b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libGLESv1_CM.so
index 6f8b537..5b5fa9a 100755
--- a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libGLESv1_CM.so
+++ b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libGLESv1_CM.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libGLESv2.so b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libGLESv2.so
index f7a1f87..d3ce4b5 100755
--- a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libGLESv2.so
+++ b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libGLESv2.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libOpenSLES.so b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libOpenSLES.so
index dc12304..3a212c0 100755
--- a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libOpenSLES.so
+++ b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libOpenSLES.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libandroid.so b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libandroid.so
index 0bb5f95..4126c87 100755
--- a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libandroid.so
+++ b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libandroid.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libc.so b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libc.so
index 12a55d6..86b006a 100755
--- a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libc.so
+++ b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libc.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libdl.so b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libdl.so
index 2d28422..952eb54 100755
--- a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libdl.so
+++ b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libdl.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libjnigraphics.so b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libjnigraphics.so
index b4df95b..75a3f6f 100755
--- a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libjnigraphics.so
+++ b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libjnigraphics.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/liblog.so b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/liblog.so
index 3cdb522..b6bcbf8 100755
--- a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/liblog.so
+++ b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/liblog.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libm.so b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libm.so
index a9e24d9..c01deb6 100755
--- a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libm.so
+++ b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libm.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libstdc++.so b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libstdc++.so
index 66c3ce5..36af6d1 100755
--- a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libstdc++.so
+++ b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libstdc++.so
Binary files differ
diff --git a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libz.so b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libz.so
index 8cfae40..0979d83 100755
--- a/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libz.so
+++ b/android-ndk-r8/platforms/android-9/arch-x86/usr/lib/libz.so
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/gabi++/libs/armeabi-v7a/libgabi++_shared.so b/android-ndk-r8/sources/cxx-stl/gabi++/libs/armeabi-v7a/libgabi++_shared.so
index fa4afd0..1951744 100755
--- a/android-ndk-r8/sources/cxx-stl/gabi++/libs/armeabi-v7a/libgabi++_shared.so
+++ b/android-ndk-r8/sources/cxx-stl/gabi++/libs/armeabi-v7a/libgabi++_shared.so
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/gabi++/libs/armeabi-v7a/libgabi++_static.a b/android-ndk-r8/sources/cxx-stl/gabi++/libs/armeabi-v7a/libgabi++_static.a
index 6315957..cf0fabc 100644
--- a/android-ndk-r8/sources/cxx-stl/gabi++/libs/armeabi-v7a/libgabi++_static.a
+++ b/android-ndk-r8/sources/cxx-stl/gabi++/libs/armeabi-v7a/libgabi++_static.a
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/gabi++/libs/armeabi/libgabi++_shared.so b/android-ndk-r8/sources/cxx-stl/gabi++/libs/armeabi/libgabi++_shared.so
index 9b204d9..0fbcd82 100755
--- a/android-ndk-r8/sources/cxx-stl/gabi++/libs/armeabi/libgabi++_shared.so
+++ b/android-ndk-r8/sources/cxx-stl/gabi++/libs/armeabi/libgabi++_shared.so
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/gabi++/libs/armeabi/libgabi++_static.a b/android-ndk-r8/sources/cxx-stl/gabi++/libs/armeabi/libgabi++_static.a
index ee46e78..006acae 100644
--- a/android-ndk-r8/sources/cxx-stl/gabi++/libs/armeabi/libgabi++_static.a
+++ b/android-ndk-r8/sources/cxx-stl/gabi++/libs/armeabi/libgabi++_static.a
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/gabi++/libs/mips/libgabi++_shared.so b/android-ndk-r8/sources/cxx-stl/gabi++/libs/mips/libgabi++_shared.so
index 1ec4d28..27c6e36 100755
--- a/android-ndk-r8/sources/cxx-stl/gabi++/libs/mips/libgabi++_shared.so
+++ b/android-ndk-r8/sources/cxx-stl/gabi++/libs/mips/libgabi++_shared.so
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/gabi++/libs/mips/libgabi++_static.a b/android-ndk-r8/sources/cxx-stl/gabi++/libs/mips/libgabi++_static.a
index fa296f4..5b13d64 100644
--- a/android-ndk-r8/sources/cxx-stl/gabi++/libs/mips/libgabi++_static.a
+++ b/android-ndk-r8/sources/cxx-stl/gabi++/libs/mips/libgabi++_static.a
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/gabi++/libs/x86/libgabi++_shared.so b/android-ndk-r8/sources/cxx-stl/gabi++/libs/x86/libgabi++_shared.so
index 57dd6ee..7b1bdfd 100755
--- a/android-ndk-r8/sources/cxx-stl/gabi++/libs/x86/libgabi++_shared.so
+++ b/android-ndk-r8/sources/cxx-stl/gabi++/libs/x86/libgabi++_shared.so
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/gabi++/libs/x86/libgabi++_static.a b/android-ndk-r8/sources/cxx-stl/gabi++/libs/x86/libgabi++_static.a
index b5e6877..7d80b31 100644
--- a/android-ndk-r8/sources/cxx-stl/gabi++/libs/x86/libgabi++_static.a
+++ b/android-ndk-r8/sources/cxx-stl/gabi++/libs/x86/libgabi++_static.a
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/libgnustl_shared.so b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/libgnustl_shared.so
index 393d881..a7a954d 100755
--- a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/libgnustl_shared.so
+++ b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/libgnustl_shared.so
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/libgnustl_static.a b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/libgnustl_static.a
index 7462204..1ce42cc 100644
--- a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/libgnustl_static.a
+++ b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/libgnustl_static.a
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/libsupc++.a b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/libsupc++.a
index fff7031..266d3e3 100644
--- a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/libsupc++.a
+++ b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/libsupc++.a
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi/libgnustl_shared.so b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi/libgnustl_shared.so
index 59cde59..b932bdd 100755
--- a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi/libgnustl_shared.so
+++ b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi/libgnustl_shared.so
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi/libgnustl_static.a b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi/libgnustl_static.a
index 58e6842..27acfbf 100644
--- a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi/libgnustl_static.a
+++ b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi/libgnustl_static.a
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi/libsupc++.a b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi/libsupc++.a
index 176296d..1b0ecf8 100644
--- a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi/libsupc++.a
+++ b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/armeabi/libsupc++.a
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/mips/libgnustl_shared.so b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/mips/libgnustl_shared.so
index 46807eb..19349fd 100755
--- a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/mips/libgnustl_shared.so
+++ b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/mips/libgnustl_shared.so
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/mips/libgnustl_static.a b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/mips/libgnustl_static.a
index f3f737a..cc4c881 100644
--- a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/mips/libgnustl_static.a
+++ b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/mips/libgnustl_static.a
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/mips/libsupc++.a b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/mips/libsupc++.a
index c10e7ae..b9d698f 100644
--- a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/mips/libsupc++.a
+++ b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/mips/libsupc++.a
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/x86/libgnustl_shared.so b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/x86/libgnustl_shared.so
index ae987f9..2ef5b29 100755
--- a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/x86/libgnustl_shared.so
+++ b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/x86/libgnustl_shared.so
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/x86/libgnustl_static.a b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/x86/libgnustl_static.a
index 9720591..bd2059b 100644
--- a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/x86/libgnustl_static.a
+++ b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/x86/libgnustl_static.a
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/x86/libsupc++.a b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/x86/libsupc++.a
index 37f0c34..da67781 100644
--- a/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/x86/libsupc++.a
+++ b/android-ndk-r8/sources/cxx-stl/gnu-libstdc++/libs/x86/libsupc++.a
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/stlport/libs/armeabi-v7a/libstlport_shared.so b/android-ndk-r8/sources/cxx-stl/stlport/libs/armeabi-v7a/libstlport_shared.so
index 97bfafc..ef4c47e 100755
--- a/android-ndk-r8/sources/cxx-stl/stlport/libs/armeabi-v7a/libstlport_shared.so
+++ b/android-ndk-r8/sources/cxx-stl/stlport/libs/armeabi-v7a/libstlport_shared.so
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/stlport/libs/armeabi-v7a/libstlport_static.a b/android-ndk-r8/sources/cxx-stl/stlport/libs/armeabi-v7a/libstlport_static.a
index 9757760..eeed23f 100644
--- a/android-ndk-r8/sources/cxx-stl/stlport/libs/armeabi-v7a/libstlport_static.a
+++ b/android-ndk-r8/sources/cxx-stl/stlport/libs/armeabi-v7a/libstlport_static.a
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/stlport/libs/armeabi/libstlport_shared.so b/android-ndk-r8/sources/cxx-stl/stlport/libs/armeabi/libstlport_shared.so
index 80bdcd3..d58d998 100755
--- a/android-ndk-r8/sources/cxx-stl/stlport/libs/armeabi/libstlport_shared.so
+++ b/android-ndk-r8/sources/cxx-stl/stlport/libs/armeabi/libstlport_shared.so
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/stlport/libs/armeabi/libstlport_static.a b/android-ndk-r8/sources/cxx-stl/stlport/libs/armeabi/libstlport_static.a
index 80eadc0..9b1250e 100644
--- a/android-ndk-r8/sources/cxx-stl/stlport/libs/armeabi/libstlport_static.a
+++ b/android-ndk-r8/sources/cxx-stl/stlport/libs/armeabi/libstlport_static.a
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/stlport/libs/mips/libstlport_shared.so b/android-ndk-r8/sources/cxx-stl/stlport/libs/mips/libstlport_shared.so
index bdbaaa8..4b95fc6 100755
--- a/android-ndk-r8/sources/cxx-stl/stlport/libs/mips/libstlport_shared.so
+++ b/android-ndk-r8/sources/cxx-stl/stlport/libs/mips/libstlport_shared.so
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/stlport/libs/mips/libstlport_static.a b/android-ndk-r8/sources/cxx-stl/stlport/libs/mips/libstlport_static.a
index 28c2524..12ce1cc 100644
--- a/android-ndk-r8/sources/cxx-stl/stlport/libs/mips/libstlport_static.a
+++ b/android-ndk-r8/sources/cxx-stl/stlport/libs/mips/libstlport_static.a
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/stlport/libs/x86/libstlport_shared.so b/android-ndk-r8/sources/cxx-stl/stlport/libs/x86/libstlport_shared.so
index fa109eb..fc13d6a 100755
--- a/android-ndk-r8/sources/cxx-stl/stlport/libs/x86/libstlport_shared.so
+++ b/android-ndk-r8/sources/cxx-stl/stlport/libs/x86/libstlport_shared.so
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/stlport/libs/x86/libstlport_static.a b/android-ndk-r8/sources/cxx-stl/stlport/libs/x86/libstlport_static.a
index 2575cc0..870ee9c 100644
--- a/android-ndk-r8/sources/cxx-stl/stlport/libs/x86/libstlport_static.a
+++ b/android-ndk-r8/sources/cxx-stl/stlport/libs/x86/libstlport_static.a
Binary files differ
diff --git a/android-ndk-r8/sources/cxx-stl/stlport/stlport/stl/_stdexcept.h b/android-ndk-r8/sources/cxx-stl/stlport/stlport/stl/_stdexcept.h
index 7b53551..dba5d01 100644
--- a/android-ndk-r8/sources/cxx-stl/stlport/stlport/stl/_stdexcept.h
+++ b/android-ndk-r8/sources/cxx-stl/stlport/stlport/stl/_stdexcept.h
@@ -25,6 +25,8 @@
 
 #if !defined (_STLP_USE_NATIVE_STDEXCEPT) || defined (_STLP_USE_OWN_NAMESPACE)
 
+#  if defined(_STLP_USE_EXCEPTIONS) || 1
+
 _STLP_BEGIN_NAMESPACE
 
 class _STLP_CLASS_DECLSPEC logic_error : public __Named_exception {
@@ -101,6 +103,7 @@
 
 _STLP_END_NAMESPACE
 
+#  endif
 #endif
 
 #endif /* _STLP_INTERNAL_STDEXCEPT */
diff --git a/android-ndk-r8/sources/cxx-stl/stlport/stlport/stl/_stdexcept_base.h b/android-ndk-r8/sources/cxx-stl/stlport/stlport/stl/_stdexcept_base.h
index 638e3fc..db61c63 100644
--- a/android-ndk-r8/sources/cxx-stl/stlport/stlport/stl/_stdexcept_base.h
+++ b/android-ndk-r8/sources/cxx-stl/stlport/stlport/stl/_stdexcept_base.h
@@ -25,6 +25,8 @@
 #    include <stl/_exception.h>
 #  endif
 
+#  if defined(_STLP_USE_EXCEPTIONS) || 1
+
 #    ifndef _STLP_INTERNAL_CSTRING
 #      include <stl/_cstring.h>
 #    endif
@@ -89,6 +91,7 @@
 
 _STLP_END_NAMESPACE
 
+#  endif /* Not o32, and no exceptions */
 #endif /* _STLP_STDEXCEPT_SEEN */
 
 #endif /* _STLP_INTERNAL_STDEXCEPT_BASE */
diff --git a/android-ndk-r8/sources/cxx-stl/stlport/stlport/stl/config/features.h b/android-ndk-r8/sources/cxx-stl/stlport/stlport/stl/config/features.h
index c1eb53c..b5b4e3a 100644
--- a/android-ndk-r8/sources/cxx-stl/stlport/stlport/stl/config/features.h
+++ b/android-ndk-r8/sources/cxx-stl/stlport/stlport/stl/config/features.h
@@ -162,7 +162,7 @@
 #    define _STLP_BIG_ENDIAN 1
 #  elif defined (__i386) || defined (_M_IX86) || defined (_M_ARM) || \
         defined (__amd64__) || defined (_M_AMD64) || defined (__x86_64__) || \
-        defined (__alpha__) || defined (_MIPSEL)
+        defined (__alpha__)
 #    define _STLP_LITTLE_ENDIAN 1
 #  elif defined (__ia64__)
     /* itanium allows both settings (for instance via gcc -mbig-endian) - hence a seperate check is required */
