Xavier de Gaye added the comment:
The android/api-level.h header exists at all the android API levels and define
__ANDROID_API__ as, for example at level 21:
#define __ANDROID_API__ 21
So it is possible to get the sdk version from here, and maybe forget about the
release version
Xavier de Gaye added the comment:
Thanks Chi Hsuan Yen and Stefan. Indeed the --with-termlib configure option
documentation states: "When building the ncurses library, organize this as two
parts: the curses library (libncurses) and the low-level terminfo library
(libtinfo)". Using
Xavier de Gaye added the comment:
Here is the patch with a test case.
I have checked that the new test case fails with 'Start directory is not
importable"' when loader.py is not patched.
--
Added file: http://bugs.python.org/file42646/u
New submission from Xavier de Gaye:
configure of the cross compilation is run with '--enable-shared --with-pydebug'.
The cross-compilation fails attempting to link the extension module objects
with a non existing libpython3.6m instead of libpython3.6dm, when the native
python that
Xavier de Gaye added the comment:
build
issue #26884: cross-compilation of extension module links to the wrong
python library
This should be added to the meta-issue dependencies, I guess.
--
___
Python tracker
<http://bugs.python.
Xavier de Gaye added the comment:
Python builds and runs fine on android without this patch. I cannot reproduce
the 'Fatal Python error: PyThreadState_Get: no current thread' abort either.
Closing the issue.
--
resolution: -> works for me
status: o
Changes by Xavier de Gaye :
--
nosy: +dstufft, eric.araujo
___
Python tracker
<http://bugs.python.org/issue26884>
___
___
Python-bugs-list mailing list
Unsub
Changes by Xavier de Gaye :
--
nosy: +twouters
___
Python tracker
<http://bugs.python.org/issue26851>
___
___
Python-bugs-list mailing list
Unsubscribe:
Changes by Xavier de Gaye :
--
nosy: +twouters
___
Python tracker
<http://bugs.python.org/issue26852>
___
___
Python-bugs-list mailing list
Unsubscribe:
Changes by Xavier de Gaye :
--
nosy: +giampaolo.rodola, gvanrossum, haypo, pitrou, yselivanov
___
Python tracker
<http://bugs.python.org/issue26858>
___
___
Pytho
Xavier de Gaye added the comment:
The patch was not intended to be proposed as a way to fix this problem, but as
an indication of what the problem is. This issue is a dependency of issue
#26865: Meta-issue: support of the android platform.
I should have posted instead the result of running
Xavier de Gaye added the comment:
Stefan has already commited and closed some of the issues listed at issue
#26865. Martin has closed issue #22359, a blocker for the cross-compilation of
python.
I will enter an issue for all the failures listed at
https://bitbucket.org/xdegaye/pyona/wiki
Xavier de Gaye added the comment:
Running the "Search" button on the tracker with "Components" set as
"Cross-Build" lists 42 issues (20 in the last year).
I guess using this existing category is fine if the titles'
Changes by Xavier de Gaye :
--
title: setting SO_REUSEPORT fails on android -> android: setting SO_REUSEPORT
fails
___
Python tracker
<http://bugs.python.org/issu
Changes by Xavier de Gaye :
--
components: +Cross-Build
nosy: +Alex.Willmer
___
Python tracker
<http://bugs.python.org/issue26856>
___
___
Python-bugs-list mailin
Changes by Xavier de Gaye :
--
title: add platform.android_ver() for android -> android: add
platform.android_ver()
___
Python tracker
<http://bugs.python.org/issu
Changes by Xavier de Gaye :
--
title: add a COMPILEALL_FLAGS Makefile variable -> android: add a
COMPILEALL_FLAGS Makefile variable
___
Python tracker
<http://bugs.python.org/issu
Changes by Xavier de Gaye :
--
title: SYS_getdents64 does not need to be defined on android API 21 -> android:
SYS_getdents64 does not need to be defined on android API 21
___
Python tracker
<http://bugs.python.org/issu
Changes by Xavier de Gaye :
--
title: cross-compilation of extension module links to the wrong python library
-> android: cross-compilation of extension module links to the wrong python
library
___
Python tracker
<http://bugs.python.org/issu
Xavier de Gaye added the comment:
The python '-E' option was needed on 3.4 when this patch was first implemented
and is not needed anymore at the current tip (changeset 2ef61a4747eb, Apr 27
2016).
New patch.
--
Added file: http://bugs.python.org/file42690/compileall-fla
New submission from Xavier de Gaye:
test_pipes fails on an android emulator running an x86 system image at API
level 21.
root@generic_x86:/data/local/tmp # python -m test -v test_pipes
== CPython 3.6.0a0 (default:f4c6dab59cd8+, May 3 2016, 10:42:45) [GCC 4.9
20140827 (prerelease)]
== Linux
New submission from Xavier de Gaye:
test_cmd_line fails on an android emulator running an x86 system image at API
level 21.
==
FAIL: test_non_ascii (test.test_cmd_line.CmdLineTest
New submission from Xavier de Gaye:
test_sys fails on an android emulator running an x86 system image at API level
21.
...
test_implementation (test.test_sys.SysModuleTest) ... ok
test_intern (test.test_sys.SysModuleTest) ... ok
test_ioencoding (test.test_sys.SysModuleTest) ... ok
New submission from Xavier de Gaye:
test_concurrent_futures fails on an android emulator running an x86 system
image at API level 21.
There are multiple ERRORs, all resulting in the same traceback:
Traceback (most recent call last):
File
"/sdcard/org.bitbucket.pyona/lib/python3.6
New submission from Xavier de Gaye:
All the tests of test_multiprocessing_main_handling fail on an android emulator
running an x86 system image at API level 21.
See the attached test_output.txt file.
--
components: Cross-Build, Library (Lib)
files: test_output.txt
messages: 264723
nosy
Xavier de Gaye added the comment:
This seems to be related to issue #26924.
--
___
Python tracker
<http://bugs.python.org/issue26925>
___
___
Python-bugs-list m
New submission from Xavier de Gaye:
test_io fails on an android emulator running an x86 system image at API level
21.
==
ERROR: test_large_file_ops (test.test_io.CIOTest
New submission from Xavier de Gaye:
test_mmap fails on an android emulator running an x86 system image at API level
21.
==
ERROR: test_large_filesize (test.test_mmap.LargeMmapTests
New submission from Xavier de Gaye:
One test of test_site fails on an android emulator running an x86 system image
at API level 21.
See the attached test_output.txt file.
--
components: Cross-Build, Library (Lib)
files: test_output.txt
messages: 264728
nosy: Alex.Willmer, xdegaye
New submission from Xavier de Gaye:
test_strptime fails on an android emulator running an x86 system image at API
level 21.
See the attached test_output.txt file.
--
components: Cross-Build, Library (Lib)
files: test_output.txt
messages: 264729
nosy: Alex.Willmer, belopolsky, lemburg
New submission from Xavier de Gaye:
test_distutils fails on an android emulator running an x86 system image at API
level 21.
See the attached test_output.txt file.
Some of these failed tests could be skipped, supposing that native compilation
of extension modules on android itself (as
New submission from Xavier de Gaye:
test_posixpath fails on an android emulator running an x86 system image at API
level 21.
On android we have:
root@generic_x86:/data/local/tmp # python
Python 3.6.0a0 (default:f4c6dab59cd8+, May 3 2016, 10:42:45)
[GCC 4.9 20140827 (prerelease)] on linux
New submission from Xavier de Gaye:
test_posix fails on an android emulator running an x86 system image at API
level 21.
For the first ERROR, on android we have instead of a list of group IDs:
root@generic_x86:/data/local/tmp # id -G
uid=0(root) gid=0(root)
groups=1003(graphics),1004(input
New submission from Xavier de Gaye:
test_faulthandler fails on an android emulator running an x86 system image at
API level 21.
See the attached test_output.txt file.
--
components: Cross-Build, Library (Lib)
files: test_output.txt
messages: 264735
nosy: Alex.Willmer, haypo, xdegaye
New submission from Xavier de Gaye:
One test of test_os fails on an android emulator running an x86 system image at
API level 21.
See the attached test_output.txt file.
--
components: Cross-Build, Library (Lib)
files: test_output.txt
messages: 264736
nosy: Alex.Willmer, loewis
New submission from Xavier de Gaye:
test_tarfile fails on an android emulator running an x86 system image at API
level 21.
==
[0/9481]
FAIL: test_extract_with_numeric_owner
New submission from Xavier de Gaye:
test_socket fails on an android emulator running an x86 system image at API
level 21.
==
ERROR: testGetServBy (test.test_socket.GeneralModuleTests
New submission from Xavier de Gaye:
test_functools hangs on an android emulator running an armv7 system image (but
not on x86) at API level 21. The test suite hangs at
test_lru_cache_threaded (test.test_functools.TestLRUC) ...
A cause of this problem may be related to the fact that the
New submission from Xavier de Gaye:
test_concurrent_futures hangs on an android emulator running an armv7 system
image (but not on x86) at API level 21. The test suite hangs at:
test_pending_calls_race (test.test_concurrent_futures.ThreadPoolWaitTests) ...
A cause of this problem may be
New submission from Xavier de Gaye:
test_importlib hangs on an android emulator running an armv7 system image (but
not on x86) at API level 21. The test suite hangs at
test_deadlock (test.test_importlib.test_locks.Frozen_DeadlockAvoidanceTests) ...
A cause of this problem may be related to
New submission from Xavier de Gaye:
test_threading hangs on an android emulator running an armv7 system image (but
not on x86) at API level 21. The test suite hangs at
test_is_alive_after_fork (test.test_threading.ThreadTests) ...
A cause of this problem may be related to the fact that the
New submission from Xavier de Gaye:
test_ctypes crashes on an android emulator running an armv7 system image (but
not on x86) at API level 21.
143|root@generic:/data/local/tmp # python -m test -v test_ctypes
== CPython 3.6.0a0 (default:f4c6dab59cd8+, May 3
Xavier de Gaye added the comment:
All the dependencies of this issue are tagged with Components:Cross-Build and a
title starting with 'android'.
Tests that fail on an android emulator running an x86 system image at API level
21:
issue #26918: android: test_pipes fails
is
Xavier de Gaye added the comment:
That was fast!
Thanks Serhiy.
--
___
Python tracker
<http://bugs.python.org/issue26933>
___
___
Python-bugs-list mailin
Xavier de Gaye added the comment:
You are right. I will do that.
--
___
Python tracker
<http://bugs.python.org/issue26933>
___
___
Python-bugs-list mailin
Xavier de Gaye added the comment:
The attached test_output.txt file is the corresponding gdb backtrace[1].
Interestingly, all the tests (issues #26938, #26939, #26940 and #26941) that
hang on arm use sys.setswitchinterval() aggressively.
[1] The backtrace is interleaved with:
* Python
Xavier de Gaye added the comment:
Interestingly, all the tests (issues #26938, #26939, #26940 and #26941) that
hang on arm use sys.setswitchinterval() aggressively.
--
___
Python tracker
<http://bugs.python.org/issue26
Xavier de Gaye added the comment:
Interestingly, all the tests (issues #26938, #26939, #26940 and #26941) that
hang on arm use sys.setswitchinterval() aggressively.
--
___
Python tracker
<http://bugs.python.org/issue26
Xavier de Gaye added the comment:
Interestingly, all the tests (issues #26938, #26939, #26940 and #26941) that
hang on arm use sys.setswitchinterval() aggressively.
--
___
Python tracker
<http://bugs.python.org/issue26
Xavier de Gaye added the comment:
root@generic_x86:/data/local/tmp # python
Python 3.6.0a0 (default:f4c6dab59cd8+, May 3 2016, 21:59:47)
[GCC 4.9 20140827 (prerelease)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>
Xavier de Gaye added the comment:
>>> for i in range(25, 32):
... print(datetime.date(1904, 12, i).strftime('%Y %U %w %G %V %u'))
...
1904 52 0 1904 51 7
1904 52 1 1904 52 1
1904 52 2 1904 52 2
1904 52 3 1904 52 3
1904 52 4 1904 52 4
1904 52 5 1904 52 5
19
Xavier de Gaye added the comment:
GNU libc says:
‘%V’
The ISO 8601:1988 week number as a decimal number (range ‘01’
through ‘53’). ISO weeks start with Monday and end with
Sunday. Week ‘01’ of a year is the first week which has the
majority of its
Xavier de Gaye added the comment:
Here is the result of running on android:
Xavier de Gaye added the comment:
test_rtld_constants is now ok at the tip of the default branch.
Thanks Chi Hsuan Yen.
I will enter a separate issue for test_getgroups and reference it here as well
as in issue #26865.
--
___
Python tracker
<h
Xavier de Gaye added the comment:
Tests that fail on an android emulator running an x86 system image at API level
21:
issue #26944: android: test_posix fails
--
___
Python tracker
<http://bugs.python.org/issue26
Xavier de Gaye added the comment:
> I will enter a separate issue for test_getgroups and reference it here as
> well as in issue #26865.
issue #26944: android: test_posix fails.
--
___
Python tracker
<http://bugs.python.org/i
New submission from Xavier de Gaye:
test_posix fails on an android emulator running an x86 system image at API
level 21.
On android we have instead of a list of group IDs:
root@generic_x86:/data/local/tmp # id -G
uid=0(root) gid=0(root)
groups=1003(graphics),1004(input),1007(log),1011(adb
Xavier de Gaye added the comment:
> Xavier, please check that issues with ctypes and threading are not gone.
No ctypes still crashes and threading still hangs.
--
___
Python tracker
<http://bugs.python.org/issu
Xavier de Gaye added the comment:
On android:
root@generic_x86:/data/local/tmp # python
Python 3.6.0a0 (default:811ccdee6f87+, May 4 2016, 10:31:14)
[GCC 4.9 20140827 (prerelease)] on linux
Type "help", "copyright", "credits" or "license" for more infor
Xavier de Gaye added the comment:
The relevant part of the output of configure on x86:
checking size of int... 4
checking size of long... 4
checking size of void *... 4
checking size of short... 2
checking size of float... 4
checking size of double... 8
checking size of fpos_t... 4
checking
Xavier de Gaye added the comment:
On android x86:
>>> import resource
>>> resource.setrlimit(resource.RLIMIT_FSIZE, (2**31, 2**31))
Traceback (most recent call last):
File "", line 1, in
OverflowError: Python int too large to convert to C long
>>> resourc
Xavier de Gaye added the comment:
There is a related issue #4388 although different, and issue #22747 may also be
related.
--
nosy: +haypo
___
Python tracker
<http://bugs.python.org/issue26
Xavier de Gaye added the comment:
Patch tested, it does not fix the problem.
This is because in pyconfig.h:
/* Define to 1 if you have the `sem_unlink' function. */
#define HAVE_SEM_UNLINK 1
Android declares the function but does not implement it. This is not the only
case, for example
Xavier de Gaye added the comment:
Here is a patch that uses resource.setrlimit() to check whether large file may
not be supported.
--
keywords: +patch
Added file: http://bugs.python.org/file42720/large_file.patch
___
Python tracker
<h
Xavier de Gaye added the comment:
The attached patch fixes this.
--
keywords: +patch
Added file: http://bugs.python.org/file42722/no_tr_skipped.patch
___
Python tracker
<http://bugs.python.org/issue26
Xavier de Gaye added the comment:
Here is the list of commands at /system/bin on the emulator.
--
Added file: http://bugs.python.org/file42731/emulator_system_bin.txt
___
Python tracker
<http://bugs.python.org/issue26
Xavier de Gaye added the comment:
Thanks for the review Serhiy. New patch attached.
--
Added file: http://bugs.python.org/file42732/no_tr_skipped_2.patch
___
Python tracker
<http://bugs.python.org/issue26
Xavier de Gaye added the comment:
Ooops too late. Here is a new patch that replaces the tr command and allows all
the tests of test_pipes to run successfully on android.
--
Added file: http://bugs.python.org/file42733/replace_tr.patch
___
Python
Xavier de Gaye added the comment:
Using the glibc compilation flags recommended for large file support
'-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -D_LARGEFILE64_SOURCE=1' does not
enable large file support. See Suse's 'Large File Support in Linux' document
[1].
I
Xavier de Gaye added the comment:
The problem is caused by the fact that android does not have HAVE_LANGINFO_H
and CODESET set, hence in the _bootlocale module, the statement
'_locale.CODESET' raises AttributeError and the locale module is imported upon
interpreter startup. The loc
Xavier de Gaye added the comment:
BTW the test runs fine on android when the AttributeError in _bootlocale is
hard-coded with a getpreferredencoding() fuction returning 'UTF-8' and not
importing locale.
--
___
Python trac
Xavier de Gaye added the comment:
I agree with not complicating tests too much.
For the record, the pipes test suite coverage is very low and the code paths
that lead to invocations of os.popen() in the pipes module are not tested when
those three tests are skipped
Xavier de Gaye added the comment:
The last two failed tests:
test_sysconfig_compiler_vars
test_sysconfig_module
are caused by LDFLAGS being set in the environment both when configure is run
and when make is run.
Removing LDFLAGS from the environment when running make fixes these tests
Xavier de Gaye added the comment:
The attached patch skips some tests when the interpreter was cross-compiled.
When the interpreter has been cross-compiled, there is probably no compiler on
the host system.
--
keywords: +patch
Added file: http://bugs.python.org/file42744/cross
Xavier de Gaye added the comment:
On android, the shell path is /system/bin/sh. The attached patch fixes this,
assuming that there is a platform.android_ver() as per issue #26855: add
platform.android_ver() for android. This could be changed for a test on
sys.platform if there was a specific
Xavier de Gaye added the comment:
Android has stdatomic.h and HAVE_STD_ATOMIC is defined.
The build fails with the patch, see the errors in the attached file. This is
the native compilation of python, the patches in my build system are also
applied to the native build so that they can be
Xavier de Gaye added the comment:
Still hangs at test_lru_cache_threaded with this last patch :(
--
___
Python tracker
<http://bugs.python.org/issue26939>
___
___
Xavier de Gaye added the comment:
> Can you post the backtraces of all threads (at least the innermost frames)?
There are two threads, gdb does not print the backtrace of the other thread. My
current gdb setup with a connection to a gdb-server misses some stuff (access
to the loader or s
Xavier de Gaye added the comment:
The strace of test_lru_cache_threaded:
...
gettimeofday({1462553238, 580860}, NULL) = 0
clock_gettime(CLOCK_REALTIME, {1462553238, 581276772}) = 0
gettimeofday({1462553238, 581672}, NULL) = 0
clock_gettime(CLOCK_REALTIME, {1462553238, 582078767}) = 0
Xavier de Gaye added the comment:
Adding the back trace.
--
Added file: http://bugs.python.org/file42761/test_threading_gdb_bt.txt
___
Python tracker
<http://bugs.python.org/issue26
Xavier de Gaye added the comment:
Adding gdb backtrace.
--
Added file: http://bugs.python.org/file42762/test_importlib_gdb_bt.txt
___
Python tracker
<http://bugs.python.org/issue26
Xavier de Gaye added the comment:
The strace output, the process is blocked in a futex system call:
root@generic:/ # strace -p 1304
Process 1304 attached
futex(0xb6f24880, FUTEX_WAIT_PRIVATE, 2, NULL
--
___
Python tracker
<http://bugs.python.
Xavier de Gaye added the comment:
> Do you know in which precise test it hangs?
They are named in the first msg of each issue, the issues are:
issue #26938: android: test_concurrent_futures hangs on armv7
issue #26939: android: test_functools hangs on armv7
issue #26940: andr
Xavier de Gaye added the comment:
Forgot to say that the backtraces for test_threading and test_importlib were
obtained with the patch applied while they were hanging.
--
___
Python tracker
<http://bugs.python.org/issue26
Xavier de Gaye added the comment:
Reproducing the code that is executed on the first failure (test_disable) gives:
On linux:
$ python
Python 3.6.0a0 (default:47fa003aa9f1, Feb 24 2016, 13:09:02)
[GCC 5.3.0] on linux
Type "help", "copyright", "credits" or
Xavier de Gaye added the comment:
The gdb backtrace of running interactively 'faulthandler._sigsegv()'. After the
SIGSEGV and the last gdb 'continue', python is still alive with a '>>>' prompt
and ready for the next user input:
(gdb) b faulthandler_s
Xavier de Gaye added the comment:
On android dup2() returns with an error when both fds are the same:
root@generic_x86:/data/local/tmp # python
Python 3.6.0a0 (default:811ccdee6f87+, May 7 2016, 12:44:06)
[GCC 4.9 20140827 (prerelease)] on linux
Type "help", "copyright", &
Xavier de Gaye added the comment:
On android getservbyname(const char *NAME, const char *PROTO) returns NULL when
PROTO is NULL:
root@generic_x86:/data/local/tmp # python
Python 3.6.0a0 (default:811ccdee6f87+, May 7 2016, 17:56:37)
[GCC 4.9 20140827 (prerelease)] on linux
Type "
Xavier de Gaye added the comment:
Here is the result of the test:
root@generic_x86:/data/local/tmp # python -m test -v test_concurrent_futures
== CPython 3.6.0a0 (default:811ccdee6f87+, May 7 2016, 18:51:28) [GCC 4.9
20140827 (prerelease)]
== Linux-3.4.67+-i686-with-libc little-endian
Xavier de Gaye added the comment:
> Here is the result of the test:
I meant, results with the new patch.
--
___
Python tracker
<http://bugs.python.org/issu
Xavier de Gaye added the comment:
Attached the results with sem_unlink_alt.diff.
--
Added file: http://bugs.python.org/file42774/sem_unlink_alt_output.txt
___
Python tracker
<http://bugs.python.org/issue26
Xavier de Gaye added the comment:
There is a typo in sem_unlink_alt.diff, not in the patch itself but in the
neighbouring lines. In Modules/_multiprocessing/semaphore.c, it should be, I
think, after one does 's/define sem_unlink(name)/define SEM_UNLINK(name)/':
@@ -194,8 +194,8 @@
Xavier de Gaye added the comment:
sem_open() is not implemented as well. Here is a gdb session with a breakpoint
set at semlock_new() (SEM_FAILED is NULL on android):
Breakpoint 1, semlock_new (type=0xb6d070c0 <_PyMp_SemLockType>,
args=(1, 1, 1, '/mp-dkzrq4ed', True),
Xavier de Gaye added the comment:
Since this seems to be fixed in a version of android that is more recent that
API 21, maybe use the value of 'sdk.release' when platform.android_ver() is
available after issue #26855 is fixed, with for example, if this is fixed at
API 23:
s
Xavier de Gaye added the comment:
Undefining the SEM_* macros in multiprocessing.h when __ANDROID__ is set, would
allow for an easier update when those functions become implemented at a future
API level. The __ANDROID_API__ macro can be used for that purpose. For example,
if this happens at
Xavier de Gaye added the comment:
> # undef sem_open
I meant of course:
# undef HAVE_SEM_OPEN
--
___
Python tracker
<http://bugs.python.org/issu
Xavier de Gaye added the comment:
Closing as duplicate of #26924.
--
resolution: -> duplicate
status: open -> closed
___
Python tracker
<http://bugs.python.org/i
Xavier de Gaye added the comment:
This is fixed at API 23 (Android 6.0) and test_os runs on an android-23-x86
emulator without failures.
--
___
Python tracker
<http://bugs.python.org/issue26
Xavier de Gaye added the comment:
testGetaddrinfo does not fail anymore on an emulator running an android-23-x86,
i.e. Android 6.0 or API 23.
--
___
Python tracker
<http://bugs.python.org/issue26
Xavier de Gaye added the comment:
'id -G' produces the expected result on an android-23-x86 emulator running
Android 6.0 (API 23).
There is a new error now instead of the one reported at issue #26932:
==
FAIL: test
1301 - 1400 of 1614 matches
Mail list logo