[PyQt] PyQt5 5.7.1 Bug: debug build on Windows broken

Hans-Peter Jansen hpj at urpla.net
Tue Jan 17 13:00:09 GMT 2017


On Dienstag, 17. Januar 2017 12:01:14 Phil Thompson wrote:
> On 16 Jan 2017, at 9:44 pm, Mathias Born <mathias.born at gmx.de> wrote:
> > 
> > It would be nice if there were an option to disable the use of the limited
> > API for
> > release builds.
> 
> I've added a --link-full-dll option to configure.py to force the full API
> DLL to be linked. You should only need --debug if you want to build debug
> versions of the PyQt modules.

Phil, please keep in mind, that *many* Linux distributions just build debug 
versions of *all* packages in order to maintain the symbol tables.

The build process strips the symbol tables from binaries later on, and 
packages them separately in debug info (and debug source) packages.

If you debug a crash with gdb, it lists all debug info packages, that needs be 
be installed for a full backtrace with symbols.

At openSUSE, we already patch configure.py to remove the *implicit* qml_debug 
flag, since enabling this option has security implications (in that it opens a 
local network port on the host):

Index: b/configure.py
===================================================================
--- a/configure.py
+++ b/configure.py
@@ -2243,7 +2243,7 @@ def pro_add_qt_dependencies(target_confi
         pro_lines.append('QT += %s' % ' '.join(add))

     pro_lines.append(
-            'CONFIG += %s' % ('debug qml_debug' if debug else 'release'))
+            'CONFIG += %s' % ('debug' if debug else 'release'))

     if metadata.cpp11:
         pro_lines.append('CONFIG += c++11')

It might be worth to think about a configure option like --keep-symbols, that 
builds release versions and just avoids stripping the symbol table, but that 
might interfere with Qt's idea of to strip or not to strip...

Cheers,
Pete


More information about the PyQt mailing list