Merge "[MIPS] Use NDK libs for ARM builds only"
diff --git a/stlport/stl/_stdexcept.h b/stlport/stl/_stdexcept.h
index 8c784bb..dba5d01 100644
--- a/stlport/stl/_stdexcept.h
+++ b/stlport/stl/_stdexcept.h
@@ -25,8 +25,7 @@
 
 #if !defined (_STLP_USE_NATIVE_STDEXCEPT) || defined (_STLP_USE_OWN_NAMESPACE)
 
-#  if defined(_STLP_USE_EXCEPTIONS) || \
-    !(defined(_MIPS_SIM) && defined(_ABIO32) && (_MIPS_SIM == _ABIO32))
+#  if defined(_STLP_USE_EXCEPTIONS) || 1
 
 _STLP_BEGIN_NAMESPACE
 
diff --git a/stlport/stl/_stdexcept_base.h b/stlport/stl/_stdexcept_base.h
index 69dc077..993f2e9 100644
--- a/stlport/stl/_stdexcept_base.h
+++ b/stlport/stl/_stdexcept_base.h
@@ -25,8 +25,9 @@
 #    include <stl/_exception.h>
 #  endif
 
-#  if defined(_STLP_USE_EXCEPTIONS) || \
-    !(defined(_MIPS_SIM) && defined(_ABIO32) && (_MIPS_SIM == _ABIO32))
+#  if defined(_STLP_USE_EXCEPTIONS) || 1
+/* TODO: use same conditions on fwd def of __Named_exception
+         in _exception.h and its use in _ios_base.h */
 
 #    ifndef _STLP_INTERNAL_CSTRING
 #      include <stl/_cstring.h>
diff --git a/stlport/stl/config/features.h b/stlport/stl/config/features.h
index b5b4e3a..c1eb53c 100644
--- a/stlport/stl/config/features.h
+++ b/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 */
diff --git a/stlport/stl/pointers/_tools.h b/stlport/stl/pointers/_tools.h
index ec94806..5bb7b25 100644
--- a/stlport/stl/pointers/_tools.h
+++ b/stlport/stl/pointers/_tools.h
@@ -90,8 +90,8 @@
 struct _StorageType<_Tp*> {
   // Even if we detect a pointer type we use dispatch function to consider if it can be stored as a void*.
   // For instance function pointer might not necessarily be convertible to void*.
-  enum { use_void_ptr = (sizeof(_UseVoidPtrStorageType(__true_type(),
-                                                       __STATIC_CAST(_Tp*, 0))) == sizeof(char*)) };
+  enum { use_void_ptr = (sizeof(_STLP_PRIV _UseVoidPtrStorageType(__true_type(),
+                                                                  __STATIC_CAST(_Tp*, 0))) == sizeof(char*))  };
   enum { use_const_volatile_void_ptr = use_void_ptr };
   typedef typename __select<use_void_ptr,
                             void*,
@@ -101,8 +101,8 @@
 
 template <class _Tp>
 struct _StorageType<_Tp const*> {
-  enum { use_void_ptr = (sizeof(_UseConstVoidPtrStorageType(__true_type(),
-                                                            __STATIC_CAST(const _Tp*, 0))) == sizeof(char*)) };
+  enum { use_void_ptr = (sizeof(_STLP_PRIV _UseConstVoidPtrStorageType(__true_type(),
+                                                                       __STATIC_CAST(const _Tp*, 0))) == sizeof(char*)) };
   enum { use_const_volatile_void_ptr = use_void_ptr };
   typedef typename __select<use_void_ptr,
                             const void*,
@@ -114,8 +114,8 @@
 
 template <class _Tp>
 struct _StorageType<_Tp volatile*> {
-  enum { use_void_ptr = (sizeof(_UseVolatileVoidPtrStorageType(__true_type(),
-                                                               __STATIC_CAST(_Tp volatile*, 0))) == sizeof(char*)) };
+  enum { use_void_ptr = (sizeof(_STLP_PRIV _UseVolatileVoidPtrStorageType(__true_type(),
+                                                                          __STATIC_CAST(_Tp volatile*, 0))) == sizeof(char*)) };
   enum { use_const_volatile_void_ptr = use_void_ptr };
   typedef typename __select<use_void_ptr,
                             volatile void*,
@@ -127,8 +127,8 @@
 
 template <class _Tp>
 struct _StorageType<_Tp const volatile*> {
-  enum { use_void_ptr = (sizeof(_UseConstVolatileVoidPtrStorageType(__true_type(),
-                                                                    __STATIC_CAST(_Tp const volatile*, 0))) == sizeof(char*)) };
+  enum { use_void_ptr = (sizeof(_STLP_PRIV _UseConstVolatileVoidPtrStorageType(__true_type(),
+                                                                               __STATIC_CAST(_Tp const volatile*, 0))) == sizeof(char*)) };
   enum { use_const_volatile_void_ptr = use_void_ptr };
   typedef typename __select<use_void_ptr,
                             const volatile void*,
@@ -147,10 +147,10 @@
 #else
   static _Tp __null_rep;
 #endif
-  enum { use_void_ptr = (sizeof(_UseVoidPtrStorageType(_PODType(), __null_rep())) == sizeof(char*)) };
-  enum { use_const_void_ptr = (sizeof(_UseConstVoidPtrStorageType(_PODType(), __null_rep())) == sizeof(char*)) };
-  enum { use_volatile_void_ptr = (sizeof(_UseVolatileVoidPtrStorageType(_PODType(), __null_rep())) == sizeof(char*)) };
-  enum { use_const_volatile_void_ptr = (sizeof(_UseConstVolatileVoidPtrStorageType(_PODType(), __null_rep())) == sizeof(char*)) };
+  enum { use_void_ptr = (sizeof(_STLP_PRIV _UseVoidPtrStorageType(_PODType(), __null_rep())) == sizeof(char*)) };
+  enum { use_const_void_ptr = (sizeof(_STLP_PRIV _UseConstVoidPtrStorageType(_PODType(), __null_rep())) == sizeof(char*)) };
+  enum { use_volatile_void_ptr = (sizeof(_STLP_PRIV _UseVolatileVoidPtrStorageType(_PODType(), __null_rep())) == sizeof(char*)) };
+  enum { use_const_volatile_void_ptr = (sizeof(_STLP_PRIV _UseConstVolatileVoidPtrStorageType(_PODType(), __null_rep())) == sizeof(char*)) };
 
   typedef typename __select<!use_const_volatile_void_ptr,
                             _Tp,