[patch] Re: Disable -lmcheck when Python has threads (Re: [BUG] gdb crash when "python import gtk")

Khoo Yit Phang khooyp@cs.umd.edu
Thu Aug 30 19:28:00 GMT 2012


Hi,

On Aug 30, 2012, at 3:05 PM, Jan Kratochvil wrote:

> Hi David,
> 
> On Thu, 30 Aug 2012 20:58:21 +0200, Khoo Yit Phang wrote:
>> On Aug 30, 2012, at 2:21 PM, Jan Kratochvil wrote:
>>> On Thu, 30 Aug 2012 20:05:01 +0200, Khoo Yit Phang wrote:
>>>> 1) I reverted python-config.py and used a different method to test for
>>>> threads ("python -m threading");
>>> 
>>> Unfortunately it does not work for me with python-2.7, only with python-3.3,
>>> tested on Fedora 18 x86_64:
>>> 
>>> $ python3 -m threading;echo $?
>>> 0
>>> $ python3 -m threadin;echo $?
>>> /usr/bin/python3: No module named threadin
>>> 1
>>> 
>>> but:
>>> 
>>> $ python2 -m threading;echo $?
>>> Traceback (most recent call last):
>>> File "/usr/lib64/python2.7/runpy.py", line 162, in _run_module_as_main
>>>   "__main__", fname, loader, pkg_name)
>>> File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
>>>   exec code in run_globals
>>> File "/usr/lib64/python2.7/threading.py", line 985, in <module>
>>>   _test()
>>> File "/usr/lib64/python2.7/threading.py", line 969, in _test
>>>   Q = BoundedQueue(QL)
>>> File "/usr/lib64/python2.7/threading.py", line 912, in __init__
>>>   self.queue = deque()
>>> NameError: global name 'deque' is not defined
>>> 255
>>> 
>>> python3-3.3.0-0.3.b2.fc18.x86_64
>>> python-2.7.3-13.fc18.x86_64
>>> 
>>> GDB moveover currently is not compatible with python3.x at all.
>>> 
>>> I do not know much Python but I would guess thread-less Pythons are rare,
>>> aren't they?  There would be also a possibility to assume Python is threaded,
>>> if one already links with Python.
>> 
>> That's strange, it works for me under Ubuntu 11.04 with Python 2.7.1 and
>> RHEL5 with Python 2.6.6. I suppose it would be easier to just assume Python
>> is threaded, this new patch does that.
> 
> On RHEL-5.8 I have python-2.4.3-46.el5 (not Python 2.6.6) although I can
> confirm it works there:
> 
> $ python -m threading; echo $?
> Producer-1.1
> [...]
> Producer-3.5
> 0

I see what the problem is now: there is bug in Python 2.7.3 in the threading._test function, which is what gets run under "python -m threading". The bug has been fixed, see http://bugs.python.org/issue15567.

Yit
August 30, 2012



More information about the Gdb-patches mailing list