Problem with qscintilla/Qt5 linking(?)

Jan Palus atler at pld-linux.org
Fri Apr 8 09:53:22 CEST 2022


On 08.04.2022 09:01, Jan Rękorajski wrote:
> 
> Python 3.10.4 (main, Apr  1 2022, 09:00:14) [GCC 11.2.0 20220208 (release)] on linux
> Type "help", "copyright", "credits" or "license" for more information.
> >>> from PyQt5 import Qsci
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
> ImportError: /usr/lib64/python3.10/site-packages/PyQt5/Qsci.so: undefined symbol: _ZTI11QsciPrinter
> 
> As far as I can see the symbol is there, recompiling qscintilla2 does
> not fix it.
> 
> Could someone more versed in the linker(?) take a look at it?

Unfortunately it has not much to do with linking, but rather with qmake.

Above symbol is defined in libqscintilla2_qt5.so which is not linked to the
module, that's the reason for undefined symbol:

x86_64-pld-linux-g++ -Wl,--as-needed -Wl,--no-copy-dt-needed-entries -Wl,-z,relro -Wl,-z,combreloc -Wl,--version-script=Qsci.exp -Wl,-O1 -shared -o libQsci.so sipQscipart0.o sipQscipart1.o sipQscipart2.o  -L/tmp/B.ldcyigur/BUILD/QScintilla-2.11.6/build-qt5/Qt4Qt5 /usr/lib64/libQt5PrintSupport.so /usr/lib64/libQt5Widgets.so /usr/lib64/libQt5Gui.so /usr/lib64/libQt5Core.so -lGL -lpthread

I guess linking to libqscintilla2_qt5.so should come from:

Python/configure.py:
qmake = {'CONFIG': 'qscintilla2'...

but perhaps due to the way we build python module it can't find newly built qscintilla2? No idea.

A brute force workaround is to BR: qscintilla2-qt5-devel so it finds system config.


More information about the pld-devel-en mailing list