Bug 42357

Summary: build type related dbus shared library naming issue in cmake
Product: dbus Reporter: Ralf Habacker <ralf.habacker>
Component: coreAssignee: Havoc Pennington <hp>
Status: RESOLVED DUPLICATE QA Contact: John (J5) Palmieri <johnp>
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: Windows (All)   
Whiteboard:
i915 platform: i915 features:

Description Ralf Habacker 2011-10-28 23:32:24 UTC
Recent cmake build system uses a different file name for the dbus shared library depending on the build type. 

Debug mode: dbus-1d.dll 
other: dbus-1.dll

This is a problem when building an application in debug mode and loading dbus-1.dll dynamically like done by
 - qt binding loading dbus on demand http://qt.gitorious.org/qt/qt/blobs/4.7/src/dbus/qdbus_symbols.cpp or
 - in https://bugs.freedesktop.org/show_bug.cgi?id=41558 

On the other site having a different debug file name makes it possible to install a debug library side by side with the release library, so applications are able to link to the debug library for full dbus debugging support.

This is used for example by qt dbus binding with normal linking mode - http://qt.gitorious.org/qt/qt/blobs/4.7/src/dbus/dbus.pro 

Additional having different file name has the advantage that several compilers are able to link a release application to a debug library, like gcc. 

Unfortunally some compilers do no support this - MSVC is known to have problems in this area, gcc works well. 

Are there any hints how to solve this ?
Comment 1 Simon McVittie 2013-10-10 12:57:08 UTC
(In reply to comment #0)
> Are there any hints how to solve this ?

Sorry, I don't know how Windows library ABIs work. My only suggestion would be to look at something major, cross-platform and well-maintained, like GLib or Qt, and do what they do.
Comment 2 Ralf Habacker 2014-01-29 16:27:00 UTC
This issue is solved with bug 74117

*** This bug has been marked as a duplicate of bug 74117 ***

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.