Python segfault: possible cause and solution/workaround

Xiangfu Liu xiangfu at sharism.cc
Mon Aug 22 02:37:32 EDT 2011


thanks David and kyak

I just did the fast way. remove the readline.so when first boot:
committed at: http://qi-hw.com/p/openwrt-packages/0df4b6d


On 08/21/2011 03:35 PM, kyak wrote:
>> Crash happens in libreadline.  It jumps to address 0 after loading
>> the branch target out of the plt ('lw t9,...(gp)').  This looks
>> very much like an unresolved symbol in libreadline, where the
>> dynamic linker just left a 0-pointer.  Libreadline is loaded
>> dynamically via /usr/lib/python2.6/lib-dynload/readline.so .  When
>> that readline.so does a dlopen() with lazy symbol resolving, then
>> 0-pointers on unresolved symbols would be quite natural.
>>
>> Looking at the libraries that where loaded at the time of the
>> crash, I can see that libncursesw.so.5 is loaded, but
>> libncurses.so.5 (without 'w') is not.  I think this is needed by
>> libreadline.  Looks like the
>
> libncursesw stands for the "wide" version of ncurses, i.e.,
> supporting two-byte characters. It doesn't need to have "regular"
> version of ncurses loaded because the "wide" version is backwards
> compatible with the "regular" one
> (http://invisible-island.net/ncurses/ncurses.faq.html, "The ncurses
> and ncursesw libraries are reasonably source-compatible. That is, an
> application written for "ncurses" will build with "ncursesw".").
>
> I just want to clarify that it doesn't have anything to do with the
> letter "w" :)
>
> David, you did a great find. So I searched for keywords and here's
> what i found:
> http://lists.busybox.net/pipermail/uclibc/2011-March/045081.html It
> started here:
> http://lists.busybox.net/pipermail/uclibc/2011-March/045051.html
> (there are other related discussions for dynamic linker, python,
> readline and ncurses if you search their mailing lists :)
>
> So at the end, seems that the readline needs to be patched for that.
>
> David, if you're going to do that
> (http://lists.busybox.net/pipermail/uclibc/2011-March/045079.html),
> please force the link to wide ncurses, so one would be able to type
> wide-char in python command line :)





More information about the discussion mailing list


interactive