[Python-modules-team] Bug#589893: python-qt4: has bad linking for shared objects

Alan W. Irwin irwin at beluga.phys.uvic.ca
Wed Jul 21 23:37:12 UTC 2010


Package: python-qt4
Version: 4.7.3-1+b1
Severity: important
Tags: patch

If you run, e.g., 

ldd -r /usr/lib/pyshared/python2.6/PyQt4/Qt.so

You obtain the following (abbreviated) results:

        linux-vdso.so.1 =>  (0x00007fffcc7ff000)
        libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0x00007f9d75e91000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f9d75b7d000)
        libm.so.6 => /lib/libm.so.6 (0x00007f9d758fa000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f9d756e4000)
        libc.so.6 => /lib/libc.so.6 (0x00007f9d75383000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00007f9d75166000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00007f9d74f4f000)
        libdl.so.2 => /lib/libdl.so.2 (0x00007f9d74d4b000)
        libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x00007f9d74b46000)
        librt.so.1 => /lib/librt.so.1 (0x00007f9d7493e000)
        libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x00007f9d74662000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f9d7675b000)
        libpcre.so.3 => /lib/libpcre.so.3 (0x00007f9d74432000)
undefined symbol: PyProperty_Type (/usr/lib/pyshared/python2.6/PyQt4/QtCore.so)
undefined symbol: PyType_GenericNew (/usr/lib/pyshared/python2.6/PyQt4/QtCore.so)
undefined symbol: PyBool_Type (/usr/lib/pyshared/python2.6/PyQt4/QtCore.so)
undefined symbol: PyExc_ValueError (/usr/lib/pyshared/python2.6/PyQt4/QtCore.so)
undefined symbol: PyExc_SystemError (/usr/lib/pyshared/python2.6/PyQt4/QtCore.so)
[...]

Note, the list of libraries says nothing about python, and all the
missing symbols seem to have a "Py" prefix.  There is similar undefined
symbol problems
for all other shared objects in that directory that I checked.

>From this evidence I guessed that the -lpython2.6 flag was missing
from the build.  Accordingly I used apt-src to build the package, and
captured the link step for the above shared object and changed
that command to append -lpython2.6, and indeed that change fixes the
issue.

N.B. I assumed that I could add a patch to add the missing
-lpython<version> flag, but that turned out to be more difficult than
I initially thought so despite the above tag, I currently have no
patch for this issue.

N.B. this undefined symbol issue kills my build of a pyqt4 module
which actually needed one of those missing symbols so I judged this to
be an important issue.


Alan W. Irwin

-- System Information:
Debian Release: squeeze/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-5-amd64 (SMP w/2 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash

Versions of packages python-qt4 depends on:
ii  libc6                   2.11.2-2         Embedded GNU C Library: Shared lib
ii  libgcc1                 1:4.4.4-6        GCC support library
ii  libpython2.6            2.6.5+20100706-1 Shared Python runtime library (ver
ii  libqt4-assistant        4:4.6.3-1        Qt 4 assistant module
ii  libqt4-designer         4:4.6.3-1        Qt 4 designer module
ii  libqt4-help             4:4.6.3-1        Qt 4 help module
ii  libqt4-network          4:4.6.3-1        Qt 4 network module
ii  libqt4-script           4:4.6.3-1        Qt 4 script module
ii  libqt4-scripttools      4:4.6.3-1        Qt 4 script tools module
ii  libqt4-svg              4:4.6.3-1        Qt 4 SVG module
ii  libqt4-test             4:4.6.3-1        Qt 4 test module
ii  libqt4-webkit           4:4.6.3-1        Qt 4 WebKit module
ii  libqt4-xml              4:4.6.3-1        Qt 4 XML module
ii  libqt4-xmlpatterns      4:4.6.3-1        Qt 4 XML patterns module
ii  libqtcore4              4:4.6.3-1        Qt 4 core module
ii  libqtgui4               4:4.6.3-1        Qt 4 GUI module
ii  libstdc++6              4.4.4-6          The GNU Standard C++ Library v3
ii  python                  2.6.5-5          An interactive high-level object-o
ii  python-sip [sip-api-7.1 4.10.2-1         Python/C++ bindings generator runt
ii  python-support          1.0.9            automated rebuilding support for P

python-qt4 recommends no packages.

Versions of packages python-qt4 suggests:
pn  python-qt4-dbg                <none>     (no description available)

-- no debconf information





More information about the Python-modules-team mailing list