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
deleted file mode 100644
index 1f0c080..0000000
--- a/android-ndk-r8/platforms/android-14/arch-arm/usr/include/net/if_dl.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*	$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 f34cba8..a969511 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 5230178..2940ffb 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 f34cba8..da4d83e 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 c57149e..7e8b1b2 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 c54db97..f1adda7 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 86cba72..8e245db 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 f8d1897..20ecaa4 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 6c4bc45..9493c77 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 f21dca4..439014c 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 75c7b76..6834517 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 8697d03..69610f4 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 15acab7..9ab0e60 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 be370e5..b6fde67 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 d922d51..6769c2a 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 e530dda..46ebf82 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 f8ba7f5..9faea64 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 8d08295..031dcd8 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 828e44a..80dabb0 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 be4d641..251be1d 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 b51ad71..5f5ac77 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,32 +92,33 @@
 #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  
-#define SIG_SETMASK 3  
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIG_SETMASK 3  
 #include <asm-generic/signal.h>
 struct sigaction {
  unsigned int sa_flags;
- union {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ union {
  __sighandler_t sa_handler;
  void (*sa_sigaction) (int, struct siginfo *, void *);
  } __sigaction_handler;
-#define sa_handler __sigaction_handler.sa_handler
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define sa_handler __sigaction_handler.sa_handler
 #define sa_sigaction __sigaction_handler.sa_sigaction
  sigset_t sa_mask;
 };
-struct k_sigaction {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct k_sigaction {
  struct sigaction sa;
 };
 typedef struct sigaltstack {
- void *ss_sp;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ void *ss_sp;
  size_t ss_size;
  int ss_flags;
 } stack_t;
-#endif
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
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
deleted file mode 100644
index 1f0c080..0000000
--- a/android-ndk-r8/platforms/android-14/arch-mips/usr/include/net/if_dl.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*	$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 3202d1a..635874d 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 ddfd100..d3a329b 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 34c5337..211263a 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 4ac6536..6936f73 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 5c68629..58fa312 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 bcb785a..b597f62 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 597c919..1e74bea 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 b02f860..4f71a7d 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 1ad966e..b636168 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 f23d5af..5df8c02 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 0189865..e2028fb 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 726b700..988a4c3 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 1e617aa..8fb8a33 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 09ded1e..4d1f883 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 ca85bbb..b0c14ca 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 62683f6..dd3b7d5 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 9d84b7f..63d8c3b 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 46994c5..8fa57e1 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 0efab14..6215022 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
deleted file mode 100644
index 1f0c080..0000000
--- a/android-ndk-r8/platforms/android-14/arch-x86/usr/include/net/if_dl.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*	$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 17704f5..16e3d59 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 cf50f1d..8085514 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 17704f5..16e3d59 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 87716a0..f99cdb5 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 4c4460f..2fc910c 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 fd21bfb..d00fe43 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 5b5fa9a..6f8b537 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 d3ce4b5..f7a1f87 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 97a5378..08199fc 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 3a212c0..dc12304 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 4126c87..0bb5f95 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 86b006a..12a55d6 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 952eb54..2d28422 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 75a3f6f..b4df95b 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 b6bcbf8..3cdb522 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 c01deb6..a9e24d9 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 36af6d1..66c3ce5 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 0979d83..8cfae40 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
deleted file mode 100644
index 1f0c080..0000000
--- a/android-ndk-r8/platforms/android-3/arch-arm/usr/include/net/if_dl.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*	$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 f34cba8..2d8b90c 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 5230178..2940ffb 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 f34cba8..b826c6c 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 c57149e..7e8b1b2 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 c54db97..f1adda7 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 d0f4709..a961e22 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 8f77423..2f5065a 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 e530dda..46ebf82 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 f8ba7f5..9faea64 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 8d08295..031dcd8 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 828e44a..80dabb0 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 be4d641..251be1d 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
deleted file mode 100644
index 1f0c080..0000000
--- a/android-ndk-r8/platforms/android-3/arch-mips/usr/include/net/if_dl.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*	$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
deleted file mode 100644
index 1f0c080..0000000
--- a/android-ndk-r8/platforms/android-3/arch-x86/usr/include/net/if_dl.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*	$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
deleted file mode 100644
index 1f0c080..0000000
--- a/android-ndk-r8/platforms/android-4/arch-arm/usr/include/net/if_dl.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*	$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 f34cba8..577d932 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 5230178..2940ffb 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 f34cba8..e9ab24b 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 c57149e..7e8b1b2 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 c54db97..f1adda7 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 f8d1897..20ecaa4 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 d0f4709..a961e22 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 8f77423..2f5065a 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 e530dda..46ebf82 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 f8ba7f5..9faea64 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 8d08295..031dcd8 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 828e44a..80dabb0 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 be4d641..251be1d 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
deleted file mode 100644
index 1f0c080..0000000
--- a/android-ndk-r8/platforms/android-4/arch-mips/usr/include/net/if_dl.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*	$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
deleted file mode 100644
index 1f0c080..0000000
--- a/android-ndk-r8/platforms/android-4/arch-x86/usr/include/net/if_dl.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*	$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
deleted file mode 100644
index 1f0c080..0000000
--- a/android-ndk-r8/platforms/android-5/arch-arm/usr/include/net/if_dl.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*	$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 f34cba8..b2796d6 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 5230178..2940ffb 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 f34cba8..7ee7973 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 c57149e..7e8b1b2 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 c54db97..f1adda7 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 f8d1897..20ecaa4 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 6c4bc45..9493c77 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 318bf10..a922fc8 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 8f77423..2f5065a 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 e530dda..46ebf82 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 f8ba7f5..9faea64 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 8d08295..031dcd8 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 828e44a..80dabb0 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 be4d641..251be1d 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
deleted file mode 100644
index 1f0c080..0000000
--- a/android-ndk-r8/platforms/android-5/arch-mips/usr/include/net/if_dl.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*	$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
deleted file mode 100644
index 1f0c080..0000000
--- a/android-ndk-r8/platforms/android-5/arch-x86/usr/include/net/if_dl.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*	$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
deleted file mode 100644
index 1f0c080..0000000
--- a/android-ndk-r8/platforms/android-8/arch-arm/usr/include/net/if_dl.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*	$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 f34cba8..adf371d 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 5230178..2940ffb 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 f34cba8..530cf2d 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 c57149e..7e8b1b2 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 c54db97..f1adda7 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 f8d1897..20ecaa4 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 6c4bc45..9493c77 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 1a0ebb6..bc00be7 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 be370e5..b6fde67 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 d922d51..6769c2a 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 e530dda..46ebf82 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 f8ba7f5..9faea64 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 8d08295..031dcd8 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 828e44a..80dabb0 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 be4d641..251be1d 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
deleted file mode 100644
index 1f0c080..0000000
--- a/android-ndk-r8/platforms/android-8/arch-mips/usr/include/net/if_dl.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*	$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
deleted file mode 100644
index 1f0c080..0000000
--- a/android-ndk-r8/platforms/android-8/arch-x86/usr/include/net/if_dl.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*	$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
deleted file mode 100644
index 1f0c080..0000000
--- a/android-ndk-r8/platforms/android-9/arch-arm/usr/include/net/if_dl.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*	$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 f34cba8..3b4a83c 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 5230178..2940ffb 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 f34cba8..61cc37d 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 c57149e..7e8b1b2 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 c54db97..f1adda7 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 86cba72..8e245db 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 f8d1897..20ecaa4 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 6c4bc45..9493c77 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 75c7b76..6834517 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 8697d03..69610f4 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 15acab7..9ab0e60 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 be370e5..b6fde67 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 d922d51..6769c2a 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 e530dda..46ebf82 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 f8ba7f5..9faea64 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 8d08295..031dcd8 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 828e44a..80dabb0 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 be4d641..251be1d 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 b51ad71..5f5ac77 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,32 +92,33 @@
 #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  
-#define SIG_SETMASK 3  
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIG_SETMASK 3  
 #include <asm-generic/signal.h>
 struct sigaction {
  unsigned int sa_flags;
- union {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ union {
  __sighandler_t sa_handler;
  void (*sa_sigaction) (int, struct siginfo *, void *);
  } __sigaction_handler;
-#define sa_handler __sigaction_handler.sa_handler
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define sa_handler __sigaction_handler.sa_handler
 #define sa_sigaction __sigaction_handler.sa_sigaction
  sigset_t sa_mask;
 };
-struct k_sigaction {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct k_sigaction {
  struct sigaction sa;
 };
 typedef struct sigaltstack {
- void *ss_sp;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ void *ss_sp;
  size_t ss_size;
  int ss_flags;
 } stack_t;
-#endif
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
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
deleted file mode 100644
index 1f0c080..0000000
--- a/android-ndk-r8/platforms/android-9/arch-mips/usr/include/net/if_dl.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*	$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 3202d1a..5836bd5 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 ddfd100..d3a329b 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 34c5337..73f6e48 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 4ac6536..6936f73 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 5c68629..58fa312 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 bcb785a..b597f62 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 597c919..1e74bea 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 b02f860..4f71a7d 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 399f7cb..889ea08 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 0189865..e2028fb 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 726b700..988a4c3 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 1e617aa..8fb8a33 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 09ded1e..4d1f883 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 ca85bbb..b0c14ca 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 62683f6..dd3b7d5 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 9d84b7f..63d8c3b 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 46994c5..8fa57e1 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 0efab14..6215022 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
deleted file mode 100644
index 1f0c080..0000000
--- a/android-ndk-r8/platforms/android-9/arch-x86/usr/include/net/if_dl.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*	$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 17704f5..7ad85e4 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 cf50f1d..8085514 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 17704f5..7ad85e4 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 87716a0..f99cdb5 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 4c4460f..2fc910c 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 fd21bfb..d00fe43 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 5b5fa9a..6f8b537 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 d3ce4b5..f7a1f87 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 3a212c0..dc12304 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 4126c87..0bb5f95 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 86b006a..12a55d6 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 952eb54..2d28422 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 75a3f6f..b4df95b 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 b6bcbf8..3cdb522 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 c01deb6..a9e24d9 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 36af6d1..66c3ce5 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 0979d83..8cfae40 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 1951744..fa4afd0 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 cf0fabc..6315957 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 0fbcd82..9b204d9 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 006acae..ee46e78 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 27c6e36..1ec4d28 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 5b13d64..fa296f4 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 7b1bdfd..57dd6ee 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 7d80b31..b5e6877 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 a7a954d..393d881 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 1ce42cc..7462204 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 266d3e3..fff7031 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 b932bdd..59cde59 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 27acfbf..58e6842 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 1b0ecf8..176296d 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 19349fd..46807eb 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 cc4c881..f3f737a 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 b9d698f..c10e7ae 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 2ef5b29..ae987f9 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 bd2059b..9720591 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 da67781..37f0c34 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 ef4c47e..97bfafc 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 eeed23f..9757760 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 d58d998..80bdcd3 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 9b1250e..80eadc0 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 4b95fc6..bdbaaa8 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 12ce1cc..28c2524 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 fc13d6a..fa109eb 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 870ee9c..2575cc0 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 dba5d01..7b53551 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,8 +25,6 @@
 
 #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 {
@@ -103,7 +101,6 @@
 
 _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 db61c63..638e3fc 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,8 +25,6 @@
 #    include <stl/_exception.h>
 #  endif
 
-#  if defined(_STLP_USE_EXCEPTIONS) || 1
-
 #    ifndef _STLP_INTERNAL_CSTRING
 #      include <stl/_cstring.h>
 #    endif
@@ -91,7 +89,6 @@
 
 _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 b5b4e3a..c1eb53c 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 (__alpha__) || defined (_MIPSEL)
 #    define _STLP_LITTLE_ENDIAN 1
 #  elif defined (__ia64__)
     /* itanium allows both settings (for instance via gcc -mbig-endian) - hence a seperate check is required */
