[MacPorts] #15502: Build qt4-mac plugins as bundles instead of dylibs
#15502: Build qt4-mac plugins as bundles instead of dylibs -----------------------------------+---------------------------------------- Reporter: clubjuggler@gmail.com | Owner: macports-tickets@lists.macosforge.org Type: defect | Status: new Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.6.0 Keywords: qt4-mac, kde4-mac | -----------------------------------+---------------------------------------- After talking to Ben Reed, maintainer of the (non-macport) KDE/Mac packages ( http://mac.kde.org/ ) he alerted me to a problem with the standard qt4-mac build from Trolltech. See below for details: Text taken from http://websvn.kde.org/trunk/qt-copy/patches/0231-mac- plugins.diff?view=markup&pathrev=816225 author: Benjamin Reed <rangerrick@befunk.com> By default, Qt/Mac builds plugins as dynamic libraries, instead of bundles, which is incorrect for a runtime-loadable module. In addition, it calls them .dylib when they should be .bundle (or .so) by Mac convention (although this is just a cosmetic thing). In addition, KDE phonon cannot load Qt phonon backends because they are built as normal twolevel dynamic libraries, which means that they try to use symbols from the library they were linked against, even if a newer version of that library is already loaded into memory. For example: $QTDIR/plugins/phonon_backend/libphonon_qt7.dylib links to $QTDIR/lib/phonon.framework/Versions/4/phonon. Amarok links to $KDEDIR/lib/libphonon.4.dylib. At runtime, Amarok resolves it's phonon symbols to the $KDEDIR version, then dlopens libphonon_qt7 from $QTDIR which resolves some of those same symbols from the $QTDIR version of phonon, since it explicitly references the version it was linked against, rather than the version it was loaded into. What you end up with is a dangling pointer. For details on this, see Apple's documentation: http://developer.apple.com/documentation/Porting/Conceptual/PortingUnix/comp... In short, the fix is to build plugins as bundles, with a flat namespace. -- Ticket URL: <http://trac.macports.org/ticket/15502> MacPorts <http://www.macports.org/> Ports system for Mac OS
#15502: Build qt4-mac plugins as bundles instead of dylibs ------------------------------------+--------------------------------------- Reporter: clubjuggler@gmail.com | Owner: macports-tickets@lists.macosforge.org Type: defect | Status: closed Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.6.0 Resolution: fixed | Keywords: qt4-mac, kde4-mac ------------------------------------+--------------------------------------- Changes (by erickt@macports.org): * status: new => closed * resolution: => fixed Comment: commited in r37370. Thanks again! -- Ticket URL: <http://trac.macports.org/ticket/15502#comment:1> MacPorts <http://www.macports.org/> Ports system for Mac OS
participants (1)
-
MacPorts