>Number: 45472
>Category: pkg
>Synopsis: devel/py-gobject: Undefined PLT symbol "PyDict_SetItemString"
>Confidential: no
>Severity: serious
>Priority: low
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri Oct 14 14:30:01 +0000 2011
>Originator: John Marino
>Release: NetBSD 5.99.55
>Organization:
>Environment:
NetBSD banshee.synsport.com 5.99.55 NetBSD 5.99.55 (GENERIC) #0: Sun Sep 11
10:51:09 CEST 2011
root%banshee.synsport.com@localhost:/usr/obj/sys/arch/amd64/compile/GENERIC
amd64
>Description:
The GNAT Programming Studio package has been updated (to be committed later
today) to build with Python Support, which is quite a useful capability given
the dozens of python plug-in scripts it comes with. The problem is both Python
2.6 and 2.7 have undefined symbols in their dynamically loaded libraries.
After giving up on Python 2.6, I rebuilt everything with Python 2.7, including
GPS. This is the message that appears with the subsequent core dump:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/pkg/lib/python2.7/site-packages/gtk-2.0/gtk/__init__.py", line 30,
in <module>
import gobject as _gobject
File "/usr/pkg/lib/python2.7/site-packages/gobject/__init__.py", line 26, in
<module>
from glib import spawn_async, idle_add, timeout_add, timeout_add_seconds, \
File "/usr/pkg/lib/python2.7/site-packages/glib/__init__.py", line 22, in
<module>
from glib._glib import *
ImportError: /usr/pkg/lib/python2.7/site-packages/glib/_glib.so: Undefined PLT
symbol "PyDict_SetItemString" (symnum = 4)
These undefined symbols are pretty common with these dynamic libraries, even in
the main python pkg, even with the -Wl,--export-dynamic cflag set.
Note that GPS 5.0.1 builds and works with python 2.7 on FreeBSD (AMD64 tested)
pretty well, although these undefined symbol messages show in error logs there
as well.
>How-To-Repeat:
Wait for GPS 5.0.1 (devel/gps) to be committed later today, then modify the
options.mk to add "python" to the list of valid options, then build GPS with
python 2.7. The python option was removed from the list because no version of
python in pkgsrc works well enough to support GPS.
You must use 2.7 because 2.6 will fail elsewhere, before it gets to _glib.so.
>Fix: