RPATH order problem

David Faure faure at kde.org
Wed May 2 17:40:21 CEST 2007


On Wednesday 02 May 2007, Brad King wrote:
> Thanks for the detailed information.  There seem to be two problems:

In fact I would add problem number 0: it picks up system libs in /usr/lib64 over /usr/lib,
while lib64 is just some compatibility symlink. I'd rather see it find
PNG_LIBRARY:FILEPATH=/usr/lib/libpng.so
than
PNG_LIBRARY:FILEPATH=/usr/lib64/libpng.so
for instance. Maybe a realpath() call would be a good idea?

> 1.) The cmOrderLinkDirectories implementation is not detecting the
> conflict provided by /usr/lib64.  Would you please provide a list of the
> libraries in /usr/lib64 and a list of those in /d/kde/src/4/qt-copy/lib?

$ for i in `cat liblist`; do lib=lib${i:s/-l//}.so ;echo -n $lib' '; ls /usr/lib64/$lib 2>/dev/null | chomp; ls $QTDIR/lib/$lib 2>/dev/null | chomp; ls $KDEDIR/lib/$lib 2>/dev/null | chomp; echo ;  done

libkotext.so   /d/kde/inst/kde4/lib/libkotext.so
libkutils.so   /d/kde/inst/kde4/lib/libkutils.so
libkofficeui.so   /d/kde/inst/kde4/lib/libkofficeui.so
libflake.so   /d/kde/inst/kde4/lib/libflake.so
libGLU.so /usr/lib64/libGLU.so
libGL.so /usr/lib64/libGL.so
libQtOpenGL.so /usr/lib64/libQtOpenGL.so /d/qt/4/qt-copy/lib/libQtOpenGL.so
libpigment.so   /d/kde/inst/kde4/lib/libpigment.so
libkdeui.so   /d/kde/inst/kde4/lib/libkdeui.so
liblcms.so /usr/lib64/liblcms.so
libImath.so /usr/lib64/libImath.so
libIlmImf.so /usr/lib64/libIlmImf.so
libIex.so /usr/lib64/libIex.so
libHalf.so /usr/lib64/libHalf.so
libkofficecore.so   /d/kde/inst/kde4/lib/libkofficecore.so
libQtCore.so /usr/lib64/libQtCore.so /d/qt/4/qt-copy/lib/libQtCore.so
libpthread.so /usr/lib64/libpthread.so
libkparts.so   /d/kde/inst/kde4/lib/libkparts.so
libkstore.so   /d/kde/inst/kde4/lib/libkstore.so
libkio.so   /d/kde/inst/kde4/lib/libkio.so
libkabc.so   /d/kde/inst/kde4/lib/libkabc.so
libQtCore.so /usr/lib64/libQtCore.so /d/qt/4/qt-copy/lib/libQtCore.so
libpthread.so /usr/lib64/libpthread.so
libkparts.so   /d/kde/inst/kde4/lib/libkparts.so
libkio.so   /d/kde/inst/kde4/lib/libkio.so
libkdeui.so   /d/kde/inst/kde4/lib/libkdeui.so
libQtSvg.so /usr/lib64/libQtSvg.so /d/qt/4/qt-copy/lib/libQtSvg.so
libSM.so /usr/lib64/libSM.so
libICE.so /usr/lib64/libICE.so
libX11.so /usr/lib64/libX11.so
libXext.so /usr/lib64/libXext.so
libXft.so /usr/lib64/libXft.so
libXau.so /usr/lib64/libXau.so
libXdmcp.so /usr/lib64/libXdmcp.so
libXpm.so /usr/lib64/libXpm.so
libkdefx.so   /d/kde/inst/kde4/lib/libkdefx.so
libXtst.so /usr/lib64/libXtst.so
libstreamanalyzer.so /d/kde/inst/kdesupport_trunk/lib/libstreamanalyzer.so
libstreams.so /d/kde/inst/kdesupport_trunk/lib/libstreamanalyzer.so
libsolid.so   /d/kde/inst/kde4/lib/libsolid.so
libQtXml.so /usr/lib64/libQtXml.so /d/qt/4/qt-copy/lib/libQtXml.so
libkdesu.so   /d/kde/inst/kde4/lib/libkdesu.so
libkdecore.so   /d/kde/inst/kde4/lib/libkdecore.so
libfam.so /usr/lib64/libfam.so
libacl.so /usr/lib64/libacl.so
libattr.so /usr/lib64/libattr.so
libkdeprint.so   /d/kde/inst/kde4/lib/libkdeprint.so
libkowmf.so   /d/kde/inst/kde4/lib/libkowmf.so
libQtNetwork.so /usr/lib64/libQtNetwork.so /d/qt/4/qt-copy/lib/libQtNetwork.so
libQtDBus.so /usr/lib64/libQtDBus.so /d/qt/4/qt-copy/lib/libQtDBus.so
libutil.so /usr/lib64/libutil.so
libz.so /usr/lib64/libz.so
libbz2.so /usr/lib64/libbz2.so
libresolv.so /usr/lib64/libresolv.so
libkdecore.so   /d/kde/inst/kde4/lib/libkdecore.so
libQtGui.so /usr/lib64/libQtGui.so /d/qt/4/qt-copy/lib/libQtGui.so
libQt3Support.so /usr/lib64/libQt3Support.so /d/qt/4/qt-copy/lib/libQt3Support.so
libQtCore.so /usr/lib64/libQtCore.so /d/qt/4/qt-copy/lib/libQtCore.so
libpthread.so /usr/lib64/libpthread.so
libthreadweaver.so   /d/kde/inst/kde4/lib/libthreadweaver.so
libkde3support.so   /d/kde/inst/kde4/lib/libkde3support.so

> 2.) The cmLocalGenerator::ComputeLinkInformation method hard-codes a set
> of link directories to skip emitting.  Currently it has just "/usr/lib".
>  We should probably add "/usr/lib64" to this list also
Yes.

-- 
David Faure, faure at kde.org, sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).


More information about the Kde-buildsystem mailing list