diff -ru Python-3.3.5/Lib/test/test_pwd.py Python-3.3.5-android/Lib/test/test_pwd.py --- Python-3.3.5/Lib/test/test_pwd.py 2014-03-09 09:40:19.000000000 +0100 +++ Python-3.3.5-android/Lib/test/test_pwd.py 2014-08-04 22:14:36.000000000 +0200 @@ -6,6 +6,7 @@ class PwdTest(unittest.TestCase): + @unittest.skipUnless(hasattr(pwd, 'getpwall'), 'pwd module does not expose getpwall()') def test_values(self): entries = pwd.getpwall() @@ -52,6 +53,7 @@ self.assertIn(pwd.getpwnam(e.pw_name), entriesbyname[e.pw_name]) self.assertIn(pwd.getpwuid(e.pw_uid), entriesbyuid[e.pw_uid]) + @unittest.skipUnless(hasattr(pwd, 'getpwall'), 'pwd module does not expose getpwall()') def test_errors(self): self.assertRaises(TypeError, pwd.getpwuid) self.assertRaises(TypeError, pwd.getpwuid, 3.14) diff -ru Python-3.4.2/Modules/python.c Python-3.4.2-android/Modules/python.c --- Python-3.4.2/Modules/python.c 2015-02-24 22:42:37.000000000 +0100 +++ Python-3.4.2-android/Modules/python.c 2015-02-24 23:04:27.000000000 +0100 @@ -44,10 +44,13 @@ fpsetmask(m & ~FP_X_OFL); #endif - oldloc = _PyMem_RawStrdup(setlocale(LC_ALL, NULL)); - if (!oldloc) { - fprintf(stderr, "out of memory\n"); - return 1; + oldloc = setlocale(LC_ALL, NULL); + if (oldloc) { + oldloc = _PyMem_RawStrdup(oldloc); + if (!oldloc) { + fprintf(stderr, "out of memory\n"); + return 1; + } } setlocale(LC_ALL, ""); @@ -64,8 +67,11 @@ } argv_copy2[argc] = argv_copy[argc] = NULL; - setlocale(LC_ALL, oldloc); - PyMem_RawFree(oldloc); + if (oldloc) { + setlocale(LC_ALL, oldloc); + PyMem_RawFree(oldloc); + } + res = Py_Main(argc, argv_copy); for (i = 0; i < argc; i++) { PyMem_RawFree(argv_copy2[i]); diff -ru Python-3.3.5/setup.py Python-3.3.5-android/setup.py --- Python-3.3.5/setup.py 2014-03-09 09:40:35.000000000 +0100 +++ Python-3.3.5-android/setup.py 2014-08-04 22:14:36.000000000 +0200 @@ -562,7 +562,7 @@ libraries=math_libs) ) # time libraries: librt may be needed for clock_gettime() - time_libs = [] + time_libs = ['m'] lib = sysconfig.get_config_var('TIMEMODULE_LIB') if lib: time_libs.append(lib) @@ -639,7 +639,8 @@ # Operations on audio samples # According to #993173, this one should actually work fine on # 64-bit platforms. - exts.append( Extension('audioop', ['audioop.c']) ) + exts.append( Extension('audioop', ['audioop.c'], + libraries=['m']) ) # readline do_readline = self.compiler.find_library_file(lib_dirs, 'readline') @@ -1904,7 +1905,8 @@ sources=sources, depends=depends) ext_test = Extension('_ctypes_test', - sources=['_ctypes/_ctypes_test.c']) + sources=['_ctypes/_ctypes_test.c'], + libraries=['m']) self.extensions.extend([ext, ext_test]) if not '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS"):