Oh, I found my old patch to force UTF-8 on Android. I didn't test it: see attached file. It would be nice to start a wiki page to collect all informations on the Python port to Android. Victor 2015-01-30 21:04 GMT+01:00 Victor Stinner <victor.stinner at gmail.com>: > Android provides a minimal support of locales. Most functions return a > fake result, do nothing. I'm not sure that it supports any codec. To > support Android, we may force UTF-8 for the filesystem encoding, as > done on Mac OS X. > > Victor > > 2015-01-30 19:04 GMT+01:00 Ryan Gonzalez <rymg19 at gmail.com>: >> No... >> >> ...but I think I found the issue with grep. Try applying the attached patch >> to the Python/frozenmain.c. It comments out the locale handling. >> >> It seems that Python always calls its strdup function on the locale string. >> On Android, this can apparently be null (as seen in the bug report you >> linked to). >> >> On Fri, Jan 30, 2015 at 12:00 PM, Cyd Haselton <chaselton at gmail.com> wrote: >>> >>> I don't have gdb on device; does the following tell you where Python's >>> strdup is called? >>> >>> >> _PyMem_RawStrdup >>> >> /bld/python/Python-3.4.2/Objects/obmalloc.c:323 >>> >>> On Fri, Jan 30, 2015 at 11:52 AM, Ryan Gonzalez <rymg19 at gmail.com> wrote: >>> > Is it possible at all to get a stack trace of the crash using gdb? Try >>> > the >>> > steps here. >>> > >>> > That way we can see where Python's own strdup function is getting >>> > called. >>> > >>> > On Fri, Jan 30, 2015 at 9:05 AM, Cyd Haselton <chaselton at gmail.com> >>> > wrote: >>> >> >>> >> Absolutely. Good thing I have addr2line on device >>> >> >>> >> /bld/python/Python-3.4.2 $ addr2line -C -f -e /lib/libpython3.4m.so.1.0 >>> >> 0008bbc8 >>> >> _PyMem_RawStrdup >>> >> /bld/python/Python-3.4.2/Objects/obmalloc.c:323 >>> >> /bld/python/Python-3.4.2 $ >>> >> >>> >> >>> >> >>> >> On Thu, Jan 29, 2015 at 8:26 PM, Ryan <rymg19 at gmail.com> wrote: >>> >> > Could you try the steps at >>> >> > http://stackoverflow.com/a/11369475/2097780? >>> >> > They >>> >> > allow you to get a better idea of where libc is crashing. >>> >> > >>> >> > Cyd Haselton <chaselton at gmail.com> wrote: >>> >> >> >>> >> >> Managed to get this out of logcat: >>> >> >> F(11914) Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread >>> >> >> 11914 (python) (libc) >>> >> >> >>> >> >> [ 01-29 19:30:55.855 23373:23373 F/libc ] >>> >> >> Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 23373 >>> >> >> (python) >>> >> >> >>> >> >> Less detail than strace but it seems to be that python is >>> >> >> segfaulting >>> >> >> libc... >>> >> >> >>> >> >> On Wed, Jan 28, 2015 at 11:23 AM, Ryan Gonzalez <rymg19 at gmail.com> >>> >> >> wrote: >>> >> >>> >>> >> >>> On Wed, Jan 28, 2015 at 10:43 AM, Guido van Rossum >>> >> >>> <guido at python.org> >>> >> >>> wrote: >>> >> >>>> >>> >> >>>> >>> >> >>>> What I see in the strace: >>> >> >>>> >>> >> >>>> ... load libpython3.4m.so.1.0 >>> >> >>>> ... load libm >>> >> >>>> ... open /dev/__properties__ and do something to it >>> >> >>>> (what?) >>> >> >>>> ... get current time >>> >> >>>> ... allocate memory >>> >> >>>> ... getuid >>> >> >>>> ... segfault >>> >> >>>> >>> >> >>>> That's not a lot to go on, but it doesn't look as if it has >>> >> >>>> started >>> >> >>>> to >>> >> >>>> load modules yet. >>> >> >>>> >>> >> >>>> Does /dev/__properties__ ring a bell? Not to me. >>> >> >>> >>> >> >>> >>> >> >>> >>> >> >>> >>> >> >>> >>> >> >>> >>> >> >>> https://android.googlesource.com/platform/system/core/+/tools_r22/init/property_service.c >>> >> >>> is the code that works with that file. >>> >> >>> >>> >> >>> This explains it a bit (slides 24-29). Looks like something to do >>> >> >>> with >>> >> >>> interprocess communication. Likely has nothing to do with Python >>> >> >>> itself. >>> >> >>> >>> >> >>> Maybe this would be useful? >>> >> >>> >>> >> >>>> >>> >> >>>> That stack trace would be really helpful. >>> >> >>>> >>> >> >>>> On Wed, Jan 28, 2015 at 8:34 AM, Cyd Haselton >>> >> >>>> <chaselton at gmail.com> >>> >> >>>> wrote: >>> >> >>>>> >>> >> >>>>> >>> >> >>>>> Apologies...I'm not sure what a stack track is, but I do have >>> >> >>>>> the >>> >> >>>>> strace. Nearest I can tell, it happens due to an open call, >>> >> >>>>> though >>> >> >>>>> I >>> >> >>>>> am probably wrong. >>> >> >>>>> Attaching the strace output to this email. I'm going to head >>> >> >>>>> back >>> >> >>>>> to >>> >> >>>>> the documentation and to back out of some Android-related >>> >> >>>>> changes >>> >> >>>>> in >>> >> >>>>> _localemodule.c >>> >> >>>>> >>> >> >>>>> On Wed, Jan 28, 2015 at 9:43 AM, Guido van Rossum >>> >> >>>>> <guido at python.org> >>> >> >>>>> wrote: >>> >> >>>>>> >>> >> >>>>>> There could be a million differences relevant (unicode, ints, >>> >> >>>>>> ...). >>> >> >>>>>> Perhaps >>> >> >>>>>> the importlib bootstrap is failing. Perhaps the dynamic loading >>> >> >>>>>> code >>> >> >>>>>> changed. Did you get a stack track? (IIRC strace shows a >>> >> >>>>>> syscall >>> >> >>>>>> trace >>> >> >>>>>> -- >>> >> >>>>>> also useful, but doesn't tell you precisely how >>> >> >>>>>> it segfaulted.) >>> >> >>>>>> >>> >> >>>>>> On Wed, Jan 28, 2015 at 6:43 AM, Cyd Haselton >>> >> >>>>>> <chaselton at gmail.com> >>> >> >>>>>> wrote: >>> >> >>>>>>> >>> >> >>>>>>> >>> >> >>>>>>> All, >>> >> >>>>>>> I recently ditched my attempts to port Python 2.7.8 to Android >>> >> >>>>>>> in >>> >> >>>>>>> favor of Python 3.4.2. Unfortunately, after using the same >>> >> >>>>>>> configure >>> >> >>>>>>> options in the same environment, and modifying the setup.py as >>> >> >>>>>>> needed, >>> >> >>>>>>> the newly built binary throws a segfault when the >>> >> >>>>>>> generate-posix-vars >>> >> >>>>>>> portion of the build is reached...and when it is run as well >>> >> >>>>>>> (i.e. >>> >> >>>>>>> ./python --help, ./python -E -S -m sysconfig, or similar) >>> >> >>>>>>> >>> >> >>>>>>> I took a strace of ./python, however I'm a bit lost when >>> >> >>>>>>> reviewing >>> >> >>>>>>> it. >>> >> >>>>>>> Any ideas as to what may be going on...i.e. why Python 2.7 >>> >> >>>>>>> works >>> >> >>>>>>> but >>> >> >>>>>>> 3.x throws a segfault? >>> >> >>>>>>> >>> >> >>>>>>> Thanks in advance, >>> >> >>>>>>> Cyd >>> >> >>>>>>> ________________________________ >>> >> >>>>>>> >>> >> >>>>>>> Python-Dev mailing list >>> >> >>>>>>> >>> >> >>>>>>> Python-Dev at python.org >>> >> >>>>>>> https://mail.python.org/mailman/listinfo/python-dev >>> >> >>>>>>> Unsubscribe: >>> >> >>>>>>> >>> >> >>>>>>> >>> >> >>>>>>> >>> >> >>>>>>> https://mail.python.org/mailman/options/python-dev/guido%40python.org >>> >> >>>>>> >>> >> >>>>>> >>> >> >>>>>> >>> >> >>>>>> >>> >> >>>>>> >>> >> >>>>>> -- >>> >> >>>>>> --Guido van Rossum (python.org/~guido) >>> >> >>>> >>> >> >>>> >>> >> >>>> >>> >> >>>> >>> >> >>>> >>> >> >>>> -- >>> >> >>>> --Guido van Rossum (python.org/~guido) >>> >> >>>> >>> >> >>>> ________________________________ >>> >> >>>> >>> >> >>>> Python-Dev mailing list >>> >> >>>> Python-Dev at python.org >>> >> >>>> https://mail.python.org/mailman/listinfo/python-dev >>> >> >>>> Unsubscribe: >>> >> >>>> >>> >> >>>> >>> >> >>>> https://mail.python.org/mailman/options/python-dev/rymg19%40gmail.com >>> >> >>> >>> >> >>> >>> >> >>> >>> >> >>> >>> >> >>> >>> >> >>> -- >>> >> >>> Ryan >>> >> >>> If anybody ever asks me why I prefer C++ to C, my answer will be >>> >> >>> simple: >>> >> >>> "It's becauseslejfp23(@#Q*(E*EIdc-SEGFAULT. Wait, I don't think >>> >> >>> that >>> >> >>> was >>> >> >>> nul-terminated." >>> >> >>> Personal reality distortion fields are immune to contradictory >>> >> >>> evidence. >>> >> >>> - >>> >> >>> srean >>> >> >>> Check out my website: http://kirbyfan64.github.io/ >>> >> > >>> >> > >>> >> > -- >>> >> > Sent from my Android phone with K-9 Mail. Please excuse my brevity. >>> >> > Check out my website: http://kirbyfan64.github.io/ >>> > >>> > >>> > >>> > >>> > -- >>> > Ryan >>> > If anybody ever asks me why I prefer C++ to C, my answer will be simple: >>> > "It's becauseslejfp23(@#Q*(E*EIdc-SEGFAULT. Wait, I don't think that was >>> > nul-terminated." >>> > Personal reality distortion fields are immune to contradictory evidence. >>> > - >>> > srean >>> > Check out my website: http://kirbyfan64.github.io/ >> >> >> >> >> -- >> Ryan >> If anybody ever asks me why I prefer C++ to C, my answer will be simple: >> "It's becauseslejfp23(@#Q*(E*EIdc-SEGFAULT. Wait, I don't think that was >> nul-terminated." >> Personal reality distortion fields are immune to contradictory evidence. - >> srean >> Check out my website: http://kirbyfan64.github.io/ >> >> _______________________________________________ >> Python-Dev mailing list >> Python-Dev at python.org >> https://mail.python.org/mailman/listinfo/python-dev >> Unsubscribe: >> https://mail.python.org/mailman/options/python-dev/victor.stinner%40gmail.com >> -------------- next part -------------- A non-text attachment was scrubbed... Name: android_utf8-2.patch Type: text/x-patch Size: 4241 bytes Desc: not available URL: <http://mail.python.org/pipermail/python-dev/attachments/20150130/2bce669d/attachment-0001.bin>
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4