diff --git a/jni/commoncpp2-1.8.1-android/m4/ost_reentrant.m4 b/jni/commoncpp2-1.8.1-android/m4/ost_reentrant.m4
new file mode 100644
index 0000000..a41b9ce
--- /dev/null
+++ b/jni/commoncpp2-1.8.1-android/m4/ost_reentrant.m4
@@ -0,0 +1,73 @@
+dnl Copyright (C) 1999-2005 Open Source Telecom Corporation.
+dnl Copyright (C) 2006-2010 David Sugar, Tycho Softworks.
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+dnl
+dnl As a special exception to the GNU General Public License, if you
+dnl distribute this file as part of a program that contains a configuration
+dnl script generated by Autoconf, you may include it under the same
+dnl distribution terms that you use for the rest of that program.
+
+AC_DEFUN([OST_LIB_REENTRANT],[
+    reentrant_lib=${ost_cv_thread_library}
+    if test -z "$reentrant_lib" ; then
+        reentrant_lib=c_r
+    fi
+    if test "c" = "$reentrant_lib" ; then
+        reentrant_lib=c_r
+    fi
+    if test "none" = "$reentrant_lib" ; then
+        reentrant_lib=c_r
+    fi
+
+    AC_CHECK_FUNCS(setenv)
+    AC_CHECK_LIB($reentrant_lib, localtime_r,[
+        AC_DEFINE(HAVE_STRTOK_R, [1], [reentrant strtok])
+        AC_DEFINE(HAVE_LOCALTIME_R, [1], [reentrant localtime])],[
+        AC_CHECK_LIB(c, strtok_r, AC_DEFINE(HAVE_STRTOK_R))
+        AC_CHECK_LIB(c, localtime_r, AC_DEFINE(HAVE_LOCALTIME_R))
+    ])
+        AC_CHECK_LIB($reentrant_lib, readdir_r,[
+            AC_DEFINE(HAVE_READDIR_R, [1], [reentrant readdir])],[
+            AC_CHECK_LIB(c, readdir_r, AC_DEFINE(HAVE_READDIR_R, [1]))
+    ])
+    AC_CHECK_LIB($reentrant_lib, strerror_r,[
+        AC_DEFINE(HAVE_STRERROR_R, [1], [reentrant strerror])],[
+        AC_CHECK_LIB(c, strerror_r, AC_DEFINE(HAVE_STRERROR_R, [1]))
+    ])
+    AC_CHECK_LIB($reentrant_lib, getpwuid_r,[
+        AC_DEFINE(HAVE_GETPWUID_R, [1], [reentrant getuid])
+        AC_DEFINE(HAVE_GETPWNAM_R, [1], [reentrant getnam])],[
+        AC_CHECK_LIB(c, getpwuid_r, AC_DEFINE(HAVE_GETPWUID_R))
+        AC_CHECK_LIB(c, getpwnam_r, AC_DEFINE(HAVE_GETPWNAM_R))
+    ])
+    AC_CHECK_LIB($reentrant_lib, getgrnam_r,[
+        AC_DEFINE(HAVE_GETGRNAM_R, [1], [reentrant getgrnam])],[
+        AC_CHECK_LIB(c, getgrnam_r, AC_DEFINE(HAVE_GETGRNAM_R))
+    ])
+    AH_BOTTOM([
+
+#ifndef HAVE_STRERROR_R
+#define strerror_r(e, b, l) b = ::strerror(e)
+#endif
+
+#ifndef HAVE_GETPWUID_R
+#define getpwuid_r(uid, rec, buf, size, ptr) ptr = ::getpwuid(uid)
+#define getpwnam_r(name, rec, buf, size, ptr) ptr = ::getpwnam(name)
+#endif
+
+    ])
+])
+
